LONG CMenuPage::OnApply() { #ifndef UNDER_CE g_MenuPageHWND = *this; if (IsButtonCheckedBool(IDC_SYSTEM_INTEGRATE_TO_CONTEXT_MENU)) { DllRegisterServer(); NZipRootRegistry::AddContextMenuHandler(); } else { DllUnregisterServer(); NZipRootRegistry::DeleteContextMenuHandler(); } #endif CContextMenuInfo ci; ci.Cascaded = IsButtonCheckedBool(IDC_SYSTEM_CASCADED_MENU); ci.Flags = 0; for (int i = 0; i < kNumMenuItems; i++) if (_listView.GetCheckState(i)) ci.Flags |= kMenuItems[i].Flag; ci.Save(); return PSNRET_NOERROR; }
BOOL CMenuPage::OnApply() { #ifndef UNDER_CE g_MenuPageHWND = *this; if (IsDlgButtonChecked(IDX_SYSTEM_INTEGRATE_TO_CONTEXT_MENU) == BST_CHECKED) { DllRegisterServer(); NZipRootRegistry::AddContextMenuHandler(); } else { DllUnregisterServer(); NZipRootRegistry::DeleteContextMenuHandler(); } #endif CContextMenuInfo ci; ci.Cascaded = IsDlgButtonChecked(IDX_SYSTEM_CASCADED_MENU) == BST_CHECKED; ci.MenuIcons = IsDlgButtonChecked(IDX_SYSTEM_ICON_IN_MENU) == BST_CHECKED; ci.Flags = 0; for (int i = 0; i < ARRAY_SIZE(kMenuItems); i++) if (m_lstOptions.GetCheck(i)) ci.Flags |= kMenuItems[i].Flag; ci.Save(); return CPropertyPage::OnApply(); }
LONG CMenuPage::OnApply() { #ifndef UNDER_CE for (unsigned d = 2; d != 0;) { d--; CShellDll &dll = _dlls[d]; if (dll.wasChanged && !dll.Path.IsEmpty()) { bool newVal = IsButtonCheckedBool(dll.ctrl); LONG res = SetContextMenuHandler(newVal, fs2us(dll.Path), dll.wow); if (res != ERROR_SUCCESS && (dll.prevValue != newVal || newVal)) ShowMenuErrorMessage(NError::MyFormatMessage(res), *this); dll.prevValue = CheckContextMenuHandler(fs2us(dll.Path), dll.wow); CheckButton(dll.ctrl, dll.prevValue); dll.wasChanged = false; } } #endif if (_cascaded_Changed || _menuIcons_Changed || _elimDup_Changed || _flags_Changed) { CContextMenuInfo ci; ci.Cascaded.Val = IsButtonCheckedBool(IDX_SYSTEM_CASCADED_MENU); ci.Cascaded.Def = _cascaded_Changed; ci.MenuIcons.Val = IsButtonCheckedBool(IDX_SYSTEM_ICON_IN_MENU); ci.MenuIcons.Def = _menuIcons_Changed; ci.ElimDup.Val = IsButtonCheckedBool(IDX_EXTRACT_ELIM_DUP); ci.ElimDup.Def = _elimDup_Changed; ci.Flags = 0; for (unsigned i = 0; i < ARRAY_SIZE(kMenuItems); i++) if (_listView.GetCheckState(i)) ci.Flags |= kMenuItems[i].Flag; ci.Flags_Def = _flags_Changed; ci.Save(); Clear_MenuChanged(); } // UnChanged(); return PSNRET_NOERROR; }