Jacek Caban : ieframe: Use IOleObject:: DoVerb if IHlink interface is not available.
Alexandre Julliard
julliard at winehq.org
Wed May 22 13:46:59 CDT 2013
Module: wine
Branch: master
Commit: 14ad0a1a842eab9e7c53c3c46dc1164cac8cdc52
URL: http://source.winehq.org/git/wine.git/?a=commit;h=14ad0a1a842eab9e7c53c3c46dc1164cac8cdc52
Author: Jacek Caban <jacek at codeweavers.com>
Date: Wed May 22 16:08:40 2013 +0200
ieframe: Use IOleObject::DoVerb if IHlink interface is not available.
---
dlls/ieframe/dochost.c | 30 ++++++++++++++++++++++--------
1 files changed, 22 insertions(+), 8 deletions(-)
diff --git a/dlls/ieframe/dochost.c b/dlls/ieframe/dochost.c
index c717d8b..76b8950 100644
--- a/dlls/ieframe/dochost.c
+++ b/dlls/ieframe/dochost.c
@@ -121,15 +121,29 @@ static void object_available(DocHost *This)
}
hres = IUnknown_QueryInterface(This->document, &IID_IHlinkTarget, (void**)&hlink);
- if(FAILED(hres)) {
- FIXME("Could not get IHlinkTarget interface\n");
- return;
- }
+ if(SUCCEEDED(hres)) {
+ hres = IHlinkTarget_Navigate(hlink, 0, NULL);
+ IHlinkTarget_Release(hlink);
+ if(FAILED(hres))
+ FIXME("Navigate failed\n");
+ }else {
+ IOleObject *ole_object;
+ RECT rect;
- hres = IHlinkTarget_Navigate(hlink, 0, NULL);
- IHlinkTarget_Release(hlink);
- if(FAILED(hres))
- FIXME("Navigate failed\n");
+ TRACE("No IHlink iface\n");
+
+ hres = IUnknown_QueryInterface(This->document, &IID_IOleObject, (void**)&ole_object);
+ if(FAILED(hres)) {
+ FIXME("Could not get IOleObject iface: %08x\n", hres);
+ return;
+ }
+
+ GetClientRect(This->hwnd, &rect);
+ hres = IOleObject_DoVerb(ole_object, OLEIVERB_SHOW, NULL, &This->IOleClientSite_iface, -1, This->hwnd, &rect);
+ IOleObject_Release(ole_object);
+ if(FAILED(hres))
+ FIXME("DoVerb failed: %08x\n", hres);
+ }
}
static HRESULT get_doc_ready_state(DocHost *This, READYSTATE *ret)
More information about the wine-cvs
mailing list