The WndProc function was missing the CALLBACK modifier.
diff --git a/programs/progman/dialog.c b/programs/progman/dialog.c
index f078aff..565b451 100644
--- a/programs/progman/dialog.c
+++ b/programs/progman/dialog.c
@@ -9,12 +9,12 @@
#include "progman.h"
static BOOL DIALOG_BrowsePrograms(HWND, LPSTR, INT);
static BOOL DIALOG_BrowseSymbols(HWND, LPSTR, INT);
-static LRESULT DIALOG_NEW_DlgProc(HWND, UINT, WPARAM, LPARAM);
-static LRESULT DIALOG_COPY_MOVE_DlgProc(HWND, UINT, WPARAM, LPARAM);
-static LRESULT DIALOG_GROUP_DlgProc(HWND, UINT, WPARAM, LPARAM);
-static LRESULT DIALOG_PROGRAM_DlgProc(HWND, UINT, WPARAM, LPARAM);
-static LRESULT DIALOG_SYMBOL_DlgProc(HWND, UINT, WPARAM, LPARAM);
-static LRESULT DIALOG_EXECUTE_DlgProc(HWND, UINT, WPARAM, LPARAM);
+static BOOL CALLBACK DIALOG_NEW_DlgProc(HWND, UINT, WPARAM, LPARAM);
+static BOOL CALLBACK DIALOG_COPY_MOVE_DlgProc(HWND, UINT, WPARAM, LPARAM);
+static BOOL CALLBACK DIALOG_GROUP_DlgProc(HWND, UINT, WPARAM, LPARAM);
+static BOOL CALLBACK DIALOG_PROGRAM_DlgProc(HWND, UINT, WPARAM, LPARAM);
+static BOOL CALLBACK DIALOG_SYMBOL_DlgProc(HWND, UINT, WPARAM, LPARAM);
+static BOOL CALLBACK DIALOG_EXECUTE_DlgProc(HWND, UINT, WPARAM, LPARAM);
/***********************************************************************
*
@@ -28,13 +28,13 @@
INT DIALOG_New(INT nDefault)
{
- WNDPROC lpfnDlg = MakeProcInstance(DIALOG_NEW_DlgProc, Globals.hInstance);
+ DLGPROC lpfnDlg = MakeProcInstance(DIALOG_NEW_DlgProc, Globals.hInstance);
INT ret;
New.nDefault = nDefault;
ret = DialogBox(Globals.hInstance, STRING_NEW_Xx,
- Globals.hMainWnd, (DLGPROC)lpfnDlg);
+ Globals.hMainWnd, lpfnDlg);
FreeProcInstance(lpfnDlg);
return ret;
}
@@ -44,7 +44,7 @@
* DIALOG_NEW_DlgProc
*/
-static LRESULT DIALOG_NEW_DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
+static BOOL CALLBACK DIALOG_NEW_DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg)
{
@@ -87,7 +87,7 @@
HLOCAL DIALOG_CopyMove(LPCSTR lpszProgramName, LPCSTR lpszFromGroupName,
BOOL bMove)
{
- WNDPROC lpfnDlg = MakeProcInstance(DIALOG_COPY_MOVE_DlgProc, Globals.hInstance);
+ DLGPROC lpfnDlg = MakeProcInstance(DIALOG_COPY_MOVE_DlgProc, Globals.hInstance);
INT ret;
CopyMove.lpszProgramName = lpszProgramName;
@@ -96,7 +96,7 @@
ret = DialogBox(Globals.hInstance,
bMove ? STRING_MOVE_Xx : STRING_COPY_Xx,
- Globals.hMainWnd, (DLGPROC)lpfnDlg);
+ Globals.hMainWnd, lpfnDlg);
FreeProcInstance(lpfnDlg);
return((ret == IDOK) ? CopyMove.hToGroup : 0);
@@ -107,7 +107,7 @@
* DIALOG_COPY_MOVE_DlgProc
*/
-static LRESULT DIALOG_COPY_MOVE_DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
+static BOOL CALLBACK DIALOG_COPY_MOVE_DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
HLOCAL hGroup;
@@ -177,7 +177,7 @@
BOOL DIALOG_GroupAttributes(LPSTR lpszTitle, LPSTR lpszGrpFile, INT nSize)
{
- WNDPROC lpfnDlg = MakeProcInstance(DIALOG_GROUP_DlgProc, Globals.hInstance);
+ DLGPROC lpfnDlg = MakeProcInstance(DIALOG_GROUP_DlgProc, Globals.hInstance);
INT ret;
GroupAttributes.nSize = nSize;
@@ -185,7 +185,7 @@
GroupAttributes.lpszGrpFile = lpszGrpFile;
ret = DialogBox(Globals.hInstance, STRING_GROUP_Xx,
- Globals.hMainWnd, (DLGPROC)lpfnDlg);
+ Globals.hMainWnd, lpfnDlg);
FreeProcInstance(lpfnDlg);
return(ret == IDOK);
}
@@ -195,7 +195,7 @@
* DIALOG_GROUP_DlgProc
*/
-static LRESULT DIALOG_GROUP_DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
+static BOOL CALLBACK DIALOG_GROUP_DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg)
{
@@ -245,7 +245,7 @@
INT *lpnHotKey, INT *lpnCmdShow, INT nSize)
{
CHAR szTmpIconFile[MAX_PATHNAME_LEN];
- WNDPROC lpfnDlg = MakeProcInstance(DIALOG_PROGRAM_DlgProc, Globals.hInstance);
+ DLGPROC lpfnDlg = MakeProcInstance(DIALOG_PROGRAM_DlgProc, Globals.hInstance);
INT ret;
ProgramAttributes.nSize = nSize;
@@ -268,7 +268,7 @@
lstrcpyn(ProgramAttributes.lpszTmpIconFile, lpszIconFile, MAX_PATHNAME_LEN);
ret = DialogBox(Globals.hInstance, STRING_PROGRAM_Xx,
- Globals.hMainWnd, (DLGPROC)lpfnDlg);
+ Globals.hMainWnd, lpfnDlg);
FreeProcInstance(lpfnDlg);
return(ret == IDOK);
@@ -279,7 +279,7 @@
* DIALOG_PROGRAM_DlgProc
*/
-static LRESULT DIALOG_PROGRAM_DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
+static BOOL CALLBACK DIALOG_PROGRAM_DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
CHAR buffer[MAX_STRING_LEN];
switch (msg)
@@ -382,7 +382,7 @@
VOID DIALOG_Symbol(HICON *lphIcon, LPSTR lpszIconFile,
INT *lpnIconIndex, INT nSize)
{
- WNDPROC lpfnDlg = MakeProcInstance(DIALOG_SYMBOL_DlgProc, Globals.hInstance);
+ DLGPROC lpfnDlg = MakeProcInstance(DIALOG_SYMBOL_DlgProc, Globals.hInstance);
Symbol.nSize = nSize;
Symbol.lpszIconFile = lpszIconFile;
@@ -390,7 +390,7 @@
Symbol.lpnIconIndex = lpnIconIndex;
DialogBox(Globals.hInstance, STRING_SYMBOL_Xx,
- Globals.hMainWnd, (DLGPROC)lpfnDlg);
+ Globals.hMainWnd, lpfnDlg);
FreeProcInstance(lpfnDlg);
}
@@ -399,7 +399,7 @@
* DIALOG_SYMBOL_DlgProc
*/
-static LRESULT DIALOG_SYMBOL_DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
+static BOOL CALLBACK DIALOG_SYMBOL_DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg)
{
@@ -473,9 +473,9 @@
VOID DIALOG_Execute()
{
- WNDPROC lpfnDlg = MakeProcInstance(DIALOG_EXECUTE_DlgProc, Globals.hInstance);
+ DLGPROC lpfnDlg = MakeProcInstance(DIALOG_EXECUTE_DlgProc, Globals.hInstance);
DialogBox(Globals.hInstance, STRING_EXECUTE_Xx,
- Globals.hMainWnd, (DLGPROC)lpfnDlg);
+ Globals.hMainWnd, lpfnDlg);
FreeProcInstance(lpfnDlg);
}
@@ -484,7 +484,7 @@
* DIALOG_EXECUTE_DlgProc
*/
-static LRESULT DIALOG_EXECUTE_DlgProc(HWND hDlg, UINT msg,
+static BOOL CALLBACK DIALOG_EXECUTE_DlgProc(HWND hDlg, UINT msg,
WPARAM wParam, LPARAM lParam)
{
switch (msg)