ieframe: Use IOleObject::DoVerb if IHlink interface is not available.
This commit is contained in:
parent
15aa8daf64
commit
14ad0a1a84
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue