shell32: RunFileDlg: allow the user to cancel the Browse dialog, remove some unneeded parameters.
This commit is contained in:
parent
13866e81f7
commit
ebb41a64ab
@ -184,36 +184,21 @@ static INT_PTR CALLBACK RunDlgProc (HWND hwnd, UINT message, WPARAM wParam, LPAR
|
|||||||
{
|
{
|
||||||
HMODULE hComdlg = NULL ;
|
HMODULE hComdlg = NULL ;
|
||||||
LPFNOFN ofnProc = NULL ;
|
LPFNOFN ofnProc = NULL ;
|
||||||
WCHAR szFName[1024] = {0}, szFileTitle[256] = {0}, szInitDir[768] = {0} ;
|
WCHAR szFName[1024] = {0};
|
||||||
WCHAR szFilter[MAX_PATH], szCaption[MAX_PATH];
|
WCHAR szFilter[MAX_PATH], szCaption[MAX_PATH];
|
||||||
static const char ansiFilter[] = "Executable Files\0*.exe\0All Files\0*.*\0\0\0\0";
|
static const char ansiFilter[] = "Executable Files\0*.exe\0All Files\0*.*\0\0\0\0";
|
||||||
OPENFILENAMEW ofn =
|
OPENFILENAMEW ofn;
|
||||||
{
|
|
||||||
sizeof (OPENFILENAMEW),
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
szFilter,
|
|
||||||
NULL,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
szFName,
|
|
||||||
1023,
|
|
||||||
szFileTitle,
|
|
||||||
255,
|
|
||||||
szInitDir,
|
|
||||||
szCaption,
|
|
||||||
OFN_ENABLESIZING | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_PATHMUSTEXIST,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
NULL,
|
|
||||||
0,
|
|
||||||
(LPOFNHOOKPROC)NULL,
|
|
||||||
NULL
|
|
||||||
} ;
|
|
||||||
|
|
||||||
MultiByteToWideChar(CP_UTF8, 0, ansiFilter, sizeof(ansiFilter), szFilter, MAX_PATH);
|
MultiByteToWideChar(CP_UTF8, 0, ansiFilter, sizeof(ansiFilter), szFilter, MAX_PATH);
|
||||||
MultiByteToWideChar(CP_UTF8, 0, "Browse", -1, szCaption, MAX_PATH);
|
MultiByteToWideChar(CP_UTF8, 0, "Browse", -1, szCaption, MAX_PATH);
|
||||||
ofn.hwndOwner = hwnd ;
|
ZeroMemory(&ofn, sizeof(ofn));
|
||||||
|
ofn.lStructSize = sizeof(OPENFILENAMEW);
|
||||||
|
ofn.hwndOwner = hwnd;
|
||||||
|
ofn.lpstrFilter = szFilter;
|
||||||
|
ofn.lpstrFile = szFName;
|
||||||
|
ofn.nMaxFile = 1023;
|
||||||
|
ofn.lpstrTitle = szCaption;
|
||||||
|
ofn.Flags = OFN_ENABLESIZING | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_PATHMUSTEXIST;
|
||||||
|
|
||||||
if (NULL == (hComdlg = LoadLibraryExA ("comdlg32", NULL, 0)))
|
if (NULL == (hComdlg = LoadLibraryExA ("comdlg32", NULL, 0)))
|
||||||
{
|
{
|
||||||
@ -227,12 +212,14 @@ static INT_PTR CALLBACK RunDlgProc (HWND hwnd, UINT message, WPARAM wParam, LPAR
|
|||||||
return TRUE ;
|
return TRUE ;
|
||||||
}
|
}
|
||||||
|
|
||||||
ofnProc (&ofn) ;
|
if (ofnProc(&ofn))
|
||||||
|
{
|
||||||
|
|
||||||
SetFocus (GetDlgItem (hwnd, IDOK)) ;
|
SetFocus (GetDlgItem (hwnd, IDOK)) ;
|
||||||
SetWindowTextW (GetDlgItem (hwnd, 12298), szFName) ;
|
SetWindowTextW (GetDlgItem (hwnd, 12298), szFName) ;
|
||||||
SendMessageW (GetDlgItem (hwnd, 12298), CB_SETEDITSEL, 0, MAKELPARAM (0, -1)) ;
|
SendMessageW (GetDlgItem (hwnd, 12298), CB_SETEDITSEL, 0, MAKELPARAM (0, -1)) ;
|
||||||
SetFocus (GetDlgItem (hwnd, IDOK)) ;
|
SetFocus (GetDlgItem (hwnd, IDOK)) ;
|
||||||
|
}
|
||||||
|
|
||||||
FreeLibrary (hComdlg) ;
|
FreeLibrary (hComdlg) ;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user