oleaut32 [7/7]: Add a WIDL-generated proxy file for ocidl.idl.

Dan Hipschman dsh at linux.ucla.edu
Wed Nov 21 19:22:02 CST 2007


Fixes bug #4875, although that app is still by no means working correctly now.

---
 dlls/oleaut32/Makefile.in        |    3 +-
 dlls/oleaut32/oleaut.c           |    3 +-
 dlls/oleaut32/oleaut32_ocidl.idl |   20 ++++
 dlls/oleaut32/usrmarshal.c       |  184 ++++++++++++++++++++++++++++++++++++++
 4 files changed, 207 insertions(+), 3 deletions(-)
 create mode 100644 dlls/oleaut32/oleaut32_ocidl.idl

diff --git a/dlls/oleaut32/Makefile.in b/dlls/oleaut32/Makefile.in
index 18390a6..d61585f 100644
--- a/dlls/oleaut32/Makefile.in
+++ b/dlls/oleaut32/Makefile.in
@@ -40,7 +40,8 @@ SPEC_SRCS16 = \
 RC_SRCS = oleaut32.rc
 
 IDL_P_SRCS = \
-	oleaut32_oaidl.idl
+	oleaut32_oaidl.idl \
+	oleaut32_ocidl.idl
 
 @MAKE_DLL_RULES@
 
diff --git a/dlls/oleaut32/oleaut.c b/dlls/oleaut32/oleaut.c
index f756d83..7fb3e3c 100644
--- a/dlls/oleaut32/oleaut.c
+++ b/dlls/oleaut32/oleaut.c
@@ -799,8 +799,7 @@ HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID iid, LPVOID *ppv)
 	    return S_OK;
 	/*FALLTHROUGH*/
     }
-    FIXME("\n\tCLSID:\t%s,\n\tIID:\t%s\n",debugstr_guid(rclsid),debugstr_guid(iid));
-    return CLASS_E_CLASSNOTAVAILABLE;
+    return OLEAUTPS_DllGetClassObject(rclsid, iid, ppv);
 }
 
 /***********************************************************************
diff --git a/dlls/oleaut32/oleaut32_ocidl.idl b/dlls/oleaut32/oleaut32_ocidl.idl
new file mode 100644
index 0000000..379df5b
--- /dev/null
+++ b/dlls/oleaut32/oleaut32_ocidl.idl
@@ -0,0 +1,20 @@
+/*
+ * 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
+ */
+
+cpp_quote("#include <winuser.h>")
+#include "ocidl.idl"
diff --git a/dlls/oleaut32/usrmarshal.c b/dlls/oleaut32/usrmarshal.c
index 3f84fab..bfa0bac 100644
--- a/dlls/oleaut32/usrmarshal.c
+++ b/dlls/oleaut32/usrmarshal.c
@@ -36,6 +36,7 @@
 #include "oleauto.h"
 #include "rpcproxy.h"
 #include "typelib.h"
+#include "ocidl.h"
 #include "wine/debug.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(ole);
@@ -50,9 +51,11 @@ static CStdPSFactoryBuffer PSFactoryBuffer;
 CSTDSTUBBUFFERRELEASE(&PSFactoryBuffer)
 
 extern const ExtendedProxyFileInfo oleaut32_oaidl_ProxyFileInfo;
+extern const ExtendedProxyFileInfo oleaut32_ocidl_ProxyFileInfo;
 
 static const ProxyFileInfo *OLEAUT32_ProxyFileList[] = {
   &oleaut32_oaidl_ProxyFileInfo,
+  &oleaut32_ocidl_ProxyFileInfo,
   NULL
 };
 
@@ -1117,6 +1120,32 @@ void WINAPI LPSAFEARRAY_UserFree(ULONG *pFlags, LPSAFEARRAY *ppsa)
     SafeArrayDestroy(*ppsa);
 }
 
+
+ULONG WINAPI HFONT_UserSize(ULONG *pFlags, ULONG Start, HFONT *phfont)
+{
+    FIXME(":stub\n");
+    return 0;
+}
+
+unsigned char * WINAPI HFONT_UserMarshal(ULONG *pFlags, unsigned char *Buffer, HFONT *phfont)
+{
+    FIXME(":stub\n");
+    return NULL;
+}
+
+unsigned char * WINAPI HFONT_UserUnmarshal(ULONG *pFlags, unsigned char *Buffer, HFONT *phfont)
+{
+    FIXME(":stub\n");
+    return NULL;
+}
+
+void WINAPI HFONT_UserFree(ULONG *pFlags, HFONT *phfont)
+{
+    FIXME(":stub\n");
+    return;
+}
+
+
 /* IDispatch */
 /* exactly how Invoke is marshalled is not very clear to me yet,
  * but the way I've done it seems to work for me */
