ole32 [8/9]: Add a proxy for objidl.
Dan Hipschman
dsh at linux.ucla.edu
Fri Nov 9 18:10:48 CST 2007
This patch adds a proxy for objidl. Most of it is just stubs for the
call_as/local stubs. This also fixes a few todos in the moniker tests.
---
dlls/ole32/Makefile.in | 1 +
dlls/ole32/ole32_objidl.idl | 25 ++
dlls/ole32/oleproxy.c | 2 +
dlls/ole32/tests/moniker.c | 16 --
dlls/ole32/usrmarshal.c | 577 +++++++++++++++++++++++++++++++++++++++++++
5 files changed, 605 insertions(+), 16 deletions(-)
create mode 100644 dlls/ole32/ole32_objidl.idl
diff --git a/dlls/ole32/Makefile.in b/dlls/ole32/Makefile.in
index 8f8a82b..c087538 100644
--- a/dlls/ole32/Makefile.in
+++ b/dlls/ole32/Makefile.in
@@ -69,6 +69,7 @@ IDL_C_SRCS = \
IDL_P_SRCS = \
dcom.idl \
+ ole32_objidl.idl \
ole32_unknwn.idl
@MAKE_DLL_RULES@
diff --git a/dlls/ole32/ole32_objidl.idl b/dlls/ole32/ole32_objidl.idl
new file mode 100644
index 0000000..64368bd
--- /dev/null
+++ b/dlls/ole32/ole32_objidl.idl
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2007 Google (Dan Hipschman)
+ *
+ * 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
+ */
+
+/* The header file generated from this includes rpc.h, which ends up
+ including objidl.h at some point. This will cause all sorts of errors
+ so the easiest thing to do is just comment out our entire header. */
+
+cpp_quote("#if 0 /* ole32_objidl.idl hack */")
+#include "objidl.idl"
+cpp_quote("#endif /* ole32_objidl.idl hack */")
diff --git a/dlls/ole32/oleproxy.c b/dlls/ole32/oleproxy.c
index 45f55c0..9c23ae0 100644
--- a/dlls/ole32/oleproxy.c
+++ b/dlls/ole32/oleproxy.c
@@ -47,10 +47,12 @@ static CStdPSFactoryBuffer PSFactoryBuffer;
CSTDSTUBBUFFERRELEASE(&PSFactoryBuffer)
extern const ExtendedProxyFileInfo dcom_ProxyFileInfo;
+extern const ExtendedProxyFileInfo ole32_objidl_ProxyFileInfo;
extern const ExtendedProxyFileInfo ole32_unknwn_ProxyFileInfo;
static const ProxyFileInfo *OLE32_ProxyFileList[] = {
&dcom_ProxyFileInfo,
+ &ole32_objidl_ProxyFileInfo,
&ole32_unknwn_ProxyFileInfo,
NULL
};
diff --git a/dlls/ole32/tests/moniker.c b/dlls/ole32/tests/moniker.c
index 14f5018..ac80084 100644
--- a/dlls/ole32/tests/moniker.c
+++ b/dlls/ole32/tests/moniker.c
@@ -571,26 +571,18 @@ static void test_ROT(void)
/* try with our own moniker that doesn't support IROTData */
hr = IRunningObjectTable_Register(pROT, ROTFLAGS_REGISTRATIONKEEPSALIVE,
(IUnknown*)&Test_ClassFactory, &MonikerNoROTData, &dwCookie);
- todo_wine { /* only fails because of lack of IMoniker marshaling */
ok_ole_success(hr, IRunningObjectTable_Register);
- }
ok(!*expected_method_list, "Method sequence starting from %s not called\n", *expected_method_list);
- todo_wine { /* only fails because of lack of IMoniker marshaling */
ok_more_than_one_lock();
- }
expected_method_list = methods_isrunning_no_ROTData;
hr = IRunningObjectTable_IsRunning(pROT, &MonikerNoROTData);
- todo_wine { /* only fails because of lack of IMoniker marshaling */
ok_ole_success(hr, IRunningObjectTable_IsRunning);
- }
ok(!*expected_method_list, "Method sequence starting from %s not called\n", *expected_method_list);
hr = IRunningObjectTable_Revoke(pROT, dwCookie);
- todo_wine { /* only fails because of lack of IMoniker marshaling */
ok_ole_success(hr, IRunningObjectTable_Revoke);
- }
ok_no_locks();
@@ -598,26 +590,18 @@ static void test_ROT(void)
/* try with our own moniker */
hr = IRunningObjectTable_Register(pROT, ROTFLAGS_REGISTRATIONKEEPSALIVE,
(IUnknown*)&Test_ClassFactory, &Moniker, &dwCookie);
- todo_wine { /* only fails because of lack of IMoniker marshaling */
ok_ole_success(hr, IRunningObjectTable_Register);
- }
ok(!*expected_method_list, "Method sequence starting from %s not called\n", *expected_method_list);
- todo_wine { /* only fails because of lack of IMoniker marshaling */
ok_more_than_one_lock();
- }
expected_method_list = methods_isrunning;
hr = IRunningObjectTable_IsRunning(pROT, &Moniker);
- todo_wine { /* only fails because of lack of IMoniker marshaling */
ok_ole_success(hr, IRunningObjectTable_IsRunning);
- }
ok(!*expected_method_list, "Method sequence starting from %s not called\n", *expected_method_list);
hr = IRunningObjectTable_Revoke(pROT, dwCookie);
- todo_wine { /* only fails because of lack of IMoniker marshaling */
ok_ole_success(hr, IRunningObjectTable_Revoke);
- }
ok_no_locks();
diff --git a/dlls/ole32/usrmarshal.c b/dlls/ole32/usrmarshal.c
index bf2fe15..0e5f9b3 100644
--- a/dlls/ole32/usrmarshal.c
+++ b/dlls/ole32/usrmarshal.c
@@ -1905,3 +1905,580 @@ HRESULT __RPC_STUB IClassFactory_LockServer_Stub(
FIXME(":stub\n");
return E_NOTIMPL;
}
+
+/* call_as/local stubs for objidl.idl */
+
+HRESULT CALLBACK IEnumUnknown_Next_Proxy(
+ IEnumUnknown* This,
+ ULONG celt,
+ IUnknown **rgelt,
+ ULONG *pceltFetched)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IEnumUnknown_Next_Stub(
+ IEnumUnknown* This,
+ ULONG celt,
+ IUnknown **rgelt,
+ ULONG *pceltFetched)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IBindCtx_SetBindOptions_Proxy(
+ IBindCtx* This,
+ BIND_OPTS *pbindopts)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IBindCtx_SetBindOptions_Stub(
+ IBindCtx* This,
+ BIND_OPTS2 *pbindopts)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IBindCtx_GetBindOptions_Proxy(
+ IBindCtx* This,
+ BIND_OPTS *pbindopts)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IBindCtx_GetBindOptions_Stub(
+ IBindCtx* This,
+ BIND_OPTS2 *pbindopts)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IEnumMoniker_Next_Proxy(
+ IEnumMoniker* This,
+ ULONG celt,
+ IMoniker **rgelt,
+ ULONG *pceltFetched)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IEnumMoniker_Next_Stub(
+ IEnumMoniker* This,
+ ULONG celt,
+ IMoniker **rgelt,
+ ULONG *pceltFetched)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+BOOL CALLBACK IRunnableObject_IsRunning_Proxy(
+ IRunnableObject* This)
+{
+ BOOL rv;
+ FIXME(":stub\n");
+ memset(&rv, 0, sizeof rv);
+ return rv;
+}
+
+HRESULT __RPC_STUB IRunnableObject_IsRunning_Stub(
+ IRunnableObject* This)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IMoniker_BindToObject_Proxy(
+ IMoniker* This,
+ IBindCtx *pbc,
+ IMoniker *pmkToLeft,
+ REFIID riidResult,
+ void **ppvResult)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IMoniker_BindToObject_Stub(
+ IMoniker* This,
+ IBindCtx *pbc,
+ IMoniker *pmkToLeft,
+ REFIID riidResult,
+ IUnknown **ppvResult)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IMoniker_BindToStorage_Proxy(
+ IMoniker* This,
+ IBindCtx *pbc,
+ IMoniker *pmkToLeft,
+ REFIID riid,
+ void **ppvObj)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IMoniker_BindToStorage_Stub(
+ IMoniker* This,
+ IBindCtx *pbc,
+ IMoniker *pmkToLeft,
+ REFIID riid,
+ IUnknown **ppvObj)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IEnumString_Next_Proxy(
+ IEnumString* This,
+ ULONG celt,
+ LPOLESTR *rgelt,
+ ULONG *pceltFetched)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IEnumString_Next_Stub(
+ IEnumString* This,
+ ULONG celt,
+ LPOLESTR *rgelt,
+ ULONG *pceltFetched)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK ISequentialStream_Read_Proxy(
+ ISequentialStream* This,
+ void *pv,
+ ULONG cb,
+ ULONG *pcbRead)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB ISequentialStream_Read_Stub(
+ ISequentialStream* This,
+ byte *pv,
+ ULONG cb,
+ ULONG *pcbRead)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK ISequentialStream_Write_Proxy(
+ ISequentialStream* This,
+ const void *pv,
+ ULONG cb,
+ ULONG *pcbWritten)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB ISequentialStream_Write_Stub(
+ ISequentialStream* This,
+ const byte *pv,
+ ULONG cb,
+ ULONG *pcbWritten)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IStream_Seek_Proxy(
+ IStream* This,
+ LARGE_INTEGER dlibMove,
+ DWORD dwOrigin,
+ ULARGE_INTEGER *plibNewPosition)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IStream_Seek_Stub(
+ IStream* This,
+ LARGE_INTEGER dlibMove,
+ DWORD dwOrigin,
+ ULARGE_INTEGER *plibNewPosition)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IStream_CopyTo_Proxy(
+ IStream* This,
+ IStream *pstm,
+ ULARGE_INTEGER cb,
+ ULARGE_INTEGER *pcbRead,
+ ULARGE_INTEGER *pcbWritten)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IStream_CopyTo_Stub(
+ IStream* This,
+ IStream *pstm,
+ ULARGE_INTEGER cb,
+ ULARGE_INTEGER *pcbRead,
+ ULARGE_INTEGER *pcbWritten)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IEnumSTATSTG_Next_Proxy(
+ IEnumSTATSTG* This,
+ ULONG celt,
+ STATSTG *rgelt,
+ ULONG *pceltFetched)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IEnumSTATSTG_Next_Stub(
+ IEnumSTATSTG* This,
+ ULONG celt,
+ STATSTG *rgelt,
+ ULONG *pceltFetched)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IStorage_OpenStream_Proxy(
+ IStorage* This,
+ LPCOLESTR pwcsName,
+ void *reserved1,
+ DWORD grfMode,
+ DWORD reserved2,
+ IStream **ppstm)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IStorage_OpenStream_Stub(
+ IStorage* This,
+ LPCOLESTR pwcsName,
+ unsigned long cbReserved1,
+ byte *reserved1,
+ DWORD grfMode,
+ DWORD reserved2,
+ IStream **ppstm)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IStorage_EnumElements_Proxy(
+ IStorage* This,
+ DWORD reserved1,
+ void *reserved2,
+ DWORD reserved3,
+ IEnumSTATSTG **ppenum)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IStorage_EnumElements_Stub(
+ IStorage* This,
+ DWORD reserved1,
+ unsigned long cbReserved2,
+ byte *reserved2,
+ DWORD reserved3,
+ IEnumSTATSTG **ppenum)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK ILockBytes_ReadAt_Proxy(
+ ILockBytes* This,
+ ULARGE_INTEGER ulOffset,
+ void *pv,
+ ULONG cb,
+ ULONG *pcbRead)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB ILockBytes_ReadAt_Stub(
+ ILockBytes* This,
+ ULARGE_INTEGER ulOffset,
+ byte *pv,
+ ULONG cb,
+ ULONG *pcbRead)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK ILockBytes_WriteAt_Proxy(
+ ILockBytes* This,
+ ULARGE_INTEGER ulOffset,
+ const void *pv,
+ ULONG cb,
+ ULONG *pcbWritten)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB ILockBytes_WriteAt_Stub(
+ ILockBytes* This,
+ ULARGE_INTEGER ulOffset,
+ const byte *pv,
+ ULONG cb,
+ ULONG *pcbWritten)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IFillLockBytes_FillAppend_Proxy(
+ IFillLockBytes* This,
+ const void *pv,
+ ULONG cb,
+ ULONG *pcbWritten)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IFillLockBytes_FillAppend_Stub(
+ IFillLockBytes* This,
+ const byte *pv,
+ ULONG cb,
+ ULONG *pcbWritten)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IFillLockBytes_FillAt_Proxy(
+ IFillLockBytes* This,
+ ULARGE_INTEGER ulOffset,
+ const void *pv,
+ ULONG cb,
+ ULONG *pcbWritten)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IFillLockBytes_FillAt_Stub(
+ IFillLockBytes* This,
+ ULARGE_INTEGER ulOffset,
+ const byte *pv,
+ ULONG cb,
+ ULONG *pcbWritten)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IEnumFORMATETC_Next_Proxy(
+ IEnumFORMATETC* This,
+ ULONG celt,
+ FORMATETC *rgelt,
+ ULONG *pceltFetched)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IEnumFORMATETC_Next_Stub(
+ IEnumFORMATETC* This,
+ ULONG celt,
+ FORMATETC *rgelt,
+ ULONG *pceltFetched)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IEnumSTATDATA_Next_Proxy(
+ IEnumSTATDATA* This,
+ ULONG celt,
+ STATDATA *rgelt,
+ ULONG *pceltFetched)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IEnumSTATDATA_Next_Stub(
+ IEnumSTATDATA* This,
+ ULONG celt,
+ STATDATA *rgelt,
+ ULONG *pceltFetched)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+void CALLBACK IAdviseSink_OnDataChange_Proxy(
+ IAdviseSink* This,
+ FORMATETC *pFormatetc,
+ STGMEDIUM *pStgmed)
+{
+ FIXME(":stub\n");
+}
+
+HRESULT __RPC_STUB IAdviseSink_OnDataChange_Stub(
+ IAdviseSink* This,
+ FORMATETC *pFormatetc,
+ ASYNC_STGMEDIUM *pStgmed)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+void CALLBACK IAdviseSink_OnViewChange_Proxy(
+ IAdviseSink* This,
+ DWORD dwAspect,
+ LONG lindex)
+{
+ FIXME(":stub\n");
+}
+
+HRESULT __RPC_STUB IAdviseSink_OnViewChange_Stub(
+ IAdviseSink* This,
+ DWORD dwAspect,
+ LONG lindex)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+void CALLBACK IAdviseSink_OnRename_Proxy(
+ IAdviseSink* This,
+ IMoniker *pmk)
+{
+ FIXME(":stub\n");
+}
+
+HRESULT __RPC_STUB IAdviseSink_OnRename_Stub(
+ IAdviseSink* This,
+ IMoniker *pmk)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+void CALLBACK IAdviseSink_OnSave_Proxy(
+ IAdviseSink* This)
+{
+ FIXME(":stub\n");
+}
+
+HRESULT __RPC_STUB IAdviseSink_OnSave_Stub(
+ IAdviseSink* This)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+void CALLBACK IAdviseSink_OnClose_Proxy(
+ IAdviseSink* This)
+{
+ FIXME(":stub\n");
+}
+
+HRESULT __RPC_STUB IAdviseSink_OnClose_Stub(
+ IAdviseSink* This)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+void CALLBACK IAdviseSink2_OnLinkSrcChange_Proxy(
+ IAdviseSink2* This,
+ IMoniker *pmk)
+{
+ FIXME(":stub\n");
+}
+
+HRESULT __RPC_STUB IAdviseSink2_OnLinkSrcChange_Stub(
+ IAdviseSink2* This,
+ IMoniker *pmk)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IDataObject_GetData_Proxy(
+ IDataObject* This,
+ FORMATETC *pformatetcIn,
+ STGMEDIUM *pmedium)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IDataObject_GetData_Stub(
+ IDataObject* This,
+ FORMATETC *pformatetcIn,
+ STGMEDIUM *pRemoteMedium)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IDataObject_GetDataHere_Proxy(
+ IDataObject* This,
+ FORMATETC *pformatetc,
+ STGMEDIUM *pmedium)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IDataObject_GetDataHere_Stub(
+ IDataObject* This,
+ FORMATETC *pformatetc,
+ STGMEDIUM *pRemoteMedium)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IDataObject_SetData_Proxy(
+ IDataObject* This,
+ FORMATETC *pformatetc,
+ STGMEDIUM *pmedium,
+ BOOL fRelease)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IDataObject_SetData_Stub(
+ IDataObject* This,
+ FORMATETC *pformatetc,
+ FLAG_STGMEDIUM *pmedium,
+ BOOL fRelease)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
More information about the wine-patches
mailing list