Nikolay Sivov : ole32: Respond to CLSID in pointer moniker interface query.

Alexandre Julliard julliard at winehq.org
Sun Feb 2 12:56:46 CST 2020


Module: wine
Branch: master
Commit: a7ca351859d401e710ff5177bd803aee4b68e484
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=a7ca351859d401e710ff5177bd803aee4b68e484

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Fri Jan 31 13:37:35 2020 +0300

ole32: Respond to CLSID in pointer moniker interface query.

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

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




More information about the wine-cvs mailing list