This is last patch that should create any new files. After this almost
every Win16 function can be compiled out although quite a few of the
internal and Win32 functions still call the Win16 api. I am starting to
work on this now.
Changelog:
Split Win16/32 print dialog support.
Index: Makefile.in
===================================================================
RCS file: /home/wine/wine/dlls/commdlg/Makefile.in,v
retrieving revision 1.31
diff -u -r1.31 Makefile.in
--- Makefile.in 16 Jun 2003 01:19:16 -0000 1.31
+++ Makefile.in 19 Jun 2003 15:40:15 -0000
@@ -28,7 +28,8 @@
colordlg16.c \
filedlg16.c \
finddlg.c \
- fontdlg16.c
+ fontdlg16.c \
+ printdlg16.c
RC_SRCS= rsrc.rc
Index: printdlg.c
===================================================================
RCS file: /home/wine/wine/dlls/commdlg/printdlg.c,v
retrieving revision 1.65
diff -u -r1.65 printdlg.c
--- printdlg.c 18 Jun 2003 03:30:41 -0000 1.65
+++ printdlg.c 19 Jun 2003 15:39:11 -0000
@@ -43,6 +43,7 @@
WINE_DEFAULT_DEBUG_CHANNEL(commdlg);
#include "cdlg.h"
+#include "printdlg.h"
/* This PRINTDLGA internal structure stores
* pointers to several throughout useful structures.
@@ -50,23 +51,6 @@
*/
typedef struct
{
- LPDEVMODEA lpDevMode;
- struct {
- LPPRINTDLGA lpPrintDlg;
- LPPRINTDLG16 lpPrintDlg16;
- } dlg;
- LPPRINTER_INFO_2A lpPrinterInfo;
- LPDRIVER_INFO_3A lpDriverInfo;
- UINT HelpMessageID;
- HICON hCollateIcon; /* PrintDlg only */
- HICON hNoCollateIcon; /* PrintDlg only */
- HICON hPortraitIcon; /* PrintSetupDlg only */
- HICON hLandscapeIcon; /* PrintSetupDlg only */
- HWND hwndUpDown;
-} PRINT_PTRA;
-
-typedef struct
-{
LPDEVMODEW lpDevMode;
struct {
LPPRINTDLGW lpPrintDlg;
@@ -145,7 +129,7 @@
*
* Returns TRUE on success else FALSE
*/
-static BOOL PRINTDLG_GetDefaultPrinterNameA(LPSTR buf, DWORD len)
+BOOL PRINTDLG_GetDefaultPrinterNameA(LPSTR buf, DWORD len)
{
char *ptr;
@@ -215,7 +199,7 @@
*
* Returns number of printers added to list.
*/
-static INT PRINTDLG_SetUpPrinterListComboA(HWND hDlg, UINT id, LPCSTR name)
+INT PRINTDLG_SetUpPrinterListComboA(HWND hDlg, UINT id, LPCSTR name)
{
DWORD needed, num;
INT i;
@@ -1005,7 +989,7 @@
* PRINTDLG_ChangePrinter
*
*/
-static BOOL PRINTDLG_ChangePrinterA(HWND hDlg, char *name,
+BOOL PRINTDLG_ChangePrinterA(HWND hDlg, char *name,
PRINT_PTRA *PrintStructures)
{
LPPRINTDLGA lppd = PrintStructures->dlg.lpPrintDlg;
@@ -1540,127 +1524,10 @@
return TRUE;
}
-
-/***********************************************************************
- * PRINTDLG_WMInitDialog [internal]
- */
-static LRESULT PRINTDLG_WMInitDialog16(HWND hDlg, WPARAM wParam,
- PRINT_PTRA* PrintStructures)
-{
- LPPRINTDLG16 lppd = PrintStructures->dlg.lpPrintDlg16;
- DEVNAMES *pdn;
- DEVMODEA *pdm;
- char *name = NULL;
- UINT comboID = (lppd->Flags & PD_PRINTSETUP) ? cmb1 : cmb4;
-
- /* load Collate ICONs */
- PrintStructures->hCollateIcon =
- LoadIconA(COMDLG32_hInstance, "PD32_COLLATE");
- PrintStructures->hNoCollateIcon =
- LoadIconA(COMDLG32_hInstance, "PD32_NOCOLLATE");
- if(PrintStructures->hCollateIcon == 0 ||
- PrintStructures->hNoCollateIcon == 0) {
- ERR("no icon in resourcefile\n");
- COMDLG32_SetCommDlgExtendedError(CDERR_LOADRESFAILURE);
- EndDialog(hDlg, FALSE);
- }
-
- /* load Paper Orientation ICON */
- /* FIXME: not implemented yet */
-
- /*
- * if lppd->Flags PD_SHOWHELP is specified, a HELPMESGSTRING message
- * must be registered and the Help button must be shown.
- */
- if (lppd->Flags & PD_SHOWHELP) {
- if((PrintStructures->HelpMessageID =
- RegisterWindowMessageA(HELPMSGSTRINGA)) == 0) {
- COMDLG32_SetCommDlgExtendedError(CDERR_REGISTERMSGFAIL);
- return FALSE;
- }
- } else
- PrintStructures->HelpMessageID = 0;
-
- if (!(lppd->Flags & PD_PRINTSETUP)) {
- /* We have a print quality combo box. What shall we do? */
- if (GetDlgItem(hDlg,cmb1)) {
- char buf [20];
-
- FIXME("Print quality only displaying currently.\n");
-
- pdm = GlobalLock16(lppd->hDevMode);
- if(pdm) {
- switch (pdm->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;
- }
- GlobalUnlock16(lppd->hDevMode);
- } else
- strcpy(buf,"Default");
- SendDlgItemMessageA(hDlg,cmb1,CB_ADDSTRING,0,(LPARAM)buf);
- SendDlgItemMessageA(hDlg,cmb1,CB_SETCURSEL,0,0);
- EnableWindow(GetDlgItem(hDlg,cmb1),FALSE);
- }
- }
-
- /* FIXME: I allow more freedom than either Win95 or WinNT,
- * which do not agree to what errors should be thrown or not
- * in case nToPage or nFromPage is out-of-range.
- */
- if (lppd->nMaxPage < lppd->nMinPage)
- lppd->nMaxPage = lppd->nMinPage;
- if (lppd->nMinPage == lppd->nMaxPage)
- lppd->Flags |= PD_NOPAGENUMS;
- if (lppd->nToPage < lppd->nMinPage)
- lppd->nToPage = lppd->nMinPage;
- if (lppd->nToPage > lppd->nMaxPage)
- lppd->nToPage = lppd->nMaxPage;
- if (lppd->nFromPage < lppd->nMinPage)
- lppd->nFromPage = lppd->nMinPage;
- if (lppd->nFromPage > lppd->nMaxPage)
- lppd->nFromPage = lppd->nMaxPage;
-
- /* If the printer combo box is in the dialog, fill it */
- if (GetDlgItem(hDlg,comboID)) {
- /* Fill Combobox
- */
- pdn = GlobalLock16(lppd->hDevNames);
- pdm = GlobalLock16(lppd->hDevMode);
- if(pdn)
- name = (char*)pdn + pdn->wDeviceOffset;
- else if(pdm)
- name = pdm->dmDeviceName;
- PRINTDLG_SetUpPrinterListComboA(hDlg, comboID, name);
- if(pdm) GlobalUnlock16(lppd->hDevMode);
- if(pdn) GlobalUnlock16(lppd->hDevNames);
-
- /* Now find selected printer and update rest of dlg */
- name = HeapAlloc(GetProcessHeap(),0,256);
- if (GetDlgItemTextA(hDlg, comboID, name, 255))
- PRINTDLG_ChangePrinterA(hDlg, name, PrintStructures);
- } else {
- /* else just use default printer */
- char name[200];
- BOOL ret = PRINTDLG_GetDefaultPrinterNameA(name, sizeof(name));
-
- if (ret)
- PRINTDLG_ChangePrinterA(hDlg, name, PrintStructures);
- else
- FIXME("No default printer found, expect problems!\n");
- }
- HeapFree(GetProcessHeap(),0,name);
-
- return TRUE;
-}
-
/***********************************************************************
* PRINTDLG_WMCommand [internal]
*/
-static LRESULT PRINTDLG_WMCommandA(HWND hDlg, WPARAM wParam,
+LRESULT PRINTDLG_WMCommandA(HWND hDlg, WPARAM wParam,
LPARAM lParam, PRINT_PTRA* PrintStructures)
{
LPPRINTDLGA lppd = PrintStructures->dlg.lpPrintDlg;
@@ -3462,98 +3329,6 @@
);
return bRet;
}
-
-/**********************************************************************
- *
- * 16 bit commdlg
- */
-
-/***********************************************************************
- * PrintDlgProc (COMMDLG.21)
- */
-BOOL16 CALLBACK PrintDlgProc16(HWND16 hDlg16, UINT16 uMsg, WPARAM16 wParam,
- LPARAM lParam)
-{
- HWND hDlg = HWND_32(hDlg16);
- PRINT_PTRA* PrintStructures;
- BOOL16 res = FALSE;
-
- if (uMsg!=WM_INITDIALOG) {
- PrintStructures = (PRINT_PTRA*)GetPropA(hDlg,"__WINE_PRINTDLGDATA");
- if (!PrintStructures)
- return FALSE;
- } else {
- PrintStructures = (PRINT_PTRA*) lParam;
- SetPropA(hDlg,"__WINE_PRINTDLGDATA",PrintStructures);
- res = PRINTDLG_WMInitDialog16(hDlg, wParam, PrintStructures);
-
- if(PrintStructures->dlg.lpPrintDlg16->Flags & PD_ENABLEPRINTHOOK) {
- res = CallWindowProc16(
- (WNDPROC16)PrintStructures->dlg.lpPrintDlg16->lpfnPrintHook,
- hDlg16, uMsg, wParam, (LPARAM)PrintStructures->dlg.lpPrintDlg16
- );
- }
- return res;
- }
-
- if(PrintStructures->dlg.lpPrintDlg16->Flags & PD_ENABLEPRINTHOOK) {
- res = CallWindowProc16(
- (WNDPROC16)PrintStructures->dlg.lpPrintDlg16->lpfnPrintHook,
- hDlg16,uMsg, wParam, lParam
- );
- if(LOWORD(res)) return res;
- }
-
- switch (uMsg) {
- case WM_COMMAND: {
- /* We need to map those for the 32bit window procedure, compare
- * with 32Ato16 mapper in winproc.c
- */
- return PRINTDLG_WMCommandA(
- hDlg,
- MAKEWPARAM(wParam,HIWORD(lParam)),
- LOWORD(lParam),
- PrintStructures
- );
- }
- case WM_DESTROY:
- DestroyIcon(PrintStructures->hCollateIcon);
- DestroyIcon(PrintStructures->hNoCollateIcon);
- /* FIXME: don't forget to delete the paper orientation icons here! */
-
- return FALSE;
- }
- return res;
-}
-
-
-/***********************************************************************
- * PrintSetupDlgProc (COMMDLG.22)
- */
-BOOL16 CALLBACK PrintSetupDlgProc16(HWND16 hWnd16, UINT16 wMsg, WPARAM16 wParam,
- LPARAM lParam)
-{
- HWND hWnd = HWND_32(hWnd16);
- switch (wMsg)
- {
- case WM_INITDIALOG:
- TRACE("WM_INITDIALOG lParam=%08lX\n", lParam);
- ShowWindow(hWnd, SW_SHOWNORMAL);
- return (TRUE);
- case WM_COMMAND:
- switch (wParam) {
- case IDOK:
- EndDialog(hWnd, TRUE);
- return(TRUE);
- case IDCANCEL:
- EndDialog(hWnd, FALSE);
- return(TRUE);
- }
- return(FALSE);
- }
- return FALSE;
-}
-
/***********************************************************************
* PrintDlgExA (COMDLG32.@)
--- /dev/null Thu Jun 19 11:40:24 2003
+++ printdlg.h Thu Jun 19 11:40:22 2003
@@ -0,0 +1,65 @@
+/*
+ * COMMDLG - Print Dialog
+ *
+ * Copyright 1994 Martin Ayotte
+ * Copyright 1996 Albrecht Kleine
+ * Copyright 1999 Klaas van Gend
+ * Copyright 2000 Huw D M Davies
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#ifndef _WINE_PRINTDLG_H
+#define _WINE_PRINTDLG_H
+
+#define NONAMELESSUNION
+#define NONAMELESSSTRUCT
+
+#include "cdlg.h"
+
+/* This PRINTDLGA internal structure stores
+ * pointers to several throughout useful structures.
+ *
+ */
+typedef struct
+{
+ LPDEVMODEA lpDevMode;
+ struct {
+ LPPRINTDLGA lpPrintDlg;
+ LPPRINTDLG16 lpPrintDlg16;
+ } dlg;
+ LPPRINTER_INFO_2A lpPrinterInfo;
+ LPDRIVER_INFO_3A lpDriverInfo;
+ UINT HelpMessageID;
+ HICON hCollateIcon; /* PrintDlg only */
+ HICON hNoCollateIcon; /* PrintDlg only */
+ HICON hPortraitIcon; /* PrintSetupDlg only */
+ HICON hLandscapeIcon; /* PrintSetupDlg only */
+ HWND hwndUpDown;
+} PRINT_PTRA;
+
+/* Internal Functions
+ * Do not Export to other Apps or Dlls.
+ */
+
+INT PRINTDLG_SetUpPrinterListComboA(HWND hDlg, UINT id, LPCSTR name);
+BOOL PRINTDLG_ChangePrinterA(HWND hDlg, char *name,
+ PRINT_PTRA *PrintStructures);
+BOOL PRINTDLG_GetDefaultPrinterNameA(LPSTR buf, DWORD len);
+LRESULT PRINTDLG_WMCommandA(HWND hDlg, WPARAM wParam,
+ LPARAM lParam, PRINT_PTRA* PrintStructures);
+
+#endif /* _WINE_PRINTDLG_H */
+
--- /dev/null Thu Jun 19 11:42:09 2003
+++ printdlg16.c Thu Jun 19 11:33:18 2003
@@ -0,0 +1,252 @@
+/*
+ * COMMDLG - Print Dialog
+ *
+ * Copyright 1994 Martin Ayotte
+ * Copyright 1996 Albrecht Kleine
+ * Copyright 1999 Klaas van Gend
+ * Copyright 2000 Huw D M Davies
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+#include <ctype.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#define NONAMELESSUNION
+#define NONAMELESSSTRUCT
+#include "windef.h"
+#include "winbase.h"
+#include "wingdi.h"
+#include "wine/wingdi16.h"
+#include "winuser.h"
+#include "wine/winuser16.h"
+#include "commdlg.h"
+#include "dlgs.h"
+#include "wine/debug.h"
+#include "cderr.h"
+#include "winspool.h"
+#include "winerror.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(commdlg);
+
+#include "printdlg.h"
+
+/***********************************************************************
+ * PRINTDLG_WMInitDialog [internal]
+ */
+static LRESULT PRINTDLG_WMInitDialog16(HWND hDlg, WPARAM wParam,
+ PRINT_PTRA* PrintStructures)
+{
+ LPPRINTDLG16 lppd = PrintStructures->dlg.lpPrintDlg16;
+ DEVNAMES *pdn;
+ DEVMODEA *pdm;
+ char *name = NULL;
+ UINT comboID = (lppd->Flags & PD_PRINTSETUP) ? cmb1 : cmb4;
+
+ /* load Collate ICONs */
+ PrintStructures->hCollateIcon =
+ LoadIconA(COMDLG32_hInstance, "PD32_COLLATE");
+ PrintStructures->hNoCollateIcon =
+ LoadIconA(COMDLG32_hInstance, "PD32_NOCOLLATE");
+ if(PrintStructures->hCollateIcon == 0 ||
+ PrintStructures->hNoCollateIcon == 0) {
+ ERR("no icon in resourcefile\n");
+ COMDLG32_SetCommDlgExtendedError(CDERR_LOADRESFAILURE);
+ EndDialog(hDlg, FALSE);
+ }
+
+ /* load Paper Orientation ICON */
+ /* FIXME: not implemented yet */
+
+ /*
+ * if lppd->Flags PD_SHOWHELP is specified, a HELPMESGSTRING message
+ * must be registered and the Help button must be shown.
+ */
+ if (lppd->Flags & PD_SHOWHELP) {
+ if((PrintStructures->HelpMessageID =
+ RegisterWindowMessageA(HELPMSGSTRINGA)) == 0) {
+ COMDLG32_SetCommDlgExtendedError(CDERR_REGISTERMSGFAIL);
+ return FALSE;
+ }
+ } else
+ PrintStructures->HelpMessageID = 0;
+
+ if (!(lppd->Flags & PD_PRINTSETUP)) {
+ /* We have a print quality combo box. What shall we do? */
+ if (GetDlgItem(hDlg,cmb1)) {
+ char buf [20];
+
+ FIXME("Print quality only displaying currently.\n");
+
+ pdm = GlobalLock16(lppd->hDevMode);
+ if(pdm) {
+ switch (pdm->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;
+ }
+ GlobalUnlock16(lppd->hDevMode);
+ } else
+ strcpy(buf,"Default");
+ SendDlgItemMessageA(hDlg,cmb1,CB_ADDSTRING,0,(LPARAM)buf);
+ SendDlgItemMessageA(hDlg,cmb1,CB_SETCURSEL,0,0);
+ EnableWindow(GetDlgItem(hDlg,cmb1),FALSE);
+ }
+ }
+
+ /* FIXME: I allow more freedom than either Win95 or WinNT,
+ * which do not agree to what errors should be thrown or not
+ * in case nToPage or nFromPage is out-of-range.
+ */
+ if (lppd->nMaxPage < lppd->nMinPage)
+ lppd->nMaxPage = lppd->nMinPage;
+ if (lppd->nMinPage == lppd->nMaxPage)
+ lppd->Flags |= PD_NOPAGENUMS;
+ if (lppd->nToPage < lppd->nMinPage)
+ lppd->nToPage = lppd->nMinPage;
+ if (lppd->nToPage > lppd->nMaxPage)
+ lppd->nToPage = lppd->nMaxPage;
+ if (lppd->nFromPage < lppd->nMinPage)
+ lppd->nFromPage = lppd->nMinPage;
+ if (lppd->nFromPage > lppd->nMaxPage)
+ lppd->nFromPage = lppd->nMaxPage;
+
+ /* If the printer combo box is in the dialog, fill it */
+ if (GetDlgItem(hDlg,comboID)) {
+ /* Fill Combobox
+ */
+ pdn = GlobalLock16(lppd->hDevNames);
+ pdm = GlobalLock16(lppd->hDevMode);
+ if(pdn)
+ name = (char*)pdn + pdn->wDeviceOffset;
+ else if(pdm)
+ name = pdm->dmDeviceName;
+ PRINTDLG_SetUpPrinterListComboA(hDlg, comboID, name);
+ if(pdm) GlobalUnlock16(lppd->hDevMode);
+ if(pdn) GlobalUnlock16(lppd->hDevNames);
+
+ /* Now find selected printer and update rest of dlg */
+ name = HeapAlloc(GetProcessHeap(),0,256);
+ if (GetDlgItemTextA(hDlg, comboID, name, 255))
+ PRINTDLG_ChangePrinterA(hDlg, name, PrintStructures);
+ } else {
+ /* else just use default printer */
+ char name[200];
+ BOOL ret = PRINTDLG_GetDefaultPrinterNameA(name, sizeof(name));
+
+ if (ret)
+ PRINTDLG_ChangePrinterA(hDlg, name, PrintStructures);
+ else
+ FIXME("No default printer found, expect problems!\n");
+ }
+ HeapFree(GetProcessHeap(),0,name);
+
+ return TRUE;
+}
+
+/**********************************************************************
+ *
+ * 16 bit commdlg
+ */
+
+/***********************************************************************
+ * PrintDlgProc (COMMDLG.21)
+ */
+BOOL16 CALLBACK PrintDlgProc16(HWND16 hDlg16, UINT16 uMsg, WPARAM16 wParam,
+ LPARAM lParam)
+{
+ HWND hDlg = HWND_32(hDlg16);
+ PRINT_PTRA* PrintStructures;
+ BOOL16 res = FALSE;
+
+ if (uMsg!=WM_INITDIALOG) {
+ PrintStructures = (PRINT_PTRA*)GetPropA(hDlg,"__WINE_PRINTDLGDATA");
+ if (!PrintStructures)
+ return FALSE;
+ } else {
+ PrintStructures = (PRINT_PTRA*) lParam;
+ SetPropA(hDlg,"__WINE_PRINTDLGDATA",PrintStructures);
+ res = PRINTDLG_WMInitDialog16(hDlg, wParam, PrintStructures);
+
+ if(PrintStructures->dlg.lpPrintDlg16->Flags & PD_ENABLEPRINTHOOK) {
+ res = CallWindowProc16(
+ (WNDPROC16)PrintStructures->dlg.lpPrintDlg16->lpfnPrintHook,
+ hDlg16, uMsg, wParam, (LPARAM)PrintStructures->dlg.lpPrintDlg16
+ );
+ }
+ return res;
+ }
+
+ if(PrintStructures->dlg.lpPrintDlg16->Flags & PD_ENABLEPRINTHOOK) {
+ res = CallWindowProc16(
+ (WNDPROC16)PrintStructures->dlg.lpPrintDlg16->lpfnPrintHook,
+ hDlg16,uMsg, wParam, lParam
+ );
+ if(LOWORD(res)) return res;
+ }
+
+ switch (uMsg) {
+ case WM_COMMAND: {
+ /* We need to map those for the 32bit window procedure, compare
+ * with 32Ato16 mapper in winproc.c
+ */
+ return PRINTDLG_WMCommandA(
+ hDlg,
+ MAKEWPARAM(wParam,HIWORD(lParam)),
+ LOWORD(lParam),
+ PrintStructures
+ );
+ }
+ case WM_DESTROY:
+ DestroyIcon(PrintStructures->hCollateIcon);
+ DestroyIcon(PrintStructures->hNoCollateIcon);
+ /* FIXME: don't forget to delete the paper orientation icons here! */
+
+ return FALSE;
+ }
+ return res;
+}
+
+
+/***********************************************************************
+ * PrintSetupDlgProc (COMMDLG.22)
+ */
+BOOL16 CALLBACK PrintSetupDlgProc16(HWND16 hWnd16, UINT16 wMsg, WPARAM16 wParam,
+ LPARAM lParam)
+{
+ HWND hWnd = HWND_32(hWnd16);
+ switch (wMsg)
+ {
+ case WM_INITDIALOG:
+ TRACE("WM_INITDIALOG lParam=%08lX\n", lParam);
+ ShowWindow(hWnd, SW_SHOWNORMAL);
+ return (TRUE);
+ case WM_COMMAND:
+ switch (wParam) {
+ case IDOK:
+ EndDialog(hWnd, TRUE);
+ return(TRUE);
+ case IDCANCEL:
+ EndDialog(hWnd, FALSE);
+ return(TRUE);
+ }
+ return(FALSE);
+ }
+ return FALSE;
+}