comdlg32: Fix regression since the full Path was returned in
pDriverPath
Detlef Riekenberg
wine.dev at web.de
Fri Aug 10 04:18:19 CDT 2007
comdlg32 did not handle the full Path in pDriverPath
Changelog:
comdlg32: Fix regression since the full Path is returned in pDriverPath
Depends on my other Patches for comdlg32
--
By by ... Detlef
-------------- next part --------------
>From 403ff2f53147b687aee96137ad4967d7c77835a5 Mon Sep 17 00:00:00 2001
From: Detlef Riekenberg <wine.dev at web.de>
Date: Fri, 10 Aug 2007 11:13:03 +0200
Subject: [PATCH] comdlg32: Fix regression since the full Path is returned in pDriverPath
---
dlls/comdlg32/printdlg.c | 15 +++++++++------
1 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/dlls/comdlg32/printdlg.c b/dlls/comdlg32/printdlg.c
index 2bd5650..41e4d02 100644
--- a/dlls/comdlg32/printdlg.c
+++ b/dlls/comdlg32/printdlg.c
@@ -36,6 +36,7 @@ #include "winspool.h"
#include "winerror.h"
#include "wine/debug.h"
+#include "wine/unicode.h"
#include "commdlg.h"
#include "dlgs.h"
@@ -195,7 +196,8 @@ static BOOL PRINTDLG_CreateDevNames(HGLO
char buf[260];
DWORD dwBufLen = sizeof(buf);
- size = strlen(DeviceDriverName) + 1
+ /* DeviceDriverName is a full Path */
+ size = strlen(strrchr(DeviceDriverName, '\\') +1) + 1
+ strlen(DeviceName) + 1
+ strlen(OutputPort) + 1
+ sizeof(DEVNAMES);
@@ -211,10 +213,10 @@ static BOOL PRINTDLG_CreateDevNames(HGLO
lpDevNames = (LPDEVNAMES) pDevNamesSpace;
pTempPtr = pDevNamesSpace + sizeof(DEVNAMES);
- strcpy(pTempPtr, DeviceDriverName);
+ strcpy(pTempPtr, strrchr(DeviceDriverName, '\\') +1);
lpDevNames->wDriverOffset = pTempPtr - pDevNamesSpace;
- pTempPtr += strlen(DeviceDriverName) + 1;
+ pTempPtr += lstrlenA(pTempPtr) + 1;
strcpy(pTempPtr, DeviceName);
lpDevNames->wDeviceOffset = pTempPtr - pDevNamesSpace;
@@ -238,7 +240,8 @@ static BOOL PRINTDLG_CreateDevNamesW(HGL
WCHAR bufW[260];
DWORD dwBufLen = sizeof(bufW) / sizeof(WCHAR);
- size = sizeof(WCHAR)*lstrlenW(DeviceDriverName) + 2
+ /* DeviceDriverName is a full Path */
+ size = sizeof(WCHAR)*lstrlenW(strrchrW(DeviceDriverName, '\\') +1) + 2
+ sizeof(WCHAR)*lstrlenW(DeviceName) + 2
+ sizeof(WCHAR)*lstrlenW(OutputPort) + 2
+ sizeof(DEVNAMES);
@@ -254,10 +257,10 @@ static BOOL PRINTDLG_CreateDevNamesW(HGL
lpDevNames = (LPDEVNAMES) pDevNamesSpace;
pTempPtr = (LPWSTR)((LPDEVNAMES)pDevNamesSpace + 1);
- lstrcpyW(pTempPtr, DeviceDriverName);
+ lstrcpyW(pTempPtr, strrchrW(DeviceDriverName, '\\') +1);
lpDevNames->wDriverOffset = pTempPtr - pDevNamesSpace;
- pTempPtr += lstrlenW(DeviceDriverName) + 1;
+ pTempPtr += lstrlenW(pTempPtr) + 1;
lstrcpyW(pTempPtr, DeviceName);
lpDevNames->wDeviceOffset = pTempPtr - pDevNamesSpace;
--
1.4.1
More information about the wine-patches
mailing list