From 5a407112da2eee4161bdff1cf8d67017c2e15606 Mon Sep 17 00:00:00 2001 From: Huw Davies Date: Thu, 4 Feb 2010 14:10:08 +0000 Subject: [PATCH] msdaps: Add support for remoting IAccessor_ReleaseAccessor. --- dlls/msdaps/row_server.c | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/dlls/msdaps/row_server.c b/dlls/msdaps/row_server.c index 43da90ba7ee..d4123bd1ed2 100644 --- a/dlls/msdaps/row_server.c +++ b/dlls/msdaps/row_server.c @@ -412,8 +412,18 @@ static HRESULT WINAPI server_ReleaseAccessor(IWineRowServer* iface, HACCESSOR hA DBREFCOUNT *pcRefCount) { server *This = impl_from_IWineRowServer(iface); - FIXME("(%p)->(%08lx, %p): stub\n", This, hAccessor, pcRefCount); - return E_NOTIMPL; + HRESULT hr; + IAccessor *accessor; + + TRACE("(%p)->(%08lx, %p)\n", This, hAccessor, pcRefCount); + + hr = IUnknown_QueryInterface(This->inner_unk, &IID_IAccessor, (void**)&accessor); + if(FAILED(hr)) return hr; + + hr = IAccessor_ReleaseAccessor(accessor, hAccessor, pcRefCount); + IAccessor_Release(accessor); + + return hr; } static const IWineRowServerVtbl server_vtbl = @@ -1074,8 +1084,14 @@ static HRESULT WINAPI accessor_GetBindings(IAccessor *iface, HACCESSOR hAccessor static HRESULT WINAPI accessor_ReleaseAccessor(IAccessor *iface, HACCESSOR hAccessor, DBREFCOUNT *pcRefCount) { rowset_proxy *This = impl_from_IAccessor(iface); - FIXME("(%p)\n", This); - return E_NOTIMPL; + HRESULT hr; + DBREFCOUNT ref; + + TRACE("(%p)->(%08lx, %p)\n", This, hAccessor, pcRefCount); + + hr = IWineRowServer_ReleaseAccessor(This->server, hAccessor, &ref); + if(pcRefCount) *pcRefCount = ref; + return hr; } static const IAccessorVtbl accessor_vtbl =