secur32: make GetComputerObjectNameA use GetComputerObjectNameW

Robert Reif reif at earthlink.net
Sat Aug 12 09:08:32 CDT 2006


-------------- next part --------------
diff -p -u -r1.19 secur32.c
--- dlls/secur32/secur32.c	23 May 2006 12:48:34 -0000	1.19
+++ dlls/secur32/secur32.c	12 Aug 2006 14:05:56 -0000
@@ -863,8 +863,23 @@ SECURITY_STATUS WINAPI EnumerateSecurity
 BOOLEAN WINAPI GetComputerObjectNameA(
   EXTENDED_NAME_FORMAT NameFormat, LPSTR lpNameBuffer, PULONG nSize)
 {
-    FIXME("%d %p %p\n", NameFormat, lpNameBuffer, nSize);
-    return FALSE;
+    BOOLEAN rc;
+    LPWSTR bufferW;
+    ULONG sizeW = *nSize * sizeof(WCHAR);
+    TRACE("(%d %p %p)\n", NameFormat, lpNameBuffer, nSize);
+    bufferW = HeapAlloc(GetProcessHeap(), 0, sizeW);
+    if (bufferW == NULL) {
+        SetLastError(ERROR_NOT_ENOUGH_MEMORY);
+        return FALSE;
+    }
+    rc = GetComputerObjectNameW(NameFormat, bufferW, &sizeW);
+    if (rc) {
+        ULONG len = WideCharToMultiByte(CP_ACP, 0, bufferW, -1, NULL, 0, NULL, NULL);
+        WideCharToMultiByte(CP_ACP, 0, bufferW, -1, lpNameBuffer, len, NULL, NULL);
+        *nSize = len;
+    }
+    HeapFree(GetProcessHeap(), 0, bufferW);
+    return rc;
 }
 
 /***********************************************************************
@@ -873,7 +888,8 @@ BOOLEAN WINAPI GetComputerObjectNameA(
 BOOLEAN WINAPI GetComputerObjectNameW(
   EXTENDED_NAME_FORMAT NameFormat, LPWSTR lpNameBuffer, PULONG nSize)
 {
-    FIXME("%d %p %p\n", NameFormat, lpNameBuffer, nSize);
+    FIXME("(%d %p %p)\n", NameFormat, lpNameBuffer, nSize);
+    SetLastError(ERROR_CANT_ACCESS_DOMAIN_INFO);
     return FALSE;
 }
 


More information about the wine-patches mailing list