void MainDialog::OnXMLBrowse(UINT, int, HWND) { DoDataExchange(true, IDC_XML); RString filter(IDS_XML_FILTER); MakeFilterString(filter); WTL::CFileDialog dlg(true, 0, m_xml, OFN_DONTADDTORECENT | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_NOCHANGEDIR | OFN_PATHMUSTEXIST, filter); if(dlg.DoModal(*this) == IDOK) { m_xml = dlg.m_szFileName; DoDataExchange(false, IDC_XML); EnableDlgItem(IDC_START); } }
int InitCommDlg(int iWhichOper) { OFN.lpstrDefExt = NULL; OFN.lpstrFile = szFileName; OFN.lpstrFilter = szFilterSpec; OFN.lpstrCustomFilter = szCustFilterSpec; switch(iWhichOper) { case 0: // beginning of Write session OFN.lStructSize = sizeof(OPENFILENAME); OFN.hInstance = hINSTANCE; OFN.lCustData = NULL; OFN.lpTemplateName = NULL; OFN.lpstrFileTitle = NULL; OFN.nMaxFileTitle = 0; OFN.nMaxFile = CBPATHMAX; OFN.lpstrInitialDir = NULL; OFN.nMaxCustFilter = CBFILTERSIZE; LoadString(hINSTANCE, IDSTROpenfile, szOpenFile, sizeof(szOpenFile)); LoadString(hINSTANCE, IDSTRSavefile, szSaveFile, sizeof(szSaveFile)); LoadString(hINSTANCE, IDSTRDefWriExtension, szDefWriExtension, sizeof(szDefWriExtension)); LoadString(hINSTANCE, IDSTRDefDocExtension, szDefDocExtension, sizeof(szDefDocExtension)); LoadString(hINSTANCE, IDSTRDefTxtExtension, szDefTxtExtension, sizeof(szDefTxtExtension)); LoadString(hINSTANCE, IDSTRWriDescr, szWriDescr, sizeof(szWriDescr)); LoadString(hINSTANCE, IDSTRDocDescr, szDocDescr, sizeof(szDocDescr)); LoadString(hINSTANCE, IDSTRTxtDescr, szTxtDescr, sizeof(szTxtDescr)); LoadString(hINSTANCE, IDSTRDocTextDescr, szDocTxtDescr, sizeof(szDocTxtDescr)); LoadString(hINSTANCE, IDSTRAllFilesDescr, szAllFilesDescr, sizeof(szAllFilesDescr)); LoadString(hINSTANCE, IDSTROldWriteDescr, szOldWriteDescr, sizeof(szOldWriteDescr)); return FALSE; case imiOpen: if ((lpfnOFNHook = MakeProcInstance(fnOFNHook, hINSTANCE)) == NULL) return TRUE; OFN.hwndOwner = hPARENTWINDOW; OFN.Flags = OFN_ENABLEHOOK|OFN_HIDEREADONLY|OFN_PATHMUSTEXIST|OFN_FILEMUSTEXIST; OFN.lpfnHook = lpfnOFNHook; lstrcpy(szFileName,szWild); lstrcat(szFileName,szDefWriExtension); OFN.lpstrTitle = szOpenFile; szCustFilterSpec[0] = '\0'; fDefFileType = SA_WRITE; /* see MakeFilterSpec */ MakeFilterString(iWhichOper); return FALSE; case imiSaveAs: /* read only will become the backup check box */ if ((lpfnOFNHook = MakeProcInstance(fnOFNHook, hINSTANCE)) == NULL) return TRUE; OFN.hwndOwner = hPARENTWINDOW; OFN.Flags = OFN_ENABLEHOOK|OFN_PATHMUSTEXIST|OFN_OVERWRITEPROMPT; OFN.lpfnHook = lpfnOFNHook; OFN.lpstrTitle = szSaveFile; szCustFilterSpec[0] = '\0'; MakeFilterString(iWhichOper); return FALSE; } }