Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
076b5b70
Commit
076b5b70
authored
Sep 28, 2004
by
Huw Davies
Committed by
Alexandre Julliard
Sep 28, 2004
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Stub implementation of IInternetSecurityManager.
Add a classfactory. Fix calling convention of CoInternetCreateSecurityManager.
parent
240c02bb
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
492 additions
and
19 deletions
+492
-19
Makefile.in
dlls/urlmon/Makefile.in
+1
-0
sec_mgr.c
dlls/urlmon/sec_mgr.c
+250
-0
umon.c
dlls/urlmon/umon.c
+0
-12
urlmon_main.c
dlls/urlmon/urlmon_main.c
+143
-7
urlmon_main.h
dlls/urlmon/urlmon_main.h
+2
-0
urlmon.idl
include/urlmon.idl
+96
-0
No files found.
dlls/urlmon/Makefile.in
View file @
076b5b70
...
...
@@ -8,6 +8,7 @@ EXTRALIBS = -luuid
C_SRCS
=
\
regsvr.c
\
sec_mgr.c
\
umon.c
\
urlmon_main.c
...
...
dlls/urlmon/sec_mgr.c
0 → 100644
View file @
076b5b70
/*
* Internet Security Manager
*
* Copyright (c) 2004 Huw D M Davies
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <stdarg.h>
#include <stdio.h>
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
#include "wine/debug.h"
#include "ole2.h"
#include "wine/unicode.h"
#include "urlmon.h"
#include "urlmon_main.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
urlmon
);
typedef
struct
SecManagerImpl
{
IInternetSecurityManagerVtbl
*
lpvtbl1
;
/* VTable relative to the IInternetSecurityManager interface.*/
ULONG
ref
;
/* reference counter for this object */
}
SecManagerImpl
;
/* IUnknown prototype functions */
static
HRESULT
WINAPI
SecManagerImpl_QueryInterface
(
IInternetSecurityManager
*
iface
,
REFIID
riid
,
void
**
ppvObject
);
static
ULONG
WINAPI
SecManagerImpl_AddRef
(
IInternetSecurityManager
*
iface
);
static
ULONG
WINAPI
SecManagerImpl_Release
(
IInternetSecurityManager
*
iface
);
static
HRESULT
WINAPI
SecManagerImpl_SetSecuritySite
(
IInternetSecurityManager
*
iface
,
IInternetSecurityMgrSite
*
pSite
);
static
HRESULT
WINAPI
SecManagerImpl_GetSecuritySite
(
IInternetSecurityManager
*
iface
,
IInternetSecurityMgrSite
**
ppSite
);
static
HRESULT
WINAPI
SecManagerImpl_MapUrlToZone
(
IInternetSecurityManager
*
iface
,
LPCWSTR
pwszUrl
,
DWORD
*
pdwZone
,
DWORD
dwFlags
);
static
HRESULT
WINAPI
SecManagerImpl_GetSecurityId
(
IInternetSecurityManager
*
iface
,
LPCWSTR
pwszUrl
,
BYTE
*
pbSecurityId
,
DWORD
*
pcbSecurityId
,
DWORD
dwReserved
);
static
HRESULT
WINAPI
SecManagerImpl_ProcessUrlAction
(
IInternetSecurityManager
*
iface
,
LPCWSTR
pwszUrl
,
DWORD
dwAction
,
BYTE
*
pPolicy
,
DWORD
cbPolicy
,
BYTE
*
pContext
,
DWORD
cbContext
,
DWORD
dwFlags
,
DWORD
dwReserved
);
static
HRESULT
WINAPI
SecManagerImpl_QueryCustomPolicy
(
IInternetSecurityManager
*
iface
,
LPCWSTR
pwszUrl
,
REFGUID
guidKey
,
BYTE
**
ppPolicy
,
DWORD
*
pcbPolicy
,
BYTE
*
pContext
,
DWORD
cbContext
,
DWORD
dwReserved
);
static
HRESULT
WINAPI
SecManagerImpl_SetZoneMapping
(
IInternetSecurityManager
*
iface
,
DWORD
dwZone
,
LPCWSTR
pwszPattern
,
DWORD
dwFlags
);
static
HRESULT
WINAPI
SecManagerImpl_GetZoneMappings
(
IInternetSecurityManager
*
iface
,
DWORD
dwZone
,
IEnumString
**
ppenumString
,
DWORD
dwFlags
);
static
HRESULT
SecManagerImpl_Destroy
(
SecManagerImpl
*
This
);
HRESULT
SecManagerImpl_Construct
(
IUnknown
*
pUnkOuter
,
LPVOID
*
ppobj
);
static
IInternetSecurityManagerVtbl
VT_SecManagerImpl
=
{
SecManagerImpl_QueryInterface
,
SecManagerImpl_AddRef
,
SecManagerImpl_Release
,
SecManagerImpl_SetSecuritySite
,
SecManagerImpl_GetSecuritySite
,
SecManagerImpl_MapUrlToZone
,
SecManagerImpl_GetSecurityId
,
SecManagerImpl_ProcessUrlAction
,
SecManagerImpl_QueryCustomPolicy
,
SecManagerImpl_SetZoneMapping
,
SecManagerImpl_GetZoneMappings
};
static
HRESULT
WINAPI
SecManagerImpl_QueryInterface
(
IInternetSecurityManager
*
iface
,
REFIID
riid
,
void
**
ppvObject
)
{
SecManagerImpl
*
This
=
(
SecManagerImpl
*
)
iface
;
TRACE
(
"(%p)->(%s,%p)
\n
"
,
This
,
debugstr_guid
(
riid
),
ppvObject
);
/* Perform a sanity check on the parameters.*/
if
(
(
This
==
0
)
||
(
ppvObject
==
0
)
)
return
E_INVALIDARG
;
/* Initialize the return parameter */
*
ppvObject
=
0
;
/* Compare the riid with the interface IDs implemented by this object.*/
if
(
IsEqualIID
(
&
IID_IUnknown
,
riid
)
||
IsEqualIID
(
&
IID_IInternetSecurityManager
,
riid
))
*
ppvObject
=
iface
;
/* Check that we obtained an interface.*/
if
((
*
ppvObject
)
==
0
)
return
E_NOINTERFACE
;
/* Query Interface always increases the reference count by one when it is successful */
SecManagerImpl_AddRef
(
iface
);
return
S_OK
;
}
static
ULONG
WINAPI
SecManagerImpl_AddRef
(
IInternetSecurityManager
*
iface
)
{
SecManagerImpl
*
This
=
(
SecManagerImpl
*
)
iface
;
TRACE
(
"(%p)
\n
"
,
This
);
return
InterlockedIncrement
(
&
This
->
ref
);
}
static
ULONG
WINAPI
SecManagerImpl_Release
(
IInternetSecurityManager
*
iface
)
{
SecManagerImpl
*
This
=
(
SecManagerImpl
*
)
iface
;
ULONG
ref
;
TRACE
(
"(%p)
\n
"
,
This
);
ref
=
InterlockedDecrement
(
&
This
->
ref
);
/* destroy the object if there's no more reference on it */
if
(
ref
==
0
){
SecManagerImpl_Destroy
(
This
);
return
0
;
}
return
ref
;
}
static
HRESULT
SecManagerImpl_Destroy
(
SecManagerImpl
*
This
)
{
TRACE
(
"(%p)
\n
"
,
This
);
HeapFree
(
GetProcessHeap
(),
0
,
This
);
return
S_OK
;
}
HRESULT
SecManagerImpl_Construct
(
IUnknown
*
pUnkOuter
,
LPVOID
*
ppobj
)
{
SecManagerImpl
*
This
;
TRACE
(
"(%p,%p)
\n
"
,
pUnkOuter
,
ppobj
);
This
=
HeapAlloc
(
GetProcessHeap
(),
0
,
sizeof
(
*
This
));
/* Initialize the virtual function table. */
This
->
lpvtbl1
=
&
VT_SecManagerImpl
;
This
->
ref
=
1
;
*
ppobj
=
This
;
return
S_OK
;
}
static
HRESULT
WINAPI
SecManagerImpl_SetSecuritySite
(
IInternetSecurityManager
*
iface
,
IInternetSecurityMgrSite
*
pSite
)
{
FIXME
(
"(%p)->(%p)
\n
"
,
iface
,
pSite
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
SecManagerImpl_GetSecuritySite
(
IInternetSecurityManager
*
iface
,
IInternetSecurityMgrSite
**
ppSite
)
{
FIXME
(
"(%p)->( %p)
\n
"
,
iface
,
ppSite
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
SecManagerImpl_MapUrlToZone
(
IInternetSecurityManager
*
iface
,
LPCWSTR
pwszUrl
,
DWORD
*
pdwZone
,
DWORD
dwFlags
)
{
FIXME
(
"(%p)->(%s %p %08lx)
\n
"
,
iface
,
debugstr_w
(
pwszUrl
),
pdwZone
,
dwFlags
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
SecManagerImpl_GetSecurityId
(
IInternetSecurityManager
*
iface
,
LPCWSTR
pwszUrl
,
BYTE
*
pbSecurityId
,
DWORD
*
pcbSecurityId
,
DWORD
dwReserved
)
{
FIXME
(
"(%p)->(%s %p %p %08lx)
\n
"
,
iface
,
debugstr_w
(
pwszUrl
),
pbSecurityId
,
pcbSecurityId
,
dwReserved
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
SecManagerImpl_ProcessUrlAction
(
IInternetSecurityManager
*
iface
,
LPCWSTR
pwszUrl
,
DWORD
dwAction
,
BYTE
*
pPolicy
,
DWORD
cbPolicy
,
BYTE
*
pContext
,
DWORD
cbContext
,
DWORD
dwFlags
,
DWORD
dwReserved
)
{
FIXME
(
"(%p)->(%s %08lx %p %08lx %p %08lx %08lx %08lx)
\n
"
,
iface
,
debugstr_w
(
pwszUrl
),
dwAction
,
pPolicy
,
cbPolicy
,
pContext
,
cbContext
,
dwFlags
,
dwReserved
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
SecManagerImpl_QueryCustomPolicy
(
IInternetSecurityManager
*
iface
,
LPCWSTR
pwszUrl
,
REFGUID
guidKey
,
BYTE
**
ppPolicy
,
DWORD
*
pcbPolicy
,
BYTE
*
pContext
,
DWORD
cbContext
,
DWORD
dwReserved
)
{
FIXME
(
"(%p)->(%s %s %p %p %p %08lx %08lx )
\n
"
,
iface
,
debugstr_w
(
pwszUrl
),
debugstr_guid
(
guidKey
),
ppPolicy
,
pcbPolicy
,
pContext
,
cbContext
,
dwReserved
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
SecManagerImpl_SetZoneMapping
(
IInternetSecurityManager
*
iface
,
DWORD
dwZone
,
LPCWSTR
pwszPattern
,
DWORD
dwFlags
)
{
FIXME
(
"(%p)->(%08lx %s %08lx)
\n
"
,
iface
,
dwZone
,
debugstr_w
(
pwszPattern
),
dwFlags
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
SecManagerImpl_GetZoneMappings
(
IInternetSecurityManager
*
iface
,
DWORD
dwZone
,
IEnumString
**
ppenumString
,
DWORD
dwFlags
)
{
FIXME
(
"(%p)->(%08lx %p %08lx)
\n
"
,
iface
,
dwZone
,
ppenumString
,
dwFlags
);
return
E_NOTIMPL
;
}
/***********************************************************************
* CoInternetCreateSecurityManager (URLMON.@)
*
*/
HRESULT
WINAPI
CoInternetCreateSecurityManager
(
IServiceProvider
*
pSP
,
IInternetSecurityManager
**
ppSM
,
DWORD
dwReserved
)
{
TRACE
(
"%p %p %ld
\n
"
,
pSP
,
ppSM
,
dwReserved
);
return
SecManagerImpl_Construct
(
NULL
,
(
void
**
)
ppSM
);
}
dlls/urlmon/umon.c
View file @
076b5b70
...
...
@@ -1061,18 +1061,6 @@ HRESULT WINAPI CoInternetQueryInfo(LPCWSTR pwzUrl, QUERYOPTION QueryOption,
return
S_OK
;
}
/***********************************************************************
* CoInternetCreateSecurityManager (URLMON.@)
*
*/
typedef
void
*
IInternetSecurityManager
;
HRESULT
CoInternetCreateSecurityManager
(
IServiceProvider
*
pSP
,
IInternetSecurityManager
**
ppSM
,
DWORD
dwReserved
)
{
FIXME
(
"%p %ld
\n
"
,
pSP
,
dwReserved
);
return
E_NOTIMPL
;
}
static
BOOL
URLMON_IsBinary
(
LPVOID
pBuffer
,
DWORD
cbSize
)
{
unsigned
int
i
,
binarycount
=
0
;
...
...
dlls/urlmon/urlmon_main.c
View file @
076b5b70
...
...
@@ -29,6 +29,8 @@
#include "wine/debug.h"
#include "winuser.h"
#include "urlmon.h"
#include "urlmon_main.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
urlmon
);
...
...
@@ -77,18 +79,152 @@ HRESULT WINAPI URLMON_DllCanUnloadNow(void)
return
S_FALSE
;
}
/***********************************************************************
* DllGetClassObject (URLMON.@)
/******************************************************************************
* Urlmon ClassFactory
*/
typedef
struct
{
IClassFactory
ITF_IClassFactory
;
DWORD
ref
;
HRESULT
(
*
pfnCreateInstance
)(
IUnknown
*
pUnkOuter
,
LPVOID
*
ppObj
);
}
IClassFactoryImpl
;
struct
object_creation_info
{
const
CLSID
*
clsid
;
HRESULT
(
*
pfnCreateInstance
)(
IUnknown
*
pUnkOuter
,
LPVOID
*
ppObj
);
};
static
const
struct
object_creation_info
object_creation
[]
=
{
{
&
CLSID_InternetSecurityManager
,
&
SecManagerImpl_Construct
}
};
static
HRESULT
WINAPI
CF_QueryInterface
(
LPCLASSFACTORY
iface
,
REFIID
riid
,
LPVOID
*
ppobj
)
{
IClassFactoryImpl
*
This
=
(
IClassFactoryImpl
*
)
iface
;
if
(
IsEqualGUID
(
riid
,
&
IID_IUnknown
)
||
IsEqualGUID
(
riid
,
&
IID_IClassFactory
))
{
IClassFactory_AddRef
(
iface
);
*
ppobj
=
This
;
return
S_OK
;
}
WARN
(
"(%p)->(%s,%p),not found
\n
"
,
This
,
debugstr_guid
(
riid
),
ppobj
);
return
E_NOINTERFACE
;
}
static
ULONG
WINAPI
CF_AddRef
(
LPCLASSFACTORY
iface
)
{
IClassFactoryImpl
*
This
=
(
IClassFactoryImpl
*
)
iface
;
return
InterlockedIncrement
(
&
This
->
ref
);
}
static
ULONG
WINAPI
CF_Release
(
LPCLASSFACTORY
iface
)
{
IClassFactoryImpl
*
This
=
(
IClassFactoryImpl
*
)
iface
;
ULONG
ref
=
InterlockedDecrement
(
&
This
->
ref
);
if
(
ref
==
0
)
HeapFree
(
GetProcessHeap
(),
0
,
This
);
return
ref
;
}
static
HRESULT
WINAPI
CF_CreateInstance
(
LPCLASSFACTORY
iface
,
LPUNKNOWN
pOuter
,
REFIID
riid
,
LPVOID
*
ppobj
)
{
IClassFactoryImpl
*
This
=
(
IClassFactoryImpl
*
)
iface
;
HRESULT
hres
;
LPUNKNOWN
punk
;
TRACE
(
"(%p)->(%p,%s,%p)
\n
"
,
This
,
pOuter
,
debugstr_guid
(
riid
),
ppobj
);
*
ppobj
=
NULL
;
if
(
SUCCEEDED
(
hres
=
This
->
pfnCreateInstance
(
pOuter
,
(
LPVOID
*
)
&
punk
)))
{
hres
=
IUnknown_QueryInterface
(
punk
,
riid
,
ppobj
);
IUnknown_Release
(
punk
);
}
return
hres
;
}
static
HRESULT
WINAPI
CF_LockServer
(
LPCLASSFACTORY
iface
,
BOOL
dolock
)
{
IClassFactoryImpl
*
This
=
(
IClassFactoryImpl
*
)
iface
;
FIXME
(
"(%p)->(%d),stub!
\n
"
,
This
,
dolock
);
return
S_OK
;
}
static
IClassFactoryVtbl
CF_Vtbl
=
{
CF_QueryInterface
,
CF_AddRef
,
CF_Release
,
CF_CreateInstance
,
CF_LockServer
};
/*******************************************************************************
* DllGetClassObject [URLMON.@]
* Retrieves class object from a DLL object
*
* NOTES
* Docs say returns STDAPI
*
* PARAMS
* rclsid [I] CLSID for the class object
* riid [I] Reference to identifier of interface for class object
* ppv [O] Address of variable to receive interface pointer for riid
*
* RETURNS
* Success: S_OK
* Failure: CLASS_E_CLASSNOTAVAILABLE, E_OUTOFMEMORY, E_INVALIDARG,
* E_UNEXPECTED
*/
HRESULT
WINAPI
URLMON_DllGetClassObject
(
REFCLSID
rclsid
,
REFIID
riid
,
LPVOID
*
ppv
)
DWORD
WINAPI
URLMON_DllGetClassObject
(
REFCLSID
rclsid
,
REFIID
riid
,
LPVOID
*
ppv
)
{
FIXME
(
"(%p, %p, %p): stub
\n
"
,
debugstr_guid
(
rclsid
),
debugstr_guid
(
riid
),
ppv
);
int
i
;
IClassFactoryImpl
*
factory
;
TRACE
(
"(%s,%s,%p)
\n
"
,
debugstr_guid
(
rclsid
),
debugstr_guid
(
riid
),
ppv
);
if
(
!
IsEqualGUID
(
&
IID_IClassFactory
,
riid
)
&&
!
IsEqualGUID
(
&
IID_IUnknown
,
riid
)
)
return
E_NOINTERFACE
;
for
(
i
=
0
;
i
<
sizeof
(
object_creation
)
/
sizeof
(
object_creation
[
0
]);
i
++
)
{
if
(
IsEqualGUID
(
object_creation
[
i
].
clsid
,
rclsid
))
break
;
}
return
CLASS_E_CLASSNOTAVAILABLE
;
if
(
i
==
sizeof
(
object_creation
)
/
sizeof
(
object_creation
[
0
]))
{
FIXME
(
"%s: no class found.
\n
"
,
debugstr_guid
(
rclsid
));
return
CLASS_E_CLASSNOTAVAILABLE
;
}
factory
=
HeapAlloc
(
GetProcessHeap
(),
0
,
sizeof
(
*
factory
));
if
(
factory
==
NULL
)
return
E_OUTOFMEMORY
;
factory
->
ITF_IClassFactory
.
lpVtbl
=
&
CF_Vtbl
;
factory
->
ref
=
1
;
factory
->
pfnCreateInstance
=
object_creation
[
i
].
pfnCreateInstance
;
*
ppv
=
&
(
factory
->
ITF_IClassFactory
);
return
S_OK
;
}
/***********************************************************************
* DllRegisterServerEx (URLMON.@)
*/
...
...
dlls/urlmon/urlmon_main.h
View file @
076b5b70
...
...
@@ -25,6 +25,8 @@
#include "winbase.h"
extern
HINSTANCE
URLMON_hInstance
;
extern
HRESULT
SecManagerImpl_Construct
(
IUnknown
*
pUnkOuter
,
LPVOID
*
ppobj
);
#define ICOM_THIS_MULTI(impl,field,iface) impl* const This=(impl*)((char*)(iface) - offsetof(impl,field))
...
...
include/urlmon.idl
View file @
076b5b70
...
...
@@ -563,6 +563,102 @@ interface IInternetSession : IUnknown
[
in
]
DWORD
dwReserved
)
;
}
/*****************************************************************************
*
IInternetSecurityMgrSite
interface
*/
[
local
,
object
,
uuid
(
79
eac9ed
-
baf9
-
11
ce
-
8
c82
-
00
aa004ba90b
),
pointer_default
(
unique
)
]
interface
IInternetSecurityMgrSite
:
IUnknown
{
HRESULT
GetWindow
(
[
out
]
HWND
*
phwnd
)
;
HRESULT
EnableModeless
(
[
in
]
BOOL
fEnable
)
;
}
;
/*****************************************************************************
*
IInternetSecurityManager
interface
*/
cpp_quote
(
"#define SID_SInternetSecurityManager IID_IInternetSecurityManager"
)
[
object
,
uuid
(
79
eac9ee
-
baf9
-
11
ce
-
8
c82
-
00
aa004ba90b
),
pointer_default
(
unique
)
]
interface
IInternetSecurityManager
:
IUnknown
{
HRESULT
SetSecuritySite
(
[
in
,
unique
]
IInternetSecurityMgrSite
*
pSite
)
;
HRESULT
GetSecuritySite
(
[
out
]
IInternetSecurityMgrSite
**
ppSite
)
;
HRESULT
MapUrlToZone
(
[
in
]
LPCWSTR
pwszUrl
,
[
out
]
DWORD
*
pdwZone
,
[
in
]
DWORD
dwFlags
)
;
cpp_quote
(
"#define MAX_SIZE_SECURITY_ID 512"
)
HRESULT
GetSecurityId
(
[
in
]
LPCWSTR
pwszUrl
,
[
out
,
size_is
(
*
pcbSecurityId
)
]
BYTE
*
pbSecurityId
,
[
in
,
out
]
DWORD
*
pcbSecurityId
,
[
in
]
DWORD
dwReserved
)
;
typedef
enum
{
PUAF_DEFAULT
=
0
x00
,
PUAF_NOUI
=
0
x01
,
PUAF_ISFILE
=
0
x02
,
PUAF_WARN_IF_DENIED
=
0
x04
,
PUAF_FORCEUI_FOREGROUND
=
0
x08
,
PUAF_CHECK_TIPS
=
0
x10
}
PUAF
;
HRESULT
ProcessUrlAction
(
[
in
]
LPCWSTR
pwszUrl
,
[
in
]
DWORD
dwAction
,
[
out
,
size_is
(
cbPolicy
)
]
BYTE
*
pPolicy
,
[
in
]
DWORD
cbPolicy
,
[
in
]
BYTE
*
pContext
,
[
in
]
DWORD
cbContext
,
[
in
]
DWORD
dwFlags
,
[
in
]
DWORD
dwReserved
)
;
HRESULT
QueryCustomPolicy
(
[
in
]
LPCWSTR
pwszUrl
,
[
in
]
REFGUID
guidKey
,
[
out
,
size_is
(
*
pcbPolicy
)
]
BYTE
**
ppPolicy
,
[
out
]
DWORD
*
pcbPolicy
,
[
in
]
BYTE
*
pContext
,
[
in
]
DWORD
cbContext
,
[
in
]
DWORD
dwReserved
)
;
typedef
enum
{
SZM_CREATE
=
0
x0
,
SZM_DELETE
=
0
x1
}
SZM_FLAGS
;
HRESULT
SetZoneMapping
(
[
in
]
DWORD
dwZone
,
[
in
]
LPCWSTR
lpszPattern
,
[
in
]
DWORD
dwFlags
)
;
HRESULT
GetZoneMappings
(
[
in
]
DWORD
dwZone
,
[
out
]
IEnumString
**
ppenumString
,
[
in
]
DWORD
dwFlags
)
;
}
;
cpp_quote
(
"DEFINE_GUID(CLSID_InternetSecurityManager, 0x7b8a2d94, 0x0ac9, 0x11d1, 0x89, 0x6c, 0x00, 0xc0, 0x4f, 0xB6, 0xbf, 0xc4);"
)
cpp_quote
(
"DEFINE_GUID(IID_IAsyncMoniker, 0x79EAC9D3, 0xBAF9, 0x11CE, 0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B);"
)
cpp_quote
(
"DEFINE_GUID(CLSID_StdURLMoniker, 0x79EAC9E0, 0xBAF9, 0x11CE, 0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B);"
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment