Jacek Caban : shdocvw: Move OnObjectAvailable implementation to dochost.c.
Alexandre Julliard
julliard at winehq.org
Mon Aug 31 10:46:48 CDT 2009
Module: wine
Branch: master
Commit: 7b156524809a0dd4802153c6fbd7009dc64d8b67
URL: http://source.winehq.org/git/wine.git/?a=commit;h=7b156524809a0dd4802153c6fbd7009dc64d8b67
Author: Jacek Caban <jacek at codeweavers.com>
Date: Sun Aug 30 01:00:53 2009 +0200
shdocvw: Move OnObjectAvailable implementation to dochost.c.
---
dlls/shdocvw/dochost.c | 44 ++++++++++++++++++++++++++++++++++++++++++--
dlls/shdocvw/navigate.c | 38 +-------------------------------------
dlls/shdocvw/shdocvw.h | 2 +-
3 files changed, 44 insertions(+), 40 deletions(-)
diff --git a/dlls/shdocvw/dochost.c b/dlls/shdocvw/dochost.c
index a3d3b3c..6dedd07 100644
--- a/dlls/shdocvw/dochost.c
+++ b/dlls/shdocvw/dochost.c
@@ -20,6 +20,7 @@
#include "shdocvw.h"
#include "hlink.h"
#include "exdispid.h"
+#include "mshtml.h"
WINE_DEFAULT_DEBUG_CHANNEL(shdocvw);
@@ -73,7 +74,7 @@ static void navigate_complete(DocHost *This)
This->busy = VARIANT_FALSE;
}
-void object_available(DocHost *This)
+static void object_available(DocHost *This)
{
IHlinkTarget *hlink;
HRESULT hres;
@@ -99,8 +100,47 @@ void object_available(DocHost *This)
}
navigate_complete(This);
+}
+
+static void object_available_proc(DocHost *This, task_header_t *task)
+{
+ object_available(This);
+}
+
+HRESULT dochost_object_available(DocHost *This, IUnknown *doc)
+{
+ task_header_t *task;
+ IOleObject *oleobj;
+ HRESULT hres;
+
+ IUnknown_AddRef(doc);
+ This->document = doc;
+
+ hres = IUnknown_QueryInterface(doc, &IID_IOleObject, (void**)&oleobj);
+ if(SUCCEEDED(hres)) {
+ CLSID clsid;
- return;
+ hres = IOleObject_GetUserClassID(oleobj, &clsid);
+ if(SUCCEEDED(hres))
+ TRACE("Got clsid %s\n",
+ IsEqualGUID(&clsid, &CLSID_HTMLDocument) ? "CLSID_HTMLDocument" : debugstr_guid(&clsid));
+
+ hres = IOleObject_SetClientSite(oleobj, CLIENTSITE(This));
+ if(FAILED(hres))
+ FIXME("SetClientSite failed: %08x\n", hres);
+
+ IOleObject_Release(oleobj);
+ }else {
+ FIXME("Could not get IOleObject iface: %08x\n", hres);
+ }
+
+ /* FIXME: Call SetAdvise */
+ /* FIXME: Call Invoke(DISPID_READYSTATE) */
+
+ task = heap_alloc(sizeof(*task));
+ push_dochost_task(This, task, object_available_proc, FALSE);
+
+ return S_OK;
}
static LRESULT resize_document(DocHost *This, LONG width, LONG height)
diff --git a/dlls/shdocvw/navigate.c b/dlls/shdocvw/navigate.c
index 4b17d33..9bd2445 100644
--- a/dlls/shdocvw/navigate.c
+++ b/dlls/shdocvw/navigate.c
@@ -22,7 +22,6 @@
#include "wine/debug.h"
#include "shdocvw.h"
-#include "mshtml.h"
#include "exdispid.h"
#include "shellapi.h"
#include "winreg.h"
@@ -270,49 +269,14 @@ static HRESULT WINAPI BindStatusCallback_OnDataAvailable(IBindStatusCallback *if
return E_NOTIMPL;
}
-static void object_available_proc(DocHost *This, task_header_t *task)
-{
- object_available(This);
-}
-
static HRESULT WINAPI BindStatusCallback_OnObjectAvailable(IBindStatusCallback *iface,
REFIID riid, IUnknown *punk)
{
BindStatusCallback *This = BINDSC_THIS(iface);
- task_header_t *task;
- IOleObject *oleobj;
- HRESULT hres;
TRACE("(%p)->(%s %p)\n", This, debugstr_guid(riid), punk);
- IUnknown_AddRef(punk);
- This->doc_host->document = punk;
-
- hres = IUnknown_QueryInterface(punk, &IID_IOleObject, (void**)&oleobj);
- if(SUCCEEDED(hres)) {
- CLSID clsid;
-
- hres = IOleObject_GetUserClassID(oleobj, &clsid);
- if(SUCCEEDED(hres))
- TRACE("Got clsid %s\n",
- IsEqualGUID(&clsid, &CLSID_HTMLDocument) ? "CLSID_HTMLDocument" : debugstr_guid(&clsid));
-
- hres = IOleObject_SetClientSite(oleobj, CLIENTSITE(This->doc_host));
- if(FAILED(hres))
- FIXME("SetClientSite failed: %08x\n", hres);
-
- IOleObject_Release(oleobj);
- }else {
- FIXME("Could not get IOleObject iface: %08x\n", hres);
- }
-
- /* FIXME: Call SetAdvise */
- /* FIXME: Call Invoke(DISPID_READYSTATE) */
-
- task = heap_alloc(sizeof(*task));
- push_dochost_task(This->doc_host, task, object_available_proc, FALSE);
-
- return S_OK;
+ return dochost_object_available(This->doc_host, punk);
}
#undef BSC_THIS
diff --git a/dlls/shdocvw/shdocvw.h b/dlls/shdocvw/shdocvw.h
index e28c98f..f5cace1 100644
--- a/dlls/shdocvw/shdocvw.h
+++ b/dlls/shdocvw/shdocvw.h
@@ -213,7 +213,7 @@ HRESULT WebBrowserV2_Create(IUnknown*,REFIID,void**);
void create_doc_view_hwnd(DocHost*);
void deactivate_document(DocHost*);
-void object_available(DocHost*);
+HRESULT dochost_object_available(DocHost*,IUnknown*);
void call_sink(ConnectionPoint*,DISPID,DISPPARAMS*);
HRESULT navigate_url(DocHost*,LPCWSTR,const VARIANT*,const VARIANT*,VARIANT*,VARIANT*);
HRESULT go_home(DocHost*);
More information about the wine-cvs
mailing list