/*------------------------------------------------------------------ ---------------------------------- open dialog to browse sound files ------------------------------------------------------------------*/ BOOL BrowseSoundFile(HWND hDlg, const wchar_t* deffile, wchar_t fname[MAX_PATH]) { wchar_t filter[1024], mmfileexts[1024]; DWORD index; filter[0]=filter[1]='\0'; str0cat(filter, MyString(IDS_MMFILE)); GetMMFileExts(mmfileexts); str0cat(filter, mmfileexts); str0cat(filter, MyString(IDS_ALLFILE)); str0cat(filter, L"*.*"); if(!deffile[0] || IsMMFile(deffile)) index = 1; else index = 2; if(SelectMyFile(hDlg, filter, index, deffile, fname)) { if(!wcsncmp(fname,api.root,api.root_len)) { // make relative to waves/ if possible if(!wcsncmp(fname+api.root_len, L"\\waves\\", 7)) { memmove(fname, fname+api.root_len+7, ((wcslen(fname)-api.root_len-7+1) * sizeof fname[0])); } } return 1; } return 0; }
/*------------------------------------------------------------------ ---------------------------------- open dialog to browse sound files ------------------------------------------------------------------*/ BOOL BrowseSoundFile(HWND hDlg, const char* deffile, char* fname) { char filter[1024], mmfileexts[1024]; char ftitle[MAX_PATH], initdir[MAX_PATH]; OPENFILENAME ofn; ZeroMemory(&ofn, sizeof(ofn)); // Initialize OPENFILENAME ofn.lStructSize = sizeof(ofn); filter[0]=filter[1]='\0'; str0cat(filter, MyString(IDS_MMFILE)); GetMMFileExts(mmfileexts); str0cat(filter, mmfileexts); str0cat(filter, MyString(IDS_ALLFILE)); str0cat(filter, "*.*"); if(!deffile[0] || IsMMFile(deffile)) ofn.nFilterIndex = 1; else ofn.nFilterIndex = 2; memcpy(initdir, api.root, api.root_len+1); if(deffile[0]) { WIN32_FIND_DATA fd; HANDLE hfind; hfind = FindFirstFile(deffile, &fd); if(hfind != INVALID_HANDLE_VALUE) { FindClose(hfind); strncpy_s(initdir,sizeof(initdir),deffile,_TRUNCATE); del_title(initdir); } } *fname = '\0'; ofn.hwndOwner = hDlg; ofn.hInstance = NULL; ofn.lpstrFilter = filter; ofn.lpstrFile = fname; ofn.nMaxFile = MAX_PATH; ofn.lpstrFileTitle = ftitle; ofn.nMaxFileTitle = MAX_PATH; ofn.lpstrInitialDir = initdir; ofn.Flags = OFN_HIDEREADONLY|OFN_EXPLORER|OFN_FILEMUSTEXIST; if(GetOpenFileName(&ofn)) { size_t tlen=api.root_len; if(!strncmp(fname,api.root,tlen)) { // make relative to waves/ if possible if(!strncmp(fname+tlen,"\\waves\\",7)) { memmove(fname,fname+tlen+7,strlen(fname)-tlen-6); } } return 1; } return 0; }
/*------------------------------------------------ clicked "..." button --------------------------------------------------*/ void OnBrowseFile(HWND hDlg, WORD id) { char filter[80], deffile[MAX_PATH], fname[MAX_PATH]; filter[0] = filter[1] = 0; if(id == IDC_BROWSEHELP) { str0cat(filter, "HTML"); str0cat(filter, "*.html;*.htm"); } else if(id == IDC_BROWSEHELP2CH) { str0cat(filter, "HTML"); str0cat(filter, "*.html;*.htm"); } else if(id == IDC_BROWSELANGDLL) { str0cat(filter, MyString(IDS_LANGDLLFILE)); str0cat(filter, "lang*.dll"); } GetDlgItemText(hDlg, id - 1, deffile, MAX_PATH); if(!SelectMyFile(hDlg, filter, 0, deffile, fname)) // propsheet.c return; SetDlgItemText(hDlg, id - 1, fname); PostMessage(hDlg, WM_NEXTDLGCTL, 1, FALSE); SendPSChanged(hDlg); }