Jacek Caban : shdocvw: Get rid of WebBrowser dependency in DocHost object.

Alexandre Julliard julliard at wine.codeweavers.com
Tue Apr 18 05:13:51 CDT 2006


Module: wine
Branch: refs/heads/master
Commit: 6470c5ca0a6c76fbeb1db263f5166da4d333ba67
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=6470c5ca0a6c76fbeb1db263f5166da4d333ba67

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Tue Apr 18 00:38:06 2006 +0200

shdocvw: Get rid of WebBrowser dependency in DocHost object.

---

 dlls/shdocvw/client.c     |   16 +++++++---------
 dlls/shdocvw/dochost.c    |   17 ++++++++++-------
 dlls/shdocvw/frame.c      |    4 ++--
 dlls/shdocvw/shdocvw.h    |    8 +++-----
 dlls/shdocvw/webbrowser.c |    4 +---
 5 files changed, 23 insertions(+), 26 deletions(-)

diff --git a/dlls/shdocvw/client.c b/dlls/shdocvw/client.c
index 7e1cb89..d6cd7ed 100644
--- a/dlls/shdocvw/client.c
+++ b/dlls/shdocvw/client.c
@@ -464,17 +464,15 @@ static const IServiceProviderVtbl Servic
     ClServiceProvider_QueryService
 };
 
-void WebBrowser_ClientSite_Init(WebBrowser *This)
+void DocHost_ClientSite_Init(DocHost *This)
 {
-    This->doc_host.lpOleClientSiteVtbl = &OleClientSiteVtbl;
-    This->doc_host.lpOleInPlaceSiteVtbl = &OleInPlaceSiteVtbl;
-    This->doc_host.lpOleDocumentSiteVtbl = &OleDocumentSiteVtbl;
-    This->doc_host.lpDispatchVtbl          = &DispatchVtbl;
-    This->doc_host.lpServiceProviderVtbl = &ServiceProviderVtbl;
+    This->lpOleClientSiteVtbl   = &OleClientSiteVtbl;
+    This->lpOleInPlaceSiteVtbl  = &OleInPlaceSiteVtbl;
+    This->lpOleDocumentSiteVtbl = &OleDocumentSiteVtbl;
+    This->lpDispatchVtbl        = &DispatchVtbl;
+    This->lpServiceProviderVtbl = &ServiceProviderVtbl;
 
-    This->doc_host.view = NULL;
-
-    This->doc_host.wb = This;
+    This->view = NULL;
 }
 
 void WebBrowser_ClientSite_Destroy(WebBrowser *This)
diff --git a/dlls/shdocvw/dochost.c b/dlls/shdocvw/dochost.c
index 58d21fe..fd3ca2c 100644
--- a/dlls/shdocvw/dochost.c
+++ b/dlls/shdocvw/dochost.c
@@ -478,14 +478,17 @@ static const IDocHostUIHandler2Vtbl DocH
     DocHostUIHandler_GetOverrideKeyPath
 };
 
-void WebBrowser_DocHost_Init(WebBrowser *This)
+void DocHost_Init(DocHost *This)
 {
-    This->doc_host.lpDocHostUIHandlerVtbl = &DocHostUIHandler2Vtbl;
-    This->doc_host.lpOleCommandTargetVtbl = &OleCommandTargetVtbl;
+    This->lpDocHostUIHandlerVtbl = &DocHostUIHandler2Vtbl;
+    This->lpOleCommandTargetVtbl = &OleCommandTargetVtbl;
 
-    This->doc_host.document = NULL;
-    This->doc_host.hostui = NULL;
+    This->document = NULL;
+    This->hostui = NULL;
 
-    This->doc_host.hwnd = NULL;
-    This->doc_host.frame_hwnd = NULL;
+    This->hwnd = NULL;
+    This->frame_hwnd = NULL;
+
+    DocHost_ClientSite_Init(This);
+    DocHost_Frame_Init(This);
 }
diff --git a/dlls/shdocvw/frame.c b/dlls/shdocvw/frame.c
index e1439d9..ad48b8f 100644
--- a/dlls/shdocvw/frame.c
+++ b/dlls/shdocvw/frame.c
@@ -174,7 +174,7 @@ static const IOleInPlaceFrameVtbl OleInP
     InPlaceFrame_TranslateAccelerator
 };
 
-void WebBrowser_Frame_Init(WebBrowser *This)
+void DocHost_Frame_Init(DocHost *This)
 {
-    This->doc_host.lpOleInPlaceFrameVtbl = &OleInPlaceFrameVtbl;
+    This->lpOleInPlaceFrameVtbl = &OleInPlaceFrameVtbl;
 }
diff --git a/dlls/shdocvw/shdocvw.h b/dlls/shdocvw/shdocvw.h
index d0579e4..09724aa 100644
--- a/dlls/shdocvw/shdocvw.h
+++ b/dlls/shdocvw/shdocvw.h
@@ -73,8 +73,6 @@ typedef struct {
 
     HWND hwnd;
     HWND frame_hwnd;
-
-    struct WebBrowser *wb; /* FIXME */
 } DocHost;
 
 typedef struct WebBrowser {
@@ -155,10 +153,10 @@ void WebBrowser_ClassInfo_Init(WebBrowse
 void WebBrowser_Events_Init(WebBrowser*);
 void WebBrowser_HlinkFrame_Init(WebBrowser*);
 
-void WebBrowser_ClientSite_Init(WebBrowser*);
-void WebBrowser_DocHost_Init(WebBrowser*);
+void DocHost_Init(DocHost*);
+void DocHost_ClientSite_Init(DocHost*);
 
-void WebBrowser_Frame_Init(WebBrowser*);
+void DocHost_Frame_Init(DocHost*);
 
 void WebBrowser_OleObject_Destroy(WebBrowser*);
 void WebBrowser_Events_Destroy(WebBrowser*);
diff --git a/dlls/shdocvw/webbrowser.c b/dlls/shdocvw/webbrowser.c
index 01e0a28..f1862dd 100644
--- a/dlls/shdocvw/webbrowser.c
+++ b/dlls/shdocvw/webbrowser.c
@@ -847,15 +847,13 @@ HRESULT WebBrowser_Create(IUnknown *pOut
     ret->url = NULL;
 
     ret->doc_host.disp = (IDispatch*)WEBBROWSER2(ret);
+    DocHost_Init(&ret->doc_host);
 
     WebBrowser_OleObject_Init(ret);
     WebBrowser_ViewObject_Init(ret);
     WebBrowser_Persist_Init(ret);
     WebBrowser_ClassInfo_Init(ret);
     WebBrowser_Events_Init(ret);
-    WebBrowser_ClientSite_Init(ret);
-    WebBrowser_DocHost_Init(ret);
-    WebBrowser_Frame_Init(ret);
     WebBrowser_HlinkFrame_Init(ret);
 
     hres = IWebBrowser_QueryInterface(WEBBROWSER(ret), riid, ppv);




More information about the wine-cvs mailing list