From: Alistair Leslie-Hughes leslie_alistair@hotmail.com
--- dlls/msado15/connection.c | 5 ++++- dlls/msado15/tests/msado15.c | 10 ++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/dlls/msado15/connection.c b/dlls/msado15/connection.c index 278ef1e76f4..bc74cb98e02 100644 --- a/dlls/msado15/connection.c +++ b/dlls/msado15/connection.c @@ -122,7 +122,10 @@ static HRESULT WINAPI connection_QueryInterface( _Connection *iface, REFIID riid
*obj = NULL;
- if (IsEqualGUID( riid, &IID__Connection ) || IsEqualGUID( riid, &IID_IDispatch ) || + if (IsEqualGUID( riid, &IID__Connection ) || + IsEqualGUID( riid, &IID_Connection15) || + IsEqualGUID( riid, &IID__ADO) || + IsEqualGUID( riid, &IID_IDispatch ) || IsEqualGUID( riid, &IID_IUnknown )) { *obj = iface; diff --git a/dlls/msado15/tests/msado15.c b/dlls/msado15/tests/msado15.c index 70606427866..5d7e832d354 100644 --- a/dlls/msado15/tests/msado15.c +++ b/dlls/msado15/tests/msado15.c @@ -1201,6 +1201,8 @@ static void test_Connection(void) ISupportErrorInfo *errorinfo; IConnectionPointContainer *pointcontainer; ADOConnectionConstruction15 *construct; + Connection15 *conn15; + _ADO *ado; LONG state, timeout; BSTR str, str2, str3; ConnectModeEnum mode; @@ -1209,6 +1211,14 @@ static void test_Connection(void) hr = CoCreateInstance(&CLSID_Connection, NULL, CLSCTX_INPROC_SERVER, &IID__Connection, (void**)&connection); ok( hr == S_OK, "got %08lx\n", hr );
+ hr = _Connection_QueryInterface(connection, &IID_Connection15, (void**)&conn15); + ok(hr == S_OK, "Unexpected IRunnableObject interface\n"); + Connection15_Release(conn15); + + hr = _Connection_QueryInterface(connection, &IID__ADO, (void**)&ado); + ok(hr == S_OK, "Unexpected IRunnableObject interface\n"); + _ADO_Release(ado); + hr = _Connection_QueryInterface(connection, &IID_IRunnableObject, (void**)&runtime); ok(hr == E_NOINTERFACE, "Unexpected IRunnableObject interface\n"); ok(runtime == NULL, "expected NULL\n");