[PATCH] include: Add ICommandWithParameters interface

Alistair Leslie-Hughes leslie_alistair at hotmail.com
Wed Jun 9 20:32:56 CDT 2021


Signed-off-by: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
---
 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 <accctrl.h>")
 
-- 
2.30.2




More information about the wine-devel mailing list