[1/3] include: Synchronize DEVMODE layout with PSDK
Dmitry Timoshkov
dmitry at codeweavers.com
Thu Nov 1 01:22:11 CDT 2007
Hello,
Changelog:
[1/3] include: Synchronize DEVMODE layout with PSDK.
---
dlls/comdlg32/printdlg.c | 26 +++++++++++++-------------
dlls/comdlg32/printdlg16.c | 4 ++--
dlls/wineps.drv/driver.c | 22 +++++++++++-----------
dlls/wineps.drv/init.c | 20 +++++++++++---------
dlls/wineps.drv/ps.c | 6 +++---
dlls/winspool.drv/info.c | 10 +++++-----
include/wingdi.h | 38 ++++++++++++++++++++++++++------------
programs/cmdlgtst/cmdlgtst.c | 10 +++++-----
8 files changed, 76 insertions(+), 60 deletions(-)
diff --git a/dlls/comdlg32/printdlg.c b/dlls/comdlg32/printdlg.c
index e6c22cd..39ac750 100644
--- a/dlls/comdlg32/printdlg.c
+++ b/dlls/comdlg32/printdlg.c
@@ -354,7 +354,7 @@ static BOOL PRINTDLG_UpdatePrintDlgA(HWND hDlg,
lpdm->dmCollate =
(IsDlgButtonChecked(hDlg, chx2) == BST_CHECKED);
if (lpdm->dmFields & DM_COPIES)
- lpdm->dmCopies = GetDlgItemInt(hDlg, edt3, NULL, FALSE);
+ lpdm->u1.s1.dmCopies = GetDlgItemInt(hDlg, edt3, NULL, FALSE);
} else {
if (IsDlgButtonChecked(hDlg, chx2) == BST_CHECKED)
lppd->Flags |= PD_COLLATE;
@@ -437,7 +437,7 @@ static BOOL PRINTDLG_UpdatePrintDlgW(HWND hDlg,
lpdm->dmCollate =
(IsDlgButtonChecked(hDlg, chx2) == BST_CHECKED);
if (lpdm->dmFields & DM_COPIES)
- lpdm->dmCopies = GetDlgItemInt(hDlg, edt3, NULL, FALSE);
+ lpdm->u1.s1.dmCopies = GetDlgItemInt(hDlg, edt3, NULL, FALSE);
} else {
if (IsDlgButtonChecked(hDlg, chx2) == BST_CHECKED)
lppd->Flags |= PD_COLLATE;
@@ -604,7 +604,7 @@ static BOOL PRINTDLG_SetUpPaperComboBoxA(HWND hDlg,
if (nIDComboBox == cmb2)
dm->u1.s1.dmPaperSize = oldWord;
else
- dm->dmDefaultSource = oldWord;
+ dm->u1.s1.dmDefaultSource = oldWord;
}
}
else {
@@ -616,7 +616,7 @@ static BOOL PRINTDLG_SetUpPaperComboBoxA(HWND hDlg,
if (nIDComboBox == cmb2)
oldWord = dm->u1.s1.dmPaperSize;
else
- oldWord = dm->dmDefaultSource;
+ oldWord = dm->u1.s1.dmDefaultSource;
}
}
@@ -714,7 +714,7 @@ static BOOL PRINTDLG_SetUpPaperComboBoxW(HWND hDlg,
if (nIDComboBox == cmb2)
dm->u1.s1.dmPaperSize = oldWord;
else
- dm->dmDefaultSource = oldWord;
+ dm->u1.s1.dmDefaultSource = oldWord;
}
}
else {
@@ -726,7 +726,7 @@ static BOOL PRINTDLG_SetUpPaperComboBoxW(HWND hDlg,
if (nIDComboBox == cmb2)
oldWord = dm->u1.s1.dmPaperSize;
else
- oldWord = dm->dmDefaultSource;
+ oldWord = dm->u1.s1.dmDefaultSource;
}
}
@@ -976,7 +976,7 @@ BOOL PRINTDLG_ChangePrinterA(HWND hDlg, char *name,
if (lppd->hDevMode == 0)
copies = lppd->nCopies;
else
- copies = lpdm->dmCopies;
+ copies = lpdm->u1.s1.dmCopies;
if(copies == 0) copies = 1;
else if(copies < 0) copies = MAX_COPIES;
SetDlgItemInt(hDlg, edt3, copies, FALSE);
@@ -1125,7 +1125,7 @@ static BOOL PRINTDLG_ChangePrinterW(HWND hDlg, WCHAR *name,
if (lppd->hDevMode == 0)
copies = lppd->nCopies;
else
- copies = lpdm->dmCopies;
+ copies = lpdm->u1.s1.dmCopies;
if(copies == 0) copies = 1;
else if(copies < 0) copies = MAX_COPIES;
SetDlgItemInt(hDlg, edt3, copies, FALSE);
@@ -1564,7 +1564,7 @@ LRESULT PRINTDLG_WMCommandA(HWND hDlg, WPARAM wParam,
{
DWORD Sel = SendDlgItemMessageA(hDlg, cmb3, CB_GETCURSEL, 0, 0);
if(Sel != CB_ERR)
- lpdm->dmDefaultSource = SendDlgItemMessageA(hDlg, cmb3,
+ lpdm->u1.s1.dmDefaultSource = SendDlgItemMessageA(hDlg, cmb3,
CB_GETITEMDATA, Sel,
0);
}
@@ -1728,7 +1728,7 @@ static LRESULT PRINTDLG_WMCommandW(HWND hDlg, WPARAM wParam,
{
DWORD Sel = SendDlgItemMessageW(hDlg, cmb3, CB_GETCURSEL, 0, 0);
if(Sel != CB_ERR)
- lpdm->dmDefaultSource = SendDlgItemMessageW(hDlg, cmb3,
+ lpdm->u1.s1.dmDefaultSource = SendDlgItemMessageW(hDlg, cmb3,
CB_GETITEMDATA, Sel,
0);
}
@@ -2531,7 +2531,7 @@ PRINTDLG_PS_UpdateDlgStructA(HWND hDlg, PageSetupDataA *pda) {
paperword = SendDlgItemMessageA(hDlg,cmb1,CB_GETITEMDATA,
SendDlgItemMessageA(hDlg, cmb1, CB_GETCURSEL, 0, 0), 0);
if (paperword != CB_ERR)
- dm->dmDefaultSource = paperword;
+ dm->u1.s1.dmDefaultSource = paperword;
else
FIXME("could not get dialog text for papersize cmbbox?\n");
@@ -2836,7 +2836,7 @@ PRINTDLG_PS_WMCommandA(
case cmb3:
if(msg == CBN_SELCHANGE){
DEVMODEA *dm = GlobalLock(pda->pdlg.hDevMode);
- dm->dmDefaultSource = SendDlgItemMessageA(hDlg, cmb3,CB_GETITEMDATA,
+ dm->u1.s1.dmDefaultSource = SendDlgItemMessageA(hDlg, cmb3,CB_GETITEMDATA,
SendDlgItemMessageA(hDlg, cmb3, CB_GETCURSEL, 0, 0), 0);
GlobalUnlock(pda->pdlg.hDevMode);
}
@@ -3228,7 +3228,7 @@ PRINTDLG_PageDlgProcA(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
PRINTDLG_PS_ChangePrinterA(hDlg, pda);
dm = GlobalLock(pda->pdlg.hDevMode);
if(dm){
- dm->dmDefaultSource = 15; /*FIXME: Automatic select. Does it always 15 at start? */
+ dm->u1.s1.dmDefaultSource = 15; /*FIXME: Automatic select. Does it always 15 at start? */
PRINTDLG_PaperSizeA(&(pda->pdlg), dm->u1.s1.dmPaperSize, &pda->curdlg.ptPaperSize);
GlobalUnlock(pda->pdlg.hDevMode);
pda->curdlg.ptPaperSize.x = _c_10mm2size(pda->dlga, pda->curdlg.ptPaperSize.x);
diff --git a/dlls/comdlg32/printdlg16.c b/dlls/comdlg32/printdlg16.c
index a4d2244..b23ef0b 100644
--- a/dlls/comdlg32/printdlg16.c
+++ b/dlls/comdlg32/printdlg16.c
@@ -148,13 +148,13 @@ static LRESULT PRINTDLG_WMInitDialog16(HWND hDlg, WPARAM wParam, PRINT_PTRA16* p
pdm = GlobalLock16(lppd->hDevMode);
if(pdm) {
- switch (pdm->dmPrintQuality) {
+ switch (pdm->u1.s1.dmPrintQuality) {
case DMRES_HIGH : strcpy(buf,"High");break;
case DMRES_MEDIUM : strcpy(buf,"Medium");break;
case DMRES_LOW : strcpy(buf,"Low");break;
case DMRES_DRAFT : strcpy(buf,"Draft");break;
case 0 : strcpy(buf,"Default");break;
- default : sprintf(buf,"%ddpi",pdm->dmPrintQuality);break;
+ default : sprintf(buf,"%ddpi",pdm->u1.s1.dmPrintQuality);break;
}
GlobalUnlock16(lppd->hDevMode);
} else
diff --git a/dlls/wineps.drv/driver.c b/dlls/wineps.drv/driver.c
index 4981b14..b4f98fb 100644
--- a/dlls/wineps.drv/driver.c
+++ b/dlls/wineps.drv/driver.c
@@ -104,35 +104,35 @@ void PSDRV_MergeDevmodes(PSDRV_DEVMODEA *dm1, PSDRV_DEVMODEA *dm2,
}
if(dm2->dmPublic.dmFields & DM_SCALE) {
- dm1->dmPublic.dmScale = dm2->dmPublic.dmScale;
- TRACE("Changing Scale to %d\n", dm2->dmPublic.dmScale);
+ dm1->dmPublic.u1.s1.dmScale = dm2->dmPublic.u1.s1.dmScale;
+ TRACE("Changing Scale to %d\n", dm2->dmPublic.u1.s1.dmScale);
}
if(dm2->dmPublic.dmFields & DM_COPIES) {
- dm1->dmPublic.dmCopies = dm2->dmPublic.dmCopies;
- TRACE("Changing Copies to %d\n", dm2->dmPublic.dmCopies);
+ dm1->dmPublic.u1.s1.dmCopies = dm2->dmPublic.u1.s1.dmCopies;
+ TRACE("Changing Copies to %d\n", dm2->dmPublic.u1.s1.dmCopies);
}
if(dm2->dmPublic.dmFields & DM_DEFAULTSOURCE) {
INPUTSLOT *slot;
for(slot = pi->ppd->InputSlots; slot; slot = slot->next) {
- if(slot->WinBin == dm2->dmPublic.dmDefaultSource)
+ if(slot->WinBin == dm2->dmPublic.u1.s1.dmDefaultSource)
break;
}
if(slot) {
- dm1->dmPublic.dmDefaultSource = dm2->dmPublic.dmDefaultSource;
+ dm1->dmPublic.u1.s1.dmDefaultSource = dm2->dmPublic.u1.s1.dmDefaultSource;
TRACE("Changing bin to '%s'\n", slot->FullName);
} else {
TRACE("Trying to change to unsupported bin %d\n",
- dm2->dmPublic.dmDefaultSource);
+ dm2->dmPublic.u1.s1.dmDefaultSource);
}
}
if (dm2->dmPublic.dmFields & DM_DEFAULTSOURCE )
- dm1->dmPublic.dmDefaultSource = dm2->dmPublic.dmDefaultSource;
+ dm1->dmPublic.u1.s1.dmDefaultSource = dm2->dmPublic.u1.s1.dmDefaultSource;
if (dm2->dmPublic.dmFields & DM_PRINTQUALITY )
- dm1->dmPublic.dmPrintQuality = dm2->dmPublic.dmPrintQuality;
+ dm1->dmPublic.u1.s1.dmPrintQuality = dm2->dmPublic.u1.s1.dmPrintQuality;
if (dm2->dmPublic.dmFields & DM_COLOR )
dm1->dmPublic.dmColor = dm2->dmPublic.dmColor;
if (dm2->dmPublic.dmFields & DM_DUPLEX && pi->ppd->DefaultDuplex && pi->ppd->DefaultDuplex->WinDuplex != 0)
@@ -152,11 +152,11 @@ void PSDRV_MergeDevmodes(PSDRV_DEVMODEA *dm1, PSDRV_DEVMODEA *dm2,
if (dm2->dmPublic.dmFields & DM_PELSHEIGHT )
dm1->dmPublic.dmPelsHeight = dm2->dmPublic.dmPelsHeight;
if (dm2->dmPublic.dmFields & DM_DISPLAYFLAGS )
- dm1->dmPublic.dmDisplayFlags = dm2->dmPublic.dmDisplayFlags;
+ dm1->dmPublic.u2.dmDisplayFlags = dm2->dmPublic.u2.dmDisplayFlags;
if (dm2->dmPublic.dmFields & DM_DISPLAYFREQUENCY )
dm1->dmPublic.dmDisplayFrequency = dm2->dmPublic.dmDisplayFrequency;
if (dm2->dmPublic.dmFields & DM_POSITION )
- dm1->dmPublic.u1.dmPosition = dm2->dmPublic.u1.dmPosition;
+ dm1->dmPublic.u1.s2.dmPosition = dm2->dmPublic.u1.s2.dmPosition;
if (dm2->dmPublic.dmFields & DM_LOGPIXELS )
dm1->dmPublic.dmLogPixels = dm2->dmPublic.dmLogPixels;
if (dm2->dmPublic.dmFields & DM_ICMMETHOD )
diff --git a/dlls/wineps.drv/init.c b/dlls/wineps.drv/init.c
index 0c4f539..0024640 100644
--- a/dlls/wineps.drv/init.c
+++ b/dlls/wineps.drv/init.c
@@ -65,13 +65,13 @@ static const PSDRV_DEVMODEA DefaultDevmode =
/* dmOrientation */ DMORIENT_PORTRAIT,
/* dmPaperSize */ DMPAPER_LETTER,
/* dmPaperLength */ 2794,
-/* dmPaperWidth */ 2159
- }
- },
+/* dmPaperWidth */ 2159,
/* dmScale */ 100, /* ?? */
/* dmCopies */ 1,
/* dmDefaultSource */ DMBIN_AUTO,
-/* dmPrintQuality */ 0,
+/* dmPrintQuality */ 0
+ }
+ },
/* dmColor */ DMCOLOR_COLOR,
/* dmDuplex */ DMDUP_SIMPLEX,
/* dmYResolution */ 0,
@@ -82,7 +82,9 @@ static const PSDRV_DEVMODEA DefaultDevmode =
/* dmBitsPerPel */ 0,
/* dmPelsWidth */ 0,
/* dmPelsHeight */ 0,
-/* dmDisplayFlags */ 0,
+ { /* u2 */
+/* dmDisplayFlags */ 0
+ },
/* dmDisplayFrequency */ 0,
/* dmICMMethod */ 0,
/* dmICMIntent */ 0,
@@ -423,10 +425,10 @@ INT PSDRV_GetDeviceCaps( PSDRV_PDEVICE *physDev, INT cap )
return DT_RASPRINTER;
case HORZSIZE:
return MulDiv(physDev->horzSize, 100,
- physDev->Devmode->dmPublic.dmScale);
+ physDev->Devmode->dmPublic.u1.s1.dmScale);
case VERTSIZE:
return MulDiv(physDev->vertSize, 100,
- physDev->Devmode->dmPublic.dmScale);
+ physDev->Devmode->dmPublic.u1.s1.dmScale);
case HORZRES:
case DESKTOPHORZRES:
return physDev->horzRes;
@@ -475,10 +477,10 @@ INT PSDRV_GetDeviceCaps( PSDRV_PDEVICE *physDev, INT cap )
(double)physDev->pi->ppd->DefaultResolution );
case LOGPIXELSX:
return MulDiv(physDev->logPixelsX,
- physDev->Devmode->dmPublic.dmScale, 100);
+ physDev->Devmode->dmPublic.u1.s1.dmScale, 100);
case LOGPIXELSY:
return MulDiv(physDev->logPixelsY,
- physDev->Devmode->dmPublic.dmScale, 100);
+ physDev->Devmode->dmPublic.u1.s1.dmScale, 100);
case SIZEPALETTE:
return 0;
case NUMRESERVED:
diff --git a/dlls/wineps.drv/ps.c b/dlls/wineps.drv/ps.c
index a856bd4..fdebf46 100644
--- a/dlls/wineps.drv/ps.c
+++ b/dlls/wineps.drv/ps.c
@@ -348,14 +348,14 @@ INT PSDRV_WriteHeader( PSDRV_PDEVICE *physDev, LPCSTR title )
WriteSpool16( physDev->job.hJob, (LPSTR)psbeginsetup, strlen(psbeginsetup) );
- if(physDev->Devmode->dmPublic.dmCopies > 1) {
+ if(physDev->Devmode->dmPublic.u1.s1.dmCopies > 1) {
char copies_buf[100];
- sprintf(copies_buf, "mark {\n << /NumCopies %d >> setpagedevice\n} stopped cleartomark\n", physDev->Devmode->dmPublic.dmCopies);
+ sprintf(copies_buf, "mark {\n << /NumCopies %d >> setpagedevice\n} stopped cleartomark\n", physDev->Devmode->dmPublic.u1.s1.dmCopies);
WriteSpool16(physDev->job.hJob, copies_buf, strlen(copies_buf));
}
for(slot = physDev->pi->ppd->InputSlots; slot; slot = slot->next) {
- if(slot->WinBin == physDev->Devmode->dmPublic.dmDefaultSource) {
+ if(slot->WinBin == physDev->Devmode->dmPublic.u1.s1.dmDefaultSource) {
if(slot->InvocationString) {
PSDRV_WriteFeature(physDev->job.hJob, "*InputSlot", slot->Name,
slot->InvocationString);
diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c
index 19c9a92..e560f6a 100644
--- a/dlls/winspool.drv/info.c
+++ b/dlls/winspool.drv/info.c
@@ -3687,10 +3687,10 @@ static void WINSPOOL_GetDefaultDevMode(
dm.u1.s1.dmPaperLength = 2970;
dm.u1.s1.dmPaperWidth = 2100;
- dm.dmScale = 100;
- dm.dmCopies = 1;
- dm.dmDefaultSource = DMBIN_AUTO;
- dm.dmPrintQuality = DMRES_MEDIUM;
+ dm.u1.s1.dmScale = 100;
+ dm.u1.s1.dmCopies = 1;
+ dm.u1.s1.dmDefaultSource = DMBIN_AUTO;
+ dm.u1.s1.dmPrintQuality = DMRES_MEDIUM;
/* dm.dmColor */
/* dm.dmDuplex */
dm.dmYResolution = 300; /* 300dpi */
@@ -3701,7 +3701,7 @@ static void WINSPOOL_GetDefaultDevMode(
/* dm.dmBitsPerPel */
/* dm.dmPelsWidth */
/* dm.dmPelsHeight */
- /* dm.dmDisplayFlags */
+ /* dm.u2.dmDisplayFlags */
/* dm.dmDisplayFrequency */
/* dm.dmICMMethod */
/* dm.dmICMIntent */
diff --git a/include/wingdi.h b/include/wingdi.h
index 7d8c4a1..56e8301 100644
--- a/include/wingdi.h
+++ b/include/wingdi.h
@@ -2814,13 +2814,17 @@ typedef struct
short dmPaperSize;
short dmPaperLength;
short dmPaperWidth;
+ short dmScale;
+ short dmCopies;
+ short dmDefaultSource;
+ short dmPrintQuality;
} DUMMYSTRUCTNAME1;
- POINTL dmPosition;
+ struct {
+ POINTL dmPosition;
+ DWORD dmDisplayOrientation;
+ DWORD dmDisplayFixedOutput;
+ } DUMMYSTRUCTNAME2;
} DUMMYUNIONNAME1;
- short dmScale;
- short dmCopies;
- short dmDefaultSource;
- short dmPrintQuality;
short dmColor;
short dmDuplex;
short dmYResolution;
@@ -2831,7 +2835,10 @@ typedef struct
DWORD dmBitsPerPel;
DWORD dmPelsWidth;
DWORD dmPelsHeight;
- DWORD dmDisplayFlags;
+ union {
+ DWORD dmDisplayFlags;
+ DWORD dmNup;
+ } DUMMYUNIONNAME2;
DWORD dmDisplayFrequency;
DWORD dmICMMethod;
DWORD dmICMIntent;
@@ -2857,13 +2864,17 @@ typedef struct
short dmPaperSize;
short dmPaperLength;
short dmPaperWidth;
+ short dmScale;
+ short dmCopies;
+ short dmDefaultSource;
+ short dmPrintQuality;
} DUMMYSTRUCTNAME1;
- POINTL dmPosition;
+ struct {
+ POINTL dmPosition;
+ DWORD dmDisplayOrientation;
+ DWORD dmDisplayFixedOutput;
+ } DUMMYSTRUCTNAME2;
} DUMMYUNIONNAME1;
- short dmScale;
- short dmCopies;
- short dmDefaultSource;
- short dmPrintQuality;
short dmColor;
short dmDuplex;
short dmYResolution;
@@ -2874,7 +2885,10 @@ typedef struct
DWORD dmBitsPerPel;
DWORD dmPelsWidth;
DWORD dmPelsHeight;
- DWORD dmDisplayFlags;
+ union {
+ DWORD dmDisplayFlags;
+ DWORD dmNup;
+ } DUMMYUNIONNAME2;
DWORD dmDisplayFrequency;
DWORD dmICMMethod;
DWORD dmICMIntent;
diff --git a/programs/cmdlgtst/cmdlgtst.c b/programs/cmdlgtst/cmdlgtst.c
index a4e0151..d9ae7a9 100644
--- a/programs/cmdlgtst/cmdlgtst.c
+++ b/programs/cmdlgtst/cmdlgtst.c
@@ -498,12 +498,12 @@ static void mw_PageSetup(HWND hWnd)
OF("dmPaperSize", u1.s1.dmPaperSize, DM_PAPERSIZE);
OF("dmPaperLength", u1.s1.dmPaperLength, DM_PAPERLENGTH);
OF("dmPaperWidth", u1.s1.dmPaperWidth, DM_PAPERWIDTH);
- OF("dmScale", dmScale, DM_SCALE);
- OF("dmCopies", dmCopies, DM_COPIES);
- OF("dmDefaultSource", dmDefaultSource,DM_DEFAULTSOURCE);
- OF("dmPrintQuality", dmPrintQuality, DM_PRINTQUALITY);
+ OF("dmScale", u1.s1.dmScale, DM_SCALE);
+ OF("dmCopies", u1.s1.dmCopies, DM_COPIES);
+ OF("dmDefaultSource", u1.s1.dmDefaultSource,DM_DEFAULTSOURCE);
+ OF("dmPrintQuality", u1.s1.dmPrintQuality, DM_PRINTQUALITY);
if(dm->dmFields & DM_POSITION)
- WINE_TRACE(" dmPosition(%d, %d)\n", dm->u1.dmPosition.x, dm->u1.dmPosition.y);
+ WINE_TRACE(" dmPosition(%d, %d)\n", dm->u1.s2.dmPosition.x, dm->u1.s2.dmPosition.y);
else
WINE_TRACE(" dmPosition NOT SET!\n");
OF("dmColor", dmColor, DM_COLOR);
--
1.5.3.4
More information about the wine-patches
mailing list