From c4fc1abff72872a924e4ff279341be23d34fe95a Mon Sep 17 00:00:00 2001 From: Kirill Smelkov Date: Wed, 3 Dec 2003 04:01:26 +0000 Subject: [PATCH] Added IObjectWithSite interface. --- include/ocidl.h | 97 +++++++++++++++++++++++++++++++++++++++++++++++ include/ocidl.idl | 21 ++++++++++ 2 files changed, 118 insertions(+) diff --git a/include/ocidl.h b/include/ocidl.h index 87659307619..ff74849a7bf 100644 --- a/include/ocidl.h +++ b/include/ocidl.h @@ -5312,6 +5312,103 @@ void __RPC_STUB IPointerInactive_OnInactiveSetCursor_Stub( #endif /* __IPointerInactive_INTERFACE_DEFINED__ */ +#ifndef __IObjectWithSite_FWD_DEFINED__ +#define __IObjectWithSite_FWD_DEFINED__ +typedef struct IObjectWithSite IObjectWithSite; +#endif + +typedef IObjectWithSite *LPOBJECTWITHSITE; + +/***************************************************************************** + * IObjectWithSite interface + */ +#ifndef __IObjectWithSite_INTERFACE_DEFINED__ +#define __IObjectWithSite_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IObjectWithSite, 0xfc4801a3, 0x2ba9, 0x11cf, 0xa2,0x29, 0x00,0xaa,0x00,0x3d,0x73,0x52); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct IObjectWithSite : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE SetSite( + IUnknown* pUnkSite) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetSite( + REFIID riid, + PVOID* ppvSite) = 0; + +}; +#else +typedef struct IObjectWithSiteVtbl IObjectWithSiteVtbl; +struct IObjectWithSite { + const IObjectWithSiteVtbl* lpVtbl; +}; +struct IObjectWithSiteVtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IObjectWithSite* This, + REFIID riid, + void** ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IObjectWithSite* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IObjectWithSite* This); + + /*** IObjectWithSite methods ***/ + HRESULT (STDMETHODCALLTYPE *SetSite)( + IObjectWithSite* This, + IUnknown* pUnkSite); + + HRESULT (STDMETHODCALLTYPE *GetSite)( + IObjectWithSite* This, + REFIID riid, + PVOID* ppvSite); + +}; + +/*** IUnknown methods ***/ +#define IObjectWithSite_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IObjectWithSite_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IObjectWithSite_Release(p) (p)->lpVtbl->Release(p) +/*** IObjectWithSite methods ***/ +#define IObjectWithSite_SetSite(p,a) (p)->lpVtbl->SetSite(p,a) +#define IObjectWithSite_GetSite(p,a,b) (p)->lpVtbl->GetSite(p,a,b) + +#endif + +#define IObjectWithSite_METHODS \ + ICOM_MSVTABLE_COMPAT_FIELDS \ + /*** IUnknown methods ***/ \ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ + STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ + STDMETHOD_(ULONG,Release)(THIS) PURE; \ + /*** IObjectWithSite methods ***/ \ + STDMETHOD_(HRESULT,SetSite)(THIS_ IUnknown* pUnkSite) PURE; \ + STDMETHOD_(HRESULT,GetSite)(THIS_ REFIID riid, PVOID* ppvSite) PURE; + +HRESULT CALLBACK IObjectWithSite_SetSite_Proxy( + IObjectWithSite* This, + IUnknown* pUnkSite); +void __RPC_STUB IObjectWithSite_SetSite_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IObjectWithSite_GetSite_Proxy( + IObjectWithSite* This, + REFIID riid, + PVOID* ppvSite); +void __RPC_STUB IObjectWithSite_GetSite_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IObjectWithSite_INTERFACE_DEFINED__ */ + #ifndef __IOleUndoManager_FWD_DEFINED__ #define __IOleUndoManager_FWD_DEFINED__ typedef struct IOleUndoManager IOleUndoManager; diff --git a/include/ocidl.idl b/include/ocidl.idl index 8cadfa762d5..1d9e410d739 100644 --- a/include/ocidl.idl +++ b/include/ocidl.idl @@ -1088,6 +1088,27 @@ interface IPointerInactive : IUnknown } +/***************************************************************************** + * IObjectWithSite interface + */ +[ + object, + uuid(fc4801a3-2ba9-11cf-a229-00aa003d7352), + pointer_default(unique) +] +interface IObjectWithSite : IUnknown +{ + typedef IObjectWithSite *LPOBJECTWITHSITE; + + HRESULT SetSite( + [in] IUnknown * pUnkSite); + + HRESULT GetSite( + [in] REFIID riid, + [out, iid_is(riid)] PVOID *ppvSite); +} + + /***************************************************************************** * IOleUndoUnit interface */