Alistair Leslie-Hughes : msdasql: Trace session interfaces.

Alexandre Julliard julliard at winehq.org
Mon Nov 8 15:45:06 CST 2021


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

Author: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Date:   Mon Nov  8 21:29:09 2021 +1100

msdasql: Trace session interfaces.

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

---

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




More information about the wine-cvs mailing list