From b26ed16633daa57a1d669ef86d60d0e09bc9522e Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Wed, 19 Apr 2006 20:31:11 +0200 Subject: [PATCH] shdocvw: Move more initialization code to DocHost_Init. --- dlls/shdocvw/dochost.c | 7 ++++++- dlls/shdocvw/shdocvw.h | 2 +- dlls/shdocvw/webbrowser.c | 6 +----- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/dlls/shdocvw/dochost.c b/dlls/shdocvw/dochost.c index dbebc77da8f..7335f53b327 100644 --- a/dlls/shdocvw/dochost.c +++ b/dlls/shdocvw/dochost.c @@ -478,16 +478,19 @@ static const IDocHostUIHandler2Vtbl DocHostUIHandler2Vtbl = { DocHostUIHandler_GetOverrideKeyPath }; -void DocHost_Init(DocHost *This) +void DocHost_Init(DocHost *This, IDispatch *disp) { This->lpDocHostUIHandlerVtbl = &DocHostUIHandler2Vtbl; This->lpOleCommandTargetVtbl = &OleCommandTargetVtbl; + This->disp = disp; + This->document = NULL; This->hostui = NULL; This->hwnd = NULL; This->frame_hwnd = NULL; + This->url = NULL; DocHost_ClientSite_Init(This); DocHost_Frame_Init(This); @@ -498,4 +501,6 @@ void DocHost_Release(DocHost *This) { DocHost_ClientSite_Release(This); DocHost_Events_Release(This); + + SysFreeString(This->url); } diff --git a/dlls/shdocvw/shdocvw.h b/dlls/shdocvw/shdocvw.h index 922847813c1..66730cfd4f7 100644 --- a/dlls/shdocvw/shdocvw.h +++ b/dlls/shdocvw/shdocvw.h @@ -153,7 +153,7 @@ void WebBrowser_HlinkFrame_Init(WebBrowser*); void WebBrowser_OleObject_Destroy(WebBrowser*); -void DocHost_Init(DocHost*); +void DocHost_Init(DocHost*,IDispatch*); void DocHost_ClientSite_Init(DocHost*); void DocHost_Events_Init(DocHost*); void DocHost_Frame_Init(DocHost*); diff --git a/dlls/shdocvw/webbrowser.c b/dlls/shdocvw/webbrowser.c index cb2d284e17e..0dd1e3290d5 100644 --- a/dlls/shdocvw/webbrowser.c +++ b/dlls/shdocvw/webbrowser.c @@ -132,7 +132,6 @@ static ULONG WINAPI WebBrowser_Release(IWebBrowser2 *iface) WebBrowser_OleObject_Destroy(This); - SysFreeString(This->doc_host.url); HeapFree(GetProcessHeap(), 0, This); SHDOCVW_UnlockModule(); } @@ -844,10 +843,7 @@ HRESULT WebBrowser_Create(IUnknown *pOuter, REFIID riid, void **ppv) ret->lpWebBrowser2Vtbl = &WebBrowser2Vtbl; ret->ref = 0; - ret->doc_host.url = NULL; - - ret->doc_host.disp = (IDispatch*)WEBBROWSER2(ret); - DocHost_Init(&ret->doc_host); + DocHost_Init(&ret->doc_host, (IDispatch*)WEBBROWSER2(ret)); WebBrowser_OleObject_Init(ret); WebBrowser_ViewObject_Init(ret); -- 2.11.4.GIT