From cce5ac1dea90f5fe9270176a29d55ef73a0efbb3 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Wed, 3 Jan 2018 04:21:53 +0000 Subject: [PATCH] oledb32: Silence interfaces for IDataSourceLocator QI. Signed-off-by: Alistair Leslie-Hughes Signed-off-by: Alexandre Julliard --- 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 5c4bdad0971..f530d2e09a2 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 b8c0e61c3db..8ff55b9d2ad 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);