BOOL CPPageFormats::OnApply() { UpdateData(); int iSelectedItem = m_list.GetSelectionMark(); if (iSelectedItem >= 0) { DWORD_PTR i = m_list.GetItemData(iSelectedItem); m_mf[i].SetExts(m_exts); m_exts = m_mf[i].GetExtsWithPeriod(); UpdateData(FALSE); } CFileAssoc::RegisterApp(); int fSetContextFiles = m_fContextFiles.GetCheck(); int fSetAssociatedWithIcon = m_fAssociatedWithIcons.GetCheck(); if (m_bFileExtChanged) { if (fSetAssociatedWithIcon && IsNeededIconsLib() && !CFileAssoc::LoadIconLib()) { AfxMessageBox(IDS_MISSING_ICONS_LIB, MB_ICONEXCLAMATION | MB_OK, 0); } for (int i = 0, cnt = m_list.GetItemCount(); i < cnt; i++) { int iChecked = IsCheckedMediaCategory(i); if (iChecked == 2) { continue; } CFileAssoc::Register(m_mf[m_list.GetItemData(i)], !!iChecked, !!fSetContextFiles, !!fSetAssociatedWithIcon); } m_bFileExtChanged = false; if (fSetAssociatedWithIcon) { CFileAssoc::FreeIconLib(); } } CFileAssoc::RegisterFolderContextMenuEntries(!!m_fContextDir.GetCheck()); UpdateMediaCategoryState(m_list.GetSelectionMark()); CFileAssoc::RegisterAutoPlay(CFileAssoc::AP_VIDEO, !!m_apvideo.GetCheck()); CFileAssoc::RegisterAutoPlay(CFileAssoc::AP_MUSIC, !!m_apmusic.GetCheck()); CFileAssoc::RegisterAutoPlay(CFileAssoc::AP_AUDIOCD, !!m_apaudiocd.GetCheck()); CFileAssoc::RegisterAutoPlay(CFileAssoc::AP_DVDMOVIE, !!m_apdvd.GetCheck()); m_mf.SetRtspHandler(m_iRtspHandler == 0 ? RealMedia : m_iRtspHandler == 1 ? QuickTime : DirectShow, !!m_fRtspFileExtFirst); CAppSettings& s = AfxGetAppSettings(); s.m_Formats = m_mf; s.fAssociatedWithIcons = !!m_fAssociatedWithIcons.GetCheck(); SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, NULL, NULL); return __super::OnApply(); }
void CPPageFormats::OnBnVistaModify() { TCHAR strApp[MAX_PATH]; CString strCmd; GetModuleFileNameEx(GetCurrentProcess(), AfxGetMyApp()->m_hInstance, strApp, MAX_PATH); strCmd.Format(_T("/adminoption %d"), IDD); AfxGetMyApp()->RunAsAdministrator(strApp, strCmd, true); for (int i = 0, cnt = m_list.GetItemCount(); i < cnt; i++) { UpdateMediaCategoryState(i); } }
void CPPageFormats::OnBnClickedResetExtensionsList() { int iItem = m_list.GetSelectionMark(); if (iItem >= 0) { DWORD_PTR i = m_list.GetItemData(iItem); CMediaFormatCategory& mfc = m_mf[i]; mfc.RestoreDefaultExts(); m_exts = mfc.GetExtsWithPeriod(); UpdateMediaCategoryState(iItem); UpdateData(FALSE); SetModified(); } }
void CPPageFormats::OnBnClickedResetExtensionsList() { int iItem = m_list.GetSelectionMark(); if (iItem >= 0) { DWORD_PTR i = m_list.GetItemData(iItem); CMediaFormatCategory& mfc = m_mf[i]; mfc.RestoreDefaultExts(); m_exts = mfc.GetExtsWithPeriod(); CString label; label.Format(_T("%s (%s)"), mfc.GetDescription(), mfc.GetExts()); m_list.SetItemText(iItem, COL_CATEGORY, label); UpdateMediaCategoryState(iItem); UpdateData(FALSE); SetModified(); } }