[PATCH 7/8] comdlg32: Return a device context, when requested
Detlef Riekenberg
wine.dev at web.de
Mon Feb 20 06:55:39 CST 2012
--
By by ... Detlef
---
dlls/comdlg32/printdlg.c | 28 ++++++++++++++++++++++++++--
1 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/dlls/comdlg32/printdlg.c b/dlls/comdlg32/printdlg.c
index 229c7aa..1a93a61 100644
--- a/dlls/comdlg32/printdlg.c
+++ b/dlls/comdlg32/printdlg.c
@@ -4002,7 +4002,19 @@ HRESULT WINAPI PrintDlgExA(LPPRINTDLGEXA lppd)
hr = E_FAIL;
lppd->hDevMode = update_devmode_handleA(lppd->hDevMode, dm);
- if (!lppd->hDevMode)
+ if (!hr && lppd->hDevMode) {
+ if (lppd->Flags & PD_RETURNDC) {
+ lppd->hDC = CreateDCA(dbuf->pDriverPath, pbuf->pPrinterName, pbuf->pPortName, dm);
+ if (!lppd->hDC)
+ hr = E_FAIL;
+ }
+ else if (lppd->Flags & PD_RETURNIC) {
+ lppd->hDC = CreateICA(dbuf->pDriverPath, pbuf->pPrinterName, pbuf->pPortName, dm);
+ if (!lppd->hDC)
+ hr = E_FAIL;
+ }
+ }
+ else
hr = E_FAIL;
HeapFree(GetProcessHeap(), 0, pbuf);
@@ -4111,7 +4123,19 @@ HRESULT WINAPI PrintDlgExW(LPPRINTDLGEXW lppd)
hr = E_FAIL;
lppd->hDevMode = update_devmode_handleW(lppd->hDevMode, dm);
- if (!lppd->hDevMode)
+ if (!hr && lppd->hDevMode) {
+ if (lppd->Flags & PD_RETURNDC) {
+ lppd->hDC = CreateDCW(dbuf->pDriverPath, pbuf->pPrinterName, pbuf->pPortName, dm);
+ if (!lppd->hDC)
+ hr = E_FAIL;
+ }
+ else if (lppd->Flags & PD_RETURNIC) {
+ lppd->hDC = CreateICW(dbuf->pDriverPath, pbuf->pPrinterName, pbuf->pPortName, dm);
+ if (!lppd->hDC)
+ hr = E_FAIL;
+ }
+ }
+ else
hr = E_FAIL;
HeapFree(GetProcessHeap(), 0, pbuf);
--
1.7.5.4
More information about the wine-patches
mailing list