Alistair Leslie-Hughes : oledb32: Silence interfaces for IDataSourceLocator QI.

Alexandre Julliard julliard at winehq.org
Wed Jan 3 16:39:34 CST 2018


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

Author: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Date:   Wed Jan  3 04:21:53 2018 +0000

oledb32: Silence interfaces for IDataSourceLocator QI.

Signed-off-by: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/oledb32/dslocator.c      | 15 +++++++++++++++
 dlls/oledb32/tests/database.c | 12 ++++++++++++
 2 files changed, 27 insertions(+)

diff --git a/dlls/oledb32/dslocator.c b/dlls/oledb32/dslocator.c
index 5c4bdad..f530d2e 100644
--- a/dlls/oledb32/dslocator.c
+++ b/dlls/oledb32/dslocator.c
@@ -78,6 +78,21 @@ static HRESULT WINAPI dslocator_QueryInterface(IDataSourceLocator *iface, REFIID
       TRACE("IID_IRunnableObject returning NULL\n");
       return E_NOINTERFACE;
     }
+    else if (IsEqualIID(riid, &IID_IProvideClassInfo))
+    {
+      TRACE("IID_IProvideClassInfo returning NULL\n");
+      return E_NOINTERFACE;
+    }
+    else if (IsEqualIID(riid, &IID_IMarshal))
+    {
+      TRACE("IID_IMarshal returning NULL\n");
+      return E_NOINTERFACE;
+    }
+    else if (IsEqualIID(riid, &IID_IRpcOptions))
+    {
+      TRACE("IID_IRpcOptions returning NULL\n");
+      return E_NOINTERFACE;
+    }
 
     if(*ppvoid)
     {
diff --git a/dlls/oledb32/tests/database.c b/dlls/oledb32/tests/database.c
index b8c0e61..8ff55b9 100644
--- a/dlls/oledb32/tests/database.c
+++ b/dlls/oledb32/tests/database.c
@@ -886,6 +886,9 @@ static void test_dslocator(void)
     {
         IDataInitialize *datainit, *datainit2;
         IRunnableObject *runable;
+        IProvideClassInfo *info;
+        IMarshal *marshal;
+        IRpcOptions *opts;
         COMPATIBLE_LONG hwnd = 0;
 
         if (0) /* Crashes under Window 7 */
@@ -928,6 +931,15 @@ static void test_dslocator(void)
         hr = IDataSourceLocator_QueryInterface(dslocator, &IID_IRunnableObject, (void **)&runable);
         ok(hr == E_NOINTERFACE, "got %08x\n", hr);
 
+        hr = IDataSourceLocator_QueryInterface(dslocator, &IID_IMarshal, (void **)&marshal);
+        ok(hr == E_NOINTERFACE, "got %08x\n", hr);
+
+        hr = IDataSourceLocator_QueryInterface(dslocator, &IID_IProvideClassInfo, (void **)&info);
+        ok(hr == E_NOINTERFACE, "got %08x\n", hr);
+
+        hr = IDataSourceLocator_QueryInterface(dslocator, &IID_IRpcOptions, (void **)&opts);
+        ok(hr == E_NOINTERFACE, "got %08x\n", hr);
+
         IDataInitialize_Release(datainit2);
         IDataInitialize_Release(datainit);
 




More information about the wine-cvs mailing list