[PATCH 2/2] msado15: Implement _Recordset get_State

Alistair Leslie-Hughes leslie_alistair at hotmail.com
Thu Dec 12 19:18:15 CST 2019


Signed-off-by: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
---
 dlls/msado15/recordset.c     | 7 +++++--
 dlls/msado15/tests/msado15.c | 7 ++++++-
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/dlls/msado15/recordset.c b/dlls/msado15/recordset.c
index f0bb1591aa..8a5f7aad41 100644
--- a/dlls/msado15/recordset.c
+++ b/dlls/msado15/recordset.c
@@ -1057,8 +1057,10 @@ static HRESULT WINAPI recordset_get_Status( _Recordset *iface, LONG *status )
 
 static HRESULT WINAPI recordset_get_State( _Recordset *iface, LONG *state )
 {
-    FIXME( "%p, %p\n", iface, state );
-    return E_NOTIMPL;
+    struct recordset *recordset = impl_from_Recordset( iface );
+    TRACE( "%p, %p\n", recordset, state );
+    *state = recordset->state;
+    return S_OK;
 }
 
 static HRESULT WINAPI recordset__xClone( _Recordset *iface, _Recordset **obj )
@@ -1337,6 +1339,7 @@ HRESULT Recordset_create( void **obj )
     recordset->Recordset_iface.lpVtbl = &recordset_vtbl;
     recordset->refs = 1;
     recordset->index = -1;
+    recordset->state = adStateClosed;
 
     *obj = &recordset->Recordset_iface;
     TRACE( "returning iface %p\n", *obj );
diff --git a/dlls/msado15/tests/msado15.c b/dlls/msado15/tests/msado15.c
index 494f1be463..d3c1f30f6d 100644
--- a/dlls/msado15/tests/msado15.c
+++ b/dlls/msado15/tests/msado15.c
@@ -47,12 +47,17 @@ static void test_Recordset(void)
 {
     _Recordset *recordset;
     Fields *fields, *fields2;
-    LONG refs, count;
+    LONG refs, count, state;
     HRESULT hr;
 
     hr = CoCreateInstance( &CLSID_Recordset, NULL, CLSCTX_INPROC_SERVER, &IID__Recordset, (void **)&recordset );
     ok( hr == S_OK, "got %08x\n", hr );
 
+    state = -1;
+    hr = _Recordset_get_State( recordset, &state );
+    ok( hr == S_OK, "got %08x\n", hr );
+    ok( state == adStateClosed, "got %d\n", state );
+
     /* handing out fields object increases recordset refcount */
     refs = get_refs_recordset( recordset );
     ok( refs == 1, "got %d\n", refs );
-- 
2.17.1




More information about the wine-devel mailing list