Geoff Chappell, Software Analyst
The ISecurityOptions interface is implemented in OLE32.DLL. The IID is
IID_ISecurityOptions | {0000015F-0000-0000-C000-000000000046} |
The ISecurityOptions methods are (as ordered in the virtual function table after the IUnknown methods):
Offset | Method |
---|---|
0x0C | IsObjectCreationAllowed |
0x10 | IsMethodInvocationAllowed |
with prototypes:
HRESULT IsObjectCreationAllowed (PVOID, GUID *, ULONG, INT, ULONG, INT *, INT *, ULONG *);
HRESULT IsMethodInvocationAllowed (PVOID, INT, ULONG, INT *, INT *, ULONG *);
Instances of a class that implements the ISecurityOptions interface are creatable from a CLSID:
CLSID_GlobalOptions | {0000034B-0000-0000-C000-000000000046} |
The GlobalOptions object also implements the IGlobalOptions interface.
As implemented in OLE32 for the GlobalOptions class, neither ISecurityOptions method can succeed unless the COM Run Time already has security data, as from an earlier call to CoInitializeSecurity.
The ISecurityOptions interface is supported by OLE32.DLL and is new for Windows Vista.
This interface appears to be completely undocumented.