[PATCH 2/4] packager: Implement IOleObject::GetMiscStatus

Andrew Eikum aeikum at codeweavers.com
Wed Jun 18 14:57:45 CDT 2014


---
 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);
 
-- 
2.0.0





More information about the wine-patches mailing list