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

Alexandre Julliard julliard at winehq.org
Tue Nov 20 10:54:55 CST 2007


Module: wine
Branch: master
Commit: 3f444cae92f5269ce3972abdfc8934ba7cbce83d
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=3f444cae92f5269ce3972abdfc8934ba7cbce83d

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Tue Nov 20 01:49:36 2007 +0100

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

---

 dlls/mshtml/mshtml_private.h |    1 +
 dlls/mshtml/view.c           |   24 ++++++++++++++++--------
 2 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h
index a35347e..2bf926b 100644
--- a/dlls/mshtml/mshtml_private.h
+++ b/dlls/mshtml/mshtml_private.h
@@ -398,6 +398,7 @@ BOOL install_wine_gecko(BOOL);
 void hlink_frame_navigate(HTMLDocument*,IHlinkFrame*,LPCWSTR,nsIInputStream*,DWORD);
 
 void call_property_onchanged(ConnectionPoint*,DISPID);
+HRESULT call_set_active_object(IOleInPlaceUIWindow*,IOleInPlaceActiveObject*);
 
 void *nsalloc(size_t);
 void nsfree(void*);
diff --git a/dlls/mshtml/view.c b/dlls/mshtml/view.c
index e1f13dc..5872091 100644
--- a/dlls/mshtml/view.c
+++ b/dlls/mshtml/view.c
@@ -415,6 +415,18 @@ void hide_tooltip(HTMLDocument *This)
     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
  */
@@ -564,7 +576,6 @@ static HRESULT WINAPI OleDocumentView_UIActivate(IOleDocumentView *iface, BOOL f
     }
 
     if(fUIActivate) {
-        OLECHAR wszHTMLDocument[30];
         RECT rcBorderWidths;
 
         if(This->ui_active)
@@ -583,12 +594,9 @@ static HRESULT WINAPI OleDocumentView_UIActivate(IOleDocumentView *iface, BOOL f
 
         update_doc(This, UPDATE_UI);
 
-        LoadStringW(hInst, IDS_HTMLDOCUMENT, wszHTMLDocument,
-                    sizeof(wszHTMLDocument)/sizeof(WCHAR));
-
         hres = IOleInPlaceSite_OnUIActivate(This->ipsite);
         if(SUCCEEDED(hres)) {
-            IOleInPlaceFrame_SetActiveObject(This->frame, ACTOBJ(This), wszHTMLDocument);
+            call_set_active_object((IOleInPlaceUIWindow*)This->frame, ACTOBJ(This));
         }else {
             FIXME("OnUIActivate failed: %08x\n", hres);
             IOleInPlaceFrame_Release(This->frame);
@@ -604,7 +612,7 @@ static HRESULT WINAPI OleDocumentView_UIActivate(IOleDocumentView *iface, BOOL f
             IDocHostUIHandler_HideUI(This->hostui);
 
         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));
         IOleInPlaceFrame_SetBorderSpace(This->frame, &rcBorderWidths);
@@ -614,9 +622,9 @@ static HRESULT WINAPI OleDocumentView_UIActivate(IOleDocumentView *iface, BOOL f
         if(This->ui_active) {
             This->ui_active = FALSE;
             if(This->ip_window)
-                IOleInPlaceUIWindow_SetActiveObject(This->ip_window, NULL, NULL);
+                call_set_active_object(This->ip_window, NULL);
             if(This->frame)
-                IOleInPlaceFrame_SetActiveObject(This->frame, NULL, NULL);
+                call_set_active_object((IOleInPlaceUIWindow*)This->frame, NULL);
             if(This->hostui)
                 IDocHostUIHandler_HideUI(This->hostui);
             if(This->ipsite)




More information about the wine-cvs mailing list