Andrew Eikum : packager: Implement IOleObject::Close.
Alexandre Julliard
julliard at winehq.org
Thu Jun 19 14:26:40 CDT 2014
Module: wine
Branch: master
Commit: fae22c7c412c11c22b965b9d47d2a8ca9090bb65
URL: http://source.winehq.org/git/wine.git/?a=commit;h=fae22c7c412c11c22b965b9d47d2a8ca9090bb65
Author: Andrew Eikum <aeikum at codeweavers.com>
Date: Wed Jun 18 14:58:50 2014 -0500
packager: Implement IOleObject::Close.
---
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)
More information about the wine-cvs
mailing list