[PATCH 2/5] ole32: Respond to CLSID in pointer moniker interface query.

Nikolay Sivov nsivov at codeweavers.com
Fri Jan 31 04:37:35 CST 2020


Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
 dlls/ole32/pointermoniker.c | 3 ++-
 dlls/ole32/tests/moniker.c  | 9 ++-------
 2 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/dlls/ole32/pointermoniker.c b/dlls/ole32/pointermoniker.c
index 2ece11f53b..34692c4965 100644
--- a/dlls/ole32/pointermoniker.c
+++ b/dlls/ole32/pointermoniker.c
@@ -74,7 +74,8 @@ static HRESULT WINAPI PointerMonikerImpl_QueryInterface(IMoniker *iface, REFIID
     if (IsEqualIID(&IID_IUnknown, riid) ||
         IsEqualIID(&IID_IPersist, riid) ||
         IsEqualIID(&IID_IPersistStream, riid) ||
-        IsEqualIID(&IID_IMoniker, riid))
+        IsEqualIID(&IID_IMoniker, riid) ||
+        IsEqualGUID(&CLSID_PointerMoniker, riid))
     {
         *ppvObject = iface;
     }
diff --git a/dlls/ole32/tests/moniker.c b/dlls/ole32/tests/moniker.c
index 3dd7048ef4..0e6eaff57b 100644
--- a/dlls/ole32/tests/moniker.c
+++ b/dlls/ole32/tests/moniker.c
@@ -2886,13 +2886,8 @@ static void test_pointer_moniker(void)
     ok(hr == E_INVALIDARG, "Unexpected hr %#x.\n", hr);
 
     hr = IMoniker_QueryInterface(moniker, &CLSID_PointerMoniker, (void **)&unknown);
-todo_wine
-    ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
-    if (SUCCEEDED(hr))
-    {
-        ok(unknown == (IUnknown *)moniker, "Unexpected interface.\n");
-        IUnknown_Release(unknown);
-    }
+    ok(unknown == (IUnknown *)moniker, "Unexpected interface.\n");
+    IUnknown_Release(unknown);
 
     hr = IMoniker_QueryInterface(moniker, &IID_IMarshal, (void **)&marshal);
     ok(hr == S_OK, "Failed to get interface, hr %#x.\n", hr);
-- 
2.24.1




More information about the wine-devel mailing list