progman: Reorder some functions to avoid forward declarations in dialog.c.
Francois Gouget
fgouget at free.fr
Wed Feb 4 17:19:43 CST 2009
---
programs/progman/dialog.c | 550 ++++++++++++++++++++++-----------------------
1 files changed, 268 insertions(+), 282 deletions(-)
diff --git a/programs/progman/dialog.c b/programs/progman/dialog.c
index f3c2974..f862b08 100644
--- a/programs/progman/dialog.c
+++ b/programs/progman/dialog.c
@@ -25,43 +25,109 @@
#include "windows.h"
#include "commdlg.h"
#include "progman.h"
-static BOOL DIALOG_BrowsePrograms(HWND, LPSTR, INT);
-static BOOL DIALOG_BrowseSymbols(HWND, LPSTR, INT);
-static INT_PTR CALLBACK DIALOG_NEW_DlgProc(HWND, UINT, WPARAM, LPARAM);
-static INT_PTR CALLBACK DIALOG_COPY_MOVE_DlgProc(HWND, UINT, WPARAM, LPARAM);
-static INT_PTR CALLBACK DIALOG_GROUP_DlgProc(HWND, UINT, WPARAM, LPARAM);
-static INT_PTR CALLBACK DIALOG_PROGRAM_DlgProc(HWND, UINT, WPARAM, LPARAM);
-static INT_PTR CALLBACK DIALOG_SYMBOL_DlgProc(HWND, UINT, WPARAM, LPARAM);
-static INT_PTR CALLBACK DIALOG_EXECUTE_DlgProc(HWND, UINT, WPARAM, LPARAM);
+
/***********************************************************************
*
- * DIALOG_New
+ * DIALOG_Browse
*/
-static struct
+static BOOL DIALOG_Browse(HWND hDlg, LPCSTR lpszzFilter,
+ LPSTR lpstrFile, INT nMaxFile)
+
{
- INT nDefault;
-} New;
+ OPENFILENAME openfilename;
-INT DIALOG_New(INT nDefault)
+ CHAR szDir[MAX_PATH];
+ CHAR szDefaultExt[] = "exe";
+
+ ZeroMemory(&openfilename, sizeof(openfilename));
+
+ GetCurrentDirectory(sizeof(szDir), szDir);
+
+ openfilename.lStructSize = sizeof(openfilename);
+ openfilename.hwndOwner = Globals.hMainWnd;
+ openfilename.hInstance = Globals.hInstance;
+ openfilename.lpstrFilter = lpszzFilter;
+ openfilename.lpstrFile = lpstrFile;
+ openfilename.nMaxFile = nMaxFile;
+ openfilename.lpstrInitialDir = szDir;
+ openfilename.Flags = 0;
+ openfilename.lpstrDefExt = szDefaultExt;
+ openfilename.lpstrCustomFilter = 0;
+ openfilename.nMaxCustFilter = 0;
+ openfilename.nFilterIndex = 0;
+ openfilename.lpstrFileTitle = 0;
+ openfilename.nMaxFileTitle = 0;
+ openfilename.lpstrInitialDir = 0;
+ openfilename.lpstrTitle = 0;
+ openfilename.nFileOffset = 0;
+ openfilename.nFileExtension = 0;
+ openfilename.lCustData = 0;
+ openfilename.lpfnHook = 0;
+ openfilename.lpTemplateName = 0;
+
+ return GetOpenFileName(&openfilename);
+}
+
+/***********************************************************************
+ *
+ * DIALOG_AddFilterItem
+ */
+
+static VOID DIALOG_AddFilterItem(LPSTR *p, UINT ids, LPCSTR filter)
{
- DLGPROC lpfnDlg = MakeProcInstance(DIALOG_NEW_DlgProc, Globals.hInstance);
- INT ret;
+ LoadString(Globals.hInstance, ids, *p, MAX_STRING_LEN);
+ *p += strlen(*p) + 1;
+ lstrcpy(*p, filter);
+ *p += strlen(*p) + 1;
+ **p = '\0';
+}
- New.nDefault = nDefault;
+/***********************************************************************
+ *
+ * DIALOG_BrowsePrograms
+ */
- ret = DialogBox(Globals.hInstance, STRING_NEW,
- Globals.hMainWnd, lpfnDlg);
- FreeProcInstance(lpfnDlg);
- return ret;
+static BOOL DIALOG_BrowsePrograms(HWND hDlg, LPSTR lpszFile, INT nMaxFile)
+{
+ CHAR szzFilter[2 * MAX_STRING_LEN + 100];
+ LPSTR p = szzFilter;
+
+ DIALOG_AddFilterItem(&p, IDS_PROGRAMS, "*.exe;*.pif;*.com;*.bat");
+ DIALOG_AddFilterItem(&p, IDS_ALL_FILES, "*.*");
+
+ return(DIALOG_Browse(hDlg, szzFilter, lpszFile, nMaxFile));
+}
+
+/***********************************************************************
+ *
+ * DIALOG_BrowseSymbols
+ */
+
+static BOOL DIALOG_BrowseSymbols(HWND hDlg, LPSTR lpszFile, INT nMaxFile)
+{
+ CHAR szzFilter[5 * MAX_STRING_LEN + 100];
+ LPSTR p = szzFilter;
+
+ DIALOG_AddFilterItem(&p, IDS_SYMBOL_FILES, "*.ico;*.exe;*.dll");
+ DIALOG_AddFilterItem(&p, IDS_PROGRAMS, "*.exe");
+ DIALOG_AddFilterItem(&p, IDS_LIBRARIES_DLL, "*.dll");
+ DIALOG_AddFilterItem(&p, IDS_SYMBOLS_ICO, "*.ico");
+ DIALOG_AddFilterItem(&p, IDS_ALL_FILES, "*.*");
+
+ return(DIALOG_Browse(hDlg, szzFilter, lpszFile, nMaxFile));
}
+static struct
+{
+ INT nDefault;
+} New;
+
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* DIALOG_NEW_DlgProc
*/
-
static INT_PTR CALLBACK DIALOG_NEW_DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg)
@@ -93,38 +159,32 @@ static INT_PTR CALLBACK DIALOG_NEW_DlgProc(HWND hDlg, UINT msg, WPARAM wParam, L
/***********************************************************************
*
- * DIALOG_CopyMove
+ * DIALOG_New
*/
-
-static struct
-{
- LPCSTR lpszProgramName, lpszFromGroupName;
- HLOCAL hToGroup;
-} CopyMove;
-
-HLOCAL DIALOG_CopyMove(LPCSTR lpszProgramName, LPCSTR lpszFromGroupName,
- BOOL bMove)
+INT DIALOG_New(INT nDefault)
{
- DLGPROC lpfnDlg = MakeProcInstance(DIALOG_COPY_MOVE_DlgProc, Globals.hInstance);
+ DLGPROC lpfnDlg = MakeProcInstance(DIALOG_NEW_DlgProc, Globals.hInstance);
INT ret;
- CopyMove.lpszProgramName = lpszProgramName;
- CopyMove.lpszFromGroupName = lpszFromGroupName;
- CopyMove.hToGroup = 0;
+ New.nDefault = nDefault;
- ret = DialogBox(Globals.hInstance,
- bMove ? STRING_MOVE : STRING_COPY,
+ ret = DialogBox(Globals.hInstance, STRING_NEW,
Globals.hMainWnd, lpfnDlg);
FreeProcInstance(lpfnDlg);
-
- return((ret == IDOK) ? CopyMove.hToGroup : 0);
+ return ret;
}
+
+static struct
+{
+ LPCSTR lpszProgramName, lpszFromGroupName;
+ HLOCAL hToGroup;
+} CopyMove;
+
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* DIALOG_COPY_MOVE_DlgProc
*/
-
static INT_PTR CALLBACK DIALOG_COPY_MOVE_DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
HLOCAL hGroup;
@@ -172,6 +232,28 @@ static INT_PTR CALLBACK DIALOG_COPY_MOVE_DlgProc(HWND hDlg, UINT msg, WPARAM wPa
/***********************************************************************
*
+ * DIALOG_CopyMove
+ */
+HLOCAL DIALOG_CopyMove(LPCSTR lpszProgramName, LPCSTR lpszFromGroupName,
+ BOOL bMove)
+{
+ DLGPROC lpfnDlg = MakeProcInstance(DIALOG_COPY_MOVE_DlgProc, Globals.hInstance);
+ INT ret;
+
+ CopyMove.lpszProgramName = lpszProgramName;
+ CopyMove.lpszFromGroupName = lpszFromGroupName;
+ CopyMove.hToGroup = 0;
+
+ ret = DialogBox(Globals.hInstance,
+ bMove ? STRING_MOVE : STRING_COPY,
+ Globals.hMainWnd, lpfnDlg);
+ FreeProcInstance(lpfnDlg);
+
+ return((ret == IDOK) ? CopyMove.hToGroup : 0);
+}
+
+/***********************************************************************
+ *
* DIALOG_Delete
*/
@@ -182,17 +264,48 @@ BOOL DIALOG_Delete(UINT ids_text_s, LPCSTR lpszName)
}
-/***********************************************************************
- *
- * DIALOG_GroupAttributes
- */
-
static struct
{
LPSTR lpszTitle, lpszGrpFile;
INT nSize;
} GroupAttributes;
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * DIALOG_GROUP_DlgProc
+ */
+static INT_PTR CALLBACK DIALOG_GROUP_DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+ switch (msg)
+ {
+ case WM_INITDIALOG:
+ SetDlgItemText(hDlg, PM_DESCRIPTION, GroupAttributes.lpszTitle);
+ SetDlgItemText(hDlg, PM_FILE, GroupAttributes.lpszGrpFile);
+ break;
+
+ case WM_COMMAND:
+ switch (wParam)
+ {
+ case IDOK:
+ GetDlgItemText(hDlg, PM_DESCRIPTION, GroupAttributes.lpszTitle,
+ GroupAttributes.nSize);
+ GetDlgItemText(hDlg, PM_FILE, GroupAttributes.lpszGrpFile,
+ GroupAttributes.nSize);
+ EndDialog(hDlg, IDOK);
+ return TRUE;
+
+ case IDCANCEL:
+ EndDialog(hDlg, IDCANCEL);
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+/***********************************************************************
+ *
+ * DIALOG_GroupAttributes
+ */
BOOL DIALOG_GroupAttributes(LPSTR lpszTitle, LPSTR lpszGrpFile, INT nSize)
{
DLGPROC lpfnDlg = MakeProcInstance(DIALOG_GROUP_DlgProc, Globals.hInstance);
@@ -208,31 +321,79 @@ BOOL DIALOG_GroupAttributes(LPSTR lpszTitle, LPSTR lpszGrpFile, INT nSize)
return(ret == IDOK);
}
+
+static struct
+{
+ LPSTR lpszIconFile;
+ INT nSize;
+ HICON *lphIcon;
+ INT *lpnIconIndex;
+} Symbol;
+
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
- * DIALOG_GROUP_DlgProc
+ * DIALOG_SYMBOL_DlgProc
*/
-
-static INT_PTR CALLBACK DIALOG_GROUP_DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
+static INT_PTR CALLBACK DIALOG_SYMBOL_DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg)
{
case WM_INITDIALOG:
- SetDlgItemText(hDlg, PM_DESCRIPTION, GroupAttributes.lpszTitle);
- SetDlgItemText(hDlg, PM_FILE, GroupAttributes.lpszGrpFile);
- break;
+ SetDlgItemText(hDlg, PM_ICON_FILE, Symbol.lpszIconFile);
+ SendDlgItemMessage(hDlg, PM_SYMBOL_LIST, CB_SETITEMHEIGHT, 0, (LPARAM) 32);
+ SendDlgItemMessage(hDlg, PM_SYMBOL_LIST, CB_ADDSTRING, 0, (LPARAM)*Symbol.lphIcon);
+ SendDlgItemMessage(hDlg, PM_SYMBOL_LIST, CB_ADDSTRING, 0, (LPARAM)Globals.hDefaultIcon);
+ SendDlgItemMessage(hDlg, PM_SYMBOL_LIST, CB_SETCURSEL, 0, 0);
+ return TRUE;
+
+ case WM_MEASUREITEM:
+ {
+ PMEASUREITEMSTRUCT measure = (PMEASUREITEMSTRUCT) lParam;
+ measure->itemWidth = 32;
+ measure->itemHeight = 32;
+ return TRUE;
+ }
+
+ case WM_DRAWITEM:
+ {
+ PDRAWITEMSTRUCT dis = (PDRAWITEMSTRUCT) lParam;
+ DrawIcon(dis->hDC, dis->rcItem.left, dis->rcItem.top, (HICON)dis->itemData);
+ return TRUE;
+ }
case WM_COMMAND:
switch (wParam)
{
- case IDOK:
- GetDlgItemText(hDlg, PM_DESCRIPTION, GroupAttributes.lpszTitle,
- GroupAttributes.nSize);
- GetDlgItemText(hDlg, PM_FILE, GroupAttributes.lpszGrpFile,
- GroupAttributes.nSize);
- EndDialog(hDlg, IDOK);
+ case PM_BROWSE:
+ {
+ CHAR filename[MAX_PATHNAME_LEN];
+ filename[0] = 0;
+ if (DIALOG_BrowseSymbols(hDlg, filename, sizeof(filename)))
+ SetDlgItemText(hDlg, PM_ICON_FILE, filename);
+ return TRUE;
+ }
+
+ case PM_HELP:
+ MAIN_MessageBoxIDS(IDS_NOT_IMPLEMENTED, IDS_ERROR, MB_OK);
return TRUE;
+ case IDOK:
+ {
+ INT nCurSel = SendDlgItemMessage(hDlg, PM_SYMBOL_LIST, CB_GETCURSEL, 0, 0);
+
+ GetDlgItemText(hDlg, PM_ICON_FILE, Symbol.lpszIconFile, Symbol.nSize);
+
+ *Symbol.lphIcon = (HICON)SendDlgItemMessage(hDlg, PM_SYMBOL_LIST,
+ CB_GETITEMDATA,
+ (WPARAM) nCurSel, 0);
+#if 0
+ *Symbol.lphIcon = CopyIcon(*Symbol.lphIcon);
+#endif
+
+ EndDialog(hDlg, IDOK);
+ return TRUE;
+ }
+
case IDCANCEL:
EndDialog(hDlg, IDCANCEL);
return TRUE;
@@ -243,8 +404,23 @@ static INT_PTR CALLBACK DIALOG_GROUP_DlgProc(HWND hDlg, UINT msg, WPARAM wParam,
/***********************************************************************
*
- * DIALOG_ProgramAttributes
+ * DIALOG_Symbol
*/
+VOID DIALOG_Symbol(HICON *lphIcon, LPSTR lpszIconFile,
+ INT *lpnIconIndex, INT nSize)
+{
+ DLGPROC lpfnDlg = MakeProcInstance(DIALOG_SYMBOL_DlgProc, Globals.hInstance);
+
+ Symbol.nSize = nSize;
+ Symbol.lpszIconFile = lpszIconFile;
+ Symbol.lphIcon = lphIcon;
+ Symbol.lpnIconIndex = lpnIconIndex;
+
+ DialogBox(Globals.hInstance, STRING_SYMBOL,
+ Globals.hMainWnd, lpfnDlg);
+ FreeProcInstance(lpfnDlg);
+}
+
static struct
{
@@ -257,46 +433,10 @@ static struct
INT *lpnIconIndex, nTmpIconIndex;
} ProgramAttributes;
-BOOL DIALOG_ProgramAttributes(LPSTR lpszTitle, LPSTR lpszCmdLine,
- LPSTR lpszWorkDir, LPSTR lpszIconFile,
- HICON *lphIcon, INT *lpnIconIndex,
- INT *lpnHotKey, INT *lpnCmdShow, INT nSize)
-{
- CHAR szTmpIconFile[MAX_PATHNAME_LEN];
- DLGPROC lpfnDlg = MakeProcInstance(DIALOG_PROGRAM_DlgProc, Globals.hInstance);
- INT ret;
-
- ProgramAttributes.nSize = nSize;
- ProgramAttributes.lpszTitle = lpszTitle;
- ProgramAttributes.lpszCmdLine = lpszCmdLine;
- ProgramAttributes.lpszWorkDir = lpszWorkDir;
- ProgramAttributes.lpszIconFile = lpszIconFile;
- ProgramAttributes.lpnCmdShow = lpnCmdShow;
- ProgramAttributes.lpnHotKey = lpnHotKey;
- ProgramAttributes.lphIcon = lphIcon;
- ProgramAttributes.lpnIconIndex = lpnIconIndex;
-
-#if 0
- ProgramAttributes.hTmpIcon = 0;
-#else
- ProgramAttributes.hTmpIcon = *lphIcon;
-#endif
- ProgramAttributes.nTmpIconIndex = *lpnIconIndex;
- ProgramAttributes.lpszTmpIconFile = szTmpIconFile;
- lstrcpyn(ProgramAttributes.lpszTmpIconFile, lpszIconFile, MAX_PATHNAME_LEN);
-
- ret = DialogBox(Globals.hInstance, STRING_PROGRAM,
- Globals.hMainWnd, lpfnDlg);
- FreeProcInstance(lpfnDlg);
-
- return(ret == IDOK);
-}
-
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* DIALOG_PROGRAM_DlgProc
*/
-
static INT_PTR CALLBACK DIALOG_PROGRAM_DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
CHAR buffer[MAX_STRING_LEN];
@@ -387,124 +527,48 @@ static INT_PTR CALLBACK DIALOG_PROGRAM_DlgProc(HWND hDlg, UINT msg, WPARAM wPara
/***********************************************************************
*
- * DIALOG_Symbol
- */
-
-static struct
-{
- LPSTR lpszIconFile;
- INT nSize;
- HICON *lphIcon;
- INT *lpnIconIndex;
-} Symbol;
-
-VOID DIALOG_Symbol(HICON *lphIcon, LPSTR lpszIconFile,
- INT *lpnIconIndex, INT nSize)
-{
- DLGPROC lpfnDlg = MakeProcInstance(DIALOG_SYMBOL_DlgProc, Globals.hInstance);
-
- Symbol.nSize = nSize;
- Symbol.lpszIconFile = lpszIconFile;
- Symbol.lphIcon = lphIcon;
- Symbol.lpnIconIndex = lpnIconIndex;
-
- DialogBox(Globals.hInstance, STRING_SYMBOL,
- Globals.hMainWnd, lpfnDlg);
- FreeProcInstance(lpfnDlg);
-}
-
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *
- * DIALOG_SYMBOL_DlgProc
+ * DIALOG_ProgramAttributes
*/
-
-static INT_PTR CALLBACK DIALOG_SYMBOL_DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
+BOOL DIALOG_ProgramAttributes(LPSTR lpszTitle, LPSTR lpszCmdLine,
+ LPSTR lpszWorkDir, LPSTR lpszIconFile,
+ HICON *lphIcon, INT *lpnIconIndex,
+ INT *lpnHotKey, INT *lpnCmdShow, INT nSize)
{
- switch (msg)
- {
- case WM_INITDIALOG:
- SetDlgItemText(hDlg, PM_ICON_FILE, Symbol.lpszIconFile);
- SendDlgItemMessage(hDlg, PM_SYMBOL_LIST, CB_SETITEMHEIGHT, 0, (LPARAM) 32);
- SendDlgItemMessage(hDlg, PM_SYMBOL_LIST, CB_ADDSTRING, 0, (LPARAM)*Symbol.lphIcon);
- SendDlgItemMessage(hDlg, PM_SYMBOL_LIST, CB_ADDSTRING, 0, (LPARAM)Globals.hDefaultIcon);
- SendDlgItemMessage(hDlg, PM_SYMBOL_LIST, CB_SETCURSEL, 0, 0);
- return TRUE;
-
- case WM_MEASUREITEM:
- {
- PMEASUREITEMSTRUCT measure = (PMEASUREITEMSTRUCT) lParam;
- measure->itemWidth = 32;
- measure->itemHeight = 32;
- return TRUE;
- }
-
- case WM_DRAWITEM:
- {
- PDRAWITEMSTRUCT dis = (PDRAWITEMSTRUCT) lParam;
- DrawIcon(dis->hDC, dis->rcItem.left, dis->rcItem.top, (HICON)dis->itemData);
- return TRUE;
- }
-
- case WM_COMMAND:
- switch (wParam)
- {
- case PM_BROWSE:
- {
- CHAR filename[MAX_PATHNAME_LEN];
- filename[0] = 0;
- if (DIALOG_BrowseSymbols(hDlg, filename, sizeof(filename)))
- SetDlgItemText(hDlg, PM_ICON_FILE, filename);
- return TRUE;
- }
-
- case PM_HELP:
- MAIN_MessageBoxIDS(IDS_NOT_IMPLEMENTED, IDS_ERROR, MB_OK);
- return TRUE;
-
- case IDOK:
- {
- INT nCurSel = SendDlgItemMessage(hDlg, PM_SYMBOL_LIST, CB_GETCURSEL, 0, 0);
+ CHAR szTmpIconFile[MAX_PATHNAME_LEN];
+ DLGPROC lpfnDlg = MakeProcInstance(DIALOG_PROGRAM_DlgProc, Globals.hInstance);
+ INT ret;
- GetDlgItemText(hDlg, PM_ICON_FILE, Symbol.lpszIconFile, Symbol.nSize);
+ ProgramAttributes.nSize = nSize;
+ ProgramAttributes.lpszTitle = lpszTitle;
+ ProgramAttributes.lpszCmdLine = lpszCmdLine;
+ ProgramAttributes.lpszWorkDir = lpszWorkDir;
+ ProgramAttributes.lpszIconFile = lpszIconFile;
+ ProgramAttributes.lpnCmdShow = lpnCmdShow;
+ ProgramAttributes.lpnHotKey = lpnHotKey;
+ ProgramAttributes.lphIcon = lphIcon;
+ ProgramAttributes.lpnIconIndex = lpnIconIndex;
- *Symbol.lphIcon = (HICON)SendDlgItemMessage(hDlg, PM_SYMBOL_LIST,
- CB_GETITEMDATA,
- (WPARAM) nCurSel, 0);
#if 0
- *Symbol.lphIcon = CopyIcon(*Symbol.lphIcon);
+ ProgramAttributes.hTmpIcon = 0;
+#else
+ ProgramAttributes.hTmpIcon = *lphIcon;
#endif
+ ProgramAttributes.nTmpIconIndex = *lpnIconIndex;
+ ProgramAttributes.lpszTmpIconFile = szTmpIconFile;
+ lstrcpyn(ProgramAttributes.lpszTmpIconFile, lpszIconFile, MAX_PATHNAME_LEN);
- EndDialog(hDlg, IDOK);
- return TRUE;
- }
+ ret = DialogBox(Globals.hInstance, STRING_PROGRAM,
+ Globals.hMainWnd, lpfnDlg);
+ FreeProcInstance(lpfnDlg);
- case IDCANCEL:
- EndDialog(hDlg, IDCANCEL);
- return TRUE;
- }
- }
- return FALSE;
+ return(ret == IDOK);
}
-/***********************************************************************
- *
- * DIALOG_Execute
- */
-
-VOID DIALOG_Execute(void)
-{
- INT_PTR z;
- DLGPROC lpfnDlg = MakeProcInstance(DIALOG_EXECUTE_DlgProc, Globals.hInstance);
- z=DialogBox(Globals.hInstance, STRING_EXECUTE,
- Globals.hMainWnd, lpfnDlg);
- FreeProcInstance(lpfnDlg);
-}
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* DIALOG_EXECUTE_DlgProc
*/
-
static INT_PTR CALLBACK DIALOG_EXECUTE_DlgProc(HWND hDlg, UINT msg,
WPARAM wParam, LPARAM lParam)
{
@@ -553,94 +617,16 @@ static INT_PTR CALLBACK DIALOG_EXECUTE_DlgProc(HWND hDlg, UINT msg,
/***********************************************************************
*
- * DIALOG_Browse
- */
-
-static BOOL DIALOG_Browse(HWND hDlg, LPCSTR lpszzFilter,
- LPSTR lpstrFile, INT nMaxFile)
-
-{
- OPENFILENAME openfilename;
-
- CHAR szDir[MAX_PATH];
- CHAR szDefaultExt[] = "exe";
-
- ZeroMemory(&openfilename, sizeof(openfilename));
-
- GetCurrentDirectory(sizeof(szDir), szDir);
-
- openfilename.lStructSize = sizeof(openfilename);
- openfilename.hwndOwner = Globals.hMainWnd;
- openfilename.hInstance = Globals.hInstance;
- openfilename.lpstrFilter = lpszzFilter;
- openfilename.lpstrFile = lpstrFile;
- openfilename.nMaxFile = nMaxFile;
- openfilename.lpstrInitialDir = szDir;
- openfilename.Flags = 0;
- openfilename.lpstrDefExt = szDefaultExt;
- openfilename.lpstrCustomFilter = 0;
- openfilename.nMaxCustFilter = 0;
- openfilename.nFilterIndex = 0;
- openfilename.lpstrFileTitle = 0;
- openfilename.nMaxFileTitle = 0;
- openfilename.lpstrInitialDir = 0;
- openfilename.lpstrTitle = 0;
- openfilename.nFileOffset = 0;
- openfilename.nFileExtension = 0;
- openfilename.lCustData = 0;
- openfilename.lpfnHook = 0;
- openfilename.lpTemplateName = 0;
-
- return GetOpenFileName(&openfilename);
-}
-
-/***********************************************************************
- *
- * DIALOG_AddFilterItem
- */
-
-static VOID DIALOG_AddFilterItem(LPSTR *p, UINT ids, LPCSTR filter)
-{
- LoadString(Globals.hInstance, ids, *p, MAX_STRING_LEN);
- *p += strlen(*p) + 1;
- lstrcpy(*p, filter);
- *p += strlen(*p) + 1;
- **p = '\0';
-}
-
-/***********************************************************************
- *
- * DIALOG_BrowsePrograms
- */
-
-static BOOL DIALOG_BrowsePrograms(HWND hDlg, LPSTR lpszFile, INT nMaxFile)
-{
- CHAR szzFilter[2 * MAX_STRING_LEN + 100];
- LPSTR p = szzFilter;
-
- DIALOG_AddFilterItem(&p, IDS_PROGRAMS, "*.exe;*.pif;*.com;*.bat");
- DIALOG_AddFilterItem(&p, IDS_ALL_FILES, "*.*");
-
- return(DIALOG_Browse(hDlg, szzFilter, lpszFile, nMaxFile));
-}
-
-/***********************************************************************
- *
- * DIALOG_BrowseSymbols
+ * DIALOG_Execute
*/
-static BOOL DIALOG_BrowseSymbols(HWND hDlg, LPSTR lpszFile, INT nMaxFile)
+VOID DIALOG_Execute(void)
{
- CHAR szzFilter[5 * MAX_STRING_LEN + 100];
- LPSTR p = szzFilter;
-
- DIALOG_AddFilterItem(&p, IDS_SYMBOL_FILES, "*.ico;*.exe;*.dll");
- DIALOG_AddFilterItem(&p, IDS_PROGRAMS, "*.exe");
- DIALOG_AddFilterItem(&p, IDS_LIBRARIES_DLL, "*.dll");
- DIALOG_AddFilterItem(&p, IDS_SYMBOLS_ICO, "*.ico");
- DIALOG_AddFilterItem(&p, IDS_ALL_FILES, "*.*");
-
- return(DIALOG_Browse(hDlg, szzFilter, lpszFile, nMaxFile));
+ INT_PTR z;
+ DLGPROC lpfnDlg = MakeProcInstance(DIALOG_EXECUTE_DlgProc, Globals.hInstance);
+ z=DialogBox(Globals.hInstance, STRING_EXECUTE,
+ Globals.hMainWnd, lpfnDlg);
+ FreeProcInstance(lpfnDlg);
}
/* Local Variables: */
--
1.5.6.5
More information about the wine-patches
mailing list