KERNEL: implement CallNamedPipeA using CallNamedPipeW

Mike McCormack mike at codeweavers.com
Tue Oct 19 03:50:07 CDT 2004


ChangeLog:
* implement CallNamedPipeA using CallNamedPipeW
-------------- next part --------------
Index: dlls/kernel/sync.c
===================================================================
RCS file: /home/wine/wine/dlls/kernel/sync.c,v
retrieving revision 1.60
diff -u -r1.60 sync.c
--- dlls/kernel/sync.c	11 Oct 2004 20:11:01 -0000	1.60
+++ dlls/kernel/sync.c	19 Oct 2004 07:04:02 -0000
@@ -1401,14 +1401,30 @@
  *           CallNamedPipeA  (KERNEL32.@)
  */
 BOOL WINAPI CallNamedPipeA(
-    LPCSTR lpNamedPipeName, LPVOID lpInput, DWORD lpInputSize,
-    LPVOID lpOutput, DWORD lpOutputSize,
+    LPCSTR lpNamedPipeName, LPVOID lpInput, DWORD dwInputSize,
+    LPVOID lpOutput, DWORD dwOutputSize,
     LPDWORD lpBytesRead, DWORD nTimeout)
 {
-    FIXME("%s %p %ld %p %ld %p %ld\n",
-           debugstr_a(lpNamedPipeName), lpInput, lpInputSize,
-           lpOutput, lpOutputSize, lpBytesRead, nTimeout);
-    return FALSE;
+    DWORD len;
+    LPWSTR str = NULL;
+    BOOL ret;
+
+    TRACE("%s %p %ld %p %ld %p %ld\n",
+           debugstr_a(lpNamedPipeName), lpInput, dwInputSize,
+           lpOutput, dwOutputSize, lpBytesRead, nTimeout);
+
+    if( lpNamedPipeName )
+    {
+        len = MultiByteToWideChar( CP_ACP, 0, lpNamedPipeName, -1, NULL, 0 );
+        str = HeapAlloc( GetProcessHeap(), 0, len*sizeof(WCHAR) );
+        MultiByteToWideChar( CP_ACP, 0, lpNamedPipeName, -1, str, len );
+    }
+    ret = CallNamedPipeW( str, lpInput, dwInputSize, lpOutput,
+                          dwOutputSize, lpBytesRead, nTimeout );
+    if( lpNamedPipeName )
+        HeapFree( GetProcessHeap(), 0, str );
+
+    return ret;
 }
 
 /***********************************************************************


More information about the wine-patches mailing list