another rpc patch

Ove Kaaven ovek at arcticnet.no
Mon May 19 17:36:51 CDT 2003


Log:
Ove Kaaven <ovek at transgaming.com>
Portability fix. Better debug messages (display IID of interface to
marshal).

Index: dlls/rpcrt4/ndr_ole.c
===================================================================
RCS file: /cvsroot/rewind/rewind/dlls/rpcrt4/ndr_ole.c,v
retrieving revision 1.3
diff -u -r1.3 ndr_ole.c
--- dlls/rpcrt4/ndr_ole.c	13 Feb 2003 21:38:37 -0000	1.3
+++ dlls/rpcrt4/ndr_ole.c	19 May 2003 22:29:01 -0000
@@ -30,14 +30,14 @@
 
 static HMODULE hOLE;
 
-static HRESULT WINAPI (*COM_GetMarshalSizeMax)(ULONG *,REFIID,LPUNKNOWN,DWORD,LPVOID,DWORD);
-static HRESULT WINAPI (*COM_MarshalInterface)(LPSTREAM,REFIID,LPUNKNOWN,DWORD,LPVOID,DWORD);
-static HRESULT WINAPI (*COM_UnmarshalInterface)(LPSTREAM,REFIID,LPVOID*);
-static HRESULT WINAPI (*COM_ReleaseMarshalData)(LPSTREAM);
-static HRESULT WINAPI (*COM_GetClassObject)(REFCLSID,DWORD,COSERVERINFO *,REFIID,LPVOID *);
-static HRESULT WINAPI (*COM_GetPSClsid)(REFIID,CLSID *);
-static LPVOID WINAPI (*COM_MemAlloc)(ULONG);
-static void WINAPI (*COM_MemFree)(LPVOID);
+static HRESULT (WINAPI *COM_GetMarshalSizeMax)(ULONG *,REFIID,LPUNKNOWN,DWORD,LPVOID,DWORD);
+static HRESULT (WINAPI *COM_MarshalInterface)(LPSTREAM,REFIID,LPUNKNOWN,DWORD,LPVOID,DWORD);
+static HRESULT (WINAPI *COM_UnmarshalInterface)(LPSTREAM,REFIID,LPVOID*);
+static HRESULT (WINAPI *COM_ReleaseMarshalData)(LPSTREAM);
+static HRESULT (WINAPI *COM_GetClassObject)(REFCLSID,DWORD,COSERVERINFO *,REFIID,LPVOID *);
+static HRESULT (WINAPI *COM_GetPSClsid)(REFIID,CLSID *);
+static LPVOID (WINAPI *COM_MemAlloc)(ULONG);
+static void (WINAPI *COM_MemFree)(LPVOID);
 
 static HMODULE LoadCOM(void)
 {
@@ -204,12 +204,14 @@
   if (!pFormat) return &IID_IUnknown;
   TRACE("format=%02x %02x\n", pFormat[0], pFormat[1]);
   if (pFormat[0] != RPC_FC_IP) FIXME("format=%d\n", pFormat[0]);
-  if (pFormat[1] == RPC_FC_CONSTANT_IID)
-    return (const IID*)&pFormat[2];
-
-  ComputeConformance(pStubMsg, pMemory, pFormat+2, 0);
-  riid = (const IID *)pStubMsg->MaxCount;
+  if (pFormat[1] == RPC_FC_CONSTANT_IID) {
+    riid = (const IID *)&pFormat[2];
+  } else {
+    ComputeConformance(pStubMsg, pMemory, pFormat+2, 0);
+    riid = (const IID *)pStubMsg->MaxCount;
+  }
   if (!riid) riid = &IID_IUnknown;
+  TRACE("got %s\n", debugstr_guid(riid));
   return riid;
 }
 






More information about the wine-patches mailing list