From: Alistair Leslie-Hughes leslie_alistair@hotmail.com
--- dlls/msado15/recordset.c | 5 ++++- dlls/msado15/tests/msado15.c | 10 ++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/dlls/msado15/recordset.c b/dlls/msado15/recordset.c index c3b44e4df97..bb1102b1be7 100644 --- a/dlls/msado15/recordset.c +++ b/dlls/msado15/recordset.c @@ -123,7 +123,10 @@ static HRESULT WINAPI field_QueryInterface( Field *iface, REFIID riid, void **ob struct field *field = impl_from_Field( iface ); TRACE( "%p, %s, %p\n", iface, debugstr_guid(riid), obj );
- if (IsEqualGUID( riid, &IID_Field ) || IsEqualGUID( riid, &IID_IDispatch ) || + if (IsEqualGUID( riid, &IID_Field ) || + IsEqualGUID( riid, &IID_Field20 ) || + 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 7588dd3db3f..70606427866 100644 --- a/dlls/msado15/tests/msado15.c +++ b/dlls/msado15/tests/msado15.c @@ -789,6 +789,8 @@ static void test_Fields(void) { _Recordset *recordset; ISupportErrorInfo *errorinfo; + Field20 *field20; + _ADO *ado; Fields20 *fields20; Fields15 *fields15; _Collection *collection; @@ -873,6 +875,14 @@ static void test_Fields(void) ok( hr == S_OK, "got %08lx\n", hr ); if (errorinfo) ISupportErrorInfo_Release( errorinfo );
+ hr = Field_QueryInterface( field, &IID_Field20, (void **)&field20 ); + ok( hr == S_OK, "got %08lx\n", hr ); + Field20_Release( field20 ); + + hr = Field_QueryInterface( field, &IID__ADO, (void **)&ado ); + ok( hr == S_OK, "got %08lx\n", hr ); + _ADO_Release( ado ); + /* verify values set with _Append */ hr = Field_get_Name( field, &name ); ok( hr == S_OK, "got %08lx\n", hr );