diff --git a/dlls/shdocvw/client.c b/dlls/shdocvw/client.c index 7e1cb891c22..d6cd7ed4e37 100644 --- a/dlls/shdocvw/client.c +++ b/dlls/shdocvw/client.c @@ -464,17 +464,15 @@ static const IServiceProviderVtbl ServiceProviderVtbl = { 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 58d21fe19a2..fd3ca2ca773 100644 --- a/dlls/shdocvw/dochost.c +++ b/dlls/shdocvw/dochost.c @@ -478,14 +478,17 @@ static const IDocHostUIHandler2Vtbl DocHostUIHandler2Vtbl = { 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 e1439d90b1a..ad48b8f7c40 100644 --- a/dlls/shdocvw/frame.c +++ b/dlls/shdocvw/frame.c @@ -174,7 +174,7 @@ static const IOleInPlaceFrameVtbl OleInPlaceFrameVtbl = { 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 d0579e41cda..09724aa8548 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(WebBrowser*); 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 01e0a28bbab..f1862dd8544 100644 --- a/dlls/shdocvw/webbrowser.c +++ b/dlls/shdocvw/webbrowser.c @@ -847,15 +847,13 @@ HRESULT WebBrowser_Create(IUnknown *pOuter, REFIID riid, void **ppv) 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);