shell32: Build the file filter by hand instead of hardcoding it in resource strings.

This commit is contained in:
Alexandre Julliard 2011-01-13 12:33:44 +01:00
parent 85b4d92831
commit 7ed304dd38
25 changed files with 59 additions and 30 deletions

View File

@ -254,20 +254,23 @@ static INT_PTR CALLBACK RunDlgProc (HWND hwnd, UINT message, WPARAM wParam, LPAR
case IDC_RUNDLG_BROWSE :
{
static const WCHAR filterW[] = {'%','s','%','c','*','.','e','x','e','%','c','%','s','%','c','*','.','*','%','c',0};
HMODULE hComdlg = NULL ;
LPFNOFN ofnProc = NULL ;
static const WCHAR comdlg32W[] = {'c','o','m','d','l','g','3','2',0};
WCHAR szFName[1024] = {0};
WCHAR *pszFilter, szCaption[MAX_PATH];
WCHAR filter_exe[256], filter_all[256], filter[MAX_PATH], szCaption[MAX_PATH];
OPENFILENAMEW ofn;
LoadStringW(shell32_hInstance, IDS_RUNDLG_BROWSE_FILTER, (LPWSTR)&pszFilter, 0);
LoadStringW(shell32_hInstance, IDS_RUNDLG_BROWSE_FILTER_EXE, filter_exe, 256);
LoadStringW(shell32_hInstance, IDS_RUNDLG_BROWSE_FILTER_ALL, filter_all, 256);
LoadStringW(shell32_hInstance, IDS_RUNDLG_BROWSE_CAPTION, szCaption, MAX_PATH);
snprintfW( filter, MAX_PATH, filterW, filter_exe, 0, 0, filter_all, 0 );
ZeroMemory(&ofn, sizeof(ofn));
ofn.lStructSize = sizeof(OPENFILENAMEW);
ofn.hwndOwner = hwnd;
ofn.lpstrFilter = pszFilter;
ofn.lpstrFilter = filter;
ofn.lpstrFile = szFName;
ofn.nMaxFile = 1023;
ofn.lpstrTitle = szCaption;

View File

@ -256,7 +256,8 @@ STRINGTABLE
IDS_RUNDLG_ERROR "Kan ikke vise Kør Fil dialogboksen (intern fejl)"
IDS_RUNDLG_BROWSE_ERROR "Kan ikke vise Gennemse dialogboksen (intern fejl)"
IDS_RUNDLG_BROWSE_CAPTION "Gennemse"
IDS_RUNDLG_BROWSE_FILTER "Program Filer\0*.exe\0Alle Filer\0*.*\0\0"
IDS_RUNDLG_BROWSE_FILTER_EXE "Program Filer (*.exe)"
IDS_RUNDLG_BROWSE_FILTER_ALL "Alle Filer (*.*)"
/* shell folder path default values */
IDS_PROGRAMS "Start Menu\\Programmer"

View File

@ -255,7 +255,8 @@ STRINGTABLE
IDS_RUNDLG_ERROR "Konnte Ausführen-Dialog nicht anzeigen (interner Fehler)"
IDS_RUNDLG_BROWSE_ERROR "Konnte Durchsuchen-Dialog nicht anzeigen (interner Fehler)"
IDS_RUNDLG_BROWSE_CAPTION "Durchsuchen"
IDS_RUNDLG_BROWSE_FILTER "Programme\0*.exe\0Alle Dateien\0*.*\0\0"
IDS_RUNDLG_BROWSE_FILTER_EXE "Programme (*.exe)"
IDS_RUNDLG_BROWSE_FILTER_ALL "Alle Dateien (*.*)"
/* shell folder path default values */
IDS_PROGRAMS "Startmenü\\Programme"

View File

@ -252,7 +252,8 @@ STRINGTABLE
IDS_RUNDLG_ERROR "Unable to display Run File dialog box (internal error)"
IDS_RUNDLG_BROWSE_ERROR "Unable to display Browse dialog box (internal error)"
IDS_RUNDLG_BROWSE_CAPTION "Browse"
IDS_RUNDLG_BROWSE_FILTER "Executable Files\0*.exe\0All Files\0*.*\0\0"
IDS_RUNDLG_BROWSE_FILTER_EXE "Executable files (*.exe)"
IDS_RUNDLG_BROWSE_FILTER_ALL "All files (*.*)"
/* shell folder path default values */
IDS_PROGRAMS "Start Menu\\Programs"

View File

@ -254,7 +254,8 @@ STRINGTABLE
IDS_RUNDLG_ERROR "No se puede mostrar el cuadro de diálogo ejecutar archivo (error interno)"
IDS_RUNDLG_BROWSE_ERROR "No se puede mostrar el cuadro de diálogo Examinar (error interno)"
IDS_RUNDLG_BROWSE_CAPTION "Examinar"
IDS_RUNDLG_BROWSE_FILTER "Archivos ejecutables\0*.exe\0Todos los archivos\0*.*\0\0"
IDS_RUNDLG_BROWSE_FILTER_EXE "Archivos ejecutables (*.exe)"
IDS_RUNDLG_BROWSE_FILTER_ALL "Todos los archivos (*.*)"
/* shell folder path default values */
IDS_PROGRAMS "Menú Inicio\\Programas"

View File

@ -252,7 +252,8 @@ STRINGTABLE
IDS_RUNDLG_ERROR "Suorita tiedosto -valintaikkunaa ei voida näyttää (sisäinen virhe)"
IDS_RUNDLG_BROWSE_ERROR "Selaa-valintaikkunaa ei voida näyttää (sisäinen virhe)"
IDS_RUNDLG_BROWSE_CAPTION "Selaa"
IDS_RUNDLG_BROWSE_FILTER "Suoritettavat tiedostot\0*.exe\0Kaikki tiedostot\0*.*\0\0"
IDS_RUNDLG_BROWSE_FILTER_EXE "Suoritettavat tiedostot (*.exe)"
IDS_RUNDLG_BROWSE_FILTER_ALL "Kaikki tiedostot (*.*)"
/* shell folder path default values */
IDS_PROGRAMS "Käynnistä-valikko\\Ohjelmat"

View File

@ -259,7 +259,8 @@ STRINGTABLE
IDS_RUNDLG_ERROR "Impossible d'afficher la boîte de dialogue « Exécuter » (erreur interne)"
IDS_RUNDLG_BROWSE_ERROR "Impossible d'afficher la boîte de dialogue « Parcourir » (erreur interne)"
IDS_RUNDLG_BROWSE_CAPTION "Parcourir"
IDS_RUNDLG_BROWSE_FILTER "Fichiers exécutables\0*.exe\0Tous les fichiers\0*.*\0\0"
IDS_RUNDLG_BROWSE_FILTER_EXE "Fichiers exécutables (*.exe)"
IDS_RUNDLG_BROWSE_FILTER_ALL "Tous les fichiers (*.*)"
/* shell folder path default values */
IDS_PROGRAMS "Menu Démarrer\\Programmes"

View File

@ -259,7 +259,8 @@ STRINGTABLE
IDS_RUNDLG_ERROR "Unable to display Run File dialog box (internal error)"
IDS_RUNDLG_BROWSE_ERROR "Unable to display Browse dialog box (internal error)"
IDS_RUNDLG_BROWSE_CAPTION "עיון"
IDS_RUNDLG_BROWSE_FILTER "קובצי הפעלה\0*.exe\0כל הקבצים\0*.*\0\0"
IDS_RUNDLG_BROWSE_FILTER_EXE "קובצי הפעלה (*.exe)"
IDS_RUNDLG_BROWSE_FILTER_ALL "כל הקבצים (*.*)"
/* shell folder path default values */
IDS_PROGRAMS "תפריט ההתחלה\\תכניות"

View File

@ -255,7 +255,8 @@ STRINGTABLE
IDS_RUNDLG_ERROR "Nem tudom megjeleníteni a fájl futtatás dialógusablakot (belső hiba)"
IDS_RUNDLG_BROWSE_ERROR "Nem tudom megjeleníteni a tallózás dialógusablakot (belső hiba)"
IDS_RUNDLG_BROWSE_CAPTION "Tallózás"
IDS_RUNDLG_BROWSE_FILTER "Futtatható fájlok\0*.exe\0Összes fájl\0*.*\0\0"
IDS_RUNDLG_BROWSE_FILTER_EXE "Futtatható fájlok (*.exe)"
IDS_RUNDLG_BROWSE_FILTER_ALL "Összes fájl (*.*)"
/* shell folder path default values */
IDS_PROGRAMS "Start Menu\\Programs"

View File

@ -258,7 +258,8 @@ STRINGTABLE
IDS_RUNDLG_ERROR "Impossibile mostrare la finestra Esegui file (errore interno)"
IDS_RUNDLG_BROWSE_ERROR "Impossibile mostrare la finestra Sfoglia (errore interno)"
IDS_RUNDLG_BROWSE_CAPTION "Sfoglia"
IDS_RUNDLG_BROWSE_FILTER "File eseguibili\0*.exe\0Tutti i file\0*.*\0\0"
IDS_RUNDLG_BROWSE_FILTER_EXE "File eseguibili (*.exe)"
IDS_RUNDLG_BROWSE_FILTER_ALL "Tutti i file (*.*)"
/* shell folder path default values */
IDS_STARTMENU "Menu Start"

View File

@ -255,7 +255,8 @@ STRINGTABLE
IDS_RUNDLG_ERROR "[ファイルを指定して実行]ダイアログを表示できません。(内部エラー)"
IDS_RUNDLG_BROWSE_ERROR "[参照]ダイアログを表示できません (内部エラー)"
IDS_RUNDLG_BROWSE_CAPTION "参照"
IDS_RUNDLG_BROWSE_FILTER "実行可能ファイル\0*.exe\0すべてのファイル\0*.*\0\0"
IDS_RUNDLG_BROWSE_FILTER_EXE "実行可能ファイル (*.exe)"
IDS_RUNDLG_BROWSE_FILTER_ALL "すべてのファイル (*.*)"
/* shell folder path default values */
IDS_PROGRAMS "Start Menu\\Programs"

View File

@ -255,7 +255,8 @@ IDS_SHUTDOWN_PROMPT "당신은 Wine 세션을 끄겠습니까?"
IDS_RUNDLG_ERROR "파일 실행 대화 상자를 보여줄수 없습니다(내부 에러)"
IDS_RUNDLG_BROWSE_ERROR "찾기 대화 상자를 보여 줄 수 없습니다(내부 에러)"
IDS_RUNDLG_BROWSE_CAPTION "찾기"
IDS_RUNDLG_BROWSE_FILTER "실행 파일\0*.exe\0A모든 파일\0*.*\0\0"
IDS_RUNDLG_BROWSE_FILTER_EXE "실행 파일 (*.exe)"
IDS_RUNDLG_BROWSE_FILTER_ALL "A모든 파일 (*.*)"
/* shell folder path default values */
IDS_PROGRAMS "시작 메뉴\\프로그램"

View File

@ -255,7 +255,8 @@ STRINGTABLE
IDS_RUNDLG_ERROR "Nepavyko parodyti failo paleidimo dialogo lango (vidinė klaida)"
IDS_RUNDLG_BROWSE_ERROR "Nepavyko parodyti parinkimo dialogo lango (vidinė klaida)"
IDS_RUNDLG_BROWSE_CAPTION "Parinkti"
IDS_RUNDLG_BROWSE_FILTER "Vykdomieji failai\0*.exe\0Visi failai\0*.*\0\0"
IDS_RUNDLG_BROWSE_FILTER_EXE "Vykdomieji failai (*.exe)"
IDS_RUNDLG_BROWSE_FILTER_ALL "Visi failai (*.*)"
/* shell folder path default values */
IDS_PROGRAMS "Pradžios meniu\\Programos"

View File

@ -256,7 +256,8 @@ STRINGTABLE
IDS_RUNDLG_ERROR "Fout tijdens tonen venster 'Uitvoeren Bestand' (interne fout)"
IDS_RUNDLG_BROWSE_ERROR "Fout tijdens tonen van Bladeren venster (interne fout)"
IDS_RUNDLG_BROWSE_CAPTION "Bladeren"
IDS_RUNDLG_BROWSE_FILTER "Uitvoerbare bestanden\0*.exe\0Alle bestanden\0*.*\0\0"
IDS_RUNDLG_BROWSE_FILTER_EXE "Uitvoerbare bestanden (*.exe)"
IDS_RUNDLG_BROWSE_FILTER_ALL "Alle bestanden (*.*)"
/* shell folder path default values */
IDS_PROGRAMS "Start Menu\\Programma's"

View File

@ -255,7 +255,8 @@ STRINGTABLE
IDS_RUNDLG_ERROR "Klarte ikke vise Kjør-vinduet (intern feil)"
IDS_RUNDLG_BROWSE_ERROR "Klarte ikke vise Bla gjennom-vinduet (intern feil)"
IDS_RUNDLG_BROWSE_CAPTION "Bla gjennom"
IDS_RUNDLG_BROWSE_FILTER "Programfiler\0*.exe\0Alle filer\0*.*\0\0"
IDS_RUNDLG_BROWSE_FILTER_EXE "Programfiler (*.exe)"
IDS_RUNDLG_BROWSE_FILTER_ALL "Alle filer (*.*)"
/* shell folder path default values */
IDS_PROGRAMS "Start-meny\\Programmer"

View File

@ -254,7 +254,8 @@ STRINGTABLE
IDS_RUNDLG_ERROR "Nie można wyświetlić okna dialogowego Uruchom (błąd wewnętrzny)"
IDS_RUNDLG_BROWSE_ERROR "Nie można wyświetlić okna dialogowego Przeglądaj (błąd wewnętrzny)"
IDS_RUNDLG_BROWSE_CAPTION "Przeglądaj"
IDS_RUNDLG_BROWSE_FILTER "Pliki wykonywalne\0*.exe\0Wszystkie pliki\0*.*\0\0"
IDS_RUNDLG_BROWSE_FILTER_EXE "Pliki wykonywalne (*.exe)"
IDS_RUNDLG_BROWSE_FILTER_ALL "Wszystkie pliki (*.*)"
/* shell folder path default values */
IDS_PROGRAMS "Menu Start\\Programy"

View File

@ -396,7 +396,8 @@ STRINGTABLE
IDS_RUNDLG_ERROR "Não é possível mostrar a caixa de diálogo Executar Arquivo (erro interno)"
IDS_RUNDLG_BROWSE_ERROR "Não é possível mostrar a caixa de diálogo de Procura (erro interno)"
IDS_RUNDLG_BROWSE_CAPTION "Procurar"
IDS_RUNDLG_BROWSE_FILTER "Arquivos executáveis\0*.exe\0Todos os arquivos\0*.*\0\0"
IDS_RUNDLG_BROWSE_FILTER_EXE "Arquivos executáveis (*.exe)"
IDS_RUNDLG_BROWSE_FILTER_ALL "Todos os arquivos (*.*)"
/* shell folder path default values */
IDS_PROGRAMS "Menu Iniciar\\Programas"
@ -520,7 +521,8 @@ STRINGTABLE
IDS_RUNDLG_ERROR "Não é possível mostrar a caixa de diálogo Executar Ficheiro (erro interno)"
IDS_RUNDLG_BROWSE_ERROR "Não é possível mostrar a caixa de diálogo de Procura (erro interno)"
IDS_RUNDLG_BROWSE_CAPTION "Procurar"
IDS_RUNDLG_BROWSE_FILTER "Ficheiros executáveis\0*.exe\0Todos os ficheiros\0*.*\0\0"
IDS_RUNDLG_BROWSE_FILTER_EXE "Ficheiros executáveis (*.exe)"
IDS_RUNDLG_BROWSE_FILTER_ALL "Todos os ficheiros (*.*)"
/* shell folder path default values */
IDS_PROGRAMS "Menu Iniciar\\Programas"

View File

@ -254,7 +254,8 @@ STRINGTABLE
IDS_RUNDLG_ERROR "Nu se poate afișa caseta de rulare fișier (eroare internă)"
IDS_RUNDLG_BROWSE_ERROR "Nu se poate afișa caseta de navigare (eroare internă)"
IDS_RUNDLG_BROWSE_CAPTION "Navighează"
IDS_RUNDLG_BROWSE_FILTER "Fișiere executabile\0*.exe\0Toate fișierele\0*.*\0\0"
IDS_RUNDLG_BROWSE_FILTER_EXE "Fișiere executabile (*.exe)"
IDS_RUNDLG_BROWSE_FILTER_ALL "Toate fișierele (*.*)"
/* shell folder path default values */
IDS_PROGRAMS "Meniu Start\\Programe"

View File

@ -256,7 +256,8 @@ STRINGTABLE
IDS_RUNDLG_ERROR "Невозможно отобразить диалог Запуск файла (внутренняя ошибка)"
IDS_RUNDLG_BROWSE_ERROR "Невозможно отобразить диалог Обзор (внутренняя ошибка)"
IDS_RUNDLG_BROWSE_CAPTION "Обзор"
IDS_RUNDLG_BROWSE_FILTER "Исполняемые файлы\0*.exe\0Все файлы\0*.*\0\0"
IDS_RUNDLG_BROWSE_FILTER_EXE "Исполняемые файлы (*.exe)"
IDS_RUNDLG_BROWSE_FILTER_ALL "Все файлы (*.*)"
/* shell folder path default values */
IDS_PROGRAMS "Главное меню\\Программы"

View File

@ -253,7 +253,8 @@ STRINGTABLE
IDS_RUNDLG_ERROR "Dialoga 'Zagon programa' ni mogoče prikazati (notranja napaka)"
IDS_RUNDLG_BROWSE_ERROR "Dialoga 'Brskanje' ni mogoče prikazati (notranja napaka)"
IDS_RUNDLG_BROWSE_CAPTION "Brskanje"
IDS_RUNDLG_BROWSE_FILTER "Izvršljive datoteke\0*.exe\0All Files\0*.*\0\0"
IDS_RUNDLG_BROWSE_FILTER_EXE "Izvršljive datoteke (*.exe)"
IDS_RUNDLG_BROWSE_FILTER_ALL "All Files (*.*)"
/* shell folder path default values */
IDS_PROGRAMS "Meni Start\\Programi"

View File

@ -256,7 +256,8 @@ STRINGTABLE
IDS_RUNDLG_ERROR "Prikazivanje prozorčeta za pokretanje datoteke nije uspelo (unutrašnja greška)"
IDS_RUNDLG_BROWSE_ERROR "Prikazivanje prozorčeta za razgledanje nije uspelo (unutrašnja greška)"
IDS_RUNDLG_BROWSE_CAPTION "Razgledaj"
IDS_RUNDLG_BROWSE_FILTER "Izvršne datoteke\0*.exe\0Sve datoteke\0*.*\0\0"
IDS_RUNDLG_BROWSE_FILTER_EXE "Izvršne datoteke (*.exe)"
IDS_RUNDLG_BROWSE_FILTER_ALL "Sve datoteke (*.*)"
/* shell folder path default values */
IDS_PROGRAMS "„Start“ meni\\Programi"
@ -566,7 +567,8 @@ STRINGTABLE
IDS_RUNDLG_ERROR "Приказивање прозорчета за покретање датотеке није успело (унутрашња грешка)"
IDS_RUNDLG_BROWSE_ERROR "Приказивање прозорчета за разгледање није успело (унутрашња грешка)"
IDS_RUNDLG_BROWSE_CAPTION "Разгледај"
IDS_RUNDLG_BROWSE_FILTER "Извршне датотеке\0*.exe\0Све датотеке\0*.*\0\0"
IDS_RUNDLG_BROWSE_FILTER_EXE "Извршне датотеке (*.exe)"
IDS_RUNDLG_BROWSE_FILTER_ALL "Све датотеке (*.*)"
/* shell folder path default values */
IDS_PROGRAMS "„Старт“ мени\\Програми"

View File

@ -254,7 +254,8 @@ STRINGTABLE
IDS_RUNDLG_ERROR "Kunde inte visa Kör-fönstret (internt fel)"
IDS_RUNDLG_BROWSE_ERROR "Kunde inte visa Bläddra-fönstret (internt fel)"
IDS_RUNDLG_BROWSE_CAPTION "Bläddra"
IDS_RUNDLG_BROWSE_FILTER "Programfiler\0*.exe\0Alla filer\0*.*\0\0"
IDS_RUNDLG_BROWSE_FILTER_EXE "Programfiler (*.exe)"
IDS_RUNDLG_BROWSE_FILTER_ALL "Alla filer (*.*)"
/* shell folder path default values */
IDS_PROGRAMS "Start-meny\\Program"

View File

@ -253,7 +253,8 @@ STRINGTABLE
IDS_RUNDLG_ERROR "Íåìîæëèâî â³äîáðàçèòè ä³àëîã Çàïóñê Ôàéëó (âíóòð³øíÿ ïîìèëêà)"
IDS_RUNDLG_BROWSE_ERROR "Íåìîæëèâî â³äîáðàçèòè ä³àëîã Îãëÿä (âíóòð³øíÿ ïîìèëêà)"
IDS_RUNDLG_BROWSE_CAPTION "Îãëÿä"
IDS_RUNDLG_BROWSE_FILTER "<22>טךמםףגאם³ <20>איכט\0*.exe\0<>ס³ <20>איכט\0*.*\0\0"
IDS_RUNDLG_BROWSE_FILTER_EXE "Âèêîíóâàí³ Ôàéëè (*.exe)"
IDS_RUNDLG_BROWSE_FILTER_ALL "Âñ³ Ôàéëè (*.*)"
/* shell folder path default values */
IDS_PROGRAMS "Ãîëîâíå ìåíþ\\Ïðîãðàìè"

View File

@ -258,7 +258,8 @@ STRINGTABLE
IDS_RUNDLG_ERROR "无法显示运行文件对话框 (内部错误)"
IDS_RUNDLG_BROWSE_ERROR "无法显示浏览对话框 (内部错误)"
IDS_RUNDLG_BROWSE_CAPTION "浏览"
IDS_RUNDLG_BROWSE_FILTER "可执行文件\0*.exe\0所有文件\0*.*\0\0"
IDS_RUNDLG_BROWSE_FILTER_EXE "可执行文件 (*.exe)"
IDS_RUNDLG_BROWSE_FILTER_ALL "所有文件 (*.*)"
/* shell folder path default values */
IDS_PROGRAMS "Start Menu\\Programs"

View File

@ -137,9 +137,10 @@
#define IDS_RUNDLG_ERROR 160
#define IDS_RUNDLG_BROWSE_ERROR 161
#define IDS_RUNDLG_BROWSE_CAPTION 162
#define IDS_RUNDLG_BROWSE_FILTER 163
#define IDS_RUNDLG_BROWSE_FILTER_EXE 163
#define IDS_RUNDLG_BROWSE_FILTER_ALL 164
#define IDS_SHLEXEC_NOASSOC 164
#define IDS_SHLEXEC_NOASSOC 165
#define IDS_LICENSE 256
#define IDS_LICENSE_CAPTION 257