Detlef Riekenberg : winspool: Implement DeletePortA.

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


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

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

winspool: Implement DeletePortA.

---

 dlls/winspool.drv/info.c |   32 ++++++++++++++++++++++++++------
 1 files changed, 26 insertions(+), 6 deletions(-)

diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c
index 67303ef..d945b0b 100644
--- a/dlls/winspool.drv/info.c
+++ b/dlls/winspool.drv/info.c
@@ -2147,13 +2147,33 @@ BOOL WINAPI DeleteMonitorW (LPWSTR pName
  * See DeletePortW.
  *
  */
-BOOL WINAPI
-DeletePortA (LPSTR pName, HWND hWnd, LPSTR pPortName)
+BOOL WINAPI DeletePortA (LPSTR pName, HWND hWnd, LPSTR pPortName)
 {
-    FIXME("(%s,%p,%s):stub\n",debugstr_a(pName),hWnd,
-          debugstr_a(pPortName));
-    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-    return FALSE;
+    LPWSTR  nameW = NULL;
+    LPWSTR  portW = NULL;
+    INT     len;
+    DWORD   res;
+
+    TRACE("(%s, %p, %s)\n", debugstr_a(pName), hWnd, debugstr_a(pPortName));
+
+    /* convert servername to unicode */
+    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);
+    }
+
+    /* convert portname to unicode */
+    if (pPortName) {
+        len = MultiByteToWideChar(CP_ACP, 0, pPortName, -1, NULL, 0);
+        portW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
+        MultiByteToWideChar(CP_ACP, 0, pPortName, -1, portW, len);
+    }
+
+    res = DeletePortW(nameW, hWnd, portW);
+    HeapFree(GetProcessHeap(), 0, nameW);
+    HeapFree(GetProcessHeap(), 0, portW);
+    return res;
 }
 
 /******************************************************************




More information about the wine-cvs mailing list