Jacek Caban : mshtml: Moved undomgr to HTMLDocumentObj.

Alexandre Julliard julliard at winehq.org
Thu Sep 17 13:52:26 CDT 2009


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Wed Sep 16 22:10:30 2009 +0200

mshtml: Moved undomgr to HTMLDocumentObj.

---

 dlls/mshtml/htmldoc.c        |    5 ++---
 dlls/mshtml/mshtml_private.h |    4 ++--
 dlls/mshtml/service.c        |   10 ++++------
 3 files changed, 8 insertions(+), 11 deletions(-)

diff --git a/dlls/mshtml/htmldoc.c b/dlls/mshtml/htmldoc.c
index b37ff72..ecff6f2 100644
--- a/dlls/mshtml/htmldoc.c
+++ b/dlls/mshtml/htmldoc.c
@@ -1764,9 +1764,6 @@ static void destroy_htmldoc(HTMLDocument *This)
 {
     remove_doc_tasks(This);
 
-    if(This->undomgr)
-        IOleUndoManager_Release(This->undomgr);
-
     set_document_bscallback(This, NULL);
     set_current_mon(This, NULL);
 
@@ -1899,6 +1896,8 @@ static ULONG HTMLDocumentObj_Release(HTMLDocument *base)
             IOleInPlaceObjectWindowless_InPlaceDeactivate(INPLACEWIN(&This->basedoc));
         if(This->ipsite)
             IOleDocumentView_SetInPlaceSite(DOCVIEW(&This->basedoc), NULL);
+        if(This->undomgr)
+            IOleUndoManager_Release(This->undomgr);
         destroy_htmldoc(&This->basedoc);
         if(This->basedoc.nsdoc)
             remove_mutation_observer(This->nscontainer, This->basedoc.nsdoc);
diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h
index 7db3b8b..d676108 100644
--- a/dlls/mshtml/mshtml_private.h
+++ b/dlls/mshtml/mshtml_private.h
@@ -284,8 +284,6 @@ struct HTMLDocument {
     HTMLWindow *window;
     nsIDOMHTMLDocument *nsdoc;
 
-    IOleUndoManager *undomgr;
-
     nsChannelBSC *bscallback;
     IMoniker *mon;
     LPOLESTR url;
@@ -354,6 +352,8 @@ struct HTMLDocumentObj {
     IOleInPlaceSite *ipsite;
     IOleInPlaceFrame *frame;
     IOleInPlaceUIWindow *ip_window;
+
+    IOleUndoManager *undomgr;
 };
 
 typedef struct {
diff --git a/dlls/mshtml/service.c b/dlls/mshtml/service.c
index f2d619e..d120cf4 100644
--- a/dlls/mshtml/service.c
+++ b/dlls/mshtml/service.c
@@ -240,11 +240,11 @@ static HRESULT WINAPI ServiceProvider_QueryService(IServiceProvider *iface, REFG
     if(IsEqualGUID(&IID_IOleUndoManager, riid)) {
         TRACE("(%p)->(IID_IOleUndoManager %p)\n", This, ppv);
 
-        if(!This->undomgr)
-            This->undomgr = create_undomgr();
+        if(!This->doc_obj->undomgr)
+            This->doc_obj->undomgr = create_undomgr();
 
-        IOleUndoManager_AddRef(This->undomgr);
-        *ppv = This->undomgr;
+        IOleUndoManager_AddRef(This->doc_obj->undomgr);
+        *ppv = This->doc_obj->undomgr;
         return S_OK;
     }
 
@@ -263,6 +263,4 @@ static const IServiceProviderVtbl ServiceProviderVtbl = {
 void HTMLDocument_Service_Init(HTMLDocument *This)
 {
     This->lpServiceProviderVtbl = &ServiceProviderVtbl;
-
-    This->undomgr = NULL;
 }




More information about the wine-cvs mailing list