Andrew Eikum : packager: Implement IOleObject::GetMiscStatus.

Alexandre Julliard julliard at winehq.org
Thu Jun 19 14:26:40 CDT 2014


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

Author: Andrew Eikum <aeikum at codeweavers.com>
Date:   Wed Jun 18 14:57:45 2014 -0500

packager: Implement IOleObject::GetMiscStatus.

---

 dlls/packager/packager_main.c |   11 +++++++++--
 dlls/packager/tests/oleobj.c  |   11 ++++++++++-
 2 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/dlls/packager/packager_main.c b/dlls/packager/packager_main.c
index 942ae72..02e691c 100644
--- a/dlls/packager/packager_main.c
+++ b/dlls/packager/packager_main.c
@@ -256,8 +256,15 @@ static HRESULT WINAPI OleObject_EnumAdvise(IOleObject *iface, IEnumSTATDATA **pp
 static HRESULT WINAPI OleObject_GetMiscStatus(IOleObject *iface, DWORD dwAspect, DWORD *pdwStatus)
 {
     struct Package *This = impl_from_IOleObject(iface);
-    FIXME("(%p)->(%d, %p)\n", This, dwAspect, pdwStatus);
-    return E_NOTIMPL;
+
+    TRACE("(%p)->(%d, %p)\n", This, dwAspect, pdwStatus);
+
+    if(!pdwStatus)
+        return E_INVALIDARG;
+
+    *pdwStatus = OLEMISC_ONLYICONIC;
+
+    return S_OK;
 }
 
 static HRESULT WINAPI OleObject_SetColorScheme(IOleObject *iface, LOGPALETTE *pLogpal)
diff --git a/dlls/packager/tests/oleobj.c b/dlls/packager/tests/oleobj.c
index 912dda9..6170e67 100644
--- a/dlls/packager/tests/oleobj.c
+++ b/dlls/packager/tests/oleobj.c
@@ -410,7 +410,7 @@ static void test_packager(void)
 {
     IOleObject *oleobj;
     IPersistStorage *persist;
-    DWORD len, bytes_read;
+    DWORD len, bytes_read, status;
     HRESULT hr;
     HANDLE file;
     WCHAR filename[MAX_PATH];
@@ -441,6 +441,15 @@ static void test_packager(void)
     hr = IOleObject_SetClientSite(oleobj, &clientsite);
     ok(hr == S_OK, "SetClientSite failed: %08x\n", hr);
 
+    hr = IOleObject_GetMiscStatus(oleobj, DVASPECT_CONTENT, NULL);
+    ok(hr == E_INVALIDARG, "GetMiscStatus failed: %08x\n", hr);
+
+    hr = IOleObject_GetMiscStatus(oleobj, DVASPECT_CONTENT, &status);
+    ok(hr == S_OK, "GetMiscStatus failed: %08x\n", hr);
+    ok(status == OLEMISC_ONLYICONIC ||
+            status == OLEMISC_CANTLINKINSIDE /* winxp */,
+            "Got wrong DVASPECT_CONTENT status: 0x%x\n", status);
+
     hr = IOleObject_QueryInterface(oleobj, &IID_IPersistStorage, (void**)&persist);
     ok(hr == S_OK, "QueryInterface(IPersistStorage) failed: %08x\n", hr);
 




More information about the wine-cvs mailing list