diff --git a/dlls/msdaps/usrmarshal.c b/dlls/msdaps/usrmarshal.c index 94a5ec50cc..b900a7f6a9 100644 --- a/dlls/msdaps/usrmarshal.c +++ b/dlls/msdaps/usrmarshal.c @@ -492,3 +492,70 @@ HRESULT __RPC_STUB ICreateRow_CreateRow_Stub(ICreateRow* This, IUnknown *pUnkOut if(ppSession) *ppSession = impl_session.pSession; return hr; } + +HRESULT CALLBACK IAccessor_AddRefAccessor_Proxy(IAccessor* This, HACCESSOR hAccessor, DBREFCOUNT *pcRefCount) +{ + FIXME("(%p)->(%08lx, %p): stub\n", This, hAccessor, pcRefCount); + return E_NOTIMPL; +} + +HRESULT __RPC_STUB IAccessor_AddRefAccessor_Stub(IAccessor* This, HACCESSOR hAccessor, DBREFCOUNT *pcRefCount, + IErrorInfo **ppErrorInfoRem) +{ + FIXME("(%p)->(%08lx, %p, %p): stub\n", This, hAccessor, pcRefCount, ppErrorInfoRem); + return E_NOTIMPL; +} + +HRESULT CALLBACK IAccessor_CreateAccessor_Proxy(IAccessor* This, DBACCESSORFLAGS dwAccessorFlags, DBCOUNTITEM cBindings, + const DBBINDING rgBindings[], DBLENGTH cbRowSize, HACCESSOR *phAccessor, + DBBINDSTATUS rgStatus[]) +{ + DBCOUNTITEM i; + FIXME("(%p)->(%08x, %d, %p, %d, %p, %p): stub\n", This, dwAccessorFlags, cBindings, rgBindings, + cbRowSize, phAccessor, rgStatus); + + for(i = 0; i < cBindings; i++) + { + TRACE("%d: ord %d val off %d len off %d stat off %d part %04x mem_owner %d max_len %d type %04x\n", + i, rgBindings[i].iOrdinal, rgBindings[i].obValue, rgBindings[i].obLength, rgBindings[i].obStatus, + rgBindings[i].dwPart, rgBindings[i].dwMemOwner, rgBindings[i].cbMaxLen, rgBindings[i].wType); + } + + return E_NOTIMPL; +} + +HRESULT __RPC_STUB IAccessor_CreateAccessor_Stub(IAccessor* This, DBACCESSORFLAGS dwAccessorFlags, DBCOUNTITEM cBindings, + DBBINDING *rgBindings, DBLENGTH cbRowSize, HACCESSOR *phAccessor, + DBBINDSTATUS *rgStatus, IErrorInfo **ppErrorInfoRem) +{ + FIXME("(%p)->(%08x, %d, %p, %d, %p, %p, %p): stub\n", This, dwAccessorFlags, cBindings, rgBindings, + cbRowSize, phAccessor, rgStatus, ppErrorInfoRem); + return E_NOTIMPL; +} + +HRESULT CALLBACK IAccessor_GetBindings_Proxy(IAccessor* This, HACCESSOR hAccessor, DBACCESSORFLAGS *pdwAccessorFlags, + DBCOUNTITEM *pcBindings, DBBINDING **prgBindings) +{ + FIXME("(%p): stub\n", This); + return E_NOTIMPL; +} + +HRESULT __RPC_STUB IAccessor_GetBindings_Stub(IAccessor* This, HACCESSOR hAccessor, DBACCESSORFLAGS *pdwAccessorFlags, + DBCOUNTITEM *pcBindings, DBBINDING **prgBindings, IErrorInfo **ppErrorInfoRem) +{ + FIXME("(%p): stub\n", This); + return E_NOTIMPL; +} + +HRESULT CALLBACK IAccessor_ReleaseAccessor_Proxy(IAccessor* This, HACCESSOR hAccessor, DBREFCOUNT *pcRefCount) +{ + FIXME("(%p)->(%lx, %p): stub\n", This, hAccessor, pcRefCount); + return E_NOTIMPL; +} + +HRESULT __RPC_STUB IAccessor_ReleaseAccessor_Stub(IAccessor* This, HACCESSOR hAccessor, DBREFCOUNT *pcRefCount, + IErrorInfo **ppErrorInfoRem) +{ + FIXME("(%p)->(%lx, %p, %p): stub\n", This, hAccessor, pcRefCount, ppErrorInfoRem); + return E_NOTIMPL; +} diff --git a/include/Makefile.in b/include/Makefile.in index 6ea2210876..f5b2dfd60f 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -96,6 +96,7 @@ SRCDIR_INCLUDES = \ $(IDL_TLB_SRCS) \ $(PUBLIC_IDL_H_SRCS) \ accctrl.h \ + access.idl \ aclapi.h \ aclui.h \ adshlp.h \ diff --git a/include/access.idl b/include/access.idl new file mode 100644 index 0000000000..f3515afa3e --- /dev/null +++ b/include/access.idl @@ -0,0 +1,79 @@ +/* + * Copyright (C) 2009 Huw Davies + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +[ + object, + uuid(0c733a8c-2a1c-11ce-ade5-00aa0044773d), + pointer_default(unique) +] +interface IAccessor : IUnknown +{ + + typedef DWORD DBACCESSORFLAGS; + + typedef DWORD DBBINDSTATUS; + + [local] + HRESULT AddRefAccessor([in] HACCESSOR hAccessor, + [in, out, unique, annotation("__out_opt")] DBREFCOUNT *pcRefCount); + + [call_as(AddRefAccessor)] + HRESULT RemoteAddRefAccessor([in] HACCESSOR hAccessor, + [in, out, unique, annotation("__out_opt")] DBREFCOUNT *pcRefCount, + [out] IErrorInfo **ppErrorInfoRem); + + [local] + HRESULT CreateAccessor([in] DBACCESSORFLAGS dwAccessorFlags, + [in] DBCOUNTITEM cBindings, + [in, size_is(cBindings), annotation("__in_ecount(cBindings)")] const DBBINDING rgBindings[], + [in] DBLENGTH cbRowSize, + [out, annotation("__out")] HACCESSOR *phAccessor, + [out, size_is(cBindings), annotation("__out_ecount_opt(cBindings)")] DBBINDSTATUS rgStatus[]); + + [call_as(CreateAccessor)] + HRESULT RemoteCreateAccessor([in] DBACCESSORFLAGS dwAccessorFlags, + [in] DBCOUNTITEM cBindings, + [in, unique, size_is(cBindings)] DBBINDING *rgBindings, + [in] DBLENGTH cbRowSize, + [out] HACCESSOR *phAccessor, + [in, out, unique, size_is(cBindings)] DBBINDSTATUS *rgStatus, + [out] IErrorInfo **ppErrorInfoRem); + + [local] + HRESULT GetBindings([in] HACCESSOR hAccessor, + [out, annotation("__out")] DBACCESSORFLAGS *pdwAccessorFlags, + [in, out, annotation("__out_opt")] DBCOUNTITEM *pcBindings, + [out, size_is(,*pcBindings), annotation("__deref_out_ecount_opt(*pcBindings)")] DBBINDING **prgBindings); + + [call_as(GetBindings)] + HRESULT RemoteGetBindings([in] HACCESSOR hAccessor, + [out] DBACCESSORFLAGS *pdwAccessorFlags, + [in, out] DBCOUNTITEM *pcBindings, + [out, size_is(,*pcBindings)] DBBINDING **prgBindings, + [out] IErrorInfo **ppErrorInfoRem); + + [local] + HRESULT ReleaseAccessor([in] HACCESSOR hAccessor, + [in, out, unique, annotation("__out_opt")] DBREFCOUNT *pcRefCount); + + [call_as(ReleaseAccessor)] + HRESULT RemoteReleaseAccessor([in] HACCESSOR hAccessor, + [in, out, unique] DBREFCOUNT *pcRefCount, + [out] IErrorInfo **ppErrorInfoRem); + +}; diff --git a/include/oledb.idl b/include/oledb.idl index 030f0491ba..a488c476dc 100644 --- a/include/oledb.idl +++ b/include/oledb.idl @@ -39,6 +39,7 @@ typedef LONG DB_LPARAMS; #include "dbs.idl" +#include "access.idl" #include "dbccmd.idl" #include "dbcses.idl" #include "dbprop.idl" diff --git a/tools/make_makefiles b/tools/make_makefiles index 38833334ea..5e724ff800 100755 --- a/tools/make_makefiles +++ b/tools/make_makefiles @@ -109,6 +109,7 @@ my %exported_wine_headers = ( ); my %private_idl_headers = ( + "access.idl" => 1, "axcore.idl" => 1, "axextend.idl" => 1, "binres.idl" => 1,