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