Commit 6c3bb4de authored by Michael Stefaniuc's avatar Michael Stefaniuc Committed by Alexandre Julliard

mshtml: COM cleanup for the IOleObject iface.

parent 7e32a1ab
...@@ -81,7 +81,7 @@ static HRESULT WINAPI HlinkTarget_Navigate(IHlinkTarget *iface, DWORD grfHLNF, L ...@@ -81,7 +81,7 @@ static HRESULT WINAPI HlinkTarget_Navigate(IHlinkTarget *iface, DWORD grfHLNF, L
if(pwzJumpLocation) if(pwzJumpLocation)
FIXME("JumpLocation not supported\n"); FIXME("JumpLocation not supported\n");
return IOleObject_DoVerb(OLEOBJ(This), OLEIVERB_SHOW, NULL, NULL, -1, NULL, NULL); return IOleObject_DoVerb(&This->IOleObject_iface, OLEIVERB_SHOW, NULL, NULL, -1, NULL, NULL);
} }
static HRESULT WINAPI HlinkTarget_GetMoniker(IHlinkTarget *iface, LPCWSTR pwzLocation, DWORD dwAssign, static HRESULT WINAPI HlinkTarget_GetMoniker(IHlinkTarget *iface, LPCWSTR pwzLocation, DWORD dwAssign,
......
...@@ -1743,7 +1743,7 @@ static BOOL htmldoc_qi(HTMLDocument *This, REFIID riid, void **ppv) ...@@ -1743,7 +1743,7 @@ static BOOL htmldoc_qi(HTMLDocument *This, REFIID riid, void **ppv)
*ppv = &This->IMonikerProp_iface; *ppv = &This->IMonikerProp_iface;
}else if(IsEqualGUID(&IID_IOleObject, riid)) { }else if(IsEqualGUID(&IID_IOleObject, riid)) {
TRACE("(%p)->(IID_IOleObject, %p)\n", This, ppv); TRACE("(%p)->(IID_IOleObject, %p)\n", This, ppv);
*ppv = OLEOBJ(This); *ppv = &This->IOleObject_iface;
}else if(IsEqualGUID(&IID_IOleDocument, riid)) { }else if(IsEqualGUID(&IID_IOleDocument, riid)) {
TRACE("(%p)->(IID_IOleDocument, %p)\n", This, ppv); TRACE("(%p)->(IID_IOleDocument, %p)\n", This, ppv);
*ppv = OLEDOC(This); *ppv = OLEDOC(This);
...@@ -2102,7 +2102,7 @@ static ULONG WINAPI CustomDoc_Release(ICustomDoc *iface) ...@@ -2102,7 +2102,7 @@ static ULONG WINAPI CustomDoc_Release(ICustomDoc *iface)
if(This->view_sink) if(This->view_sink)
IAdviseSink_Release(This->view_sink); IAdviseSink_Release(This->view_sink);
if(This->client) if(This->client)
IOleObject_SetClientSite(OLEOBJ(&This->basedoc), NULL); IOleObject_SetClientSite(&This->basedoc.IOleObject_iface, NULL);
if(This->hostui) if(This->hostui)
ICustomDoc_SetUIHandler(CUSTOMDOC(This), NULL); ICustomDoc_SetUIHandler(CUSTOMDOC(This), NULL);
if(This->in_place_active) if(This->in_place_active)
......
...@@ -351,7 +351,7 @@ struct HTMLDocument { ...@@ -351,7 +351,7 @@ struct HTMLDocument {
IPersistFile IPersistFile_iface; IPersistFile IPersistFile_iface;
IPersistHistory IPersistHistory_iface; IPersistHistory IPersistHistory_iface;
IMonikerProp IMonikerProp_iface; IMonikerProp IMonikerProp_iface;
const IOleObjectVtbl *lpOleObjectVtbl; IOleObject IOleObject_iface;
const IOleDocumentVtbl *lpOleDocumentVtbl; const IOleDocumentVtbl *lpOleDocumentVtbl;
const IOleDocumentViewVtbl *lpOleDocumentViewVtbl; const IOleDocumentViewVtbl *lpOleDocumentViewVtbl;
const IOleInPlaceActiveObjectVtbl *lpOleInPlaceActiveObjectVtbl; const IOleInPlaceActiveObjectVtbl *lpOleInPlaceActiveObjectVtbl;
...@@ -626,7 +626,6 @@ struct HTMLDocumentNode { ...@@ -626,7 +626,6 @@ struct HTMLDocumentNode {
#define HTMLWINDOW3(x) ((IHTMLWindow3*) &(x)->lpHTMLWindow3Vtbl) #define HTMLWINDOW3(x) ((IHTMLWindow3*) &(x)->lpHTMLWindow3Vtbl)
#define HTMLWINDOW4(x) ((IHTMLWindow4*) &(x)->lpHTMLWindow4Vtbl) #define HTMLWINDOW4(x) ((IHTMLWindow4*) &(x)->lpHTMLWindow4Vtbl)
#define OLEOBJ(x) ((IOleObject*) &(x)->lpOleObjectVtbl)
#define OLEDOC(x) ((IOleDocument*) &(x)->lpOleDocumentVtbl) #define OLEDOC(x) ((IOleDocument*) &(x)->lpOleDocumentVtbl)
#define DOCVIEW(x) ((IOleDocumentView*) &(x)->lpOleDocumentViewVtbl) #define DOCVIEW(x) ((IOleDocumentView*) &(x)->lpOleDocumentViewVtbl)
#define OLEWIN(x) ((IOleWindow*) &(x)->lpOleInPlaceActiveObjectVtbl) #define OLEWIN(x) ((IOleWindow*) &(x)->lpOleInPlaceActiveObjectVtbl)
......
...@@ -45,23 +45,26 @@ DEFINE_OLEGUID(CGID_DocHostCmdPriv, 0x000214D4L, 0, 0); ...@@ -45,23 +45,26 @@ DEFINE_OLEGUID(CGID_DocHostCmdPriv, 0x000214D4L, 0, 0);
* IOleObject implementation * IOleObject implementation
*/ */
#define OLEOBJ_THIS(iface) DEFINE_THIS(HTMLDocument, OleObject, iface) static inline HTMLDocument *impl_from_IOleObject(IOleObject *iface)
{
return CONTAINING_RECORD(iface, HTMLDocument, IOleObject_iface);
}
static HRESULT WINAPI OleObject_QueryInterface(IOleObject *iface, REFIID riid, void **ppv) static HRESULT WINAPI OleObject_QueryInterface(IOleObject *iface, REFIID riid, void **ppv)
{ {
HTMLDocument *This = OLEOBJ_THIS(iface); HTMLDocument *This = impl_from_IOleObject(iface);
return htmldoc_query_interface(This, riid, ppv); return htmldoc_query_interface(This, riid, ppv);
} }
static ULONG WINAPI OleObject_AddRef(IOleObject *iface) static ULONG WINAPI OleObject_AddRef(IOleObject *iface)
{ {
HTMLDocument *This = OLEOBJ_THIS(iface); HTMLDocument *This = impl_from_IOleObject(iface);
return htmldoc_addref(This); return htmldoc_addref(This);
} }
static ULONG WINAPI OleObject_Release(IOleObject *iface) static ULONG WINAPI OleObject_Release(IOleObject *iface)
{ {
HTMLDocument *This = OLEOBJ_THIS(iface); HTMLDocument *This = impl_from_IOleObject(iface);
return htmldoc_release(This); return htmldoc_release(This);
} }
...@@ -93,7 +96,7 @@ static void update_hostinfo(HTMLDocumentObj *This, DOCHOSTUIINFO *hostinfo) ...@@ -93,7 +96,7 @@ static void update_hostinfo(HTMLDocumentObj *This, DOCHOSTUIINFO *hostinfo)
static HRESULT WINAPI OleObject_SetClientSite(IOleObject *iface, IOleClientSite *pClientSite) static HRESULT WINAPI OleObject_SetClientSite(IOleObject *iface, IOleClientSite *pClientSite)
{ {
HTMLDocument *This = OLEOBJ_THIS(iface); HTMLDocument *This = impl_from_IOleObject(iface);
IOleCommandTarget *cmdtrg = NULL; IOleCommandTarget *cmdtrg = NULL;
IOleWindow *ole_window; IOleWindow *ole_window;
BOOL hostui_setup; BOOL hostui_setup;
...@@ -233,7 +236,7 @@ static HRESULT WINAPI OleObject_SetClientSite(IOleObject *iface, IOleClientSite ...@@ -233,7 +236,7 @@ static HRESULT WINAPI OleObject_SetClientSite(IOleObject *iface, IOleClientSite
static HRESULT WINAPI OleObject_GetClientSite(IOleObject *iface, IOleClientSite **ppClientSite) static HRESULT WINAPI OleObject_GetClientSite(IOleObject *iface, IOleClientSite **ppClientSite)
{ {
HTMLDocument *This = OLEOBJ_THIS(iface); HTMLDocument *This = impl_from_IOleObject(iface);
TRACE("(%p)->(%p)\n", This, ppClientSite); TRACE("(%p)->(%p)\n", This, ppClientSite);
...@@ -249,14 +252,14 @@ static HRESULT WINAPI OleObject_GetClientSite(IOleObject *iface, IOleClientSite ...@@ -249,14 +252,14 @@ static HRESULT WINAPI OleObject_GetClientSite(IOleObject *iface, IOleClientSite
static HRESULT WINAPI OleObject_SetHostNames(IOleObject *iface, LPCOLESTR szContainerApp, LPCOLESTR szContainerObj) static HRESULT WINAPI OleObject_SetHostNames(IOleObject *iface, LPCOLESTR szContainerApp, LPCOLESTR szContainerObj)
{ {
HTMLDocument *This = OLEOBJ_THIS(iface); HTMLDocument *This = impl_from_IOleObject(iface);
FIXME("(%p)->(%s %s)\n", This, debugstr_w(szContainerApp), debugstr_w(szContainerObj)); FIXME("(%p)->(%s %s)\n", This, debugstr_w(szContainerApp), debugstr_w(szContainerObj));
return E_NOTIMPL; return E_NOTIMPL;
} }
static HRESULT WINAPI OleObject_Close(IOleObject *iface, DWORD dwSaveOption) static HRESULT WINAPI OleObject_Close(IOleObject *iface, DWORD dwSaveOption)
{ {
HTMLDocument *This = OLEOBJ_THIS(iface); HTMLDocument *This = impl_from_IOleObject(iface);
TRACE("(%p)->(%08x)\n", This, dwSaveOption); TRACE("(%p)->(%08x)\n", This, dwSaveOption);
...@@ -276,14 +279,14 @@ static HRESULT WINAPI OleObject_Close(IOleObject *iface, DWORD dwSaveOption) ...@@ -276,14 +279,14 @@ static HRESULT WINAPI OleObject_Close(IOleObject *iface, DWORD dwSaveOption)
static HRESULT WINAPI OleObject_SetMoniker(IOleObject *iface, DWORD dwWhichMoniker, IMoniker *pmk) static HRESULT WINAPI OleObject_SetMoniker(IOleObject *iface, DWORD dwWhichMoniker, IMoniker *pmk)
{ {
HTMLDocument *This = OLEOBJ_THIS(iface); HTMLDocument *This = impl_from_IOleObject(iface);
FIXME("(%p %d %p)->()\n", This, dwWhichMoniker, pmk); FIXME("(%p %d %p)->()\n", This, dwWhichMoniker, pmk);
return E_NOTIMPL; return E_NOTIMPL;
} }
static HRESULT WINAPI OleObject_GetMoniker(IOleObject *iface, DWORD dwAssign, DWORD dwWhichMoniker, IMoniker **ppmk) static HRESULT WINAPI OleObject_GetMoniker(IOleObject *iface, DWORD dwAssign, DWORD dwWhichMoniker, IMoniker **ppmk)
{ {
HTMLDocument *This = OLEOBJ_THIS(iface); HTMLDocument *This = impl_from_IOleObject(iface);
FIXME("(%p)->(%d %d %p)\n", This, dwAssign, dwWhichMoniker, ppmk); FIXME("(%p)->(%d %d %p)\n", This, dwAssign, dwWhichMoniker, ppmk);
return E_NOTIMPL; return E_NOTIMPL;
} }
...@@ -291,14 +294,14 @@ static HRESULT WINAPI OleObject_GetMoniker(IOleObject *iface, DWORD dwAssign, DW ...@@ -291,14 +294,14 @@ static HRESULT WINAPI OleObject_GetMoniker(IOleObject *iface, DWORD dwAssign, DW
static HRESULT WINAPI OleObject_InitFromData(IOleObject *iface, IDataObject *pDataObject, BOOL fCreation, static HRESULT WINAPI OleObject_InitFromData(IOleObject *iface, IDataObject *pDataObject, BOOL fCreation,
DWORD dwReserved) DWORD dwReserved)
{ {
HTMLDocument *This = OLEOBJ_THIS(iface); HTMLDocument *This = impl_from_IOleObject(iface);
FIXME("(%p)->(%p %x %d)\n", This, pDataObject, fCreation, dwReserved); FIXME("(%p)->(%p %x %d)\n", This, pDataObject, fCreation, dwReserved);
return E_NOTIMPL; return E_NOTIMPL;
} }
static HRESULT WINAPI OleObject_GetClipboardData(IOleObject *iface, DWORD dwReserved, IDataObject **ppDataObject) static HRESULT WINAPI OleObject_GetClipboardData(IOleObject *iface, DWORD dwReserved, IDataObject **ppDataObject)
{ {
HTMLDocument *This = OLEOBJ_THIS(iface); HTMLDocument *This = impl_from_IOleObject(iface);
FIXME("(%p)->(%d %p)\n", This, dwReserved, ppDataObject); FIXME("(%p)->(%d %p)\n", This, dwReserved, ppDataObject);
return E_NOTIMPL; return E_NOTIMPL;
} }
...@@ -306,7 +309,7 @@ static HRESULT WINAPI OleObject_GetClipboardData(IOleObject *iface, DWORD dwRese ...@@ -306,7 +309,7 @@ static HRESULT WINAPI OleObject_GetClipboardData(IOleObject *iface, DWORD dwRese
static HRESULT WINAPI OleObject_DoVerb(IOleObject *iface, LONG iVerb, LPMSG lpmsg, IOleClientSite *pActiveSite, static HRESULT WINAPI OleObject_DoVerb(IOleObject *iface, LONG iVerb, LPMSG lpmsg, IOleClientSite *pActiveSite,
LONG lindex, HWND hwndParent, LPCRECT lprcPosRect) LONG lindex, HWND hwndParent, LPCRECT lprcPosRect)
{ {
HTMLDocument *This = OLEOBJ_THIS(iface); HTMLDocument *This = impl_from_IOleObject(iface);
IOleDocumentSite *pDocSite; IOleDocumentSite *pDocSite;
HRESULT hres; HRESULT hres;
...@@ -344,28 +347,28 @@ static HRESULT WINAPI OleObject_DoVerb(IOleObject *iface, LONG iVerb, LPMSG lpms ...@@ -344,28 +347,28 @@ static HRESULT WINAPI OleObject_DoVerb(IOleObject *iface, LONG iVerb, LPMSG lpms
static HRESULT WINAPI OleObject_EnumVerbs(IOleObject *iface, IEnumOLEVERB **ppEnumOleVerb) static HRESULT WINAPI OleObject_EnumVerbs(IOleObject *iface, IEnumOLEVERB **ppEnumOleVerb)
{ {
HTMLDocument *This = OLEOBJ_THIS(iface); HTMLDocument *This = impl_from_IOleObject(iface);
FIXME("(%p)->(%p)\n", This, ppEnumOleVerb); FIXME("(%p)->(%p)\n", This, ppEnumOleVerb);
return E_NOTIMPL; return E_NOTIMPL;
} }
static HRESULT WINAPI OleObject_Update(IOleObject *iface) static HRESULT WINAPI OleObject_Update(IOleObject *iface)
{ {
HTMLDocument *This = OLEOBJ_THIS(iface); HTMLDocument *This = impl_from_IOleObject(iface);
FIXME("(%p)\n", This); FIXME("(%p)\n", This);
return E_NOTIMPL; return E_NOTIMPL;
} }
static HRESULT WINAPI OleObject_IsUpToDate(IOleObject *iface) static HRESULT WINAPI OleObject_IsUpToDate(IOleObject *iface)
{ {
HTMLDocument *This = OLEOBJ_THIS(iface); HTMLDocument *This = impl_from_IOleObject(iface);
FIXME("(%p)\n", This); FIXME("(%p)\n", This);
return E_NOTIMPL; return E_NOTIMPL;
} }
static HRESULT WINAPI OleObject_GetUserClassID(IOleObject *iface, CLSID *pClsid) static HRESULT WINAPI OleObject_GetUserClassID(IOleObject *iface, CLSID *pClsid)
{ {
HTMLDocument *This = OLEOBJ_THIS(iface); HTMLDocument *This = impl_from_IOleObject(iface);
TRACE("(%p)->(%p)\n", This, pClsid); TRACE("(%p)->(%p)\n", This, pClsid);
...@@ -378,28 +381,28 @@ static HRESULT WINAPI OleObject_GetUserClassID(IOleObject *iface, CLSID *pClsid) ...@@ -378,28 +381,28 @@ static HRESULT WINAPI OleObject_GetUserClassID(IOleObject *iface, CLSID *pClsid)
static HRESULT WINAPI OleObject_GetUserType(IOleObject *iface, DWORD dwFormOfType, LPOLESTR *pszUserType) static HRESULT WINAPI OleObject_GetUserType(IOleObject *iface, DWORD dwFormOfType, LPOLESTR *pszUserType)
{ {
HTMLDocument *This = OLEOBJ_THIS(iface); HTMLDocument *This = impl_from_IOleObject(iface);
FIXME("(%p)->(%d %p)\n", This, dwFormOfType, pszUserType); FIXME("(%p)->(%d %p)\n", This, dwFormOfType, pszUserType);
return E_NOTIMPL; return E_NOTIMPL;
} }
static HRESULT WINAPI OleObject_SetExtent(IOleObject *iface, DWORD dwDrawAspect, SIZEL *psizel) static HRESULT WINAPI OleObject_SetExtent(IOleObject *iface, DWORD dwDrawAspect, SIZEL *psizel)
{ {
HTMLDocument *This = OLEOBJ_THIS(iface); HTMLDocument *This = impl_from_IOleObject(iface);
FIXME("(%p)->(%d %p)\n", This, dwDrawAspect, psizel); FIXME("(%p)->(%d %p)\n", This, dwDrawAspect, psizel);
return E_NOTIMPL; return E_NOTIMPL;
} }
static HRESULT WINAPI OleObject_GetExtent(IOleObject *iface, DWORD dwDrawAspect, SIZEL *psizel) static HRESULT WINAPI OleObject_GetExtent(IOleObject *iface, DWORD dwDrawAspect, SIZEL *psizel)
{ {
HTMLDocument *This = OLEOBJ_THIS(iface); HTMLDocument *This = impl_from_IOleObject(iface);
FIXME("(%p)->(%d %p)\n", This, dwDrawAspect, psizel); FIXME("(%p)->(%d %p)\n", This, dwDrawAspect, psizel);
return E_NOTIMPL; return E_NOTIMPL;
} }
static HRESULT WINAPI OleObject_Advise(IOleObject *iface, IAdviseSink *pAdvSink, DWORD *pdwConnection) static HRESULT WINAPI OleObject_Advise(IOleObject *iface, IAdviseSink *pAdvSink, DWORD *pdwConnection)
{ {
HTMLDocument *This = OLEOBJ_THIS(iface); HTMLDocument *This = impl_from_IOleObject(iface);
TRACE("(%p)->(%p %p)\n", This, pAdvSink, pdwConnection); TRACE("(%p)->(%p %p)\n", This, pAdvSink, pdwConnection);
if(!pdwConnection) if(!pdwConnection)
...@@ -421,7 +424,7 @@ static HRESULT WINAPI OleObject_Advise(IOleObject *iface, IAdviseSink *pAdvSink, ...@@ -421,7 +424,7 @@ static HRESULT WINAPI OleObject_Advise(IOleObject *iface, IAdviseSink *pAdvSink,
static HRESULT WINAPI OleObject_Unadvise(IOleObject *iface, DWORD dwConnection) static HRESULT WINAPI OleObject_Unadvise(IOleObject *iface, DWORD dwConnection)
{ {
HTMLDocument *This = OLEOBJ_THIS(iface); HTMLDocument *This = impl_from_IOleObject(iface);
TRACE("(%p)->(%d)\n", This, dwConnection); TRACE("(%p)->(%d)\n", This, dwConnection);
if(!This->advise_holder) if(!This->advise_holder)
...@@ -432,7 +435,7 @@ static HRESULT WINAPI OleObject_Unadvise(IOleObject *iface, DWORD dwConnection) ...@@ -432,7 +435,7 @@ static HRESULT WINAPI OleObject_Unadvise(IOleObject *iface, DWORD dwConnection)
static HRESULT WINAPI OleObject_EnumAdvise(IOleObject *iface, IEnumSTATDATA **ppenumAdvise) static HRESULT WINAPI OleObject_EnumAdvise(IOleObject *iface, IEnumSTATDATA **ppenumAdvise)
{ {
HTMLDocument *This = OLEOBJ_THIS(iface); HTMLDocument *This = impl_from_IOleObject(iface);
if(!This->advise_holder) { if(!This->advise_holder) {
*ppenumAdvise = NULL; *ppenumAdvise = NULL;
...@@ -444,20 +447,18 @@ static HRESULT WINAPI OleObject_EnumAdvise(IOleObject *iface, IEnumSTATDATA **pp ...@@ -444,20 +447,18 @@ static HRESULT WINAPI OleObject_EnumAdvise(IOleObject *iface, IEnumSTATDATA **pp
static HRESULT WINAPI OleObject_GetMiscStatus(IOleObject *iface, DWORD dwAspect, DWORD *pdwStatus) static HRESULT WINAPI OleObject_GetMiscStatus(IOleObject *iface, DWORD dwAspect, DWORD *pdwStatus)
{ {
HTMLDocument *This = OLEOBJ_THIS(iface); HTMLDocument *This = impl_from_IOleObject(iface);
FIXME("(%p)->(%d %p)\n", This, dwAspect, pdwStatus); FIXME("(%p)->(%d %p)\n", This, dwAspect, pdwStatus);
return E_NOTIMPL; return E_NOTIMPL;
} }
static HRESULT WINAPI OleObject_SetColorScheme(IOleObject *iface, LOGPALETTE *pLogpal) static HRESULT WINAPI OleObject_SetColorScheme(IOleObject *iface, LOGPALETTE *pLogpal)
{ {
HTMLDocument *This = OLEOBJ_THIS(iface); HTMLDocument *This = impl_from_IOleObject(iface);
FIXME("(%p)->(%p)\n", This, pLogpal); FIXME("(%p)->(%p)\n", This, pLogpal);
return E_NOTIMPL; return E_NOTIMPL;
} }
#undef OLEPBJ_THIS
static const IOleObjectVtbl OleObjectVtbl = { static const IOleObjectVtbl OleObjectVtbl = {
OleObject_QueryInterface, OleObject_QueryInterface,
OleObject_AddRef, OleObject_AddRef,
...@@ -869,7 +870,7 @@ void HTMLDocument_LockContainer(HTMLDocumentObj *This, BOOL fLock) ...@@ -869,7 +870,7 @@ void HTMLDocument_LockContainer(HTMLDocumentObj *This, BOOL fLock)
void HTMLDocument_OleObj_Init(HTMLDocument *This) void HTMLDocument_OleObj_Init(HTMLDocument *This)
{ {
This->lpOleObjectVtbl = &OleObjectVtbl; This->IOleObject_iface.lpVtbl = &OleObjectVtbl;
This->lpOleDocumentVtbl = &OleDocumentVtbl; This->lpOleDocumentVtbl = &OleDocumentVtbl;
This->lpOleControlVtbl = &OleControlVtbl; This->lpOleControlVtbl = &OleControlVtbl;
This->lpObjectWithSiteVtbl = &ObjectWithSiteVtbl; This->lpObjectWithSiteVtbl = &ObjectWithSiteVtbl;
......
...@@ -406,7 +406,7 @@ static HRESULT WINAPI PersistMoniker_Load(IPersistMoniker *iface, BOOL fFullyAva ...@@ -406,7 +406,7 @@ static HRESULT WINAPI PersistMoniker_Load(IPersistMoniker *iface, BOOL fFullyAva
hres = IUnknown_QueryInterface(unk, &IID_IOleClientSite, (void**)&client); hres = IUnknown_QueryInterface(unk, &IID_IOleClientSite, (void**)&client);
if(SUCCEEDED(hres)) { if(SUCCEEDED(hres)) {
TRACE("Got client site %p\n", client); TRACE("Got client site %p\n", client);
IOleObject_SetClientSite(OLEOBJ(This), client); IOleObject_SetClientSite(&This->IOleObject_iface, client);
IOleClientSite_Release(client); IOleClientSite_Release(client);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment