Signed-off-by: Hans Leidekker hans@codeweavers.com --- dlls/msado15/recordset.c | 8 ++++++-- dlls/msado15/tests/msado15.c | 10 ++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/dlls/msado15/recordset.c b/dlls/msado15/recordset.c index e7c7cdc409..bb089cfded 100644 --- a/dlls/msado15/recordset.c +++ b/dlls/msado15/recordset.c @@ -873,8 +873,12 @@ static HRESULT WINAPI recordset_put_MaxRecords( _Recordset *iface, LONG max_reco
static HRESULT WINAPI recordset_get_RecordCount( _Recordset *iface, LONG *count ) { - FIXME( "%p, %p\n", iface, count ); - return E_NOTIMPL; + struct recordset *recordset = impl_from_Recordset( iface ); + + TRACE( "%p, %p\n", recordset, count ); + + *count = recordset->count; + return S_OK; }
static HRESULT WINAPI recordset_putref_Source( _Recordset *iface, IDispatch *source ) diff --git a/dlls/msado15/tests/msado15.c b/dlls/msado15/tests/msado15.c index f003c2bb0f..992fb4e8ce 100644 --- a/dlls/msado15/tests/msado15.c +++ b/dlls/msado15/tests/msado15.c @@ -143,11 +143,21 @@ static void test_Recordset(void) ok( hr == S_OK, "got %08x\n", hr ); ok( state == adStateOpen, "got %d\n", state );
+ count = -1; + hr = _Recordset_get_RecordCount( recordset, &count ); + ok( hr == S_OK, "got %08x\n", hr ); + ok( !count, "got %d\n", count ); + hr = _Recordset_AddNew( recordset, missing, missing ); ok( hr == S_OK, "got %08x\n", hr ); ok( !is_eof( recordset ), "eof\n" ); ok( !is_bof( recordset ), "bof\n" );
+ count = -1; + hr = _Recordset_get_RecordCount( recordset, &count ); + ok( hr == S_OK, "got %08x\n", hr ); + ok( count == 1, "got %d\n", count ); + hr = _Recordset_Close( recordset ); ok( hr == S_OK, "got %08x\n", hr );