Added IObjectWithSite interface.
diff --git a/include/ocidl.h b/include/ocidl.h
index 8765930..ff74849 100644
--- a/include/ocidl.h
+++ b/include/ocidl.h
@@ -5312,6 +5312,103 @@
#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 8cadfa7..1d9e410 100644
--- a/include/ocidl.idl
+++ b/include/ocidl.idl
@@ -1089,6 +1089,27 @@
/*****************************************************************************
+ * 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
*/
interface IOleUndoManager; /* forward declaration */