wine/dlls/shdocvw oleobject.c

Alexandre Julliard julliard at wine.codeweavers.com
Thu Dec 1 06:02:16 CST 2005


ChangeSet ID:	21598
CVSROOT:	/opt/cvs-commit
Module name:	wine
Changes by:	julliard at winehq.org	2005/12/01 06:02:16

Modified files:
	dlls/shdocvw   : oleobject.c 

Log message:
	Jacek Caban <jacek at codeweavers.com>
	Added implementation of OLEIVERB_SHOW in DoVerb.

Patch: http://cvs.winehq.org/patch.py?id=21598

Old revision  New revision  Changes     Path
 1.22          1.23          +19 -1      wine/dlls/shdocvw/oleobject.c

Index: wine/dlls/shdocvw/oleobject.c
diff -u -p wine/dlls/shdocvw/oleobject.c:1.22 wine/dlls/shdocvw/oleobject.c:1.23
--- wine/dlls/shdocvw/oleobject.c:1.22	1 Dec 2005 12: 2:16 -0000
+++ wine/dlls/shdocvw/oleobject.c	1 Dec 2005 12: 2:16 -0000
@@ -192,11 +192,14 @@ static HRESULT WINAPI OleObject_DoVerb(I
     WebBrowser *This = OLEOBJ_THIS(iface);
     HRESULT hres;
 
+    static const WCHAR wszitem[] = {'i','t','e','m',0};
+
     TRACE("(%p)->(%ld %p %p %ld %p %p)\n", This, iVerb, lpmsg, pActiveSite, lindex, hwndParent,
             lprcPosRect);
 
     switch (iVerb)
     {
+    case OLEIVERB_SHOW:
     case OLEIVERB_INPLACEACTIVATE: {
         IOleInPlaceSite *inplace;
 
@@ -229,7 +232,8 @@ static HRESULT WINAPI OleObject_DoVerb(I
                                          &This->frameinfo);
 
 
-        IOleInPlaceSite_Release(inplace);
+        if(iVerb == OLEIVERB_INPLACEACTIVATE)
+            IOleInPlaceSite_Release(inplace);
 
         SetWindowPos(This->shell_embedding_hwnd, NULL,
                      This->pos_rect.left, This->pos_rect.top,
@@ -245,6 +249,20 @@ static HRESULT WINAPI OleObject_DoVerb(I
         if(This->frame)
             IOleInPlaceFrame_GetWindow(This->frame, &This->frame_hwnd);
 
+        if(iVerb == OLEIVERB_INPLACEACTIVATE)
+            return S_OK;
+
+        TRACE("OLEIVERB_SHOW\n");
+
+        IOleInPlaceSite_OnUIActivate(inplace);
+        IOleInPlaceSite_Release(inplace);
+
+        IOleInPlaceFrame_SetActiveObject(This->frame, ACTIVEOBJ(This), wszitem);
+
+        /* TODO:
+         * IOleInPlaceFrmae_SetMenu
+         */
+
         return S_OK;
     }
     default:



More information about the wine-cvs mailing list