diff --git a/.gitignore b/.gitignore index b20f4faa88f..638b74dead0 100644 --- a/.gitignore +++ b/.gitignore @@ -73,6 +73,8 @@ dlls/ole32/dcom.h dlls/ole32/dcom_p.c dlls/ole32/irot.h dlls/ole32/irot_c.c +dlls/ole32/ole32_objidl.h +dlls/ole32/ole32_objidl_p.c dlls/ole32/ole32_unknwn.h dlls/ole32/ole32_unknwn_p.c dlls/oleaut32/oleaut32_oaidl.h diff --git a/dlls/ole32/Makefile.in b/dlls/ole32/Makefile.in index d1d47687576..d3dc8bc2db2 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 00000000000..64368bd484f --- /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 aacc95e5b54..c7f0c2dfdd6 100644 --- a/dlls/ole32/oleproxy.c +++ b/dlls/ole32/oleproxy.c @@ -50,10 +50,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 b15cce43e5e..462190eb9ea 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 552c96e8c79..ed6ec476fba 100644 --- a/dlls/ole32/usrmarshal.c +++ b/dlls/ole32/usrmarshal.c @@ -2001,3 +2001,579 @@ 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; +}