Huw Davies : msdaps: Add support for remoting IRowset_AddRefRows.
Alexandre Julliard
julliard at winehq.org
Thu Feb 4 11:11:04 CST 2010
Module: wine
Branch: master
Commit: a7001bda127d572454d985bb7455d94fe255b072
URL: http://source.winehq.org/git/wine.git/?a=commit;h=a7001bda127d572454d985bb7455d94fe255b072
Author: Huw Davies <huw at codeweavers.com>
Date: Thu Feb 4 11:48:02 2010 +0000
msdaps: Add support for remoting IRowset_AddRefRows.
---
dlls/msdaps/row_server.c | 30 ++++++++++++++++++++++++++----
1 files changed, 26 insertions(+), 4 deletions(-)
diff --git a/dlls/msdaps/row_server.c b/dlls/msdaps/row_server.c
index e1ef05d..a1abbf3 100644
--- a/dlls/msdaps/row_server.c
+++ b/dlls/msdaps/row_server.c
@@ -238,8 +238,19 @@ static HRESULT WINAPI server_AddRefRows(IWineRowServer* iface, DBCOUNTITEM cRows
DBROWSTATUS rgRowStatus[])
{
server *This = impl_from_IWineRowServer(iface);
- FIXME("(%p)->(%d, %p, %p, %p): stub\n", This, cRows, rghRows, rgRefCounts, rgRowStatus);
- return E_NOTIMPL;
+ IRowset *rowset;
+ HRESULT hr;
+
+ TRACE("(%p)->(%d, %p, %p, %p)\n", This, cRows, rghRows, rgRefCounts, rgRowStatus);
+
+ hr = IUnknown_QueryInterface(This->inner_unk, &IID_IRowset, (void**)&rowset);
+ if(FAILED(hr)) return hr;
+
+ hr = IRowset_AddRefRows(rowset, cRows, rghRows, rgRefCounts, rgRowStatus);
+
+ IRowset_Release(rowset);
+ TRACE("returning %08x\n", hr);
+ return hr;
}
static HRESULT WINAPI server_GetData(IWineRowServer* iface, HROW hRow,
@@ -586,10 +597,21 @@ static HRESULT WINAPI rowset_AddRefRows(IRowset *iface, DBCOUNTITEM cRows, const
DBREFCOUNT rgRefCounts[], DBROWSTATUS rgRowStatus[])
{
rowset_proxy *This = impl_from_IRowset(iface);
+ HRESULT hr;
+ DBREFCOUNT *refs = rgRefCounts;
+ DBSTATUS *stats = rgRowStatus;
- FIXME("(%p)->(%d, %p, %p, %p): stub\n", This, cRows, rghRows, rgRefCounts, rgRowStatus);
+ TRACE("(%p)->(%d, %p, %p, %p)\n", This, cRows, rghRows, rgRefCounts, rgRowStatus);
- return E_NOTIMPL;
+ if(!refs) refs = CoTaskMemAlloc(cRows * sizeof(refs[0]));
+ if(!stats) stats = CoTaskMemAlloc(cRows * sizeof(stats[0]));
+
+ hr = IWineRowServer_AddRefRows(This->server, cRows, rghRows, refs, stats);
+
+ if(refs != rgRefCounts) CoTaskMemFree(refs);
+ if(stats != rgRowStatus) CoTaskMemFree(stats);
+
+ return hr;
}
static HRESULT WINAPI rowset_GetData(IRowset *iface, HROW hRow, HACCESSOR hAccessor, void *pData)
More information about the wine-cvs
mailing list