[prev in list] [next in list] [prev in thread] [next in thread] 

List:       wine-devel
Subject:    [PATCH] winspool.drv: Implement AddPrintProcessorA via AddPrintProcessorW
From:       Vijay Kiran Kamuju <infyquest () gmail ! com>
Date:       2020-05-31 21:07:11
Message-ID: CACfa+K+QvhVhtOeGDp_uEh8C5p3OmFnLK0LADrUG5uZCn_=KAA () mail ! gmail ! com
[Download RAW message or body]

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=26171

Signed-off-by: Vijay Kiran Kamuju <infyquest@gmail.com>

["0001-winspool.drv-Implement-AddPrintProcessorA-via-AddPri.patch" (text/x-patch)]

From 380c638059d2d824d6a96f52b611c3a9bbb5286d Mon Sep 17 00:00:00 2001
From: Vijay Kiran Kamuju <infyquest@gmail.com>
Date: Sun, 31 May 2020 22:59:33 +0200
Subject: [PATCH] winspool.drv: Implement AddPrintProcessorA via
 AddPrintProcessorW

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=26171

Signed-off-by: Vijay Kiran Kamuju <infyquest@gmail.com>
---
 dlls/winspool.drv/info.c | 41 +++++++++++++++++++++++++++++++++++++++-
 1 file changed, 40 insertions(+), 1 deletion(-)

diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c
index 593f091c2d..7bd6635891 100644
--- a/dlls/winspool.drv/info.c
+++ b/dlls/winspool.drv/info.c
@@ -5403,9 +5403,48 @@ BOOL WINAPI AddPrinterDriverW(LPWSTR pName, DWORD level, LPBYTE pDriverInfo)
 BOOL WINAPI AddPrintProcessorA(LPSTR pName, LPSTR pEnvironment, LPSTR pPathName,
                                LPSTR pPrintProcessorName)
 {
+    LPWSTR nameW = NULL;
+    LPWSTR envW = NULL;
+    LPWSTR pathW = NULL;
+    LPWSTR processorW = NULL;
+    INT    len;
+    BOOL   ret;
+
     FIXME("(%s,%s,%s,%s): stub\n", debugstr_a(pName), debugstr_a(pEnvironment),
           debugstr_a(pPathName), debugstr_a(pPrintProcessorName));
-    return FALSE;
+
+    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 (pEnvironment) {
+        len = MultiByteToWideChar(CP_ACP, 0, pEnvironment, -1, NULL, 0);
+        envW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
+        MultiByteToWideChar(CP_ACP, 0, pEnvironment, -1, envW, len);
+    }
+
+    if (pPathName) {
+        len = MultiByteToWideChar(CP_ACP, 0, pPathName, -1, NULL, 0);
+        pathW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
+        MultiByteToWideChar(CP_ACP, 0, pPathName, -1, pathW, len);
+    }
+
+    if (pPrintProcessorName) {
+        len = MultiByteToWideChar(CP_ACP, 0, pPrintProcessorName, -1, NULL, 0);
+        processorW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
+        MultiByteToWideChar(CP_ACP, 0, pPrintProcessorName, -1, processorW, len);
+    }
+
+    ret = AddPrintProcessorW(nameW, envW, pathW, processorW);
+
+    HeapFree(GetProcessHeap(), 0, nameW);
+    HeapFree(GetProcessHeap(), 0, envW);
+    HeapFree(GetProcessHeap(), 0, pathW);
+    HeapFree(GetProcessHeap(), 0, processorW);
+
+    return ret;
 }
 
 /*****************************************************************************
-- 
2.26.2



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic