Robert Shearman : rpcrt4: Display a big message box if the user tries to use typelib

Alexandre Julliard julliard at wine.codeweavers.com
Tue Jul 18 05:13:24 CDT 2006


Module: wine
Branch: refs/heads/master
Commit: d2cb9ec567ea1f19d9c42c50ddc3a01491006b6c
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=d2cb9ec567ea1f19d9c42c50ddc3a01491006b6c

Author: Robert Shearman <rob at codeweavers.com>
Date:   Mon Jul 17 20:19:38 2006 +0100

rpcrt4: Display a big message box if the user tries to use typelib
marshaling in native oleaut32 with builtin rpcrt4 to tell them what is
wrong.

---

 dlls/rpcrt4/cproxy.c |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/dlls/rpcrt4/cproxy.c b/dlls/rpcrt4/cproxy.c
index f022ed3..88910a3 100644
--- a/dlls/rpcrt4/cproxy.c
+++ b/dlls/rpcrt4/cproxy.c
@@ -344,6 +344,19 @@ HRESULT WINAPI
 CreateProxyFromTypeInfo( LPTYPEINFO pTypeInfo, LPUNKNOWN pUnkOuter, REFIID riid,
                          LPRPCPROXYBUFFER *ppProxy, LPVOID *ppv )
 {
+    typedef INT (WINAPI *MessageBoxA)(HWND,LPCSTR,LPCSTR,UINT);
+    HMODULE hUser32 = LoadLibraryA("user32");
+    MessageBoxA pMessageBoxA = GetProcAddress(hUser32, "MessageBoxA");
+
     FIXME("%p %p %s %p %p\n", pTypeInfo, pUnkOuter, debugstr_guid(riid), ppProxy, ppv);
+    if (pMessageBoxA)
+    {
+        pMessageBoxA(NULL,
+            "The native implementation of OLEAUT32.DLL cannot be used "
+            "with Wine's RPCRT4.DLL. Remove OLEAUT32.DLL and try again.\n",
+            "Wine: Unimplemented CreateProxyFromTypeInfo",
+            0x10);
+        ExitProcess(1);
+    }
     return E_NOTIMPL;
 }




More information about the wine-cvs mailing list