mshtml: Move IOleInPlaceFrame::SetActiveObject call to separated function.

This commit is contained in:
Jacek Caban 2007-11-20 01:49:36 +01:00 committed by Alexandre Julliard
parent 22ac3704ba
commit 3f444cae92
2 changed files with 17 additions and 8 deletions

View File

@ -398,6 +398,7 @@ BOOL install_wine_gecko(BOOL);
void hlink_frame_navigate(HTMLDocument*,IHlinkFrame*,LPCWSTR,nsIInputStream*,DWORD); void hlink_frame_navigate(HTMLDocument*,IHlinkFrame*,LPCWSTR,nsIInputStream*,DWORD);
void call_property_onchanged(ConnectionPoint*,DISPID); void call_property_onchanged(ConnectionPoint*,DISPID);
HRESULT call_set_active_object(IOleInPlaceUIWindow*,IOleInPlaceActiveObject*);
void *nsalloc(size_t); void *nsalloc(size_t);
void nsfree(void*); void nsfree(void*);

View File

@ -415,6 +415,18 @@ void hide_tooltip(HTMLDocument *This)
SendMessageW(This->tooltips_hwnd, TTM_ACTIVATE, FALSE, 0); SendMessageW(This->tooltips_hwnd, TTM_ACTIVATE, FALSE, 0);
} }
HRESULT call_set_active_object(IOleInPlaceUIWindow *window, IOleInPlaceActiveObject *act_obj)
{
static WCHAR html_documentW[30];
if(act_obj && !html_documentW[0]) {
LoadStringW(hInst, IDS_HTMLDOCUMENT, html_documentW,
sizeof(html_documentW)/sizeof(WCHAR));
}
return IOleInPlaceFrame_SetActiveObject(window, act_obj, act_obj ? html_documentW : NULL);
}
/********************************************************** /**********************************************************
* IOleDocumentView implementation * IOleDocumentView implementation
*/ */
@ -564,7 +576,6 @@ static HRESULT WINAPI OleDocumentView_UIActivate(IOleDocumentView *iface, BOOL f
} }
if(fUIActivate) { if(fUIActivate) {
OLECHAR wszHTMLDocument[30];
RECT rcBorderWidths; RECT rcBorderWidths;
if(This->ui_active) if(This->ui_active)
@ -583,12 +594,9 @@ static HRESULT WINAPI OleDocumentView_UIActivate(IOleDocumentView *iface, BOOL f
update_doc(This, UPDATE_UI); update_doc(This, UPDATE_UI);
LoadStringW(hInst, IDS_HTMLDOCUMENT, wszHTMLDocument,
sizeof(wszHTMLDocument)/sizeof(WCHAR));
hres = IOleInPlaceSite_OnUIActivate(This->ipsite); hres = IOleInPlaceSite_OnUIActivate(This->ipsite);
if(SUCCEEDED(hres)) { if(SUCCEEDED(hres)) {
IOleInPlaceFrame_SetActiveObject(This->frame, ACTOBJ(This), wszHTMLDocument); call_set_active_object((IOleInPlaceUIWindow*)This->frame, ACTOBJ(This));
}else { }else {
FIXME("OnUIActivate failed: %08x\n", hres); FIXME("OnUIActivate failed: %08x\n", hres);
IOleInPlaceFrame_Release(This->frame); IOleInPlaceFrame_Release(This->frame);
@ -604,7 +612,7 @@ static HRESULT WINAPI OleDocumentView_UIActivate(IOleDocumentView *iface, BOOL f
IDocHostUIHandler_HideUI(This->hostui); IDocHostUIHandler_HideUI(This->hostui);
if(This->ip_window) if(This->ip_window)
IOleInPlaceUIWindow_SetActiveObject(This->ip_window, ACTOBJ(This), wszHTMLDocument); call_set_active_object(This->ip_window, ACTOBJ(This));
memset(&rcBorderWidths, 0, sizeof(rcBorderWidths)); memset(&rcBorderWidths, 0, sizeof(rcBorderWidths));
IOleInPlaceFrame_SetBorderSpace(This->frame, &rcBorderWidths); IOleInPlaceFrame_SetBorderSpace(This->frame, &rcBorderWidths);
@ -614,9 +622,9 @@ static HRESULT WINAPI OleDocumentView_UIActivate(IOleDocumentView *iface, BOOL f
if(This->ui_active) { if(This->ui_active) {
This->ui_active = FALSE; This->ui_active = FALSE;
if(This->ip_window) if(This->ip_window)
IOleInPlaceUIWindow_SetActiveObject(This->ip_window, NULL, NULL); call_set_active_object(This->ip_window, NULL);
if(This->frame) if(This->frame)
IOleInPlaceFrame_SetActiveObject(This->frame, NULL, NULL); call_set_active_object((IOleInPlaceUIWindow*)This->frame, NULL);
if(This->hostui) if(This->hostui)
IDocHostUIHandler_HideUI(This->hostui); IDocHostUIHandler_HideUI(This->hostui);
if(This->ipsite) if(This->ipsite)