mshtml: Use IOleInPlaceSiteEx if available.

This commit is contained in:
Jacek Caban 2007-06-14 21:10:07 +02:00 committed by Alexandre Julliard
parent dd88237d3e
commit cf0c911305
2 changed files with 24 additions and 3 deletions

View File

@ -202,8 +202,18 @@ static HRESULT WINAPI OleInPlaceObjectWindowless_InPlaceDeactivate(IOleInPlaceOb
} }
This->in_place_active = FALSE; This->in_place_active = FALSE;
if(This->ipsite) if(This->ipsite) {
IOleInPlaceSite_OnInPlaceDeactivate(This->ipsite); IOleInPlaceSiteEx *ipsiteex;
HRESULT hres;
hres = IOleInPlaceSite_QueryInterface(This->ipsite, &IID_IOleInPlaceSiteEx, (void**)&ipsiteex);
if(SUCCEEDED(hres)) {
IOleInPlaceSiteEx_OnInPlaceDeactivateEx(ipsiteex, TRUE);
IOleInPlaceSiteEx_Release(ipsiteex);
}else {
IOleInPlaceSite_OnInPlaceDeactivate(This->ipsite);
}
}
return S_OK; return S_OK;
} }

View File

@ -227,6 +227,7 @@ static HRESULT activate_window(HTMLDocument *This)
IOleInPlaceUIWindow *pIPWnd; IOleInPlaceUIWindow *pIPWnd;
IOleInPlaceFrame *pIPFrame; IOleInPlaceFrame *pIPFrame;
IOleCommandTarget *cmdtrg; IOleCommandTarget *cmdtrg;
IOleInPlaceSiteEx *ipsiteex;
RECT posrect, cliprect; RECT posrect, cliprect;
OLEINPLACEFRAMEINFO frameinfo; OLEINPLACEFRAMEINFO frameinfo;
HWND parent_hwnd; HWND parent_hwnd;
@ -289,7 +290,17 @@ static HRESULT activate_window(HTMLDocument *This)
} }
This->in_place_active = TRUE; This->in_place_active = TRUE;
hres = IOleInPlaceSite_OnInPlaceActivate(This->ipsite); hres = IOleInPlaceSite_QueryInterface(This->ipsite, &IID_IOleInPlaceSiteEx, (void**)&ipsiteex);
if(SUCCEEDED(hres)) {
BOOL redraw = FALSE;
hres = IOleInPlaceSiteEx_OnInPlaceActivateEx(ipsiteex, &redraw, 0);
IOleInPlaceSiteEx_Release(ipsiteex);
if(redraw)
FIXME("unsupported redraw\n");
}else{
hres = IOleInPlaceSite_OnInPlaceActivate(This->ipsite);
}
if(FAILED(hres)) { if(FAILED(hres)) {
WARN("OnInPlaceActivate failed: %08x\n", hres); WARN("OnInPlaceActivate failed: %08x\n", hres);
This->in_place_active = FALSE; This->in_place_active = FALSE;