Detlef Riekenberg : winspool: Implement AddPortA.

Alexandre Julliard julliard at wine.codeweavers.com
Wed Nov 29 07:24:30 CST 2006


Module: wine
Branch: master
Commit: 1f3c289a3098d99aeb3141ddc63d2421b0632bc8
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=1f3c289a3098d99aeb3141ddc63d2421b0632bc8

Author: Detlef Riekenberg <wine.dev at web.de>
Date:   Tue Nov 28 00:49:54 2006 +0100

winspool: Implement AddPortA.

---

 dlls/winspool.drv/info.c |   24 ++++++++++++++++++++++--
 1 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c
index eb84e6f..bf7015c 100644
--- a/dlls/winspool.drv/info.c
+++ b/dlls/winspool.drv/info.c
@@ -5754,8 +5754,28 @@ BOOL WINAPI AbortPrinter( HANDLE hPrinte
  */
 BOOL WINAPI AddPortA(LPSTR pName, HWND hWnd, LPSTR pMonitorName)
 {
-    FIXME("(%s, %p, %s), stub!\n",debugstr_a(pName),hWnd,debugstr_a(pMonitorName));
-    return FALSE;
+    LPWSTR  nameW = NULL;
+    LPWSTR  monitorW = NULL;
+    DWORD   len;
+    BOOL    res;
+
+    TRACE("(%s, %p, %s)\n",debugstr_a(pName), hWnd, debugstr_a(pMonitorName));
+
+    if (pName) {
+        len = MultiByteToWideChar(CP_ACP, 0, pName, -1, NULL, 0);
+        nameW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
+        MultiByteToWideChar(CP_ACP, 0, pName, -1, nameW, len);
+    }
+
+    if (pMonitorName) {
+        len = MultiByteToWideChar(CP_ACP, 0, pMonitorName, -1, NULL, 0);
+        monitorW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
+        MultiByteToWideChar(CP_ACP, 0, pMonitorName, -1, monitorW, len);
+    }
+    res = AddPortW(nameW, hWnd, monitorW);
+    HeapFree(GetProcessHeap(), 0, nameW);
+    HeapFree(GetProcessHeap(), 0, monitorW);
+    return res;
 }
 
 /******************************************************************************




More information about the wine-cvs mailing list