oledb32: Implement IRowPosition_GetRowset().

This commit is contained in:
Nikolay Sivov 2013-08-23 10:33:35 +04:00 committed by Alexandre Julliard
parent def652e594
commit 149c392e09
2 changed files with 12 additions and 2 deletions

View File

@ -168,8 +168,11 @@ static HRESULT WINAPI rowpos_GetRowPosition(IRowPosition *iface, HCHAPTER *chapt
static HRESULT WINAPI rowpos_GetRowset(IRowPosition *iface, REFIID riid, IUnknown **rowset)
{
rowpos *This = impl_from_IRowPosition(iface);
FIXME("(%p)->(%s %p): stub\n", This, debugstr_guid(riid), rowset);
return E_NOTIMPL;
TRACE("(%p)->(%s %p)\n", This, debugstr_guid(riid), rowset);
if (!This->rowset) return E_UNEXPECTED;
return IRowset_QueryInterface(This->rowset, riid, (void**)rowset);
}
static HRESULT WINAPI rowpos_Initialize(IRowPosition *iface, IUnknown *rowset)

View File

@ -472,6 +472,7 @@ static void init_onchange_sink(IRowPosition *rowpos)
static void test_rowpos_clearrowposition(void)
{
IRowPosition *rowpos;
IUnknown *unk;
HRESULT hr;
hr = CoCreateInstance(&CLSID_OLEDB_ROWPOSITIONLIBRARY, NULL, CLSCTX_INPROC_SERVER, &IID_IRowPosition, (void**)&rowpos);
@ -480,10 +481,16 @@ static void test_rowpos_clearrowposition(void)
hr = IRowPosition_ClearRowPosition(rowpos);
ok(hr == E_UNEXPECTED, "got %08x\n", hr);
hr = IRowPosition_GetRowset(rowpos, &IID_IStream, &unk);
ok(hr == E_UNEXPECTED, "got %08x\n", hr);
init_test_rset();
hr = IRowPosition_Initialize(rowpos, (IUnknown*)&test_rset.IRowset_iface);
ok(hr == S_OK, "got %08x\n", hr);
hr = IRowPosition_GetRowset(rowpos, &IID_IRowset, &unk);
ok(hr == S_OK, "got %08x\n", hr);
init_onchange_sink(rowpos);
hr = IRowPosition_ClearRowPosition(rowpos);
ok(hr == S_OK, "got %08x\n", hr);