Signed-off-by: Alistair Leslie-Hughes leslie_alistair@hotmail.com --- dlls/msdasql/session.c | 10 ++++++++++ dlls/msdasql/tests/provider.c | 13 +++++++++++++ 2 files changed, 23 insertions(+)
diff --git a/dlls/msdasql/session.c b/dlls/msdasql/session.c index 0298c7e7424..98a1fc50220 100644 --- a/dlls/msdasql/session.c +++ b/dlls/msdasql/session.c @@ -102,6 +102,16 @@ static HRESULT WINAPI session_QueryInterface(IUnknown *iface, REFIID riid, void TRACE("(%p)->(IDBCreateCommand_iface %p)\n", iface, ppv); *ppv = &session->IDBCreateCommand_iface; } + else if(IsEqualGUID(&IID_IBindResource, riid)) + { + TRACE("(%p)->(IID_IBindResource not support)\n", iface); + return E_NOINTERFACE; + } + else if(IsEqualGUID(&IID_ICreateRow, riid)) + { + TRACE("(%p)->(IID_ICreateRow not support)\n", iface); + return E_NOINTERFACE; + }
if(*ppv) { diff --git a/dlls/msdasql/tests/provider.c b/dlls/msdasql/tests/provider.c index 6ffe17e7028..d093c3c2087 100644 --- a/dlls/msdasql/tests/provider.c +++ b/dlls/msdasql/tests/provider.c @@ -367,6 +367,8 @@ static void test_sessions(void) IDBCreateCommand *create_command = NULL; IGetDataSource *datasource = NULL; ISessionProperties *session_props = NULL; + IUnknown *unimplemented = NULL; + ITransactionJoin *join = NULL; IUnknown *cmd = NULL; HRESULT hr; BSTR connect_str; @@ -415,6 +417,17 @@ static void test_sessions(void) ok(hr == S_OK, "got 0x%08x\n", hr); IGetDataSource_Release(datasource);
+ hr = IUnknown_QueryInterface(session, &IID_ITransactionJoin, (void**)&join); + todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); + if(hr == S_OK) + ITransactionJoin_Release(join); + + hr = IUnknown_QueryInterface(session, &IID_IBindResource, (void**)&unimplemented); + ok(hr == E_NOINTERFACE, "got 0x%08x\n", hr); + + hr = IUnknown_QueryInterface(session, &IID_ICreateRow, (void**)&unimplemented); + ok(hr == E_NOINTERFACE, "got 0x%08x\n", hr); + hr = IUnknown_QueryInterface(session, &IID_ISessionProperties, (void**)&session_props); ok(hr == S_OK, "got 0x%08x\n", hr); ISessionProperties_Release(session_props);