windows-nt/Source/XPSP1/NT/shell/inc/cobjsafe.h
2020-09-26 16:20:57 +08:00

30 lines
1 KiB
C++

#ifndef _COBJSAFE_H_
#define _COBJSAFE_H_
// Static functions of interest to others
HRESULT DefaultGetSafetyOptions(REFIID riid, DWORD *pdwSupportedOptions, DWORD *pdwEnabledOptions);
HRESULT DefaultSetSafetyOptions(REFIID riid, DWORD dwOptionSetMask, DWORD dwEnabledOptions);
HRESULT MakeSafeForScripting(IUnknown **punk); // returns TRUE if punk is safe for scripting
class CObjectSafety : public IObjectSafety
{
public:
CObjectSafety() : _dwSafetyOptions(0) { }
// IUnknown (we multiply inherit from IUnknown, disambiguate here)
STDMETHOD(QueryInterface)(REFIID riid, LPVOID * ppvObj) PURE;
STDMETHOD_(ULONG, AddRef)() PURE;
STDMETHOD_(ULONG, Release)() PURE;
// IObjectSafety
STDMETHOD(GetInterfaceSafetyOptions)(REFIID riid, DWORD *pdwSupportedOptions, DWORD *pdwEnabledOptions);
STDMETHOD(SetInterfaceSafetyOptions)(REFIID riid, DWORD dwOptionSetMask, DWORD dwEnabledOptions);
protected:
DWORD _dwSafetyOptions; // IObjectSafety IID_IDispatch options
};
#endif // _COBJSAFE_H_