Piotr Caban : ieframe: Added OleObject_Close implementation.

Alexandre Julliard julliard at winehq.org
Mon Aug 1 13:22:13 CDT 2011


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

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Mon Aug  1 12:28:34 2011 +0200

ieframe: Added OleObject_Close implementation.

---

 dlls/ieframe/oleobject.c |   23 +++++++++++++++++++++--
 1 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/dlls/ieframe/oleobject.c b/dlls/ieframe/oleobject.c
index d227bcc..3906f85 100644
--- a/dlls/ieframe/oleobject.c
+++ b/dlls/ieframe/oleobject.c
@@ -135,6 +135,7 @@ static HRESULT activate_inplace(WebBrowser *This, IOleClientSite *active_site)
     if(hres != S_OK) {
         WARN("CanInPlaceActivate returned: %08x\n", hres);
         IOleInPlaceSite_Release(This->inplace);
+        This->inplace = NULL;
         return E_FAIL;
     }
 
@@ -402,8 +403,26 @@ static HRESULT WINAPI OleObject_SetHostNames(IOleObject *iface, LPCOLESTR szCont
 static HRESULT WINAPI OleObject_Close(IOleObject *iface, DWORD dwSaveOption)
 {
     WebBrowser *This = impl_from_IOleObject(iface);
-    FIXME("(%p)->(%d)\n", This, dwSaveOption);
-    return E_NOTIMPL;
+
+    TRACE("(%p)->(%d)\n", This, dwSaveOption);
+
+    if(dwSaveOption != OLECLOSE_NOSAVE) {
+        FIXME("unimplemnted flag: %x\n", dwSaveOption);
+        return E_NOTIMPL;
+    }
+
+    if(This->doc_host.frame)
+        IOleInPlaceFrame_SetActiveObject(This->doc_host.frame, NULL, NULL);
+
+    if(This->uiwindow)
+        IOleInPlaceUIWindow_SetActiveObject(This->uiwindow, NULL, NULL);
+
+    if(This->inplace) {
+        IOleInPlaceSite_OnUIDeactivate(This->inplace, FALSE);
+        IOleInPlaceSite_OnInPlaceDeactivate(This->inplace);
+    }
+
+    return IOleObject_SetClientSite(iface, NULL);
 }
 
 static HRESULT WINAPI OleObject_SetMoniker(IOleObject *iface, DWORD dwWhichMoniker, IMoniker* pmk)




More information about the wine-cvs mailing list