wordpad: Convert open file dialog to Unicode.
This commit is contained in:
parent
a747eca83c
commit
69c9565e6f
|
@ -46,29 +46,29 @@ static const WCHAR wszAppTitle[] = {'W','i','n','e',' ','W','o','r','d','p','a',
|
||||||
static HWND hMainWnd;
|
static HWND hMainWnd;
|
||||||
static HWND hEditorWnd;
|
static HWND hEditorWnd;
|
||||||
|
|
||||||
static char szFilter[MAX_STRING_LEN];
|
static WCHAR wszFilter[MAX_STRING_LEN];
|
||||||
|
|
||||||
/* Load string resources */
|
/* Load string resources */
|
||||||
static void DoLoadStrings(void)
|
static void DoLoadStrings(void)
|
||||||
{
|
{
|
||||||
LPSTR p = szFilter;
|
LPWSTR p = wszFilter;
|
||||||
char files_rtf[] = "*.rtf";
|
static const WCHAR files_rtf[] = {'*','.','r','t','f','\0'};
|
||||||
char files_txt[] = "*.txt";
|
static const WCHAR files_txt[] = {'*','.','t','x','t','\0'};
|
||||||
char files_all[] = "*.*";
|
static const WCHAR files_all[] = {'*','.','*','\0'};
|
||||||
HINSTANCE hInstance = (HINSTANCE)GetWindowLongPtr(hMainWnd, GWLP_HINSTANCE);
|
HINSTANCE hInstance = (HINSTANCE)GetWindowLongPtr(hMainWnd, GWLP_HINSTANCE);
|
||||||
|
|
||||||
LoadString(hInstance, STRING_RICHTEXT_FILES_RTF, p, MAX_STRING_LEN);
|
LoadStringW(hInstance, STRING_RICHTEXT_FILES_RTF, p, MAX_STRING_LEN);
|
||||||
p += strlen(p) + 1;
|
p += lstrlenW(p) + 1;
|
||||||
lstrcpy(p, files_rtf);
|
lstrcpyW(p, files_rtf);
|
||||||
p += strlen(p) + 1;
|
p += lstrlenW(p) + 1;
|
||||||
LoadString(hInstance, STRING_TEXT_FILES_TXT, p, MAX_STRING_LEN);
|
LoadStringW(hInstance, STRING_TEXT_FILES_TXT, p, MAX_STRING_LEN);
|
||||||
p += strlen(p) + 1;
|
p += lstrlenW(p) + 1;
|
||||||
lstrcpy(p, files_txt);
|
lstrcpyW(p, files_txt);
|
||||||
p += strlen(p) + 1;
|
p += lstrlenW(p) + 1;
|
||||||
LoadString(hInstance, STRING_ALL_FILES, p, MAX_STRING_LEN);
|
LoadStringW(hInstance, STRING_ALL_FILES, p, MAX_STRING_LEN);
|
||||||
p += strlen(p) + 1;
|
p += lstrlenW(p) + 1;
|
||||||
lstrcpy(p, files_all);
|
lstrcpyW(p, files_all);
|
||||||
p += strlen(p) + 1;
|
p += lstrlenW(p) + 1;
|
||||||
*p = '\0';
|
*p = '\0';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -175,29 +175,23 @@ static void DoOpenFile(LPCWSTR szOpenFileName)
|
||||||
|
|
||||||
static void DialogOpenFile(void)
|
static void DialogOpenFile(void)
|
||||||
{
|
{
|
||||||
OPENFILENAME ofn;
|
OPENFILENAMEW ofn;
|
||||||
|
|
||||||
char szFile[MAX_PATH] = "";
|
WCHAR wszFile[MAX_PATH] = {'\0'};
|
||||||
char szDefExt[] = "rtf";
|
static const WCHAR wszDefExt[] = {'r','t','f','\0'};
|
||||||
|
|
||||||
ZeroMemory(&ofn, sizeof(ofn));
|
ZeroMemory(&ofn, sizeof(ofn));
|
||||||
|
|
||||||
ofn.lStructSize = sizeof(ofn);
|
ofn.lStructSize = sizeof(ofn);
|
||||||
ofn.Flags = OFN_HIDEREADONLY | OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST;
|
ofn.Flags = OFN_HIDEREADONLY | OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST;
|
||||||
ofn.hwndOwner = hMainWnd;
|
ofn.hwndOwner = hMainWnd;
|
||||||
ofn.lpstrFilter = szFilter;
|
ofn.lpstrFilter = wszFilter;
|
||||||
ofn.lpstrFile = szFile;
|
ofn.lpstrFile = wszFile;
|
||||||
ofn.nMaxFile = MAX_PATH;
|
ofn.nMaxFile = MAX_PATH;
|
||||||
ofn.lpstrDefExt = szDefExt;
|
ofn.lpstrDefExt = wszDefExt;
|
||||||
|
|
||||||
if(GetOpenFileName(&ofn))
|
if(GetOpenFileNameW(&ofn))
|
||||||
{
|
DoOpenFile(ofn.lpstrFile);
|
||||||
WCHAR szOpenFile[MAX_PATH];
|
|
||||||
|
|
||||||
MultiByteToWideChar(CP_ACP, 0, ofn.lpstrFile, MAX_PATH, szOpenFile, sizeof(szOpenFile)/sizeof(szOpenFile[0]));
|
|
||||||
|
|
||||||
DoOpenFile(szOpenFile);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void DoSaveFile(LPCWSTR wszSaveFileName)
|
static void DoSaveFile(LPCWSTR wszSaveFileName)
|
||||||
|
|
Loading…
Reference in New Issue