[PATCH 4/4] packager: Implement IOleObject::Close

Andrew Eikum aeikum at codeweavers.com
Wed Jun 18 14:58:50 CDT 2014


---
 dlls/packager/packager_main.c | 10 ++++++++--
 dlls/packager/tests/oleobj.c  | 16 ++++++++++++++++
 2 files changed, 24 insertions(+), 2 deletions(-)

diff --git a/dlls/packager/packager_main.c b/dlls/packager/packager_main.c
index 0575fcf..3f05f88 100644
--- a/dlls/packager/packager_main.c
+++ b/dlls/packager/packager_main.c
@@ -142,8 +142,14 @@ static HRESULT WINAPI OleObject_SetHostNames(IOleObject *iface, LPCOLESTR szCont
 static HRESULT WINAPI OleObject_Close(IOleObject *iface, DWORD dwSaveOption)
 {
     struct Package *This = impl_from_IOleObject(iface);
-    FIXME("(%p)->(0x%x)\n", This, dwSaveOption);
-    return E_NOTIMPL;
+
+    TRACE("(%p)->(0x%x)\n", This, dwSaveOption);
+
+    if(dwSaveOption == OLECLOSE_SAVEIFDIRTY ||
+            dwSaveOption == OLECLOSE_PROMPTSAVE)
+        WARN("Saving unsupported\n");
+
+    return S_OK;
 }
 
 static HRESULT WINAPI OleObject_SetMoniker(IOleObject *iface, DWORD dwWhichMoniker, IMoniker *pmk)
diff --git a/dlls/packager/tests/oleobj.c b/dlls/packager/tests/oleobj.c
index 6170e67..f81dc22 100644
--- a/dlls/packager/tests/oleobj.c
+++ b/dlls/packager/tests/oleobj.c
@@ -473,8 +473,24 @@ static void test_packager(void)
         CloseHandle(file);
     }
 
+    hr = IOleObject_Close(oleobj, OLECLOSE_NOSAVE);
+    ok(hr == S_OK, "Close failed: %08x\n", hr);
+
+    if(extended){
+        file = CreateFileW(filename, GENERIC_READ, 0, NULL, OPEN_EXISTING,
+                FILE_ATTRIBUTE_NORMAL, NULL);
+        ok(file != INVALID_HANDLE_VALUE, "Temporary file shouldn't be deleted\n");
+        CloseHandle(file);
+    }
+
     IPersistStorage_Release(persist);
     IOleObject_Release(oleobj);
+
+    if(extended){
+        file = CreateFileW(filename, GENERIC_READ, 0, NULL, OPEN_EXISTING,
+                FILE_ATTRIBUTE_NORMAL, NULL);
+        ok(file == INVALID_HANDLE_VALUE, "Temporary file should be deleted\n");
+    }
 }
 
 START_TEST(oleobj)
-- 
2.0.0




More information about the wine-patches mailing list