Example #1
0
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();
}
Example #2
0
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);
    }
}
Example #3
0
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();
    }
}
Example #4
0
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();
    }
}