Esempio n. 1
0
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;
}
Esempio n. 2
0
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();
}
Esempio n. 3
0
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;
}