/*** Autogenerated by WIDL 0.9.8 from objsafe.idl - Do not edit ***/
#include <rpc.h>
#include <rpcndr.h>

#ifndef __WIDL_OBJSAFE_H
#define __WIDL_OBJSAFE_H
#ifdef __cplusplus
extern "C" {
#endif
#include <unknwn.h>
#define INTERFACESAFE_FOR_UNTRUSTED_CALLER 1
#define INTERFACESAFE_FOR_UNTRUSTED_DATA 2
#define INTERFACE_USES_DISPEX 4
#define INTERFACE_USES_SECURITY_MANAGER 8
DEFINE_GUID(CATID_SafeForScripting, 0x7dd95801,0x9882,0x11cf,0x9f,0xa9,0x00,0xaa,0x00,0x6c,0x42,0xc4);
DEFINE_GUID(CATID_SafeForInitializing, 0x7dd95802,0x9882,0x11cf,0x9f,0xa9,0x00,0xaa,0x00,0x6c,0x42,0xc4);
#ifndef __IObjectSafety_FWD_DEFINED__
#define __IObjectSafety_FWD_DEFINED__
typedef interface IObjectSafety IObjectSafety;
#endif

/*****************************************************************************
 * IObjectSafety interface
 */
#ifndef __IObjectSafety_INTERFACE_DEFINED__
#define __IObjectSafety_INTERFACE_DEFINED__

DEFINE_GUID(IID_IObjectSafety, 0xcb5bdc81, 0x93c1, 0x11cf, 0x8f,0x20, 0x00,0x80,0x5f,0x2c,0xd0,0x64);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IObjectSafety : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE GetInterfaceSafetyOptions(
        REFIID riid,
        DWORD* pdwSupportedOptions,
        DWORD* pdwEnabledOptions) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetInterfaceSafetyOptions(
        REFIID riid,
        DWORD dwOptionSetMask,
        DWORD dwEnabledOptions) = 0;

};
#else
typedef struct IObjectSafetyVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IObjectSafety* This,
        REFIID riid,
        void** ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IObjectSafety* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IObjectSafety* This);

    /*** IObjectSafety methods ***/
    HRESULT (STDMETHODCALLTYPE *GetInterfaceSafetyOptions)(
        IObjectSafety* This,
        REFIID riid,
        DWORD* pdwSupportedOptions,
        DWORD* pdwEnabledOptions);

    HRESULT (STDMETHODCALLTYPE *SetInterfaceSafetyOptions)(
        IObjectSafety* This,
        REFIID riid,
        DWORD dwOptionSetMask,
        DWORD dwEnabledOptions);

    END_INTERFACE
} IObjectSafetyVtbl;
interface IObjectSafety {
    const IObjectSafetyVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IObjectSafety_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IObjectSafety_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IObjectSafety_Release(p) (p)->lpVtbl->Release(p)
/*** IObjectSafety methods ***/
#define IObjectSafety_GetInterfaceSafetyOptions(p,a,b,c) (p)->lpVtbl->GetInterfaceSafetyOptions(p,a,b,c)
#define IObjectSafety_SetInterfaceSafetyOptions(p,a,b,c) (p)->lpVtbl->SetInterfaceSafetyOptions(p,a,b,c)
#endif

#endif

HRESULT CALLBACK IObjectSafety_GetInterfaceSafetyOptions_Proxy(
    IObjectSafety* This,
    REFIID riid,
    DWORD* pdwSupportedOptions,
    DWORD* pdwEnabledOptions);
void __RPC_STUB IObjectSafety_GetInterfaceSafetyOptions_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IObjectSafety_SetInterfaceSafetyOptions_Proxy(
    IObjectSafety* This,
    REFIID riid,
    DWORD dwOptionSetMask,
    DWORD dwEnabledOptions);
void __RPC_STUB IObjectSafety_SetInterfaceSafetyOptions_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IObjectSafety_INTERFACE_DEFINED__ */

/* Begin additional prototypes for all interfaces */


/* End additional prototypes */

#ifdef __cplusplus
}
#endif
#endif /* __WIDL_OBJSAFE_H */
