Jacek Caban : mshtml: Store IOleAdviseHolder in HTMLDocumentObj instead of HTMLDocument.

Alexandre Julliard julliard at winehq.org
Wed Nov 22 16:12:02 CST 2017


Module: wine
Branch: master
Commit: 4a13190da433dc94af43898c7dcbed3268900c2c
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=4a13190da433dc94af43898c7dcbed3268900c2c

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Wed Nov 22 16:15:38 2017 +0100

mshtml: Store IOleAdviseHolder in HTMLDocumentObj instead of HTMLDocument.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/mshtml/htmldoc.c        |  4 ++--
 dlls/mshtml/mshtml_private.h |  2 +-
 dlls/mshtml/oleobj.c         | 20 ++++++++++----------
 3 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/dlls/mshtml/htmldoc.c b/dlls/mshtml/htmldoc.c
index 1a11ffd..5899b84 100644
--- a/dlls/mshtml/htmldoc.c
+++ b/dlls/mshtml/htmldoc.c
@@ -5274,8 +5274,8 @@ static ULONG WINAPI HTMLDocumentObj_Release(IUnknown *iface)
             This->basedoc.window->doc_obj = NULL;
             IHTMLWindow2_Release(&This->basedoc.window->base.IHTMLWindow2_iface);
         }
-        if(This->basedoc.advise_holder)
-            IOleAdviseHolder_Release(This->basedoc.advise_holder);
+        if(This->advise_holder)
+            IOleAdviseHolder_Release(This->advise_holder);
 
         if(This->view_sink)
             IAdviseSink_Release(This->view_sink);
diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h
index 39c9efe..1cf43f5 100644
--- a/dlls/mshtml/mshtml_private.h
+++ b/dlls/mshtml/mshtml_private.h
@@ -605,7 +605,6 @@ struct HTMLDocument {
     LONG task_magic;
 
     ConnectionPointContainer cp_container;
-    IOleAdviseHolder *advise_holder;
 };
 
 static inline HRESULT htmldoc_query_interface(HTMLDocument *This, REFIID riid, void **ppv)
@@ -648,6 +647,7 @@ struct HTMLDocumentObj {
     IUnknown *webbrowser;
     ITravelLog *travel_log;
     IUnknown *browser_service;
+    IOleAdviseHolder *advise_holder;
 
     DOCHOSTUIINFO hostinfo;
 
diff --git a/dlls/mshtml/oleobj.c b/dlls/mshtml/oleobj.c
index c782729..bb54ead 100644
--- a/dlls/mshtml/oleobj.c
+++ b/dlls/mshtml/oleobj.c
@@ -490,8 +490,8 @@ static HRESULT WINAPI OleObject_Close(IOleObject *iface, DWORD dwSaveOption)
 
     HTMLDocument_LockContainer(This->doc_obj, FALSE);
 
-    if(This->advise_holder)
-        IOleAdviseHolder_SendOnClose(This->advise_holder);
+    if(This->doc_obj->advise_holder)
+        IOleAdviseHolder_SendOnClose(This->doc_obj->advise_holder);
     
     return S_OK;
 }
@@ -632,13 +632,13 @@ static HRESULT WINAPI OleObject_Advise(IOleObject *iface, IAdviseSink *pAdvSink,
         return E_INVALIDARG;
     }
 
-    if(!This->advise_holder) {
-        CreateOleAdviseHolder(&This->advise_holder);
-        if(!This->advise_holder)
+    if(!This->doc_obj->advise_holder) {
+        CreateOleAdviseHolder(&This->doc_obj->advise_holder);
+        if(!This->doc_obj->advise_holder)
             return E_OUTOFMEMORY;
     }
 
-    return IOleAdviseHolder_Advise(This->advise_holder, pAdvSink, pdwConnection);
+    return IOleAdviseHolder_Advise(This->doc_obj->advise_holder, pAdvSink, pdwConnection);
 }
 
 static HRESULT WINAPI OleObject_Unadvise(IOleObject *iface, DWORD dwConnection)
@@ -646,22 +646,22 @@ static HRESULT WINAPI OleObject_Unadvise(IOleObject *iface, DWORD dwConnection)
     HTMLDocument *This = impl_from_IOleObject(iface);
     TRACE("(%p)->(%d)\n", This, dwConnection);
 
-    if(!This->advise_holder)
+    if(!This->doc_obj->advise_holder)
         return OLE_E_NOCONNECTION;
 
-    return IOleAdviseHolder_Unadvise(This->advise_holder, dwConnection);
+    return IOleAdviseHolder_Unadvise(This->doc_obj->advise_holder, dwConnection);
 }
 
 static HRESULT WINAPI OleObject_EnumAdvise(IOleObject *iface, IEnumSTATDATA **ppenumAdvise)
 {
     HTMLDocument *This = impl_from_IOleObject(iface);
 
-    if(!This->advise_holder) {
+    if(!This->doc_obj->advise_holder) {
         *ppenumAdvise = NULL;
         return S_OK;
     }
 
-    return IOleAdviseHolder_EnumAdvise(This->advise_holder, ppenumAdvise);
+    return IOleAdviseHolder_EnumAdvise(This->doc_obj->advise_holder, ppenumAdvise);
 }
 
 static HRESULT WINAPI OleObject_GetMiscStatus(IOleObject *iface, DWORD dwAspect, DWORD *pdwStatus)




More information about the wine-cvs mailing list