Module: wine Branch: master Commit: fae22c7c412c11c22b965b9d47d2a8ca9090bb65 URL: http://source.winehq.org/git/wine.git/?a=commit;h=fae22c7c412c11c22b965b9d47...
Author: Andrew Eikum aeikum@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)