Widget Save As dlgbox needs to include
options.
Affects only in Windows platforms
/r=shanjian; /sr=kin
This commit is contained in:
yokoyama%netscape.com 2002-12-02 22:29:20 +00:00
Родитель 442cfa1ba0
Коммит 4ced4c412f
1 изменённых файлов: 17 добавлений и 3 удалений

Просмотреть файл

@ -168,7 +168,7 @@ LRESULT CALLBACK DetectWindowMove(int code, WPARAM wParam, LPARAM lParam)
#define MAX_CLASS_NAME 128
#define MAX_MENU_NAME 128
#define MAX_FILTER_NAME 128
#define MAX_FILTER_NAME 256
int ConvertAtoW(LPCSTR aStrInA, int aBufferSize, LPWSTR aStrOutW)
{
@ -203,7 +203,7 @@ BOOL CallOpenSaveFileNameA(LPOPENFILENAMEW aFileNameW, BOOL aOpen)
{
BOOL rtn;
OPENFILENAMEA ofnA;
char filterA[MAX_FILTER_NAME+1];
char filterA[MAX_FILTER_NAME+2];
char customFilterA[MAX_FILTER_NAME+1];
char fileA[MAX_PATH+1];
char fileTitleA[MAX_PATH+1];
@ -217,7 +217,21 @@ BOOL CallOpenSaveFileNameA(LPOPENFILENAMEW aFileNameW, BOOL aOpen)
ofnA.hwndOwner = aFileNameW->hwndOwner;
ofnA.hInstance = aFileNameW->hInstance;
if (aFileNameW->lpstrFilter) {
ConvertWtoA(aFileNameW->lpstrFilter, MAX_FILTER_NAME, filterA);
// find the true filter length
int len = 0;
while ((aFileNameW->lpstrFilter[len]) ||
(aFileNameW->lpstrFilter[len+1]))
{
++len;
}
len = WideCharToMultiByte(CP_ACP, 0,
aFileNameW->lpstrFilter,
len,
filterA,
MAX_FILTER_NAME, NULL, NULL);
filterA[len] = '\0';
filterA[len+1] = '\0';
ofnA.lpstrFilter = filterA;
}
if (aFileNameW->lpstrCustomFilter) {