From: Alistair Leslie-Hughes Subject: [PATCH] include: Add ICommandWithParameters interface Message-Id: Date: Thu, 10 Jun 2021 11:32:56 +1000 Signed-off-by: Alistair Leslie-Hughes --- dlls/msdaps/usrmarshal.c | 44 +++++++++++++++++++++++++++ include/cmdwpr.idl | 64 ++++++++++++++++++++++++++++++++++++++++ include/oledb.idl | 1 + 3 files changed, 109 insertions(+) create mode 100644 include/cmdwpr.idl diff --git a/dlls/msdaps/usrmarshal.c b/dlls/msdaps/usrmarshal.c index 27de85077b8..9ecd9bd93f8 100644 --- a/dlls/msdaps/usrmarshal.c +++ b/dlls/msdaps/usrmarshal.c @@ -1697,3 +1697,47 @@ HRESULT __RPC_STUB ICommandPrepare_Unprepare_Stub(ICommandPrepare* This, IErrorI FIXME("(%p)->(%p): stub\n", This, error); return E_NOTIMPL; } + +HRESULT CALLBACK ICommandWithParameters_GetParameterInfo_Proxy(ICommandWithParameters* This, + DB_UPARAMS *uparams, DBPARAMINFO **info, OLECHAR **buffer) +{ + FIXME("(%p)->(%d %p %p): stub\n", This, uparams, info, buffer); + return E_NOTIMPL; +} + +HRESULT __RPC_STUB ICommandWithParameters_GetParameterInfo_Stub(ICommandWithParameters* This, + DB_UPARAMS *uparams, DBPARAMINFO **param_info, DBBYTEOFFSET **offsets, DBLENGTH *buff_len, + OLECHAR **buffer, IErrorInfo **error) +{ + FIXME("(%p)->(%d %p %p %p %p %p %p): stub\n", This, uparams, param_info, buffer, offsets, buff_len, + buffer, error); + return E_NOTIMPL; +} + +HRESULT CALLBACK ICommandWithParameters_SetParameterInfo_Proxy(ICommandWithParameters* This, + DB_UPARAMS params, const DB_UPARAMS ordinals[], const DBPARAMBINDINFO bindinfo[]) +{ + FIXME("(%p)->(%d %p %p): stub\n", This, params, ordinals, bindinfo); + return E_NOTIMPL; +} + +HRESULT __RPC_STUB ICommandWithParameters_SetParameterInfo_Stub(ICommandWithParameters* This, + DB_UPARAMS params, const DB_UPARAMS *ordinals, const DBPARAMBINDINFO *bindinfo, IErrorInfo **error) +{ + FIXME("(%p)->(%d %p %p %p): stub\n", This, params, ordinals, bindinfo, error); + return E_NOTIMPL; +} + +HRESULT CALLBACK ICommandWithParameters_MapParameterNames_Proxy(ICommandWithParameters* This, + DB_UPARAMS count, LPCWSTR names[], DB_LPARAMS ordinals[]) +{ + FIXME("(%p)->(%d %p %p): stub\n", This, count, names, ordinals); + return E_NOTIMPL; +} + +HRESULT __RPC_STUB ICommandWithParameters_MapParameterNames_Stub(ICommandWithParameters* This, + DB_UPARAMS count, LPCOLESTR *names, DB_LPARAMS *ordinals, IErrorInfo **error) +{ + FIXME("(%p)->(%d %p %p %p): stub\n", This, count, names, ordinals, error); + return E_NOTIMPL; +} diff --git a/include/cmdwpr.idl b/include/cmdwpr.idl new file mode 100644 index 00000000000..9e25f649902 --- /dev/null +++ b/include/cmdwpr.idl @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2020 Alistair Leslie-Hughes + * + * 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 + */ + +#if 0 +#pragma makedep install +#endif + +[ + object, + uuid(0c733a64-2a1c-11ce-ade5-00aa0044773d), + pointer_default(unique) +] +interface ICommandWithParameters : IUnknown +{ + + typedef struct tagDBPARAMBINDINFO + { + LPOLESTR pwszDataSourceType; + LPOLESTR pwszName; + DBLENGTH ulParamSize; + DBPARAMFLAGS dwFlags; + BYTE bPrecision; + BYTE bScale; + } DBPARAMBINDINFO; + + [local] + HRESULT GetParameterInfo([in, out] DB_UPARAMS *uparams, [out, size_is(,*uparams)] DBPARAMINFO **info, [out] OLECHAR **buffer); + + [call_as(GetParameterInfo)] + HRESULT RemoteGetParameterInfo([in, out] DB_UPARAMS *uparams, [out, size_is(,(ULONG)*uparams)] DBPARAMINFO **param_info, + [out, size_is(,(ULONG)*uparams)] DBBYTEOFFSET **offsets, [in, out] DBLENGTH *buff_len, + [in, out, unique, size_is(,(ULONG)*buff_len)] OLECHAR **buffer, [out] IErrorInfo **error); + + [local] + HRESULT MapParameterNames([in] DB_UPARAMS uparams, [in, size_is((ULONG)uparams)] LPCWSTR names[], + [out, size_is((ULONG)uparams)] DB_LPARAMS ordinals[]); + + [call_as(MapParameterNames)] + HRESULT RemoteMapParameterNames([in] DB_UPARAMS uparams, [in, size_is((ULONG)uparams)] LPCOLESTR *names, + [out, size_is((ULONG)uparams)] DB_LPARAMS *ordinals, [out] IErrorInfo **error); + + [local] + HRESULT SetParameterInfo([in] DB_UPARAMS uparams, [in, unique, size_is((ULONG)uparams)] const DB_UPARAMS ordinals[], + [in, unique, size_is((ULONG)uparams)] const DBPARAMBINDINFO bindinfo[]); + + [call_as(SetParameterInfo)] + HRESULT RemoteSetParameterInfo([in] DB_UPARAMS uparams, [in, unique, size_is((ULONG)uparams)] const DB_UPARAMS *ordinals, + [in, unique, size_is((ULONG)uparams)] const DBPARAMBINDINFO *bindinfo, [out] IErrorInfo **error); +} diff --git a/include/oledb.idl b/include/oledb.idl index 4976a8ce33e..49c0c304b2d 100644 --- a/include/oledb.idl +++ b/include/oledb.idl @@ -79,6 +79,7 @@ typedef LONG_PTR DB_LRESERVE; #include "rstchg.idl" #include "rstupd.idl" #include "mulres.idl" +#include "cmdwpr.idl" cpp_quote("#include ") -- 2.30.2