rpcrt4: Implemented RpcEpRegisterW wraping RpcEpRegisterA

Nikolay Sivov bunglehead at gmail.com
Mon Mar 30 14:49:27 CDT 2009


http://bugs.winehq.org/show_bug.cgi?id=17162

This makes IE8 RC1 get further: now it crashes on null dereference in
SHDefExtractIconW - this is a next target.

Changelog:
  - Implemented RpcEpRegisterW wraping RpcEpRegisterA

>From 27dcba23ca406bd7509853c7ba9597631dafca78 Mon Sep 17 00:00:00 2001
From: Nikolay Sivov <bunglehead at gmail.com>
Date: Mon, 30 Mar 2009 15:43:58 -0400
Subject: Implemented RpcEpRegisterW wraping RpcEpRegisterA

---
 dlls/rpcrt4/rpc_epmap.c |   15 +++++++++++++++
 dlls/rpcrt4/rpcrt4.spec |    2 +-
 2 files changed, 16 insertions(+), 1 deletions(-)

diff --git a/dlls/rpcrt4/rpc_epmap.c b/dlls/rpcrt4/rpc_epmap.c
index 3035b21..c7eb222 100644
--- a/dlls/rpcrt4/rpc_epmap.c
+++ b/dlls/rpcrt4/rpc_epmap.c
@@ -281,6 +281,21 @@ RPC_STATUS WINAPI RpcEpRegisterA( RPC_IF_HANDLE IfSpec, RPC_BINDING_VECTOR *Bind
 }
 
 /***********************************************************************
+ *             RpcEpRegisterW (RPCRT4.@)
+ */
+RPC_STATUS WINAPI RpcEpRegisterW( RPC_IF_HANDLE IfSpec, RPC_BINDING_VECTOR *BindingVector,
+                                  UUID_VECTOR *UuidVector, RPC_WSTR Annotation )
+{
+  LPSTR annA = RPCRT4_strdupWtoA(Annotation);
+  RPC_STATUS status;
+
+  status = RpcEpRegisterA(IfSpec, BindingVector, UuidVector, (RPC_CSTR)annA);
+
+  HeapFree(GetProcessHeap(), 0, annA);
+  return status;
+}
+
+/***********************************************************************
  *             RpcEpUnregister (RPCRT4.@)
  */
 RPC_STATUS WINAPI RpcEpUnregister( RPC_IF_HANDLE IfSpec, RPC_BINDING_VECTOR *BindingVector,
diff --git a/dlls/rpcrt4/rpcrt4.spec b/dlls/rpcrt4/rpcrt4.spec
index 8c01c84..b8349be 100644
--- a/dlls/rpcrt4/rpcrt4.spec
+++ b/dlls/rpcrt4/rpcrt4.spec
@@ -371,7 +371,7 @@
 @ stdcall RpcEpRegisterA(ptr ptr ptr str)
 @ stub RpcEpRegisterNoReplaceA
 @ stub RpcEpRegisterNoReplaceW
-@ stub RpcEpRegisterW
+@ stdcall RpcEpRegisterW(ptr ptr ptr wstr)
 @ stdcall RpcEpResolveBinding(ptr ptr)
 @ stdcall RpcEpUnregister(ptr ptr ptr)
 @ stub RpcErrorAddRecord # wxp
-- 
1.5.6.5





More information about the wine-patches mailing list