@@ -2018,3 +2047,158 @@ HRESULT __RPC_STUB IPropertyBag_Read_Stub(
   FIXME("not implemented\n");
   return E_FAIL;
 }
+
+/* call_as/local stubs for ocidl.idl */
+
+HRESULT CALLBACK IClassFactory2_CreateInstanceLic_Proxy(
+    IClassFactory2* This,
+    IUnknown *pUnkOuter,
+    IUnknown *pUnkReserved,
+    REFIID riid,
+    BSTR bstrKey,
+    PVOID *ppvObj)
+{
+    FIXME("not implemented\n");
+    return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IClassFactory2_CreateInstanceLic_Stub(
+    IClassFactory2* This,
+    REFIID riid,
+    BSTR bstrKey,
+    IUnknown **ppvObj)
+{
+    FIXME("not implemented\n");
+    return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IEnumConnections_Next_Proxy(
+    IEnumConnections* This,
+    ULONG cConnections,
+    LPCONNECTDATA rgcd,
+    ULONG *pcFetched)
+{
+    FIXME("not implemented\n");
+    return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IEnumConnections_Next_Stub(
+    IEnumConnections* This,
+    ULONG cConnections,
+    LPCONNECTDATA rgcd,
+    ULONG *pcFetched)
+{
+    FIXME("not implemented\n");
+    return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IEnumConnectionPoints_Next_Proxy(
+    IEnumConnectionPoints* This,
+    ULONG cConnections,
+    LPCONNECTIONPOINT *ppCP,
+    ULONG *pcFetched)
+{
+    FIXME("not implemented\n");
+    return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IEnumConnectionPoints_Next_Stub(
+    IEnumConnectionPoints* This,
+    ULONG cConnections,
+    LPCONNECTIONPOINT *ppCP,
+    ULONG *pcFetched)
+{
+    FIXME("not implemented\n");
+    return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IPersistMemory_Load_Proxy(
+    IPersistMemory* This,
+    LPVOID pMem,
+    ULONG cbSize)
+{
+    FIXME("not implemented\n");
+    return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IPersistMemory_Load_Stub(
+    IPersistMemory* This,
+    BYTE *pMem,
+    ULONG cbSize)
+{
+    FIXME("not implemented\n");
+    return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IPersistMemory_Save_Proxy(
+    IPersistMemory* This,
+    LPVOID pMem,
+    BOOL fClearDirty,
+    ULONG cbSize)
+{
+    FIXME("not implemented\n");
+    return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IPersistMemory_Save_Stub(
+    IPersistMemory* This,
+    BYTE *pMem,
+    BOOL fClearDirty,
+    ULONG cbSize)
+{
+    FIXME("not implemented\n");
+    return E_NOTIMPL;
+}
+
+void CALLBACK IAdviseSinkEx_OnViewStatusChange_Proxy(
+    IAdviseSinkEx* This,
+    DWORD dwViewStatus)
+{
+    FIXME("not implemented\n");
+}
+
+HRESULT __RPC_STUB IAdviseSinkEx_OnViewStatusChange_Stub(
+    IAdviseSinkEx* This,
+    DWORD dwViewStatus)
+{
+    FIXME("not implemented\n");
+    return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IEnumOleUndoUnits_Next_Proxy(
+    IEnumOleUndoUnits* This,
+    ULONG cElt,
+    IOleUndoUnit **rgElt,
+    ULONG *pcEltFetched)
+{
+    FIXME("not implemented\n");
+    return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IEnumOleUndoUnits_Next_Stub(
+    IEnumOleUndoUnits* This,
+    ULONG cElt,
+    IOleUndoUnit **rgElt,
+    ULONG *pcEltFetched)
+{
+    FIXME("not implemented\n");
+    return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IQuickActivate_QuickActivate_Proxy(
+    IQuickActivate* This,
+    QACONTAINER *pQaContainer,
+    QACONTROL *pQaControl)
+{
+    FIXME("not implemented\n");
+    return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IQuickActivate_QuickActivate_Stub(
+    IQuickActivate* This,
+    QACONTAINER *pQaContainer,
+    QACONTROL *pQaControl)
+{
+    FIXME("not implemented\n");
+    return E_NOTIMPL;
+}



More information about the wine-patches mailing list