ObjSafe.Idl
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:4k
- //+---------------------------------------------------------------------------
- //
- // Copyright 1996-1998 Microsoft Corporation. All Rights Reserved.
- //
- // Contents: Object Safety Interfaces (should come from ObjSafe.idl)
- //
- //----------------------------------------------------------------------------
- cpp_quote("//=--------------------------------------------------------------------------=")
- cpp_quote("// ObjSafe.h")
- cpp_quote("//=--------------------------------------------------------------------------=")
- cpp_quote("// (C) Copyright 1995-1998 Microsoft Corporation. All Rights Reserved.")
- cpp_quote("//")
- cpp_quote("// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF")
- cpp_quote("// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO")
- cpp_quote("// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A")
- cpp_quote("// PARTICULAR PURPOSE.")
- cpp_quote("//=--------------------------------------------------------------------------=")
- cpp_quote("")
- cpp_quote("#pragma comment(lib,"uuid.lib")")
- cpp_quote("")
- cpp_quote("//---------------------------------------------------------------------------=")
- cpp_quote("// Object Safety Interfaces.")
- cpp_quote("")
- #ifndef DO_NO_IMPORTS
- import "unknwn.idl";
- #endif
- cpp_quote("//+--------------------------------------------------------------------------=")
- cpp_quote("//")
- cpp_quote("// Contents: IObjectSafety definition")
- cpp_quote("//")
- cpp_quote("//")
- cpp_quote("// IObjectSafety should be implemented by objects that have interfaces which")
- cpp_quote("// support "untrusted" clients (for example, scripts). It allows the owner of")
- cpp_quote("// the object to specify which interfaces need to be protected from untrusted")
- cpp_quote("// use. Examples of interfaces that might be protected in this way are:")
- cpp_quote("//")
- cpp_quote("// IID_IDispatch - "Safe for automating with untrusted automation client or script"")
- cpp_quote("// IID_IPersist* - "Safe for initializing with untrusted data"")
- cpp_quote("// IID_IActiveScript - "Safe for running untrusted scripts"")
- cpp_quote("//")
- cpp_quote("//---------------------------------------------------------------------------=")
- cpp_quote("#ifndef _LPSAFEOBJECT_DEFINED")
- cpp_quote("#define _LPSAFEOBJECT_DEFINED")
- cpp_quote("")
- cpp_quote("// Option bit definitions for IObjectSafety:")
- cpp_quote("#define INTERFACESAFE_FOR_UNTRUSTED_CALLER 0x00000001 // Caller of interface may be untrusted")
- cpp_quote("#define INTERFACESAFE_FOR_UNTRUSTED_DATA 0x00000002 // Data passed into interface may be untrusted")
- cpp_quote("#define INTERFACE_USES_DISPEX 0x00000004 // Object knows to use IDispatchEx")
- cpp_quote("#define INTERFACE_USES_SECURITY_MANAGER 0x00000008 // Object knows to use IInternetHostSecurityManager")
- cpp_quote("")
- cpp_quote("// {CB5BDC81-93C1-11cf-8F20-00805F2CD064}")
- cpp_quote("DEFINE_GUID(IID_IObjectSafety, 0xcb5bdc81, 0x93c1, 0x11cf, 0x8f, 0x20, 0x0, 0x80, 0x5f, 0x2c, 0xd0, 0x64);")
- cpp_quote("EXTERN_C GUID CATID_SafeForScripting;")
- cpp_quote("EXTERN_C GUID CATID_SafeForInitializing;")
- cpp_quote("")
- [
- object,
- uuid(CB5BDC81-93C1-11cf-8F20-00805F2CD064),
- pointer_default(unique)
- ]
- interface IObjectSafety : IUnknown
- {
- HRESULT GetInterfaceSafetyOptions(
- [in] REFIID riid, // Interface that we want options for
- [out] DWORD * pdwSupportedOptions, // Options meaningful on this interface
- [out] DWORD * pdwEnabledOptions); // current option values on this interface
- HRESULT SetInterfaceSafetyOptions(
- [in] REFIID riid, // Interface to set options for
- [in] DWORD dwOptionSetMask, // Options to change
- [in] DWORD dwEnabledOptions); // New option values
- }
- typedef [unique] IObjectSafety *LPOBJECTSAFETY;
- cpp_quote("#endif")