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