diff --git a/src/editor.c b/src/editor.c index 83fe966a..2a08cd1b 100644 --- a/src/editor.c +++ b/src/editor.c @@ -1417,18 +1417,18 @@ INT_PTR CALLBACK EditorPagesProc ( _r_obj_concatstrings (2, _r_locale_getstring (IDS_ADD), L"...") ); - AppendMenu (hsubmenu, MF_STRING, id_add, localized_string->buffer); + _r_menu_additem (hsubmenu, id_add, localized_string->buffer); _r_obj_movereference ( &localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_EDIT2), L"...") ); - AppendMenu (hsubmenu, MF_STRING, id_edit, localized_string->buffer); + _r_menu_additem (hsubmenu, id_edit, localized_string->buffer); - AppendMenu (hsubmenu, MF_STRING, id_delete, _r_locale_getstring (IDS_DELETE)); - AppendMenu (hsubmenu, MF_SEPARATOR, 0, NULL); - AppendMenu (hsubmenu, MF_STRING, IDM_COPY, _r_locale_getstring (IDS_COPY)); + _r_menu_additem (hsubmenu, id_delete, _r_locale_getstring (IDS_DELETE)); + _r_menu_additem (hsubmenu, 0, NULL); + _r_menu_additem (hsubmenu, IDM_COPY, _r_locale_getstring (IDS_COPY)); if (context->ptr_rule->is_readonly) { @@ -1448,10 +1448,10 @@ INT_PTR CALLBACK EditorPagesProc ( } else if (listview_id == IDC_RULE_APPS_ID || listview_id == IDC_APP_RULES_ID) { - AppendMenu (hsubmenu, MF_STRING, IDM_CHECK, _r_locale_getstring (IDS_CHECK)); - AppendMenu (hsubmenu, MF_STRING, IDM_UNCHECK, _r_locale_getstring (IDS_UNCHECK)); - AppendMenu (hsubmenu, MF_SEPARATOR, 0, NULL); - AppendMenu (hsubmenu, MF_STRING, IDM_COPY, _r_locale_getstring (IDS_COPY)); + _r_menu_additem (hsubmenu, IDM_CHECK, _r_locale_getstring (IDS_CHECK)); + _r_menu_additem (hsubmenu, IDM_UNCHECK, _r_locale_getstring (IDS_UNCHECK)); + _r_menu_additem (hsubmenu, 0, NULL); + _r_menu_additem (hsubmenu, IDM_COPY, _r_locale_getstring (IDS_COPY)); if (context->is_settorules && context->ptr_rule->type != DATA_RULE_USER) { @@ -2036,11 +2036,7 @@ INT_PTR CALLBACK EditorProc ( _r_locale_getstring (IDS_ENABLE_CHK) ); - CheckDlgButton ( - hwnd, - IDC_ENABLE_CHK, - context->ptr_rule->is_enabled ? BST_CHECKED : BST_UNCHECKED - ); + _r_ctrl_checkbutton (hwnd, IDC_ENABLE_CHK, !!(context->ptr_rule->is_enabled)); } else { @@ -2075,11 +2071,7 @@ INT_PTR CALLBACK EditorProc ( _r_locale_getstring (IDS_ENABLE_APP_CHK) ); - CheckDlgButton ( - hwnd, - IDC_ENABLE_CHK, - context->ptr_app->is_enabled ? BST_CHECKED : BST_UNCHECKED - ); + _r_ctrl_checkbutton (hwnd, IDC_ENABLE_CHK, !!(context->ptr_app->is_enabled)); } // initialize layout @@ -2252,6 +2244,7 @@ INT_PTR CALLBACK EditorProc ( SIZE_T rule_idx; INT listview_id; INT item_id; + INT check_id; BOOLEAN is_enable; context = _app_editor_getcontext (hwnd); @@ -2341,16 +2334,25 @@ INT_PTR CALLBACK EditorProc ( _r_obj_movereference (&context->ptr_rule->protocol_str, string); + check_id = _r_ctrl_isradiochecked ( + hpage_general, + IDC_RULE_DIRECTION_OUTBOUND, + IDC_RULE_DIRECTION_ANY + ); + context->ptr_rule->direction = (FWP_DIRECTION)_r_calc_clamp ( - _r_ctrl_isradiobuttonchecked (hpage_general, IDC_RULE_DIRECTION_OUTBOUND, IDC_RULE_DIRECTION_ANY) - IDC_RULE_DIRECTION_OUTBOUND, + check_id - IDC_RULE_DIRECTION_OUTBOUND, FWP_DIRECTION_OUTBOUND, FWP_DIRECTION_MAX ); - if (_r_ctrl_isradiobuttonchecked ( + check_id = _r_ctrl_isradiochecked ( hpage_general, IDC_RULE_ACTION_BLOCK, - IDC_RULE_ACTION_ALLOW) == IDC_RULE_ACTION_BLOCK) + IDC_RULE_ACTION_ALLOW + ); + + if (check_id == IDC_RULE_ACTION_BLOCK) { context->ptr_rule->action = FWP_ACTION_BLOCK; } @@ -2361,8 +2363,14 @@ INT_PTR CALLBACK EditorProc ( if (context->ptr_rule->type == DATA_RULE_USER) { - context->ptr_rule->weight = ((context->ptr_rule->action == FWP_ACTION_BLOCK) ? - FW_WEIGHT_RULE_USER_BLOCK : FW_WEIGHT_RULE_USER); + if (context->ptr_rule->action == FWP_ACTION_BLOCK) + { + context->ptr_rule->weight = FW_WEIGHT_RULE_USER_BLOCK; + } + else + { + context->ptr_rule->weight = FW_WEIGHT_RULE_USER; + } } } @@ -2389,7 +2397,7 @@ INT_PTR CALLBACK EditorProc ( // enable rule _app_ruleenable ( context->ptr_rule, - (IsDlgButtonChecked (hwnd, IDC_ENABLE_CHK) == BST_CHECKED), + _r_ctrl_isbuttonchecked (hwnd, IDC_ENABLE_CHK), TRUE ); @@ -2402,7 +2410,7 @@ INT_PTR CALLBACK EditorProc ( hpage_rule = (HWND)_r_tab_getitemlparam (hwnd, IDC_TAB, 1); context->ptr_app->is_haveerrors = FALSE; // reset errors - context->ptr_app->is_enabled = !!(IsDlgButtonChecked (hwnd, IDC_ENABLE_CHK) == BST_CHECKED); + context->ptr_app->is_enabled = _r_ctrl_isbuttonchecked (hwnd, IDC_ENABLE_CHK); rules = _r_obj_createlist (NULL); diff --git a/src/helper.c b/src/helper.c index 797a1a91..0ec97965 100644 --- a/src/helper.c +++ b/src/helper.c @@ -1253,7 +1253,6 @@ VOID _app_generate_rulescontrol ( ) { ITEM_STATUS status; - MENUITEMINFO mii; WCHAR buffer[128]; PITEM_RULE ptr_rule; SIZE_T limit_group; @@ -1265,9 +1264,7 @@ VOID _app_generate_rulescontrol ( if (!status.rules_count) { - AppendMenu (hsubmenu, MF_STRING, IDX_RULES_SPECIAL, SZ_EMPTY); - - _r_menu_enableitem (hsubmenu, IDX_RULES_SPECIAL, MF_BYCOMMAND, FALSE); + _r_menu_additem_ex (hsubmenu, IDX_RULES_SPECIAL, SZ_EMPTY, MF_DISABLED); } else { @@ -1323,16 +1320,12 @@ VOID _app_generate_rulescontrol ( if (ptr_rule->is_readonly) _r_str_append (buffer, RTL_NUMBER_OF (buffer), SZ_RULE_INTERNAL_MENU); - RtlZeroMemory (&mii, sizeof (mii)); - - mii.cbSize = sizeof (mii); - mii.fMask = MIIM_ID | MIIM_FTYPE | MIIM_STATE | MIIM_STRING; - mii.fType = MFT_STRING; - mii.dwTypeData = buffer; - mii.fState = (is_enabled ? MF_CHECKED : MF_UNCHECKED); - mii.wID = IDX_RULES_SPECIAL + (UINT)i; - - InsertMenuItem (hsubmenu, mii.wID, FALSE, &mii); + _r_menu_additem_ex ( + hsubmenu, + IDX_RULES_SPECIAL + (UINT)i, + buffer, + is_enabled ? MF_CHECKED : MF_UNCHECKED + ); limit_group -= 1; } @@ -1341,12 +1334,12 @@ VOID _app_generate_rulescontrol ( } if (!type) - AppendMenu (hsubmenu, MF_SEPARATOR, 0, NULL); + _r_menu_additem (hsubmenu, 0, NULL); } if (ptr_log) { - AppendMenu (hsubmenu, MF_SEPARATOR, 0, NULL); + _r_menu_additem (hsubmenu, 0, NULL); _r_str_printf ( buffer, @@ -1355,21 +1348,12 @@ VOID _app_generate_rulescontrol ( _r_obj_getstring (ptr_log->remote_addr_str) ); - RtlZeroMemory (&mii, sizeof (mii)); - - mii.cbSize = sizeof (mii); - mii.fMask = MIIM_ID | MIIM_FTYPE | MIIM_STATE | MIIM_STRING; - mii.fType = MFT_STRING; - mii.dwTypeData = buffer; - mii.fState = MF_UNCHECKED; - mii.wID = IDX_RULES_SPECIAL + (UINT)i + 1; - - InsertMenuItem (hsubmenu, mii.wID, FALSE, &mii); + _r_menu_additem (hsubmenu, IDX_RULES_SPECIAL + (UINT)i + 1, buffer); } } - AppendMenu (hsubmenu, MF_SEPARATOR, 0, NULL); - AppendMenu (hsubmenu, MF_STRING, IDM_OPENRULESEDITOR, _r_locale_getstring (IDS_OPENRULESEDITOR)); + _r_menu_additem (hsubmenu, 0, NULL); + _r_menu_additem (hsubmenu, IDM_OPENRULESEDITOR, _r_locale_getstring (IDS_OPENRULESEDITOR)); } VOID _app_generate_timerscontrol ( @@ -1401,7 +1385,7 @@ VOID _app_generate_timerscontrol ( index = IDX_TIMER + (UINT)i; - AppendMenu (hsubmenu, MF_STRING, index, interval_string->buffer); + _r_menu_additem (hsubmenu, index, interval_string->buffer); if (!is_checked && (app_time > current_time) && (app_time <= (current_time + timestamp))) { diff --git a/src/icons.c b/src/icons.c index 230ed93f..c7f7512a 100644 --- a/src/icons.c +++ b/src/icons.c @@ -19,7 +19,13 @@ PICON_INFORMATION _app_icons_getdefault () L"\\svchost.exe" ); - _app_icons_loadfromfile (path, 0, &icon_info.app_icon_id, &icon_info.app_hicon, FALSE); + _app_icons_loadfromfile ( + path, + 0, + &icon_info.app_icon_id, + &icon_info.app_hicon, + FALSE + ); // load default service icons _r_obj_dereference (path); @@ -30,7 +36,13 @@ PICON_INFORMATION _app_icons_getdefault () L"\\shell32.dll" ); - _app_icons_loadfromfile (path, 0, &icon_info.service_icon_id, &icon_info.service_hicon, FALSE); + _app_icons_loadfromfile ( + path, + 0, + &icon_info.service_icon_id, + &icon_info.service_hicon, + FALSE + ); // load uwp icons if (_r_sys_isosversiongreaterorequal (WINDOWS_8)) @@ -43,7 +55,13 @@ PICON_INFORMATION _app_icons_getdefault () L"\\wsreset.exe" ); - _app_icons_loadfromfile (path, 0, &icon_info.uwp_icon_id, &icon_info.uwp_hicon, FALSE); + _app_icons_loadfromfile ( + path, + 0, + &icon_info.uwp_icon_id, + &icon_info.uwp_hicon, + FALSE + ); } _r_obj_dereference (path); @@ -142,7 +160,13 @@ HICON _app_icons_getsafeapp_hicon ( return hicon; } - _app_icons_loadfromfile (ptr_app->real_path, ptr_app->type, &icon_id, &hicon, TRUE); + _app_icons_loadfromfile ( + ptr_app->real_path, + ptr_app->type, + &icon_id, + &hicon, + TRUE + ); if (!icon_id || ((ptr_app->type == DATA_APP_UWP || ptr_app->type == DATA_APP_SERVICE) && icon_id == icon_info->app_icon_id)) diff --git a/src/listview.c b/src/listview.c index 1375da48..dbca0dc2 100644 --- a/src/listview.c +++ b/src/listview.c @@ -985,14 +985,36 @@ VOID _app_listview_setview ( BOOLEAN is_mainview; is_mainview = (listview_id >= IDC_APPS_PROFILE) && (listview_id <= IDC_RULES_CUSTOM); - view_type = is_mainview ? _r_calc_clamp (_r_config_getlong (L"ViewType", LV_VIEW_DETAILS), LV_VIEW_ICON, LV_VIEW_MAX) : LV_VIEW_DETAILS; - icons_size = is_mainview ? _r_calc_clamp (_r_config_getlong (L"IconSize", SHIL_SMALL), SHIL_LARGE, SHIL_LAST) : SHIL_SMALL; - if (listview_id >= IDC_RULES_BLOCKLIST && listview_id <= IDC_RULES_CUSTOM || + if (is_mainview) + { + view_type = _r_calc_clamp (_r_config_getlong (L"ViewType", LV_VIEW_DETAILS), LV_VIEW_ICON, LV_VIEW_MAX); + } + else + { + view_type = LV_VIEW_DETAILS; + } + + if (is_mainview) + { + icons_size = _r_calc_clamp (_r_config_getlong (L"IconSize", SHIL_SMALL), SHIL_LARGE, SHIL_LAST); + } + else + { + icons_size = SHIL_SMALL; + } + + if ((listview_id >= IDC_RULES_BLOCKLIST && listview_id <= IDC_RULES_CUSTOM) || listview_id == IDC_APP_RULES_ID) { - himg = (icons_size == SHIL_SMALL || icons_size == SHIL_SYSSMALL) ? - config.himg_rules_small : config.himg_rules_large; + if (icons_size == SHIL_SMALL || icons_size == SHIL_SYSSMALL) + { + himg = config.himg_rules_small; + } + else + { + himg = config.himg_rules_large; + } } else { diff --git a/src/main.c b/src/main.c index 6c184281..c31755c0 100644 --- a/src/main.c +++ b/src/main.c @@ -59,7 +59,8 @@ BOOLEAN _app_installmessage ( BOOL is_flagchecked; tdc.cbSize = sizeof (tdc); - tdc.dwFlags = TDF_ENABLE_HYPERLINKS | TDF_ALLOW_DIALOG_CANCELLATION | TDF_NO_SET_FOREGROUND | TDF_VERIFICATION_FLAG_CHECKED; + tdc.dwFlags = TDF_ENABLE_HYPERLINKS | TDF_ALLOW_DIALOG_CANCELLATION | + TDF_NO_SET_FOREGROUND | TDF_VERIFICATION_FLAG_CHECKED; tdc.hwndParent = hwnd; tdc.pszWindowTitle = _r_app_getname (); tdc.pszMainIcon = is_install ? TD_INFORMATION_ICON : TD_WARNING_ICON; @@ -72,7 +73,12 @@ BOOLEAN _app_installmessage ( tdc.nDefaultButton = IDYES; - _r_str_copy (str_button_text_1, RTL_NUMBER_OF (str_button_text_1), _app_getstateaction (is_install ? INSTALL_DISABLED : INSTALL_ENABLED)); + _r_str_copy ( + str_button_text_1, + RTL_NUMBER_OF (str_button_text_1), + _app_getstateaction (is_install ? INSTALL_DISABLED : INSTALL_ENABLED) + ); + _r_str_copy (str_button_text_2, RTL_NUMBER_OF (str_button_text_2), _r_locale_getstring (IDS_CLOSE)); td_buttons[0].nButtonID = IDYES; @@ -263,12 +269,13 @@ VOID _app_config_apply ( case IDM_LOADONSTARTUP_CHK: { _r_autorun_enable (hsettings ? hsettings : hwnd, new_val); + is_enabled = _r_autorun_isenabled (); _r_menu_checkitem (hmenu, IDM_LOADONSTARTUP_CHK, 0, MF_BYCOMMAND, is_enabled); if (hsettings) - CheckDlgButton (hsettings, IDC_LOADONSTARTUP_CHK, is_enabled ? BST_CHECKED : BST_UNCHECKED); + _r_ctrl_checkbutton (hsettings, IDC_LOADONSTARTUP_CHK, is_enabled); break; } @@ -286,12 +293,13 @@ VOID _app_config_apply ( case IDM_SKIPUACWARNING_CHK: { _r_skipuac_enable (hsettings ? hsettings : hwnd, new_val); + is_enabled = _r_skipuac_isenabled (); _r_menu_checkitem (hmenu, IDM_SKIPUACWARNING_CHK, 0, MF_BYCOMMAND, is_enabled); if (hsettings) - CheckDlgButton (hsettings, IDC_SKIPUACWARNING_CHK, is_enabled ? BST_CHECKED : BST_UNCHECKED); + _r_ctrl_checkbutton (hsettings, IDC_SKIPUACWARNING_CHK, is_enabled); break; } @@ -409,13 +417,15 @@ VOID _app_config_apply ( case IDC_USECERTIFICATES_CHK: case IDM_USECERTIFICATES_CHK: { + PITEM_APP ptr_app; + SIZE_T enum_key; + _r_config_setboolean (L"IsCertificatesEnabled", new_val); _r_menu_checkitem (hmenu, IDM_USECERTIFICATES_CHK, 0, MF_BYCOMMAND, new_val); if (new_val) { - PITEM_APP ptr_app; - SIZE_T enum_key = 0; + enum_key = 0; _r_queuedlock_acquireshared (&lock_apps); @@ -491,19 +501,19 @@ INT_PTR CALLBACK SettingsProc ( { case IDD_SETTINGS_GENERAL: { - CheckDlgButton (hwnd, IDC_ALWAYSONTOP_CHK, _r_config_getboolean (L"AlwaysOnTop", FALSE) ? BST_CHECKED : BST_UNCHECKED); + _r_ctrl_checkbutton (hwnd, IDC_ALWAYSONTOP_CHK, _r_config_getboolean (L"AlwaysOnTop", FALSE)); #if defined(APP_HAVE_AUTORUN) - CheckDlgButton (hwnd, IDC_LOADONSTARTUP_CHK, _r_autorun_isenabled () ? BST_CHECKED : BST_UNCHECKED); + _r_ctrl_checkbutton (hwnd, IDC_LOADONSTARTUP_CHK, _r_autorun_isenabled ()); #endif // APP_HAVE_AUTORUN - CheckDlgButton (hwnd, IDC_STARTMINIMIZED_CHK, _r_config_getboolean (L"IsStartMinimized", FALSE) ? BST_CHECKED : BST_UNCHECKED); + _r_ctrl_checkbutton (hwnd, IDC_STARTMINIMIZED_CHK, _r_config_getboolean (L"IsStartMinimized", FALSE)); #if defined(APP_HAVE_SKIPUAC) - CheckDlgButton (hwnd, IDC_SKIPUACWARNING_CHK, _r_skipuac_isenabled () ? BST_CHECKED : BST_UNCHECKED); + _r_ctrl_checkbutton (hwnd, IDC_SKIPUACWARNING_CHK, _r_skipuac_isenabled ()); #endif // APP_HAVE_SKIPUAC - CheckDlgButton (hwnd, IDC_CHECKUPDATES_CHK, _r_update_isenabled (FALSE) ? BST_CHECKED : BST_UNCHECKED); + _r_ctrl_checkbutton (hwnd, IDC_CHECKUPDATES_CHK, _r_update_isenabled (FALSE)); _r_locale_enum (hwnd, IDC_LANGUAGE, 0); @@ -514,19 +524,65 @@ INT_PTR CALLBACK SettingsProc ( { HWND htip; - CheckDlgButton (hwnd, IDC_RULE_BLOCKOUTBOUND, _r_config_getboolean (L"BlockOutboundConnections", TRUE) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton (hwnd, IDC_RULE_BLOCKINBOUND, _r_config_getboolean (L"BlockInboundConnections", TRUE) ? BST_CHECKED : BST_UNCHECKED); + _r_ctrl_checkbutton ( + hwnd, + IDC_RULE_BLOCKOUTBOUND, + _r_config_getboolean (L"BlockOutboundConnections", TRUE) + ); - CheckDlgButton (hwnd, IDC_RULE_ALLOWLOOPBACK, _r_config_getboolean (L"AllowLoopbackConnections", TRUE) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton (hwnd, IDC_RULE_ALLOW6TO4, _r_config_getboolean (L"AllowIPv6", TRUE) ? BST_CHECKED : BST_UNCHECKED); + _r_ctrl_checkbutton ( + hwnd, + IDC_RULE_BLOCKINBOUND, + _r_config_getboolean (L"BlockInboundConnections", TRUE) + ); - CheckDlgButton (hwnd, IDC_SECUREFILTERS_CHK, _r_config_getboolean (L"IsSecureFilters", TRUE) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton (hwnd, IDC_USESTEALTHMODE_CHK, _r_config_getboolean (L"UseStealthMode", TRUE) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton (hwnd, IDC_INSTALLBOOTTIMEFILTERS_CHK, _r_config_getboolean (L"InstallBoottimeFilters", TRUE) ? BST_CHECKED : BST_UNCHECKED); + _r_ctrl_checkbutton ( + hwnd, + IDC_RULE_ALLOWLOOPBACK, + _r_config_getboolean (L"AllowLoopbackConnections", TRUE) + ); - CheckDlgButton (hwnd, IDC_USECERTIFICATES_CHK, _r_config_getboolean (L"IsCertificatesEnabled", TRUE) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton (hwnd, IDC_USENETWORKRESOLUTION_CHK, _r_config_getboolean (L"IsNetworkResolutionsEnabled", FALSE) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton (hwnd, IDC_USEREFRESHDEVICES_CHK, _r_config_getboolean (L"IsRefreshDevices", TRUE) ? BST_CHECKED : BST_UNCHECKED); + _r_ctrl_checkbutton ( + hwnd, + IDC_RULE_ALLOW6TO4, + _r_config_getboolean (L"AllowIPv6", TRUE) + ); + + _r_ctrl_checkbutton ( + hwnd, + IDC_SECUREFILTERS_CHK, + _r_config_getboolean (L"IsSecureFilters", TRUE) + ); + + _r_ctrl_checkbutton ( + hwnd, + IDC_USESTEALTHMODE_CHK, + _r_config_getboolean (L"UseStealthMode", TRUE) + ); + + _r_ctrl_checkbutton ( + hwnd, + IDC_INSTALLBOOTTIMEFILTERS_CHK, + _r_config_getboolean (L"InstallBoottimeFilters", TRUE) + ); + + _r_ctrl_checkbutton ( + hwnd, + IDC_USECERTIFICATES_CHK, + _r_config_getboolean (L"IsCertificatesEnabled", TRUE) + ); + + _r_ctrl_checkbutton ( + hwnd, + IDC_USENETWORKRESOLUTION_CHK, + _r_config_getboolean (L"IsNetworkResolutionsEnabled", FALSE) + ); + + _r_ctrl_checkbutton ( + hwnd, + IDC_USEREFRESHDEVICES_CHK, + _r_config_getboolean (L"IsRefreshDevices", TRUE) + ); htip = _r_ctrl_createtip (hwnd); @@ -548,23 +604,60 @@ INT_PTR CALLBACK SettingsProc ( case IDD_SETTINGS_BLOCKLIST: { for (INT i = IDC_BLOCKLIST_SPY_DISABLE; i <= IDC_BLOCKLIST_EXTRA_BLOCK; i++) - CheckDlgButton (hwnd, i, BST_UNCHECKED); // HACK!!! reset button checkboxes! + _r_ctrl_checkbutton (hwnd, i, FALSE); // HACK!!! reset button checkboxes! - CheckDlgButton (hwnd, (IDC_BLOCKLIST_SPY_DISABLE + _r_calc_clamp (_r_config_getlong (L"BlocklistSpyState", 2), 0, 2)), BST_CHECKED); - CheckDlgButton (hwnd, (IDC_BLOCKLIST_UPDATE_DISABLE + _r_calc_clamp (_r_config_getlong (L"BlocklistUpdateState", 0), 0, 2)), BST_CHECKED); - CheckDlgButton (hwnd, (IDC_BLOCKLIST_EXTRA_DISABLE + _r_calc_clamp (_r_config_getlong (L"BlocklistExtraState", 0), 0, 2)), BST_CHECKED); + _r_ctrl_checkbutton ( + hwnd, + IDC_BLOCKLIST_SPY_DISABLE + _r_calc_clamp (_r_config_getlong (L"BlocklistSpyState", 2), 0, 2), + TRUE + ); + + _r_ctrl_checkbutton ( + hwnd, + IDC_BLOCKLIST_UPDATE_DISABLE + _r_calc_clamp (_r_config_getlong (L"BlocklistUpdateState", 0), 0, 2), + TRUE + ); + + _r_ctrl_checkbutton ( + hwnd, + IDC_BLOCKLIST_EXTRA_DISABLE + _r_calc_clamp (_r_config_getlong (L"BlocklistExtraState", 0), 0, 2), + TRUE + ); break; } case IDD_SETTINGS_INTERFACE: { - CheckDlgButton (hwnd, IDC_CONFIRMEXIT_CHK, _r_config_getboolean (L"ConfirmExit2", TRUE) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton (hwnd, IDC_CONFIRMEXITTIMER_CHK, _r_config_getboolean (L"ConfirmExitTimer", TRUE) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton (hwnd, IDC_CONFIRMLOGCLEAR_CHK, _r_config_getboolean (L"ConfirmLogClear", TRUE) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton (hwnd, IDC_CONFIRMALLOW_CHK, _r_config_getboolean (L"ConfirmAllow", TRUE) ? BST_CHECKED : BST_UNCHECKED); + _r_ctrl_checkbutton ( + hwnd, + IDC_CONFIRMEXIT_CHK, + _r_config_getboolean (L"ConfirmExit2", TRUE) + ); - CheckDlgButton (hwnd, IDC_TRAYICONSINGLECLICK_CHK, _r_config_getboolean (L"IsTrayIconSingleClick", TRUE) ? BST_CHECKED : BST_UNCHECKED); + _r_ctrl_checkbutton ( + hwnd, + IDC_CONFIRMEXITTIMER_CHK, + _r_config_getboolean (L"ConfirmExitTimer", TRUE) + ); + + _r_ctrl_checkbutton ( + hwnd, + IDC_CONFIRMLOGCLEAR_CHK, + _r_config_getboolean (L"ConfirmLogClear", TRUE) + ); + + _r_ctrl_checkbutton ( + hwnd, + IDC_CONFIRMALLOW_CHK, + _r_config_getboolean (L"ConfirmAllow", TRUE) + ); + + _r_ctrl_checkbutton ( + hwnd, + IDC_TRAYICONSINGLECLICK_CHK, + _r_config_getboolean (L"IsTrayIconSingleClick", TRUE) + ); break; } @@ -577,7 +670,12 @@ INT_PTR CALLBACK SettingsProc ( INT item_id; // configure listview - _r_listview_setstyle (hwnd, IDC_COLORS, LVS_EX_DOUBLEBUFFER | LVS_EX_FULLROWSELECT | LVS_EX_INFOTIP | LVS_EX_LABELTIP | LVS_EX_CHECKBOXES, FALSE); + _r_listview_setstyle ( + hwnd, + IDC_COLORS, + LVS_EX_DOUBLEBUFFER | LVS_EX_FULLROWSELECT | LVS_EX_INFOTIP | LVS_EX_LABELTIP | LVS_EX_CHECKBOXES, + FALSE + ); _app_listview_setview (hwnd, IDC_COLORS); @@ -595,10 +693,28 @@ INT_PTR CALLBACK SettingsProc ( while (_r_obj_enumhashtable (colors_table, &ptr_clr, NULL, &enum_key)) { - ptr_clr->new_clr = _r_config_getulong_ex (_r_obj_getstring (ptr_clr->config_value), ptr_clr->default_clr, L"colors"); + ptr_clr->new_clr = _r_config_getulong_ex ( + ptr_clr->config_value->buffer, + ptr_clr->default_clr, + L"colors" + ); - _r_listview_additem_ex (hwnd, IDC_COLORS, item_id, _r_locale_getstring (ptr_clr->locale_id), icon_id, I_GROUPIDNONE, (LPARAM)ptr_clr); - _r_listview_setitemcheck (hwnd, IDC_COLORS, item_id, _r_config_getboolean_ex (_r_obj_getstring (ptr_clr->config_name), ptr_clr->is_enabled, L"colors")); + _r_listview_additem_ex ( + hwnd, + IDC_COLORS, + item_id, + _r_locale_getstring (ptr_clr->locale_id), + icon_id, + I_GROUPIDNONE, + (LPARAM)ptr_clr + ); + + _r_listview_setitemcheck ( + hwnd, + IDC_COLORS, + item_id, + _r_config_getboolean_ex (ptr_clr->config_name->buffer, ptr_clr->is_enabled, L"colors") + ); item_id += 1; } @@ -610,13 +726,45 @@ INT_PTR CALLBACK SettingsProc ( case IDD_SETTINGS_NOTIFICATIONS: { - CheckDlgButton (hwnd, IDC_ENABLENOTIFICATIONS_CHK, _r_config_getboolean (L"IsNotificationsEnabled", TRUE) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton (hwnd, IDC_NOTIFICATIONSOUND_CHK, _r_config_getboolean (L"IsNotificationsSound", TRUE) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton (hwnd, IDC_NOTIFICATIONFULLSCREENSILENTMODE_CHK, _r_config_getboolean (L"IsNotificationsFullscreenSilentMode", TRUE) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton (hwnd, IDC_NOTIFICATIONONTRAY_CHK, _r_config_getboolean (L"IsNotificationsOnTray", FALSE) ? BST_CHECKED : BST_UNCHECKED); + _r_ctrl_checkbutton ( + hwnd, + IDC_ENABLENOTIFICATIONS_CHK, + _r_config_getboolean (L"IsNotificationsEnabled", TRUE) + ); - SendDlgItemMessage (hwnd, IDC_NOTIFICATIONTIMEOUT, UDM_SETRANGE32, 0, (LPARAM)_r_calc_days2seconds (7)); - SendDlgItemMessage (hwnd, IDC_NOTIFICATIONTIMEOUT, UDM_SETPOS32, 0, (LPARAM)_r_config_getulong (L"NotificationsTimeout", NOTIFY_TIMEOUT_DEFAULT)); + _r_ctrl_checkbutton ( + hwnd, + IDC_NOTIFICATIONSOUND_CHK, + _r_config_getboolean (L"IsNotificationsSound", TRUE) + ); + + _r_ctrl_checkbutton ( + hwnd, + IDC_NOTIFICATIONFULLSCREENSILENTMODE_CHK, + _r_config_getboolean (L"IsNotificationsFullscreenSilentMode", TRUE) + ); + + _r_ctrl_checkbutton ( + hwnd, + IDC_NOTIFICATIONONTRAY_CHK, + _r_config_getboolean (L"IsNotificationsOnTray", FALSE) + ); + + SendDlgItemMessage ( + hwnd, + IDC_NOTIFICATIONTIMEOUT, + UDM_SETRANGE32, + 0, + (LPARAM)_r_calc_days2seconds (7) + ); + + SendDlgItemMessage ( + hwnd, + IDC_NOTIFICATIONTIMEOUT, + UDM_SETPOS32, + 0, + (LPARAM)_r_config_getulong (L"NotificationsTimeout", NOTIFY_TIMEOUT_DEFAULT) + ); PostMessage (hwnd, WM_COMMAND, MAKEWPARAM (IDC_ENABLENOTIFICATIONS_CHK, 0), WM_APP); @@ -625,9 +773,14 @@ INT_PTR CALLBACK SettingsProc ( case IDD_SETTINGS_LOGGING: { + UDACCEL ud = {0}; PR_STRING string; - CheckDlgButton (hwnd, IDC_ENABLELOG_CHK, _r_config_getboolean (L"IsLogEnabled", FALSE) ? BST_CHECKED : BST_UNCHECKED); + _r_ctrl_checkbutton ( + hwnd, + IDC_ENABLELOG_CHK, + _r_config_getboolean (L"IsLogEnabled", FALSE) + ); string = _app_getlogpath (); @@ -647,14 +800,37 @@ INT_PTR CALLBACK SettingsProc ( _r_obj_dereference (string); } - UDACCEL ud = {0}; ud.nInc = 64; // set step to 64kb - SendDlgItemMessage (hwnd, IDC_LOGSIZELIMIT, UDM_SETACCEL, 1, (LPARAM)&ud); - SendDlgItemMessage (hwnd, IDC_LOGSIZELIMIT, UDM_SETRANGE32, 64, (LPARAM)_r_calc_kilobytes2bytes (512)); - SendDlgItemMessage (hwnd, IDC_LOGSIZELIMIT, UDM_SETPOS32, 0, (LPARAM)_r_config_getulong (L"LogSizeLimitKb", LOG_SIZE_LIMIT_DEFAULT)); + SendDlgItemMessage ( + hwnd, + IDC_LOGSIZELIMIT, + UDM_SETACCEL, + 1, + (LPARAM)&ud + ); - CheckDlgButton (hwnd, IDC_ENABLEUILOG_CHK, _r_config_getboolean (L"IsLogUiEnabled", FALSE) ? BST_CHECKED : BST_UNCHECKED); + SendDlgItemMessage ( + hwnd, + IDC_LOGSIZELIMIT, + UDM_SETRANGE32, + (WPARAM)64, + (LPARAM)_r_calc_kilobytes2bytes (512) + ); + + SendDlgItemMessage ( + hwnd, + IDC_LOGSIZELIMIT, + UDM_SETPOS32, + 0, + (LPARAM)_r_config_getulong (L"LogSizeLimitKb", LOG_SIZE_LIMIT_DEFAULT) + ); + + _r_ctrl_checkbutton ( + hwnd, + IDC_ENABLEUILOG_CHK, + _r_config_getboolean (L"IsLogUiEnabled", FALSE) + ); PostMessage (hwnd, WM_COMMAND, MAKEWPARAM (IDC_ENABLELOG_CHK, 0), WM_APP); @@ -663,11 +839,29 @@ INT_PTR CALLBACK SettingsProc ( case IDD_SETTINGS_EXCLUDE: { - CheckDlgButton (hwnd, IDC_EXCLUDEBLOCKLIST_CHK, _r_config_getboolean (L"IsExcludeBlocklist", TRUE) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton (hwnd, IDC_EXCLUDECUSTOM_CHK, _r_config_getboolean (L"IsExcludeCustomRules", TRUE) ? BST_CHECKED : BST_UNCHECKED); + _r_ctrl_checkbutton ( + hwnd, + IDC_EXCLUDEBLOCKLIST_CHK, + _r_config_getboolean (L"IsExcludeBlocklist", TRUE) + ); - CheckDlgButton (hwnd, IDC_EXCLUDESTEALTH_CHK, _r_config_getboolean (L"IsExcludeStealth", TRUE) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton (hwnd, IDC_EXCLUDECLASSIFYALLOW_CHK, _r_config_getboolean (L"IsExcludeClassifyAllow", TRUE) ? BST_CHECKED : BST_UNCHECKED); + _r_ctrl_checkbutton ( + hwnd, + IDC_EXCLUDECUSTOM_CHK, + _r_config_getboolean (L"IsExcludeCustomRules", TRUE) + ); + + _r_ctrl_checkbutton ( + hwnd, + IDC_EXCLUDESTEALTH_CHK, + _r_config_getboolean (L"IsExcludeStealth", TRUE) + ); + + _r_ctrl_checkbutton ( + hwnd, + IDC_EXCLUDECLASSIFYALLOW_CHK, + _r_config_getboolean (L"IsExcludeClassifyAllow", TRUE) + ); // win8+ if (!_r_sys_isosversiongreaterorequal (WINDOWS_8)) @@ -687,21 +881,109 @@ INT_PTR CALLBACK SettingsProc ( INT dialog_id = (INT)wparam; // localize titles - _r_ctrl_setstringformat (hwnd, IDC_TITLE_GENERAL, L"%s:", _r_locale_getstring (IDS_TITLE_GENERAL)); - _r_ctrl_setstringformat (hwnd, IDC_TITLE_LANGUAGE, L"%s: (Language)", _r_locale_getstring (IDS_TITLE_LANGUAGE)); - _r_ctrl_setstringformat (hwnd, IDC_TITLE_BLOCKLIST_SPY, L"%s:", _r_locale_getstring (IDS_BLOCKLIST_SPY)); - _r_ctrl_setstringformat (hwnd, IDC_TITLE_BLOCKLIST_UPDATE, L"%s:", _r_locale_getstring (IDS_BLOCKLIST_UPDATE)); - _r_ctrl_setstringformat (hwnd, IDC_TITLE_BLOCKLIST_EXTRA, L"%s: (Skype, Bing, Live, Outlook, etc.)", _r_locale_getstring (IDS_BLOCKLIST_EXTRA)); - _r_ctrl_setstringformat (hwnd, IDC_TITLE_CONNECTIONS, L"%s:", _r_locale_getstring (IDS_TAB_NETWORK)); - _r_ctrl_setstringformat (hwnd, IDC_TITLE_SECURITY, L"%s:", _r_locale_getstring (IDS_TITLE_SECURITY)); - _r_ctrl_setstringformat (hwnd, IDC_TITLE_CONFIRMATIONS, L"%s:", _r_locale_getstring (IDS_TITLE_CONFIRMATIONS)); - _r_ctrl_setstringformat (hwnd, IDC_TITLE_TRAY, L"%s:", _r_locale_getstring (IDS_TITLE_TRAY)); - _r_ctrl_setstringformat (hwnd, IDC_TITLE_HIGHLIGHTING, L"%s:", _r_locale_getstring (IDS_TITLE_HIGHLIGHTING)); - _r_ctrl_setstringformat (hwnd, IDC_TITLE_LOGVIEWER, L"%s:", _r_locale_getstring (IDS_LOGVIEWER_HINT)); - _r_ctrl_setstringformat (hwnd, IDC_TITLE_INTERFACE, L"%s:", _r_locale_getstring (IDS_TITLE_INTERFACE)); - _r_ctrl_setstringformat (hwnd, IDC_TITLE_NOTIFICATIONS, L"%s:", _r_locale_getstring (IDS_TITLE_NOTIFICATIONS)); - _r_ctrl_setstringformat (hwnd, IDC_TITLE_LOGGING, L"%s:", _r_locale_getstring (IDS_TITLE_LOGGING)); - _r_ctrl_setstringformat (hwnd, IDC_TITLE_ADVANCED, L"%s:", _r_locale_getstring (IDS_TITLE_ADVANCED)); + _r_ctrl_setstringformat ( + hwnd, + IDC_TITLE_GENERAL, + L"%s:", + _r_locale_getstring (IDS_TITLE_GENERAL) + ); + + _r_ctrl_setstringformat ( + hwnd, + IDC_TITLE_LANGUAGE, + L"%s: (Language)", + _r_locale_getstring (IDS_TITLE_LANGUAGE) + ); + + _r_ctrl_setstringformat ( + hwnd, + IDC_TITLE_BLOCKLIST_SPY, + L"%s:", + _r_locale_getstring (IDS_BLOCKLIST_SPY) + ); + + _r_ctrl_setstringformat ( + hwnd, + IDC_TITLE_BLOCKLIST_UPDATE, + L"%s:", + _r_locale_getstring (IDS_BLOCKLIST_UPDATE) + ); + + _r_ctrl_setstringformat ( + hwnd, + IDC_TITLE_BLOCKLIST_EXTRA, + L"%s: (Skype, Bing, Live, Outlook, etc.)", + _r_locale_getstring (IDS_BLOCKLIST_EXTRA) + ); + + _r_ctrl_setstringformat ( + hwnd, + IDC_TITLE_CONNECTIONS, + L"%s:", + _r_locale_getstring (IDS_TAB_NETWORK) + ); + + _r_ctrl_setstringformat ( + hwnd, + IDC_TITLE_SECURITY, + L"%s:", + _r_locale_getstring (IDS_TITLE_SECURITY) + ); + + _r_ctrl_setstringformat ( + hwnd, + IDC_TITLE_CONFIRMATIONS, + L"%s:", + _r_locale_getstring (IDS_TITLE_CONFIRMATIONS) + ); + + _r_ctrl_setstringformat ( + hwnd, + IDC_TITLE_TRAY, + L"%s:", + _r_locale_getstring (IDS_TITLE_TRAY) + ); + + _r_ctrl_setstringformat ( + hwnd, + IDC_TITLE_HIGHLIGHTING, + L"%s:", + _r_locale_getstring (IDS_TITLE_HIGHLIGHTING) + ); + + _r_ctrl_setstringformat ( + hwnd, + IDC_TITLE_LOGVIEWER, + L"%s:", + _r_locale_getstring (IDS_LOGVIEWER_HINT) + ); + + _r_ctrl_setstringformat ( + hwnd, + IDC_TITLE_INTERFACE, + L"%s:", + _r_locale_getstring (IDS_TITLE_INTERFACE) + ); + + _r_ctrl_setstringformat ( + hwnd, + IDC_TITLE_NOTIFICATIONS, + L"%s:", + _r_locale_getstring (IDS_TITLE_NOTIFICATIONS) + ); + + _r_ctrl_setstringformat ( + hwnd, IDC_TITLE_LOGGING, + L"%s:", + _r_locale_getstring (IDS_TITLE_LOGGING) + ); + + _r_ctrl_setstringformat ( + hwnd, + IDC_TITLE_ADVANCED, + L"%s:", + _r_locale_getstring (IDS_TITLE_ADVANCED) + ); switch (dialog_id) { @@ -724,19 +1006,81 @@ INT_PTR CALLBACK SettingsProc ( recommended_string = _r_locale_getstring (IDS_RECOMMENDED); - _r_ctrl_setstringformat (hwnd, IDC_RULE_BLOCKOUTBOUND, L"%s (%s)", _r_locale_getstring (IDS_RULE_BLOCKOUTBOUND), recommended_string); - _r_ctrl_setstringformat (hwnd, IDC_RULE_BLOCKINBOUND, L"%s (%s)", _r_locale_getstring (IDS_RULE_BLOCKINBOUND), recommended_string); + _r_ctrl_setstringformat ( + hwnd, + IDC_RULE_BLOCKOUTBOUND, + L"%s (%s)", + _r_locale_getstring (IDS_RULE_BLOCKOUTBOUND), + recommended_string + ); - _r_ctrl_setstringformat (hwnd, IDC_RULE_ALLOWLOOPBACK, L"%s (%s)", _r_locale_getstring (IDS_RULE_ALLOWLOOPBACK), recommended_string); - _r_ctrl_setstringformat (hwnd, IDC_RULE_ALLOW6TO4, L"%s (%s)", _r_locale_getstring (IDS_RULE_ALLOW6TO4), recommended_string); + _r_ctrl_setstringformat ( + hwnd, + IDC_RULE_BLOCKINBOUND, + L"%s (%s)", + _r_locale_getstring (IDS_RULE_BLOCKINBOUND), + recommended_string + ); - _r_ctrl_setstringformat (hwnd, IDC_SECUREFILTERS_CHK, L"%s (%s)", _r_locale_getstring (IDS_SECUREFILTERS_CHK), recommended_string); - _r_ctrl_setstringformat (hwnd, IDC_USESTEALTHMODE_CHK, L"%s (%s)", _r_locale_getstring (IDS_USESTEALTHMODE_CHK), recommended_string); - _r_ctrl_setstringformat (hwnd, IDC_INSTALLBOOTTIMEFILTERS_CHK, L"%s (%s)", _r_locale_getstring (IDS_INSTALLBOOTTIMEFILTERS_CHK), recommended_string); + _r_ctrl_setstringformat ( + hwnd, + IDC_RULE_ALLOWLOOPBACK, + L"%s (%s)", + _r_locale_getstring (IDS_RULE_ALLOWLOOPBACK), + recommended_string + ); - _r_ctrl_setstring (hwnd, IDC_USENETWORKRESOLUTION_CHK, _r_locale_getstring (IDS_USENETWORKRESOLUTION_CHK)); - _r_ctrl_setstring (hwnd, IDC_USECERTIFICATES_CHK, _r_locale_getstring (IDS_USECERTIFICATES_CHK)); - _r_ctrl_setstringformat (hwnd, IDC_USEREFRESHDEVICES_CHK, L"%s (%s)", _r_locale_getstring (IDS_USEREFRESHDEVICES_CHK), recommended_string); + _r_ctrl_setstringformat ( + hwnd, + IDC_RULE_ALLOW6TO4, + L"%s (%s)", + _r_locale_getstring (IDS_RULE_ALLOW6TO4), + recommended_string + ); + + _r_ctrl_setstringformat ( + hwnd, + IDC_SECUREFILTERS_CHK, + L"%s (%s)", + _r_locale_getstring (IDS_SECUREFILTERS_CHK), + recommended_string + ); + + _r_ctrl_setstringformat ( + hwnd, + IDC_USESTEALTHMODE_CHK, + L"%s (%s)", + _r_locale_getstring (IDS_USESTEALTHMODE_CHK), + recommended_string + ); + + _r_ctrl_setstringformat ( + hwnd, + IDC_INSTALLBOOTTIMEFILTERS_CHK, + L"%s (%s)", + _r_locale_getstring (IDS_INSTALLBOOTTIMEFILTERS_CHK), + recommended_string + ); + + _r_ctrl_setstring ( + hwnd, + IDC_USENETWORKRESOLUTION_CHK, + _r_locale_getstring (IDS_USENETWORKRESOLUTION_CHK) + ); + + _r_ctrl_setstring ( + hwnd, + IDC_USECERTIFICATES_CHK, + _r_locale_getstring (IDS_USECERTIFICATES_CHK) + ); + + _r_ctrl_setstringformat ( + hwnd, + IDC_USEREFRESHDEVICES_CHK, + L"%s (%s)", + _r_locale_getstring (IDS_USEREFRESHDEVICES_CHK), + recommended_string + ); break; } @@ -755,17 +1099,43 @@ INT_PTR CALLBACK SettingsProc ( _r_ctrl_setstring (hwnd, IDC_BLOCKLIST_SPY_DISABLE, disable_string); _r_ctrl_setstring (hwnd, IDC_BLOCKLIST_SPY_ALLOW, allow_string); - _r_ctrl_setstringformat (hwnd, IDC_BLOCKLIST_SPY_BLOCK, L"%s (%s)", block_string, recommended_string); - _r_ctrl_setstringformat (hwnd, IDC_BLOCKLIST_UPDATE_DISABLE, L"%s (%s)", disable_string, recommended_string); + _r_ctrl_setstringformat ( + hwnd, + IDC_BLOCKLIST_SPY_BLOCK, + L"%s (%s)", + block_string, + recommended_string + ); + + _r_ctrl_setstringformat ( + hwnd, + IDC_BLOCKLIST_UPDATE_DISABLE, + L"%s (%s)", + disable_string, + recommended_string + ); + _r_ctrl_setstring (hwnd, IDC_BLOCKLIST_UPDATE_ALLOW, allow_string); _r_ctrl_setstring (hwnd, IDC_BLOCKLIST_UPDATE_BLOCK, block_string); - _r_ctrl_setstringformat (hwnd, IDC_BLOCKLIST_EXTRA_DISABLE, L"%s (%s)", disable_string, recommended_string); + _r_ctrl_setstringformat ( + hwnd, + IDC_BLOCKLIST_EXTRA_DISABLE, + L"%s (%s)", + disable_string, + recommended_string + ); + _r_ctrl_setstring (hwnd, IDC_BLOCKLIST_EXTRA_ALLOW, allow_string); _r_ctrl_setstring (hwnd, IDC_BLOCKLIST_EXTRA_BLOCK, block_string); - _r_ctrl_setstringformat (hwnd, IDC_BLOCKLIST_INFO, L"Author: WindowsSpyBlocker - block spying and tracking on Windows systems.", WINDOWSSPYBLOCKER_URL); + _r_ctrl_setstringformat ( + hwnd, + IDC_BLOCKLIST_INFO, + L"Author: WindowsSpyBlocker - block spying and tracking on Windows systems.", + WINDOWSSPYBLOCKER_URL + ); break; } @@ -777,7 +1147,11 @@ INT_PTR CALLBACK SettingsProc ( _r_ctrl_setstring (hwnd, IDC_CONFIRMLOGCLEAR_CHK, _r_locale_getstring (IDS_CONFIRMLOGCLEAR_CHK)); _r_ctrl_setstring (hwnd, IDC_CONFIRMALLOW_CHK, _r_locale_getstring (IDS_CONFIRMALLOW_CHK)); - _r_ctrl_setstring (hwnd, IDC_TRAYICONSINGLECLICK_CHK, _r_locale_getstring (IDS_TRAYICONSINGLECLICK_CHK)); + _r_ctrl_setstring ( + hwnd, + IDC_TRAYICONSINGLECLICK_CHK, + _r_locale_getstring (IDS_TRAYICONSINGLECLICK_CHK) + ); break; } @@ -793,9 +1167,7 @@ INT_PTR CALLBACK SettingsProc ( ptr_clr = (PITEM_COLOR)_r_listview_getitemlparam (hwnd, IDC_COLORS, i); if (ptr_clr) - { _r_listview_setitem (hwnd, IDC_COLORS, i, 0, _r_locale_getstring (ptr_clr->locale_id)); - } } _r_ctrl_setstring (hwnd, IDC_COLORS_HINT, _r_locale_getstring (IDS_COLORS_HINT)); @@ -805,12 +1177,35 @@ INT_PTR CALLBACK SettingsProc ( case IDD_SETTINGS_NOTIFICATIONS: { - _r_ctrl_setstring (hwnd, IDC_ENABLENOTIFICATIONS_CHK, _r_locale_getstring (IDS_ENABLENOTIFICATIONS_CHK)); - _r_ctrl_setstring (hwnd, IDC_NOTIFICATIONSOUND_CHK, _r_locale_getstring (IDS_NOTIFICATIONSOUND_CHK)); - _r_ctrl_setstring (hwnd, IDC_NOTIFICATIONFULLSCREENSILENTMODE_CHK, _r_locale_getstring (IDS_NOTIFICATIONFULLSCREENSILENTMODE_CHK)); - _r_ctrl_setstring (hwnd, IDC_NOTIFICATIONONTRAY_CHK, _r_locale_getstring (IDS_NOTIFICATIONONTRAY_CHK)); + _r_ctrl_setstring ( + hwnd, + IDC_ENABLENOTIFICATIONS_CHK, + _r_locale_getstring (IDS_ENABLENOTIFICATIONS_CHK) + ); - _r_ctrl_setstring (hwnd, IDC_NOTIFICATIONTIMEOUT_HINT, _r_locale_getstring (IDS_NOTIFICATIONTIMEOUT_HINT)); + _r_ctrl_setstring ( + hwnd, + IDC_NOTIFICATIONSOUND_CHK, + _r_locale_getstring (IDS_NOTIFICATIONSOUND_CHK) + ); + + _r_ctrl_setstring ( + hwnd, + IDC_NOTIFICATIONFULLSCREENSILENTMODE_CHK, + _r_locale_getstring (IDS_NOTIFICATIONFULLSCREENSILENTMODE_CHK) + ); + + _r_ctrl_setstring ( + hwnd, + IDC_NOTIFICATIONONTRAY_CHK, + _r_locale_getstring (IDS_NOTIFICATIONONTRAY_CHK) + ); + + _r_ctrl_setstring ( + hwnd, + IDC_NOTIFICATIONTIMEOUT_HINT, + _r_locale_getstring (IDS_NOTIFICATIONTIMEOUT_HINT) + ); break; } @@ -821,18 +1216,49 @@ INT_PTR CALLBACK SettingsProc ( _r_ctrl_setstring (hwnd, IDC_LOGSIZELIMIT_HINT, _r_locale_getstring (IDS_LOGSIZELIMIT_HINT)); - _r_ctrl_setstringformat (hwnd, IDC_ENABLEUILOG_CHK, L"%s (session only)", _r_locale_getstring (IDS_ENABLEUILOG_CHK)); + _r_ctrl_setstringformat ( + hwnd, + IDC_ENABLEUILOG_CHK, + L"%s (session only)", + _r_locale_getstring (IDS_ENABLEUILOG_CHK) + ); break; } case IDD_SETTINGS_EXCLUDE: { - _r_ctrl_setstringformat (hwnd, IDC_EXCLUDEBLOCKLIST_CHK, L"%s %s", _r_locale_getstring (IDS_TITLE_EXCLUDE), _r_locale_getstring (IDS_EXCLUDEBLOCKLIST_CHK)); - _r_ctrl_setstringformat (hwnd, IDC_EXCLUDECUSTOM_CHK, L"%s %s", _r_locale_getstring (IDS_TITLE_EXCLUDE), _r_locale_getstring (IDS_EXCLUDECUSTOM_CHK)); + _r_ctrl_setstringformat ( + hwnd, + IDC_EXCLUDEBLOCKLIST_CHK, + L"%s %s", + _r_locale_getstring (IDS_TITLE_EXCLUDE), + _r_locale_getstring (IDS_EXCLUDEBLOCKLIST_CHK) + ); - _r_ctrl_setstringformat (hwnd, IDC_EXCLUDESTEALTH_CHK, L"%s %s", _r_locale_getstring (IDS_TITLE_EXCLUDE), _r_locale_getstring (IDS_EXCLUDESTEALTH_CHK)); - _r_ctrl_setstringformat (hwnd, IDC_EXCLUDECLASSIFYALLOW_CHK, L"%s %s [win8+]", _r_locale_getstring (IDS_TITLE_EXCLUDE), _r_locale_getstring (IDS_EXCLUDECLASSIFYALLOW_CHK)); + _r_ctrl_setstringformat ( + hwnd, + IDC_EXCLUDECUSTOM_CHK, + L"%s %s", + _r_locale_getstring (IDS_TITLE_EXCLUDE), + _r_locale_getstring (IDS_EXCLUDECUSTOM_CHK) + ); + + _r_ctrl_setstringformat ( + hwnd, + IDC_EXCLUDESTEALTH_CHK, + L"%s %s", + _r_locale_getstring (IDS_TITLE_EXCLUDE), + _r_locale_getstring (IDS_EXCLUDESTEALTH_CHK) + ); + + _r_ctrl_setstringformat ( + hwnd, + IDC_EXCLUDECLASSIFYALLOW_CHK, + L"%s %s [win8+]", + _r_locale_getstring (IDS_TITLE_EXCLUDE), + _r_locale_getstring (IDS_EXCLUDECLASSIFYALLOW_CHK) + ); break; } @@ -851,9 +1277,7 @@ INT_PTR CALLBACK SettingsProc ( if (hlistview) { if (GetClientRect (hlistview, &rect)) - { _r_listview_setcolumn (hwnd, IDC_COLORS, 0, NULL, rect.right); - } } break; @@ -862,15 +1286,23 @@ INT_PTR CALLBACK SettingsProc ( case WM_VSCROLL: case WM_HSCROLL: { + ULONG value; INT ctrl_id; ctrl_id = GetDlgCtrlID ((HWND)lparam); if (ctrl_id == IDC_LOGSIZELIMIT) - _r_config_setulong (L"LogSizeLimitKb", (ULONG)SendDlgItemMessage (hwnd, ctrl_id, UDM_GETPOS32, 0, 0)); + { + value = (ULONG)SendDlgItemMessage (hwnd, ctrl_id, UDM_GETPOS32, 0, 0); + _r_config_setulong (L"LogSizeLimitKb", value); + } else if (ctrl_id == IDC_NOTIFICATIONTIMEOUT) - _r_config_setulong (L"NotificationsTimeout", (ULONG)SendDlgItemMessage (hwnd, ctrl_id, UDM_GETPOS32, 0, 0)); + { + value = (ULONG)SendDlgItemMessage (hwnd, ctrl_id, UDM_GETPOS32, 0, 0); + + _r_config_setulong (L"NotificationsTimeout", value); + } break; } @@ -891,30 +1323,35 @@ INT_PTR CALLBACK SettingsProc ( break; WCHAR buffer[1024] = {0}; + INT locale_id; INT ctrl_id; ctrl_id = GetDlgCtrlID ((HWND)(lpnmdi->hdr.idFrom)); if (ctrl_id == IDC_RULE_BLOCKOUTBOUND) - _r_str_copy (buffer, RTL_NUMBER_OF (buffer), _r_locale_getstring (IDS_RULE_BLOCKOUTBOUND)); + locale_id = IDS_RULE_BLOCKOUTBOUND; else if (ctrl_id == IDC_RULE_BLOCKINBOUND) - _r_str_copy (buffer, RTL_NUMBER_OF (buffer), _r_locale_getstring (IDS_RULE_BLOCKINBOUND)); + locale_id = IDS_RULE_BLOCKINBOUND; else if (ctrl_id == IDC_RULE_ALLOWLOOPBACK) - _r_str_copy (buffer, RTL_NUMBER_OF (buffer), _r_locale_getstring (IDS_RULE_ALLOWLOOPBACK_HINT)); + locale_id = IDS_RULE_ALLOWLOOPBACK_HINT; else if (ctrl_id == IDC_USESTEALTHMODE_CHK) - _r_str_copy (buffer, RTL_NUMBER_OF (buffer), _r_locale_getstring (IDS_USESTEALTHMODE_HINT)); + locale_id = IDS_USESTEALTHMODE_HINT; else if (ctrl_id == IDC_INSTALLBOOTTIMEFILTERS_CHK) - _r_str_copy (buffer, RTL_NUMBER_OF (buffer), _r_locale_getstring (IDS_INSTALLBOOTTIMEFILTERS_HINT)); + locale_id = IDS_INSTALLBOOTTIMEFILTERS_HINT; else if (ctrl_id == IDC_SECUREFILTERS_CHK) - _r_str_copy (buffer, RTL_NUMBER_OF (buffer), _r_locale_getstring (IDS_SECUREFILTERS_HINT)); + locale_id = IDS_SECUREFILTERS_HINT; - if (!_r_str_isempty (buffer)) - lpnmdi->lpszText = buffer; + else + break; + + _r_str_copy (buffer, RTL_NUMBER_OF (buffer), _r_locale_getstring (locale_id)); + + lpnmdi->lpszText = buffer; break; } @@ -946,9 +1383,17 @@ INT_PTR CALLBACK SettingsProc ( { is_enabled = (lpnmlv->uNewState & LVIS_STATEIMAGEMASK) == INDEXTOSTATEIMAGEMASK (2); - _r_config_setboolean_ex (_r_obj_getstring (ptr_clr->config_name), is_enabled, L"colors"); + _r_config_setboolean_ex ( + ptr_clr->config_name->buffer, + is_enabled, + L"colors" + ); - _r_listview_redraw (_r_app_gethwnd (), _app_listview_getcurrent (_r_app_gethwnd ()), -1); + _r_listview_redraw ( + _r_app_gethwnd (), + _app_listview_getcurrent (_r_app_gethwnd ()), + -1 + ); } } @@ -971,7 +1416,7 @@ INT_PTR CALLBACK SettingsProc ( { LPNMITEMACTIVATE lpnmlv; INT listview_id; - PITEM_COLOR ptr_clr_current; + PITEM_COLOR ptr_clr_crnt; CHOOSECOLOR cc = {0}; COLORREF cust[16] = {0}; @@ -987,10 +1432,9 @@ INT_PTR CALLBACK SettingsProc ( if (listview_id == IDC_COLORS) { + ptr_clr_crnt = (PITEM_COLOR)_r_listview_getitemlparam (hwnd, listview_id, lpnmlv->iItem); - ptr_clr_current = (PITEM_COLOR)_r_listview_getitemlparam (hwnd, listview_id, lpnmlv->iItem); - - if (ptr_clr_current) + if (ptr_clr_crnt) { index = 0; enum_key = 0; @@ -1004,15 +1448,25 @@ INT_PTR CALLBACK SettingsProc ( cc.Flags = CC_RGBINIT | CC_FULLOPEN; cc.hwndOwner = hwnd; cc.lpCustColors = cust; - cc.rgbResult = ptr_clr_current->new_clr; + cc.rgbResult = ptr_clr_crnt->new_clr; if (ChooseColor (&cc)) { - ptr_clr_current->new_clr = cc.rgbResult; - _r_config_setulong_ex (_r_obj_getstring (ptr_clr_current->config_value), cc.rgbResult, L"colors"); + ptr_clr_crnt->new_clr = cc.rgbResult; + + _r_config_setulong_ex ( + ptr_clr_crnt->config_value->buffer, + cc.rgbResult, + L"colors" + ); _r_listview_redraw (hwnd, IDC_COLORS, -1); - _r_listview_redraw (_r_app_gethwnd (), _app_listview_getcurrent (_r_app_gethwnd ()), -1); + + _r_listview_redraw ( + _r_app_gethwnd (), + _app_listview_getcurrent (_r_app_gethwnd ()), + -1 + ); } } } @@ -1048,7 +1502,7 @@ INT_PTR CALLBACK SettingsProc ( { case IDC_ALWAYSONTOP_CHK: { - BOOLEAN is_enabled = (IsDlgButtonChecked (hwnd, ctrl_id) == BST_CHECKED); + BOOLEAN is_enabled = _r_ctrl_isbuttonchecked (hwnd, ctrl_id); _r_config_setboolean (L"AlwaysOnTop", is_enabled); _r_menu_checkitem (GetMenu (_r_app_gethwnd ()), IDM_ALWAYSONTOP_CHK, 0, MF_BYCOMMAND, is_enabled); @@ -1066,31 +1520,31 @@ INT_PTR CALLBACK SettingsProc ( case IDC_CONFIRMEXIT_CHK: { - _r_config_setboolean (L"ConfirmExit2", (IsDlgButtonChecked (hwnd, ctrl_id) == BST_CHECKED)); + _r_config_setboolean (L"ConfirmExit2", _r_ctrl_isbuttonchecked (hwnd, ctrl_id)); break; } case IDC_CONFIRMEXITTIMER_CHK: { - _r_config_setboolean (L"ConfirmExitTimer", (IsDlgButtonChecked (hwnd, ctrl_id) == BST_CHECKED)); + _r_config_setboolean (L"ConfirmExitTimer", _r_ctrl_isbuttonchecked (hwnd, ctrl_id)); break; } case IDC_CONFIRMLOGCLEAR_CHK: { - _r_config_setboolean (L"ConfirmLogClear", (IsDlgButtonChecked (hwnd, ctrl_id) == BST_CHECKED)); + _r_config_setboolean (L"ConfirmLogClear", _r_ctrl_isbuttonchecked (hwnd, ctrl_id)); break; } case IDC_CONFIRMALLOW_CHK: { - _r_config_setboolean (L"ConfirmAllow", (IsDlgButtonChecked (hwnd, ctrl_id) == BST_CHECKED)); + _r_config_setboolean (L"ConfirmAllow", _r_ctrl_isbuttonchecked (hwnd, ctrl_id)); break; } case IDC_TRAYICONSINGLECLICK_CHK: { - _r_config_setboolean (L"IsTrayIconSingleClick", (IsDlgButtonChecked (hwnd, ctrl_id) == BST_CHECKED)); + _r_config_setboolean (L"IsTrayIconSingleClick", _r_ctrl_isbuttonchecked (hwnd, ctrl_id)); break; } @@ -1131,7 +1585,7 @@ INT_PTR CALLBACK SettingsProc ( if (ctrl_id >= IDC_BLOCKLIST_SPY_DISABLE && ctrl_id <= IDC_BLOCKLIST_SPY_BLOCK) { new_state = _r_calc_clamp ( - _r_ctrl_isradiobuttonchecked (hwnd, IDC_BLOCKLIST_SPY_DISABLE, IDC_BLOCKLIST_SPY_BLOCK) - IDC_BLOCKLIST_SPY_DISABLE, + _r_ctrl_isradiochecked (hwnd, IDC_BLOCKLIST_SPY_DISABLE, IDC_BLOCKLIST_SPY_BLOCK) - IDC_BLOCKLIST_SPY_DISABLE, 0, 2 ); @@ -1150,7 +1604,7 @@ INT_PTR CALLBACK SettingsProc ( else if (ctrl_id >= IDC_BLOCKLIST_UPDATE_DISABLE && ctrl_id <= IDC_BLOCKLIST_UPDATE_BLOCK) { new_state = _r_calc_clamp ( - _r_ctrl_isradiobuttonchecked (hwnd, IDC_BLOCKLIST_UPDATE_DISABLE, IDC_BLOCKLIST_UPDATE_BLOCK) - IDC_BLOCKLIST_UPDATE_DISABLE, + _r_ctrl_isradiochecked (hwnd, IDC_BLOCKLIST_UPDATE_DISABLE, IDC_BLOCKLIST_UPDATE_BLOCK) - IDC_BLOCKLIST_UPDATE_DISABLE, 0, 2 ); @@ -1170,7 +1624,7 @@ INT_PTR CALLBACK SettingsProc ( else if (ctrl_id >= IDC_BLOCKLIST_EXTRA_DISABLE && ctrl_id <= IDC_BLOCKLIST_EXTRA_BLOCK) { new_state = _r_calc_clamp ( - _r_ctrl_isradiobuttonchecked (hwnd, IDC_BLOCKLIST_EXTRA_DISABLE, IDC_BLOCKLIST_EXTRA_BLOCK) - IDC_BLOCKLIST_EXTRA_DISABLE, + _r_ctrl_isradiochecked (hwnd, IDC_BLOCKLIST_EXTRA_DISABLE, IDC_BLOCKLIST_EXTRA_BLOCK) - IDC_BLOCKLIST_EXTRA_DISABLE, 0, 2 ); @@ -1199,8 +1653,8 @@ INT_PTR CALLBACK SettingsProc ( BOOLEAN is_logging_enabled; is_postmessage = ((INT)lparam == WM_APP); - is_enabled = (IsDlgButtonChecked (hwnd, ctrl_id) == BST_CHECKED); - is_logging_enabled = is_enabled || (IsDlgButtonChecked (hwnd, IDC_ENABLEUILOG_CHK) == BST_CHECKED); + is_enabled = _r_ctrl_isbuttonchecked (hwnd, ctrl_id); + is_logging_enabled = is_enabled || _r_ctrl_isbuttonchecked (hwnd, IDC_ENABLEUILOG_CHK); if (!is_postmessage) { @@ -1233,8 +1687,8 @@ INT_PTR CALLBACK SettingsProc ( BOOLEAN is_enabled; BOOLEAN is_logging_enabled; - is_enabled = (IsDlgButtonChecked (hwnd, ctrl_id) == BST_CHECKED); - is_logging_enabled = is_enabled || (IsDlgButtonChecked (hwnd, IDC_ENABLELOG_CHK) == BST_CHECKED); + is_enabled = _r_ctrl_isbuttonchecked (hwnd, ctrl_id); + is_logging_enabled = is_enabled || _r_ctrl_isbuttonchecked (hwnd, IDC_ENABLELOG_CHK); _r_config_setboolean (L"IsLogUiEnabled", is_enabled); @@ -1393,12 +1847,18 @@ INT_PTR CALLBACK SettingsProc ( BOOLEAN is_enabled; is_postmessage = ((INT)lparam == WM_APP); - is_enabled = (IsDlgButtonChecked (hwnd, ctrl_id) == BST_CHECKED); + is_enabled = _r_ctrl_isbuttonchecked (hwnd, ctrl_id); if (!is_postmessage) _r_config_setboolean (L"IsNotificationsEnabled", is_enabled); - SendDlgItemMessage (config.hrebar, IDC_TOOLBAR, TB_PRESSBUTTON, IDM_TRAY_ENABLENOTIFICATIONS_CHK, MAKELPARAM (is_enabled, 0)); + SendDlgItemMessage ( + config.hrebar, + IDC_TOOLBAR, + TB_PRESSBUTTON, + IDM_TRAY_ENABLENOTIFICATIONS_CHK, + MAKELPARAM (is_enabled, 0) + ); _r_ctrl_enable (hwnd, IDC_NOTIFICATIONSOUND_CHK, is_enabled); _r_ctrl_enable (hwnd, IDC_NOTIFICATIONONTRAY_CHK, is_enabled); @@ -1427,21 +1887,33 @@ INT_PTR CALLBACK SettingsProc ( BOOLEAN is_checked; is_postmessage = ((INT)lparam == WM_APP); - is_checked = (IsDlgButtonChecked (hwnd, ctrl_id) == BST_CHECKED); + is_checked = _r_ctrl_isbuttonchecked (hwnd, ctrl_id); - CheckDlgButton (hwnd, IDC_NOTIFICATIONFULLSCREENSILENTMODE_CHK, _r_config_getboolean (L"IsNotificationsFullscreenSilentMode", TRUE) ? BST_CHECKED : BST_UNCHECKED); + _r_ctrl_checkbutton ( + hwnd, + IDC_NOTIFICATIONFULLSCREENSILENTMODE_CHK, + _r_config_getboolean (L"IsNotificationsFullscreenSilentMode", TRUE) + ); if (!is_postmessage) _r_config_setboolean (L"IsNotificationsSound", is_checked); - _r_ctrl_enable (hwnd, IDC_NOTIFICATIONFULLSCREENSILENTMODE_CHK, _r_ctrl_isenabled (hwnd, ctrl_id) && is_checked); + _r_ctrl_enable ( + hwnd, + IDC_NOTIFICATIONFULLSCREENSILENTMODE_CHK, + _r_ctrl_isenabled (hwnd, ctrl_id) && is_checked + ); break; } case IDC_NOTIFICATIONFULLSCREENSILENTMODE_CHK: { - _r_config_setboolean (L"IsNotificationsFullscreenSilentMode", (IsDlgButtonChecked (hwnd, ctrl_id) == BST_CHECKED)); + _r_config_setboolean ( + L"IsNotificationsFullscreenSilentMode", + _r_ctrl_isbuttonchecked (hwnd, ctrl_id) + ); + break; } @@ -1449,7 +1921,7 @@ INT_PTR CALLBACK SettingsProc ( { HWND hnotify; - _r_config_setboolean (L"IsNotificationsOnTray", (IsDlgButtonChecked (hwnd, ctrl_id) == BST_CHECKED)); + _r_config_setboolean (L"IsNotificationsOnTray", _r_ctrl_isbuttonchecked (hwnd, ctrl_id)); hnotify = _app_notify_getwindow (NULL); @@ -1462,14 +1934,19 @@ INT_PTR CALLBACK SettingsProc ( case IDC_NOTIFICATIONTIMEOUT_CTRL: { if (notify_code == EN_KILLFOCUS) - _r_config_setulong (L"NotificationsTimeout", (ULONG)SendDlgItemMessage (hwnd, IDC_NOTIFICATIONTIMEOUT, UDM_GETPOS32, 0, 0)); + { + _r_config_setulong ( + L"NotificationsTimeout", + (ULONG)SendDlgItemMessage (hwnd, IDC_NOTIFICATIONTIMEOUT, UDM_GETPOS32, 0, 0) + ); + } break; } case IDC_EXCLUDESTEALTH_CHK: { - _r_config_setboolean (L"IsExcludeStealth", (IsDlgButtonChecked (hwnd, ctrl_id) == BST_CHECKED)); + _r_config_setboolean (L"IsExcludeStealth", _r_ctrl_isbuttonchecked (hwnd, ctrl_id)); break; } @@ -1477,7 +1954,7 @@ INT_PTR CALLBACK SettingsProc ( { HANDLE hengine; - _r_config_setboolean (L"IsExcludeClassifyAllow", (IsDlgButtonChecked (hwnd, ctrl_id) == BST_CHECKED)); + _r_config_setboolean (L"IsExcludeClassifyAllow", _r_ctrl_isbuttonchecked (hwnd, ctrl_id)); hengine = _wfp_getenginehandle (); @@ -1489,13 +1966,13 @@ INT_PTR CALLBACK SettingsProc ( case IDC_EXCLUDEBLOCKLIST_CHK: { - _r_config_setboolean (L"IsExcludeBlocklist", (IsDlgButtonChecked (hwnd, ctrl_id) == BST_CHECKED)); + _r_config_setboolean (L"IsExcludeBlocklist", _r_ctrl_isbuttonchecked (hwnd, ctrl_id)); break; } case IDC_EXCLUDECUSTOM_CHK: { - _r_config_setboolean (L"IsExcludeCustomRules", (IsDlgButtonChecked (hwnd, ctrl_id) == BST_CHECKED)); + _r_config_setboolean (L"IsExcludeCustomRules", _r_ctrl_isbuttonchecked (hwnd, ctrl_id)); break; } } @@ -1576,7 +2053,9 @@ VOID _app_tabs_init ( _app_listview_loadfont (dpi_value, TRUE); - style = LVS_EX_DOUBLEBUFFER | LVS_EX_FULLROWSELECT | LVS_EX_INFOTIP | LVS_EX_LABELTIP | LVS_EX_HEADERINALLVIEWS | LVS_EX_HEADERDRAGDROP; + style = LVS_EX_DOUBLEBUFFER | LVS_EX_FULLROWSELECT | LVS_EX_INFOTIP | LVS_EX_LABELTIP | + LVS_EX_HEADERINALLVIEWS | LVS_EX_HEADERDRAGDROP; + tabs_count = _app_addwindowtabs (hwnd); for (INT i = 0; i < tabs_count; i++) @@ -1680,42 +2159,90 @@ VOID _app_initialize () SIZE_T length; // set privileges - _r_sys_setprocessprivilege (NtCurrentProcess (), privileges, RTL_NUMBER_OF (privileges), TRUE); + _r_sys_setprocessprivilege ( + NtCurrentProcess (), + privileges, + RTL_NUMBER_OF (privileges), + TRUE + ); // set process priority - _r_sys_setenvironment (&environment, PROCESS_PRIORITY_CLASS_HIGH, IoPriorityNormal, MEMORY_PRIORITY_NORMAL); + _r_sys_setenvironment ( + &environment, + PROCESS_PRIORITY_CLASS_HIGH, + IoPriorityNormal, + MEMORY_PRIORITY_NORMAL + ); _r_sys_setprocessenvironment (NtCurrentProcess (), &environment); // initialize workqueue - _r_sys_setenvironment (&environment, THREAD_PRIORITY_LOWEST, IoPriorityVeryLow, MEMORY_PRIORITY_NORMAL); + _r_sys_setenvironment ( + &environment, + THREAD_PRIORITY_LOWEST, + IoPriorityVeryLow, + MEMORY_PRIORITY_NORMAL + ); - _r_workqueue_initialize (&file_queue, 0, 12, 1400, &environment, L"FileQueue"); + _r_workqueue_initialize (&file_queue, 0, 12, 5000, &environment, L"FileInfoQueue"); - _r_sys_setenvironment (&environment, THREAD_PRIORITY_BELOW_NORMAL, IoPriorityLow, MEMORY_PRIORITY_NORMAL); + _r_sys_setenvironment ( + &environment, + THREAD_PRIORITY_BELOW_NORMAL, + IoPriorityLow, + MEMORY_PRIORITY_NORMAL + ); - _r_workqueue_initialize (&resolver_queue, 0, 6, 4500, &environment, L"ResolveQueue"); - _r_workqueue_initialize (&resolve_notify_queue, 0, 2, 4500, &environment, L"NotificationQueue"); + _r_workqueue_initialize (&resolver_queue, 0, 6, 5000, &environment, L"ResolverQueue"); + _r_workqueue_initialize (&resolve_notify_queue, 0, 2, 5000, &environment, L"NotificationQueue"); - _r_sys_setenvironment (&environment, THREAD_PRIORITY_ABOVE_NORMAL, IoPriorityNormal, MEMORY_PRIORITY_NORMAL); + _r_sys_setenvironment ( + &environment, + THREAD_PRIORITY_ABOVE_NORMAL, + IoPriorityNormal, + MEMORY_PRIORITY_NORMAL + ); _r_workqueue_initialize (&log_queue, 0, 3, 5000, &environment, L"PacketsQueue"); - _r_sys_setenvironment (&environment, THREAD_PRIORITY_HIGHEST, IoPriorityHigh, MEMORY_PRIORITY_NORMAL); + _r_sys_setenvironment ( + &environment, + THREAD_PRIORITY_HIGHEST, + IoPriorityHigh, + MEMORY_PRIORITY_NORMAL + ); _r_workqueue_initialize (&wfp_queue, 0, 1, 10000, &environment, L"FiltersQueue"); // static initializer - length = GetWindowsDirectory (config.windows_dir_buffer, RTL_NUMBER_OF (config.windows_dir_buffer)); + length = GetWindowsDirectory ( + config.windows_dir_buffer, + RTL_NUMBER_OF (config.windows_dir_buffer) + ); - _r_obj_initializestringref_ex (&config.windows_dir, config.windows_dir_buffer, length * sizeof (WCHAR)); + _r_obj_initializestringref_ex ( + &config.windows_dir, + config.windows_dir_buffer, + length * sizeof (WCHAR) + ); _app_profile_initialize (); config.my_path = _r_obj_createstring (_r_sys_getimagepath ()); - config.svchost_path = _r_obj_concatstrings (2, _r_sys_getsystemdirectory ()->buffer, PATH_SVCHOST); + + config.svchost_path = _r_obj_concatstrings ( + 2, + _r_sys_getsystemdirectory ()->buffer, + PATH_SVCHOST + ); + config.system_path = _r_obj_createstring (PROC_SYSTEM_NAME); - config.ntoskrnl_path = _r_obj_concatstrings (2, _r_sys_getsystemdirectory ()->buffer, PATH_NTOSKRNL); + + config.ntoskrnl_path = _r_obj_concatstrings ( + 2, + _r_sys_getsystemdirectory ()->buffer, + PATH_NTOSKRNL + ); config.my_hash = _r_str_gethash2 (config.my_path, TRUE); config.ntoskrnl_hash = _r_str_gethash2 (config.system_path, TRUE); @@ -2059,11 +2586,23 @@ INT_PTR CALLBACK DlgProc ( case WM_CLOSE: { + LPCWSTR cfg_name; + UINT locale_id; + if (_wfp_isfiltersinstalled ()) { - if (_app_istimersactive () ? - !_r_show_confirmmessage (hwnd, NULL, _r_locale_getstring (IDS_QUESTION_TIMER), L"ConfirmExitTimer") : - !_r_show_confirmmessage (hwnd, NULL, _r_locale_getstring (IDS_QUESTION_EXIT), L"ConfirmExit2")) + if (_app_istimersactive ()) + { + cfg_name = L"ConfirmExitTimer"; + locale_id = IDS_QUESTION_TIMER; + } + else + { + cfg_name = L"ConfirmExit2"; + locale_id = IDS_QUESTION_EXIT; + } + + if (!_r_show_confirmmessage (hwnd, NULL, _r_locale_getstring (locale_id), cfg_name)) { SetWindowLongPtr (hwnd, DWLP_MSGRESULT, TRUE); return TRUE; @@ -2079,18 +2618,18 @@ INT_PTR CALLBACK DlgProc ( { HANDLE hengine; - _r_config_setlong (L"CurrentTab", _app_listview_getcurrent (hwnd)); - - _r_tray_destroy (hwnd, &GUID_TrayIcon); - _app_loginit (FALSE); + _r_config_setlong (L"CurrentTab", _app_listview_getcurrent (hwnd)); + if (_r_queuedlock_islocked (&lock_apply)) { _r_workqueue_waitforfinish (&wfp_queue); _r_workqueue_destroy (&wfp_queue); } + _r_tray_destroy (hwnd, &GUID_TrayIcon); + hengine = _wfp_getenginehandle (); if (hengine) @@ -2340,7 +2879,11 @@ INT_PTR CALLBACK DlgProc ( lpnmlv = (LPNMLVGETINFOTIP)lparam; listview_id = (INT)lpnmlv->hdr.idFrom; - string = _app_gettooltipbylparam (hwnd, listview_id, _app_listview_getitemcontext (hwnd, listview_id, lpnmlv->iItem)); + string = _app_gettooltipbylparam ( + hwnd, + listview_id, + _app_listview_getitemcontext (hwnd, listview_id, lpnmlv->iItem) + ); if (string) { @@ -2379,7 +2922,11 @@ INT_PTR CALLBACK DlgProc ( { if (app_hash == config.my_hash) { - if (!_r_show_confirmmessage (hwnd, L"WARNING!", L"If you disallow this, you cannot use resolve network addresses option. Continue?", NULL)) + if (!_r_show_confirmmessage ( + hwnd, + L"WARNING!", + SZ_WARNING_ME, + NULL)) { SetWindowLongPtr (hwnd, DWLP_MSGRESULT, TRUE); return TRUE; @@ -2390,7 +2937,11 @@ INT_PTR CALLBACK DlgProc ( { if (app_hash == config.svchost_hash) { - if (!_r_show_confirmmessage (hwnd, L"WARNING!", L"Be careful, through service host (svchost.exe) internet traffic can let out through unexpected ways. Continue?", NULL)) + if (!_r_show_confirmmessage ( + hwnd, + L"WARNING!", + SZ_WARNING_SVCHOST, + NULL)) { SetWindowLongPtr (hwnd, DWLP_MSGRESULT, TRUE); return TRUE; @@ -2398,7 +2949,11 @@ INT_PTR CALLBACK DlgProc ( } else if (app_hash != config.my_hash) { - if (!_r_show_confirmmessage (hwnd, NULL, _r_locale_getstring (IDS_QUESTION_ALLOW), L"ConfirmAllow")) + if (!_r_show_confirmmessage ( + hwnd, + NULL, + _r_locale_getstring (IDS_QUESTION_ALLOW), + L"ConfirmAllow")) { SetWindowLongPtr (hwnd, DWLP_MSGRESULT, TRUE); return TRUE; @@ -2413,121 +2968,118 @@ INT_PTR CALLBACK DlgProc ( case LVN_ITEMCHANGED: { LPNMLISTVIEW lpnmlv; + HANDLE hengine; + PR_LIST rules; + PITEM_APP ptr_app; + PITEM_RULE ptr_rule; + ULONG_PTR app_hash; + SIZE_T rule_idx; INT listview_id; + BOOLEAN is_changed; + BOOLEAN is_enabled; lpnmlv = (LPNMLISTVIEW)lparam; listview_id = (INT)(INT_PTR)lpnmlv->hdr.idFrom; - if ((lpnmlv->uChanged & LVIF_STATE) != 0) + if ((lpnmlv->uChanged & LVIF_STATE) == 0) + break; + + if ((lpnmlv->uNewState & LVIS_STATEIMAGEMASK) == INDEXTOSTATEIMAGEMASK (1) || + ((lpnmlv->uNewState & LVIS_STATEIMAGEMASK) == INDEXTOSTATEIMAGEMASK (2))) { - if ((lpnmlv->uNewState & LVIS_STATEIMAGEMASK) == INDEXTOSTATEIMAGEMASK (1) || ((lpnmlv->uNewState & LVIS_STATEIMAGEMASK) == INDEXTOSTATEIMAGEMASK (2))) + if (_app_listview_islocked (hwnd, (INT)(INT_PTR)lpnmlv->hdr.idFrom)) + break; + + is_changed = FALSE; + is_enabled = (lpnmlv->uNewState & LVIS_STATEIMAGEMASK) == INDEXTOSTATEIMAGEMASK (2); + + if (listview_id >= IDC_APPS_PROFILE && listview_id <= IDC_APPS_UWP) { - if (_app_listview_islocked (hwnd, (INT)(INT_PTR)lpnmlv->hdr.idFrom)) + app_hash = _app_listview_getcontextcode (lpnmlv->lParam); + ptr_app = _app_getappitem (app_hash); + + if (!ptr_app) break; - HANDLE hengine; - PR_LIST rules; - - ULONG_PTR app_hash; - PITEM_APP ptr_app; - - BOOLEAN is_changed; - BOOLEAN is_enabled; - - is_changed = FALSE; - is_enabled = (lpnmlv->uNewState & LVIS_STATEIMAGEMASK) == INDEXTOSTATEIMAGEMASK (2); - - if (listview_id >= IDC_APPS_PROFILE && listview_id <= IDC_APPS_UWP) + if (ptr_app->is_enabled != is_enabled) { - app_hash = _app_listview_getcontextcode (lpnmlv->lParam); - ptr_app = _app_getappitem (app_hash); + ptr_app->is_enabled = is_enabled; - if (!ptr_app) - break; + _app_listview_lock (hwnd, listview_id, TRUE); + _app_setappiteminfo (hwnd, listview_id, lpnmlv->iItem, ptr_app); + _app_listview_lock (hwnd, listview_id, FALSE); - if (ptr_app->is_enabled != is_enabled) + if (is_enabled) + _app_notify_freeobject (NULL, ptr_app); + + if (!is_enabled && _app_istimerset (ptr_app)) + _app_timer_reset (hwnd, ptr_app); + + if (_wfp_isfiltersinstalled ()) { - ptr_app->is_enabled = is_enabled; + hengine = _wfp_getenginehandle (); - _app_listview_lock (hwnd, listview_id, TRUE); - _app_setappiteminfo (hwnd, listview_id, lpnmlv->iItem, ptr_app); - _app_listview_lock (hwnd, listview_id, FALSE); - - if (is_enabled) - _app_notify_freeobject (NULL, ptr_app); - - if (!is_enabled && _app_istimerset (ptr_app)) - _app_timer_reset (hwnd, ptr_app); - - if (_wfp_isfiltersinstalled ()) + if (hengine) { - hengine = _wfp_getenginehandle (); + rules = _r_obj_createlist (NULL); - if (hengine) - { - rules = _r_obj_createlist (NULL); + _r_obj_addlistitem (rules, ptr_app); - _r_obj_addlistitem (rules, ptr_app); + _wfp_create3filters (hengine, rules, DBG_ARG, FALSE); - _wfp_create3filters (hengine, rules, DBG_ARG, FALSE); - - _r_obj_dereference (rules); - } + _r_obj_dereference (rules); } - - is_changed = TRUE; } - _r_obj_dereference (ptr_app); + is_changed = TRUE; } - else if (listview_id >= IDC_RULES_BLOCKLIST && listview_id <= IDC_RULES_CUSTOM) + + _r_obj_dereference (ptr_app); + } + else if (listview_id >= IDC_RULES_BLOCKLIST && listview_id <= IDC_RULES_CUSTOM) + { + rule_idx = _app_listview_getcontextcode (lpnmlv->lParam); + ptr_rule = _app_getrulebyid (rule_idx); + + if (!ptr_rule) + break; + + if (ptr_rule->is_enabled != is_enabled) { - SIZE_T rule_idx; - PITEM_RULE ptr_rule; + _app_listview_lock (hwnd, listview_id, TRUE); - rule_idx = _app_listview_getcontextcode (lpnmlv->lParam); - ptr_rule = _app_getrulebyid (rule_idx); + _app_ruleenable (ptr_rule, is_enabled, TRUE); + _app_setruleiteminfo (hwnd, listview_id, lpnmlv->iItem, ptr_rule, TRUE); - if (!ptr_rule) - break; + _app_listview_lock (hwnd, listview_id, FALSE); - if (ptr_rule->is_enabled != is_enabled) + if (_wfp_isfiltersinstalled ()) { - _app_listview_lock (hwnd, listview_id, TRUE); + hengine = _wfp_getenginehandle (); - _app_ruleenable (ptr_rule, is_enabled, TRUE); - _app_setruleiteminfo (hwnd, listview_id, lpnmlv->iItem, ptr_rule, TRUE); - - _app_listview_lock (hwnd, listview_id, FALSE); - - if (_wfp_isfiltersinstalled ()) + if (hengine) { - hengine = _wfp_getenginehandle (); + rules = _r_obj_createlist (NULL); - if (hengine) - { - rules = _r_obj_createlist (NULL); + _r_obj_addlistitem (rules, ptr_rule); - _r_obj_addlistitem (rules, ptr_rule); + _wfp_create4filters (hengine, rules, DBG_ARG, FALSE); - _wfp_create4filters (hengine, rules, DBG_ARG, FALSE); - - _r_obj_dereference (rules); - } + _r_obj_dereference (rules); } - - is_changed = TRUE; } - _r_obj_dereference (ptr_rule); + is_changed = TRUE; } - if (is_changed) - { - _app_listview_updateby_id (hwnd, listview_id, 0); + _r_obj_dereference (ptr_rule); + } - _app_profile_save (); - } + if (is_changed) + { + _app_listview_updateby_id (hwnd, listview_id, 0); + + _app_profile_save (); } } @@ -2550,14 +3102,17 @@ INT_PTR CALLBACK DlgProc ( case NM_DBLCLK: { LPNMITEMACTIVATE lpnmlv; + LPNMMOUSE lpmouse; + INT command_id; + INT ctrl_id; lpnmlv = (LPNMITEMACTIVATE)lparam; if (lpnmlv->iItem == -1) break; - INT ctrl_id = (INT)(INT_PTR)lpnmlv->hdr.idFrom; - INT command_id = 0; + ctrl_id = (INT)(INT_PTR)lpnmlv->hdr.idFrom; + command_id = 0; if (ctrl_id >= IDC_APPS_PROFILE && ctrl_id <= IDC_LOG) { @@ -2565,7 +3120,7 @@ INT_PTR CALLBACK DlgProc ( } else if (ctrl_id == IDC_STATUSBAR) { - LPNMMOUSE lpmouse = (LPNMMOUSE)lparam; + lpmouse = (LPNMMOUSE)lparam; if (lpmouse->dwItemSpec == 0) { @@ -2717,7 +3272,8 @@ INT_PTR CALLBACK DlgProc ( } else if (notify_code == 0) { - if (ctrl_id >= IDX_LANGUAGE && ctrl_id <= IDX_LANGUAGE + (INT)(INT_PTR)_r_locale_getcount () + 1) + if (ctrl_id >= IDX_LANGUAGE && + ctrl_id <= IDX_LANGUAGE + (INT)(INT_PTR)_r_locale_getcount () + 1) { HMENU hmenu; HMENU hsubmenu; @@ -2734,12 +3290,14 @@ INT_PTR CALLBACK DlgProc ( return FALSE; } - else if (ctrl_id >= IDX_RULES_SPECIAL && ctrl_id <= (IDX_RULES_SPECIAL + (INT)(INT_PTR)_r_obj_getlistsize (rules_list))) + else if (ctrl_id >= IDX_RULES_SPECIAL && + ctrl_id <= (IDX_RULES_SPECIAL + (INT)(INT_PTR)_r_obj_getlistsize (rules_list))) { _app_command_idtorules (hwnd, ctrl_id); return FALSE; } - else if (ctrl_id >= IDX_TIMER && ctrl_id <= (IDX_TIMER + (RTL_NUMBER_OF (timer_array) - 1))) + else if (ctrl_id >= IDX_TIMER && + ctrl_id <= (IDX_TIMER + (RTL_NUMBER_OF (timer_array) - 1))) { _app_command_idtotimers (hwnd, ctrl_id); return FALSE; @@ -2889,7 +3447,9 @@ INT_PTR CALLBACK DlgProc ( case IDM_ALWAYSONTOP_CHK: { - BOOLEAN new_val = !_r_config_getboolean (L"AlwaysOnTop", FALSE); + BOOLEAN new_val; + + new_val = !_r_config_getboolean (L"AlwaysOnTop", FALSE); _r_menu_checkitem (GetMenu (hwnd), ctrl_id, 0, MF_BYCOMMAND, new_val); _r_config_setboolean (L"AlwaysOnTop", new_val); @@ -2901,7 +3461,9 @@ INT_PTR CALLBACK DlgProc ( case IDM_AUTOSIZECOLUMNS_CHK: { - BOOLEAN new_val = !_r_config_getboolean (L"AutoSizeColumns", TRUE); + BOOLEAN new_val; + + new_val = !_r_config_getboolean (L"AutoSizeColumns", TRUE); _r_menu_checkitem (GetMenu (hwnd), ctrl_id, 0, MF_BYCOMMAND, new_val); _r_config_setboolean (L"AutoSizeColumns", new_val); @@ -2969,6 +3531,7 @@ INT_PTR CALLBACK DlgProc ( } _r_menu_checkitem (GetMenu (hwnd), IDM_VIEW_DETAILS, IDM_VIEW_TILE, MF_BYCOMMAND, ctrl_id); + _r_config_setlong (L"ViewType", view_type); _app_listview_updateby_id (hwnd, DATA_LISTVIEW_CURRENT, PR_UPDATE_TYPE); @@ -2996,6 +3559,7 @@ INT_PTR CALLBACK DlgProc ( } _r_menu_checkitem (GetMenu (hwnd), IDM_SIZE_SMALL, IDM_SIZE_EXTRALARGE, MF_BYCOMMAND, ctrl_id); + _r_config_setlong (L"IconSize", icon_size); _app_listview_updateby_id (hwnd, DATA_LISTVIEW_CURRENT, PR_UPDATE_TYPE); @@ -3023,7 +3587,14 @@ INT_PTR CALLBACK DlgProc ( while (_r_obj_enumhashtablepointer (apps_table, &ptr_app, NULL, &enum_key)) { if (ptr_app->real_path) - _app_queue_fileinformation (ptr_app->real_path, ptr_app->app_hash, ptr_app->type, _app_listview_getbytype (ptr_app->type)); + { + _app_queue_fileinformation ( + ptr_app->real_path, + ptr_app->app_hash, + ptr_app->type, + _app_listview_getbytype (ptr_app->type) + ); + } } _r_queuedlock_releaseshared (&lock_apps); @@ -3101,7 +3672,13 @@ INT_PTR CALLBACK DlgProc ( if (ctrl_id >= IDM_BLOCKLIST_SPY_DISABLE && ctrl_id <= IDM_BLOCKLIST_SPY_BLOCK) { - _r_menu_checkitem (hmenu, IDM_BLOCKLIST_SPY_DISABLE, IDM_BLOCKLIST_SPY_BLOCK, MF_BYCOMMAND, ctrl_id); + _r_menu_checkitem ( + hmenu, + IDM_BLOCKLIST_SPY_DISABLE, + IDM_BLOCKLIST_SPY_BLOCK, + MF_BYCOMMAND, + ctrl_id + ); new_state = _r_calc_clamp (ctrl_id - IDM_BLOCKLIST_SPY_DISABLE, 0, 2); @@ -3111,7 +3688,13 @@ INT_PTR CALLBACK DlgProc ( } else if (ctrl_id >= IDM_BLOCKLIST_UPDATE_DISABLE && ctrl_id <= IDM_BLOCKLIST_UPDATE_BLOCK) { - _r_menu_checkitem (hmenu, IDM_BLOCKLIST_UPDATE_DISABLE, IDM_BLOCKLIST_UPDATE_BLOCK, MF_BYCOMMAND, ctrl_id); + _r_menu_checkitem ( + hmenu, + IDM_BLOCKLIST_UPDATE_DISABLE, + IDM_BLOCKLIST_UPDATE_BLOCK, + MF_BYCOMMAND, + ctrl_id + ); new_state = _r_calc_clamp (ctrl_id - IDM_BLOCKLIST_UPDATE_DISABLE, 0, 2); @@ -3121,7 +3704,13 @@ INT_PTR CALLBACK DlgProc ( } else if (ctrl_id >= IDM_BLOCKLIST_EXTRA_DISABLE && ctrl_id <= IDM_BLOCKLIST_EXTRA_BLOCK) { - _r_menu_checkitem (hmenu, IDM_BLOCKLIST_EXTRA_DISABLE, IDM_BLOCKLIST_EXTRA_BLOCK, MF_BYCOMMAND, ctrl_id); + _r_menu_checkitem ( + hmenu, + IDM_BLOCKLIST_EXTRA_DISABLE, + IDM_BLOCKLIST_EXTRA_BLOCK, + MF_BYCOMMAND, + ctrl_id + ); new_state = _r_calc_clamp (ctrl_id - IDM_BLOCKLIST_EXTRA_DISABLE, 0, 2); @@ -3135,9 +3724,20 @@ INT_PTR CALLBACK DlgProc ( case IDM_TRAY_ENABLELOG_CHK: { - BOOLEAN new_val = !_r_config_getboolean (L"IsLogEnabled", FALSE); + BOOLEAN new_val; + + new_val = !_r_config_getboolean (L"IsLogEnabled", FALSE); + + _r_toolbar_setbutton ( + config.hrebar, + IDC_TOOLBAR, + ctrl_id, + NULL, + 0, + new_val ? TBSTATE_PRESSED | TBSTATE_ENABLED : TBSTATE_ENABLED, + I_IMAGENONE + ); - _r_toolbar_setbutton (config.hrebar, IDC_TOOLBAR, ctrl_id, NULL, 0, new_val ? TBSTATE_PRESSED | TBSTATE_ENABLED : TBSTATE_ENABLED, I_IMAGENONE); _r_config_setboolean (L"IsLogEnabled", new_val); _app_loginit (new_val); @@ -3147,9 +3747,20 @@ INT_PTR CALLBACK DlgProc ( case IDM_TRAY_ENABLEUILOG_CHK: { - BOOLEAN new_val = !_r_config_getboolean (L"IsLogUiEnabled", FALSE); + BOOLEAN new_val; + + new_val = !_r_config_getboolean (L"IsLogUiEnabled", FALSE); + + _r_toolbar_setbutton ( + config.hrebar, + IDC_TOOLBAR, + ctrl_id, + NULL, + 0, + new_val ? TBSTATE_PRESSED | TBSTATE_ENABLED : TBSTATE_ENABLED, + I_IMAGENONE + ); - _r_toolbar_setbutton (config.hrebar, IDC_TOOLBAR, ctrl_id, NULL, 0, new_val ? TBSTATE_PRESSED | TBSTATE_ENABLED : TBSTATE_ENABLED, I_IMAGENONE); _r_config_setboolean (L"IsLogUiEnabled", new_val); break; @@ -3162,7 +3773,16 @@ INT_PTR CALLBACK DlgProc ( new_val = !_r_config_getboolean (L"IsNotificationsEnabled", TRUE); - _r_toolbar_setbutton (config.hrebar, IDC_TOOLBAR, ctrl_id, NULL, 0, new_val ? TBSTATE_PRESSED | TBSTATE_ENABLED : TBSTATE_ENABLED, I_IMAGENONE); + _r_toolbar_setbutton ( + config.hrebar, + IDC_TOOLBAR, + ctrl_id, + NULL, + 0, + new_val ? TBSTATE_PRESSED | TBSTATE_ENABLED : TBSTATE_ENABLED, + I_IMAGENONE + ); + _r_config_setboolean (L"IsNotificationsEnabled", new_val); hnotify = _app_notify_getwindow (NULL); @@ -3175,7 +3795,9 @@ INT_PTR CALLBACK DlgProc ( case IDM_TRAY_ENABLENOTIFICATIONSSOUND_CHK: { - BOOLEAN new_val = !_r_config_getboolean (L"IsNotificationsSound", TRUE); + BOOLEAN new_val; + + new_val = !_r_config_getboolean (L"IsNotificationsSound", TRUE); _r_config_setboolean (L"IsNotificationsSound", new_val); @@ -3184,7 +3806,9 @@ INT_PTR CALLBACK DlgProc ( case IDM_TRAY_NOTIFICATIONFULLSCREENSILENTMODE_CHK: { - BOOLEAN new_val = !_r_config_getboolean (L"IsNotificationsFullscreenSilentMode", TRUE); + BOOLEAN new_val; + + new_val = !_r_config_getboolean (L"IsNotificationsFullscreenSilentMode", TRUE); _r_config_setboolean (L"IsNotificationsFullscreenSilentMode", new_val); @@ -3483,6 +4107,12 @@ BOOLEAN _app_parseargs ( { WCHAR arguments_mutex_name[32]; HANDLE arguments_mutex; + HANDLE hengine; + BOOLEAN is_install; + BOOLEAN is_uninstall; + BOOLEAN is_silent; + BOOLEAN is_temporary; + BOOLEAN result; _r_str_printf (arguments_mutex_name, RTL_NUMBER_OF (arguments_mutex_name), L"%sCmd", _r_app_getnameshort ()); @@ -3490,11 +4120,11 @@ BOOLEAN _app_parseargs ( if (_r_mutex_isexists (arguments_mutex_name)) return TRUE; - BOOLEAN is_install = FALSE; - BOOLEAN is_uninstall = FALSE; - BOOLEAN is_silent = FALSE; - BOOLEAN is_temporary = FALSE; - BOOLEAN result = FALSE; + is_install = FALSE; + is_uninstall = FALSE; + is_silent = FALSE; + is_temporary = FALSE; + result = FALSE; _r_mutex_create (arguments_mutex_name, &arguments_mutex); @@ -3535,40 +4165,34 @@ BOOLEAN _app_parseargs ( if (is_install || is_uninstall) { - // already elevated - //if (_r_sys_iselevated ()) + _app_initialize (); + + hengine = _wfp_getenginehandle (); + + if (hengine) { - HANDLE hengine; - - _app_initialize (); - - hengine = _wfp_getenginehandle (); - - if (hengine) + if (is_install) { - if (is_install) + if (is_silent || _app_installmessage (NULL, TRUE)) { - if (is_silent || _app_installmessage (NULL, TRUE)) - { - if (is_temporary) - config.is_filterstemporary = TRUE; + if (is_temporary) + config.is_filterstemporary = TRUE; - _app_profile_initialize (); - _app_profile_load (NULL, NULL); + _app_profile_initialize (); + _app_profile_load (NULL, NULL); - if (_wfp_initialize (hengine)) - _wfp_installfilters (hengine); + if (_wfp_initialize (hengine)) + _wfp_installfilters (hengine); - _wfp_uninitialize (hengine, FALSE); - } + _wfp_uninitialize (hengine, FALSE); } - else if (is_uninstall) + } + else if (is_uninstall) + { + if (_wfp_isfiltersinstalled () && _app_installmessage (NULL, FALSE)) { - if (_wfp_isfiltersinstalled () && _app_installmessage (NULL, FALSE)) - { - _wfp_destroyfilters (hengine); - _wfp_uninitialize (hengine, TRUE); - } + _wfp_destroyfilters (hengine); + _wfp_uninitialize (hengine, TRUE); } } } @@ -3598,7 +4222,12 @@ INT APIENTRY wWinMain ( if (_app_parseargs (cmdline)) return ERROR_SUCCESS; - hwnd = _r_app_createwindow (hinst, MAKEINTRESOURCE (IDD_MAIN), MAKEINTRESOURCE (IDI_MAIN), &DlgProc); + hwnd = _r_app_createwindow ( + hinst, + MAKEINTRESOURCE (IDD_MAIN), + MAKEINTRESOURCE (IDI_MAIN), + &DlgProc + ); if (!hwnd) return ERROR_APP_INIT_FAILURE; diff --git a/src/main.h b/src/main.h index 4fb684b9..c42dd586 100644 --- a/src/main.h +++ b/src/main.h @@ -120,8 +120,22 @@ typedef enum _ENUM_INFO_DATA2 #define SZ_DIRECTION_ANY L"Any" #define SZ_DIRECTION_LOOPBACK L"Loopback" -#define SZ_LOG_TITLE L"Date,Username,Path,Address (" SZ_DIRECTION_LOCAL L"),Port (" SZ_DIRECTION_LOCAL L"),Address (" SZ_DIRECTION_REMOTE L"),Port (" SZ_DIRECTION_REMOTE L"),Protocol,Layer,Filter name,Filter ID,Direction,State\r\n" -#define SZ_LOG_BODY L"\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"#%" TEXT (PRIu64) L"\",\"%s\",\"%s\"\r\n" +#define SZ_LOG_TITLE L"Date,Username,Path,Address (" SZ_DIRECTION_LOCAL L")," \ + L"Port (" SZ_DIRECTION_LOCAL L"),Address (" SZ_DIRECTION_REMOTE L"),Port (" SZ_DIRECTION_REMOTE L")," \ + L"Protocol,Layer,Filter name,Filter ID,Direction,State\r\n" + +#define SZ_LOG_BODY L"\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\"," \ + L"\"%s\",\"%s\",\"#%" TEXT (PRIu64) L"\",\"%s\",\"%s\"\r\n" + +#define SZ_WARNING_ME L"If you disallow this, you cannot use resolve network addresses option. Continue?" +#define SZ_WARNING_SVCHOST L"Be careful, through service host (svchost.exe)" \ + L"internet traffic can let out through unexpected ways. Continue?" + +#define SZ_HELP L"\"simplewall.exe -install\" - enable filtering.\r\n" \ + L"\"simplewall.exe -install -temp\" - enable filtering until reboot.\r\n" \ + L"\"simplewall.exe -install -silent\" - enable filtering without prompt.\r\n" \ + L"\"simplewall.exe -uninstall\" - remove all installed filters.\r\n" \ + L"\"simplewall.exe -help\" - show this message." #define BACKUP_HOURS_PERIOD _r_calc_hours2seconds (4) // make backup every X hour(s) (default) diff --git a/src/messages.c b/src/messages.c index 6b63c43d..d54f46f1 100644 --- a/src/messages.c +++ b/src/messages.c @@ -27,10 +27,37 @@ VOID _app_message_initialize ( if (_r_config_getboolean (L"IsInternalRulesDisabled", FALSE)) _r_menu_enableitem (hmenu, 4, MF_BYPOSITION, FALSE); - _r_menu_checkitem (hmenu, IDM_ALWAYSONTOP_CHK, 0, MF_BYCOMMAND, _r_config_getboolean (L"AlwaysOnTop", FALSE)); - _r_menu_checkitem (hmenu, IDM_AUTOSIZECOLUMNS_CHK, 0, MF_BYCOMMAND, _r_config_getboolean (L"AutoSizeColumns", TRUE)); - _r_menu_checkitem (hmenu, IDM_SHOWFILENAMESONLY_CHK, 0, MF_BYCOMMAND, _r_config_getboolean (L"ShowFilenames", TRUE)); - _r_menu_checkitem (hmenu, IDM_SHOWSEARCHBAR_CHK, 0, MF_BYCOMMAND, _r_config_getboolean (L"IsShowSearchBar", TRUE)); + _r_menu_checkitem ( + hmenu, + IDM_ALWAYSONTOP_CHK, + 0, + MF_BYCOMMAND, + _r_config_getboolean (L"AlwaysOnTop", FALSE) + ); + + _r_menu_checkitem ( + hmenu, + IDM_AUTOSIZECOLUMNS_CHK, + 0, + MF_BYCOMMAND, + _r_config_getboolean (L"AutoSizeColumns", TRUE) + ); + + _r_menu_checkitem ( + hmenu, + IDM_SHOWFILENAMESONLY_CHK, + 0, + MF_BYCOMMAND, + _r_config_getboolean (L"ShowFilenames", TRUE) + ); + + _r_menu_checkitem ( + hmenu, + IDM_SHOWSEARCHBAR_CHK, + 0, + MF_BYCOMMAND, + _r_config_getboolean (L"IsShowSearchBar", TRUE) + ); view_type = _r_calc_clamp (_r_config_getlong (L"ViewType", LV_VIEW_DETAILS), LV_VIEW_ICON, LV_VIEW_MAX); @@ -66,34 +93,167 @@ VOID _app_message_initialize ( _r_menu_checkitem (hmenu, IDM_SIZE_SMALL, IDM_SIZE_EXTRALARGE, MF_BYCOMMAND, menu_id); - _r_menu_checkitem (hmenu, IDM_ICONSISHIDDEN, 0, MF_BYCOMMAND, _r_config_getboolean (L"IsIconsHidden", FALSE)); + _r_menu_checkitem ( + hmenu, + IDM_ICONSISHIDDEN, + 0, + MF_BYCOMMAND, + _r_config_getboolean (L"IsIconsHidden", FALSE) + ); - _r_menu_checkitem (hmenu, IDM_LOADONSTARTUP_CHK, 0, MF_BYCOMMAND, _r_autorun_isenabled ()); - _r_menu_checkitem (hmenu, IDM_STARTMINIMIZED_CHK, 0, MF_BYCOMMAND, _r_config_getboolean (L"IsStartMinimized", FALSE)); - _r_menu_checkitem (hmenu, IDM_SKIPUACWARNING_CHK, 0, MF_BYCOMMAND, _r_skipuac_isenabled ()); - _r_menu_checkitem (hmenu, IDM_CHECKUPDATES_CHK, 0, MF_BYCOMMAND, _r_update_isenabled (FALSE)); + _r_menu_checkitem ( + hmenu, + IDM_LOADONSTARTUP_CHK, + 0, + MF_BYCOMMAND, + _r_autorun_isenabled () + ); - _r_menu_checkitem (hmenu, IDM_RULE_BLOCKOUTBOUND, 0, MF_BYCOMMAND, _r_config_getboolean (L"BlockOutboundConnections", TRUE)); - _r_menu_checkitem (hmenu, IDM_RULE_BLOCKINBOUND, 0, MF_BYCOMMAND, _r_config_getboolean (L"BlockInboundConnections", TRUE)); - _r_menu_checkitem (hmenu, IDM_RULE_ALLOWLOOPBACK, 0, MF_BYCOMMAND, _r_config_getboolean (L"AllowLoopbackConnections", TRUE)); - _r_menu_checkitem (hmenu, IDM_RULE_ALLOW6TO4, 0, MF_BYCOMMAND, _r_config_getboolean (L"AllowIPv6", TRUE)); - _r_menu_checkitem (hmenu, IDM_RULE_ALLOWWINDOWSUPDATE, 0, MF_BYCOMMAND, _r_config_getboolean (L"IsWUFixEnabled", FALSE)); + _r_menu_checkitem ( + hmenu, + IDM_STARTMINIMIZED_CHK, + 0, + MF_BYCOMMAND, + _r_config_getboolean (L"IsStartMinimized", FALSE) + ); + + _r_menu_checkitem ( + hmenu, + IDM_SKIPUACWARNING_CHK, + 0, + MF_BYCOMMAND, + _r_skipuac_isenabled () + ); + + _r_menu_checkitem ( + hmenu, + IDM_CHECKUPDATES_CHK, + 0, + MF_BYCOMMAND, + _r_update_isenabled (FALSE) + ); + + _r_menu_checkitem ( + hmenu, + IDM_RULE_BLOCKOUTBOUND, + 0, + MF_BYCOMMAND, + _r_config_getboolean (L"BlockOutboundConnections", TRUE) + ); + + _r_menu_checkitem ( + hmenu, + IDM_RULE_BLOCKINBOUND, + 0, + MF_BYCOMMAND, + _r_config_getboolean (L"BlockInboundConnections", TRUE) + ); + + _r_menu_checkitem ( + hmenu, + IDM_RULE_ALLOWLOOPBACK, + 0, + MF_BYCOMMAND, + _r_config_getboolean (L"AllowLoopbackConnections", TRUE) + ); + + _r_menu_checkitem ( + hmenu, + IDM_RULE_ALLOW6TO4, + 0, + MF_BYCOMMAND, + _r_config_getboolean (L"AllowIPv6", TRUE) + ); + + _r_menu_checkitem ( + hmenu, + IDM_RULE_ALLOWWINDOWSUPDATE, + 0, + MF_BYCOMMAND, + _r_config_getboolean (L"IsWUFixEnabled", FALSE) + ); if (!_r_sys_isosversiongreaterorequal (WINDOWS_10)) _r_menu_enableitem (hmenu, IDM_RULE_ALLOWWINDOWSUPDATE, MF_BYCOMMAND, FALSE); - _r_menu_checkitem (hmenu, IDM_USECERTIFICATES_CHK, 0, MF_BYCOMMAND, _r_config_getboolean (L"IsCertificatesEnabled", TRUE)); - _r_menu_checkitem (hmenu, IDM_USENETWORKRESOLUTION_CHK, 0, MF_BYCOMMAND, _r_config_getboolean (L"IsNetworkResolutionsEnabled", FALSE)); - _r_menu_checkitem (hmenu, IDM_USEREFRESHDEVICES_CHK, 0, MF_BYCOMMAND, _r_config_getboolean (L"IsRefreshDevices", TRUE)); + _r_menu_checkitem ( + hmenu, + IDM_USECERTIFICATES_CHK, + 0, + MF_BYCOMMAND, + _r_config_getboolean (L"IsCertificatesEnabled", TRUE) + ); - _r_menu_checkitem (hmenu, IDM_BLOCKLIST_SPY_DISABLE, IDM_BLOCKLIST_SPY_BLOCK, MF_BYCOMMAND, IDM_BLOCKLIST_SPY_DISABLE + _r_calc_clamp (_r_config_getlong (L"BlocklistSpyState", 2), 0, 2)); - _r_menu_checkitem (hmenu, IDM_BLOCKLIST_UPDATE_DISABLE, IDM_BLOCKLIST_UPDATE_BLOCK, MF_BYCOMMAND, IDM_BLOCKLIST_UPDATE_DISABLE + _r_calc_clamp (_r_config_getlong (L"BlocklistUpdateState", 0), 0, 2)); - _r_menu_checkitem (hmenu, IDM_BLOCKLIST_EXTRA_DISABLE, IDM_BLOCKLIST_EXTRA_BLOCK, MF_BYCOMMAND, IDM_BLOCKLIST_EXTRA_DISABLE + _r_calc_clamp (_r_config_getlong (L"BlocklistExtraState", 0), 0, 2)); + _r_menu_checkitem ( + hmenu, + IDM_USENETWORKRESOLUTION_CHK, + 0, + MF_BYCOMMAND, + _r_config_getboolean (L"IsNetworkResolutionsEnabled", FALSE) + ); + + _r_menu_checkitem ( + hmenu, + IDM_USEREFRESHDEVICES_CHK, + 0, + MF_BYCOMMAND, + _r_config_getboolean (L"IsRefreshDevices", TRUE) + ); + + _r_menu_checkitem ( + hmenu, + IDM_BLOCKLIST_SPY_DISABLE, + IDM_BLOCKLIST_SPY_BLOCK, + MF_BYCOMMAND, + IDM_BLOCKLIST_SPY_DISABLE + _r_calc_clamp (_r_config_getlong (L"BlocklistSpyState", 2), 0, 2) + ); + + _r_menu_checkitem ( + hmenu, + IDM_BLOCKLIST_UPDATE_DISABLE, + IDM_BLOCKLIST_UPDATE_BLOCK, + MF_BYCOMMAND, + IDM_BLOCKLIST_UPDATE_DISABLE + _r_calc_clamp (_r_config_getlong (L"BlocklistUpdateState", 0), 0, 2) + ); + + _r_menu_checkitem ( + hmenu, + IDM_BLOCKLIST_EXTRA_DISABLE, + IDM_BLOCKLIST_EXTRA_BLOCK, + MF_BYCOMMAND, + IDM_BLOCKLIST_EXTRA_DISABLE + _r_calc_clamp (_r_config_getlong (L"BlocklistExtraState", 0), 0, 2) + ); } - _r_toolbar_setbutton (config.hrebar, IDC_TOOLBAR, IDM_TRAY_ENABLENOTIFICATIONS_CHK, NULL, 0, _r_config_getboolean (L"IsNotificationsEnabled", TRUE) ? TBSTATE_PRESSED | TBSTATE_ENABLED : TBSTATE_ENABLED, I_IMAGENONE); - _r_toolbar_setbutton (config.hrebar, IDC_TOOLBAR, IDM_TRAY_ENABLELOG_CHK, NULL, 0, _r_config_getboolean (L"IsLogEnabled", FALSE) ? TBSTATE_PRESSED | TBSTATE_ENABLED : TBSTATE_ENABLED, I_IMAGENONE); - _r_toolbar_setbutton (config.hrebar, IDC_TOOLBAR, IDM_TRAY_ENABLEUILOG_CHK, NULL, 0, _r_config_getboolean (L"IsLogUiEnabled", FALSE) ? TBSTATE_PRESSED | TBSTATE_ENABLED : TBSTATE_ENABLED, I_IMAGENONE); + _r_toolbar_setbutton ( + config.hrebar, + IDC_TOOLBAR, + IDM_TRAY_ENABLENOTIFICATIONS_CHK, + NULL, + 0, + _r_config_getboolean (L"IsNotificationsEnabled", TRUE) ? TBSTATE_PRESSED | TBSTATE_ENABLED : TBSTATE_ENABLED, + I_IMAGENONE + ); + + _r_toolbar_setbutton ( + config.hrebar, + IDC_TOOLBAR, + IDM_TRAY_ENABLELOG_CHK, + NULL, + 0, + _r_config_getboolean (L"IsLogEnabled", FALSE) ? TBSTATE_PRESSED | TBSTATE_ENABLED : TBSTATE_ENABLED, + I_IMAGENONE + ); + + _r_toolbar_setbutton ( + config.hrebar, + IDC_TOOLBAR, + IDM_TRAY_ENABLEUILOG_CHK, + NULL, + 0, + _r_config_getboolean (L"IsLogUiEnabled", FALSE) ? TBSTATE_PRESSED | TBSTATE_ENABLED : TBSTATE_ENABLED, + I_IMAGENONE + ); } VOID _app_message_localize ( @@ -124,16 +284,69 @@ VOID _app_message_localize ( _r_menu_setitemtext (hmenu, 5, TRUE, _r_locale_getstring (IDS_HELP)); // file submenu - _r_menu_setitemtextformat (hmenu, IDM_SETTINGS, FALSE, L"%s...\tF2", _r_locale_getstring (IDS_SETTINGS)); - _r_menu_setitemtextformat (hmenu, IDM_ADD_FILE, FALSE, L"%s...", _r_locale_getstring (IDS_ADD_FILE)); - _r_menu_setitemtextformat (hmenu, IDM_IMPORT, FALSE, L"%s...\tCtrl+O", _r_locale_getstring (IDS_IMPORT)); - _r_menu_setitemtextformat (hmenu, IDM_EXPORT, FALSE, L"%s...\tCtrl+S", _r_locale_getstring (IDS_EXPORT)); - _r_menu_setitemtextformat (hmenu, IDM_EXIT, FALSE, _r_locale_getstring (IDS_EXIT)); + _r_menu_setitemtextformat ( + hmenu, + IDM_SETTINGS, + FALSE, + L"%s...\tF2", + _r_locale_getstring (IDS_SETTINGS) + ); + + _r_menu_setitemtextformat ( + hmenu, + IDM_ADD_FILE, + FALSE, + L"%s...", + _r_locale_getstring (IDS_ADD_FILE) + ); + + _r_menu_setitemtextformat ( + hmenu, + IDM_IMPORT, + FALSE, + L"%s...\tCtrl+O", + _r_locale_getstring (IDS_IMPORT) + ); + + _r_menu_setitemtextformat ( + hmenu, + IDM_EXPORT, + FALSE, + L"%s...\tCtrl+S", + _r_locale_getstring (IDS_EXPORT) + ); + + _r_menu_setitemtextformat ( + hmenu, + IDM_EXIT, + FALSE, + _r_locale_getstring (IDS_EXIT) + ); // edit submenu - _r_menu_setitemtextformat (hmenu, IDM_PURGE_UNUSED, FALSE, L"%s\tCtrl+Shift+X", _r_locale_getstring (IDS_PURGE_UNUSED)); - _r_menu_setitemtextformat (hmenu, IDM_PURGE_TIMERS, FALSE, L"%s\tCtrl+Shift+T", _r_locale_getstring (IDS_PURGE_TIMERS)); - _r_menu_setitemtextformat (hmenu, IDM_REFRESH, FALSE, L"%s\tF5", _r_locale_getstring (IDS_REFRESH)); + _r_menu_setitemtextformat ( + hmenu, + IDM_PURGE_UNUSED, + FALSE, + L"%s\tCtrl+Shift+X", + _r_locale_getstring (IDS_PURGE_UNUSED) + ); + + _r_menu_setitemtextformat ( + hmenu, + IDM_PURGE_TIMERS, + FALSE, + L"%s\tCtrl+Shift+T", + _r_locale_getstring (IDS_PURGE_TIMERS) + ); + + _r_menu_setitemtextformat ( + hmenu, + IDM_REFRESH, + FALSE, + L"%s\tF5", + _r_locale_getstring (IDS_REFRESH) + ); // view submenu _r_menu_setitemtext (hmenu, IDM_ALWAYSONTOP_CHK, FALSE, _r_locale_getstring (IDS_ALWAYSONTOP_CHK)); @@ -157,7 +370,14 @@ VOID _app_message_localize ( { _r_menu_setitemtext (hsubmenu, ICONS_MENU, TRUE, _r_locale_getstring (IDS_ICONS)); - _r_menu_setitemtextformat (hsubmenu, LANG_MENU, TRUE, L"%s (Language)", _r_locale_getstring (IDS_LANGUAGE)); + _r_menu_setitemtextformat ( + hsubmenu, + LANG_MENU, + TRUE, + L"%s (Language)", + _r_locale_getstring (IDS_LANGUAGE) + ); + _r_locale_enum (hsubmenu, LANG_MENU, IDX_LANGUAGE); // enum localizations } @@ -173,32 +393,109 @@ VOID _app_message_localize ( _r_menu_setitemtext (hmenu, IDM_RULE_BLOCKINBOUND, FALSE, _r_locale_getstring (IDS_RULE_BLOCKINBOUND)); _r_menu_setitemtext (hmenu, IDM_RULE_ALLOWLOOPBACK, FALSE, _r_locale_getstring (IDS_RULE_ALLOWLOOPBACK)); _r_menu_setitemtext (hmenu, IDM_RULE_ALLOW6TO4, FALSE, _r_locale_getstring (IDS_RULE_ALLOW6TO4)); - _r_menu_setitemtext (hmenu, IDM_RULE_ALLOWWINDOWSUPDATE, FALSE, _r_locale_getstring (IDS_RULE_ALLOWWINDOWSUPDATE)); - _r_menu_setitemtext (hmenu, IDM_USENETWORKRESOLUTION_CHK, FALSE, _r_locale_getstring (IDS_USENETWORKRESOLUTION_CHK)); - _r_menu_setitemtext (hmenu, IDM_USECERTIFICATES_CHK, FALSE, _r_locale_getstring (IDS_USECERTIFICATES_CHK)); - _r_menu_setitemtext (hmenu, IDM_USEREFRESHDEVICES_CHK, FALSE, _r_locale_getstring (IDS_USEREFRESHDEVICES_CHK)); + _r_menu_setitemtext ( + hmenu, + IDM_RULE_ALLOWWINDOWSUPDATE, + FALSE, + _r_locale_getstring (IDS_RULE_ALLOWWINDOWSUPDATE) + ); + + _r_menu_setitemtext ( + hmenu, + IDM_USENETWORKRESOLUTION_CHK, + FALSE, + _r_locale_getstring (IDS_USENETWORKRESOLUTION_CHK) + ); + + _r_menu_setitemtext ( + hmenu, + IDM_USECERTIFICATES_CHK, + FALSE, + _r_locale_getstring (IDS_USECERTIFICATES_CHK) + ); + + _r_menu_setitemtext ( + hmenu, + IDM_USEREFRESHDEVICES_CHK, + FALSE, + _r_locale_getstring (IDS_USEREFRESHDEVICES_CHK) + ); hsubmenu = GetSubMenu (hmenu, 3); if (hsubmenu) - { _r_menu_setitemtext (hsubmenu, 5, TRUE, _r_locale_getstring (IDS_TRAY_RULES)); - } // blocklist submenu - _r_menu_setitemtext (hmenu, IDM_BLOCKLIST_SPY_DISABLE, FALSE, _r_locale_getstring (IDS_DISABLE)); - _r_menu_setitemtext (hmenu, IDM_BLOCKLIST_SPY_ALLOW, FALSE, _r_locale_getstring (IDS_ACTION_ALLOW)); - _r_menu_setitemtextformat (hmenu, IDM_BLOCKLIST_SPY_BLOCK, FALSE, L"%s (%s)", _r_locale_getstring (IDS_ACTION_BLOCK), recommended_string); - _r_menu_setitemtextformat (hmenu, IDM_BLOCKLIST_UPDATE_DISABLE, FALSE, L"%s (%s)", _r_locale_getstring (IDS_DISABLE), recommended_string); + _r_menu_setitemtext ( + hmenu, + IDM_BLOCKLIST_SPY_DISABLE, + FALSE, + _r_locale_getstring (IDS_DISABLE) + ); - _r_menu_setitemtext (hmenu, IDM_BLOCKLIST_UPDATE_ALLOW, FALSE, _r_locale_getstring (IDS_ACTION_ALLOW)); - _r_menu_setitemtext (hmenu, IDM_BLOCKLIST_UPDATE_BLOCK, FALSE, _r_locale_getstring (IDS_ACTION_BLOCK)); + _r_menu_setitemtext ( + hmenu, + IDM_BLOCKLIST_SPY_ALLOW, + FALSE, + _r_locale_getstring (IDS_ACTION_ALLOW) + ); - _r_menu_setitemtextformat (hmenu, IDM_BLOCKLIST_EXTRA_DISABLE, FALSE, L"%s (%s)", _r_locale_getstring (IDS_DISABLE), recommended_string); + _r_menu_setitemtextformat ( + hmenu, + IDM_BLOCKLIST_SPY_BLOCK, + FALSE, + L"%s (%s)", + _r_locale_getstring (IDS_ACTION_BLOCK), + recommended_string + ); - _r_menu_setitemtext (hmenu, IDM_BLOCKLIST_EXTRA_ALLOW, FALSE, _r_locale_getstring (IDS_ACTION_ALLOW)); - _r_menu_setitemtext (hmenu, IDM_BLOCKLIST_EXTRA_BLOCK, FALSE, _r_locale_getstring (IDS_ACTION_BLOCK)); + _r_menu_setitemtextformat ( + hmenu, + IDM_BLOCKLIST_UPDATE_DISABLE, + FALSE, + L"%s (%s)", + _r_locale_getstring (IDS_DISABLE), + recommended_string + ); + + _r_menu_setitemtext ( + hmenu, + IDM_BLOCKLIST_UPDATE_ALLOW, + FALSE, + _r_locale_getstring (IDS_ACTION_ALLOW) + ); + + _r_menu_setitemtext ( + hmenu, + IDM_BLOCKLIST_UPDATE_BLOCK, + FALSE, + _r_locale_getstring (IDS_ACTION_BLOCK) + ); + + _r_menu_setitemtextformat ( + hmenu, + IDM_BLOCKLIST_EXTRA_DISABLE, + FALSE, + L"%s (%s)", + _r_locale_getstring (IDS_DISABLE), + recommended_string + ); + + _r_menu_setitemtext ( + hmenu, + IDM_BLOCKLIST_EXTRA_ALLOW, + FALSE, + _r_locale_getstring (IDS_ACTION_ALLOW) + ); + + _r_menu_setitemtext ( + hmenu, + IDM_BLOCKLIST_EXTRA_BLOCK, + FALSE, + _r_locale_getstring (IDS_ACTION_BLOCK) + ); hsubmenu = GetSubMenu (hmenu, 4); @@ -213,33 +510,133 @@ VOID _app_message_localize ( _r_menu_setitemtext (hmenu, IDM_WEBSITE, FALSE, _r_locale_getstring (IDS_WEBSITE)); _r_menu_setitemtext (hmenu, IDM_CHECKUPDATES, FALSE, _r_locale_getstring (IDS_CHECKUPDATES)); - _r_menu_setitemtextformat (hmenu, IDM_ABOUT, FALSE, L"%s\tF1", _r_locale_getstring (IDS_ABOUT)); + _r_menu_setitemtextformat ( + hmenu, + IDM_ABOUT, + FALSE, + L"%s\tF1", + _r_locale_getstring (IDS_ABOUT) + ); } // localize toolbar _app_setinterfacestate (hwnd, dpi_value); - _r_toolbar_setbutton (config.hrebar, IDC_TOOLBAR, IDM_REFRESH, _r_locale_getstring (IDS_REFRESH), BTNS_BUTTON | BTNS_AUTOSIZE | BTNS_SHOWTEXT, 0, I_IMAGENONE); - _r_toolbar_setbutton (config.hrebar, IDC_TOOLBAR, IDM_SETTINGS, _r_locale_getstring (IDS_SETTINGS), BTNS_BUTTON | BTNS_AUTOSIZE | BTNS_SHOWTEXT, 0, I_IMAGENONE); + _r_toolbar_setbutton ( + config.hrebar, + IDC_TOOLBAR, + IDM_REFRESH, + _r_locale_getstring (IDS_REFRESH), + BTNS_BUTTON | BTNS_AUTOSIZE | BTNS_SHOWTEXT, + 0, + I_IMAGENONE + ); - _r_obj_movereference (&localized_string, _r_format_string (L"%s...", _r_locale_getstring (IDS_OPENRULESEDITOR))); - _r_toolbar_setbutton (config.hrebar, IDC_TOOLBAR, IDM_OPENRULESEDITOR, localized_string->buffer, BTNS_BUTTON | BTNS_AUTOSIZE, 0, I_IMAGENONE); + _r_toolbar_setbutton ( + config.hrebar, + IDC_TOOLBAR, + IDM_SETTINGS, + _r_locale_getstring (IDS_SETTINGS), + BTNS_BUTTON | BTNS_AUTOSIZE | BTNS_SHOWTEXT, + 0, + I_IMAGENONE + ); - _r_toolbar_setbutton (config.hrebar, IDC_TOOLBAR, IDM_TRAY_ENABLENOTIFICATIONS_CHK, _r_locale_getstring (IDS_ENABLENOTIFICATIONS_CHK), BTNS_CHECK | BTNS_AUTOSIZE, 0, I_IMAGENONE); - _r_toolbar_setbutton (config.hrebar, IDC_TOOLBAR, IDM_TRAY_ENABLELOG_CHK, _r_locale_getstring (IDS_ENABLELOG_CHK), BTNS_CHECK | BTNS_AUTOSIZE, 0, I_IMAGENONE); + _r_obj_movereference ( + &localized_string, + _r_format_string (L"%s...", _r_locale_getstring (IDS_OPENRULESEDITOR)) + ); - _r_obj_movereference (&localized_string, _r_format_string (L"%s (session only)", _r_locale_getstring (IDS_ENABLEUILOG_CHK))); - _r_toolbar_setbutton (config.hrebar, IDC_TOOLBAR, IDM_TRAY_ENABLEUILOG_CHK, localized_string->buffer, BTNS_CHECK | BTNS_AUTOSIZE, 0, I_IMAGENONE); + _r_toolbar_setbutton ( + config.hrebar, + IDC_TOOLBAR, + IDM_OPENRULESEDITOR, + localized_string->buffer, + BTNS_BUTTON | BTNS_AUTOSIZE, + 0, + I_IMAGENONE + ); - _r_obj_movereference (&localized_string, _r_format_string (L"%s (Ctrl+I)", _r_locale_getstring (IDS_LOGSHOW))); - _r_toolbar_setbutton (config.hrebar, IDC_TOOLBAR, IDM_TRAY_LOGSHOW, localized_string->buffer, BTNS_BUTTON | BTNS_AUTOSIZE, 0, I_IMAGENONE); + _r_toolbar_setbutton ( + config.hrebar, + IDC_TOOLBAR, + IDM_TRAY_ENABLENOTIFICATIONS_CHK, + _r_locale_getstring (IDS_ENABLENOTIFICATIONS_CHK), + BTNS_CHECK | BTNS_AUTOSIZE, + 0, + I_IMAGENONE + ); - _r_obj_movereference (&localized_string, _r_format_string (L"%s (Ctrl+X)", _r_locale_getstring (IDS_LOGCLEAR))); - _r_toolbar_setbutton (config.hrebar, IDC_TOOLBAR, IDM_TRAY_LOGCLEAR, localized_string->buffer, BTNS_BUTTON | BTNS_AUTOSIZE, 0, I_IMAGENONE); + _r_toolbar_setbutton ( + config.hrebar, + IDC_TOOLBAR, + IDM_TRAY_ENABLELOG_CHK, + _r_locale_getstring (IDS_ENABLELOG_CHK), + BTNS_CHECK | BTNS_AUTOSIZE, + 0, + I_IMAGENONE + ); - _r_toolbar_setbutton (config.hrebar, IDC_TOOLBAR, IDM_DONATE, _r_locale_getstring (IDS_DONATE), BTNS_BUTTON | BTNS_AUTOSIZE, 0, I_IMAGENONE); + _r_obj_movereference ( + &localized_string, + _r_format_string (L"%s (session only)", _r_locale_getstring (IDS_ENABLEUILOG_CHK)) + ); + + _r_toolbar_setbutton ( + config.hrebar, + IDC_TOOLBAR, + IDM_TRAY_ENABLEUILOG_CHK, + localized_string->buffer, + BTNS_CHECK | BTNS_AUTOSIZE, + 0, + I_IMAGENONE + ); + + _r_obj_movereference ( + &localized_string, + _r_format_string (L"%s (Ctrl+I)", _r_locale_getstring (IDS_LOGSHOW)) + ); + + _r_toolbar_setbutton ( + config.hrebar, + IDC_TOOLBAR, + IDM_TRAY_LOGSHOW, + localized_string->buffer, + BTNS_BUTTON | BTNS_AUTOSIZE, + 0, + I_IMAGENONE + ); + + _r_obj_movereference ( + &localized_string, + _r_format_string (L"%s (Ctrl+X)", _r_locale_getstring (IDS_LOGCLEAR)) + ); + + _r_toolbar_setbutton ( + config.hrebar, + IDC_TOOLBAR, + IDM_TRAY_LOGCLEAR, + localized_string->buffer, + BTNS_BUTTON | BTNS_AUTOSIZE, + 0, + I_IMAGENONE + ); + + _r_toolbar_setbutton ( + config.hrebar, + IDC_TOOLBAR, + IDM_DONATE, + _r_locale_getstring (IDS_DONATE), + BTNS_BUTTON | BTNS_AUTOSIZE, + 0, + I_IMAGENONE + ); + + _r_obj_movereference ( + &localized_string, + _r_format_string (L"%s... (Ctrl+F)", _r_locale_getstring (IDS_FIND)) + ); - _r_obj_movereference (&localized_string, _r_format_string (L"%s... (Ctrl+F)", _r_locale_getstring (IDS_FIND))); _r_edit_setcuebanner (config.hrebar, IDC_SEARCH, localized_string->buffer); // set rebar size @@ -304,22 +701,46 @@ VOID _app_message_localize ( { _r_listview_setcolumn (hwnd, listview_id, 0, _r_locale_getstring (IDS_NAME), 0); - _r_obj_movereference (&localized_string, _r_format_string (L"%s (" SZ_DIRECTION_LOCAL L")", _r_locale_getstring (IDS_ADDRESS))); + _r_obj_movereference ( + &localized_string, + _r_format_string (L"%s (" SZ_DIRECTION_LOCAL L")", _r_locale_getstring (IDS_ADDRESS)) + ); + _r_listview_setcolumn (hwnd, listview_id, 1, localized_string->buffer, 0); - _r_obj_movereference (&localized_string, _r_format_string (L"%s (" SZ_DIRECTION_LOCAL L")", _r_locale_getstring (IDS_HOST))); + _r_obj_movereference ( + &localized_string, + _r_format_string (L"%s (" SZ_DIRECTION_LOCAL L")", _r_locale_getstring (IDS_HOST)) + ); + _r_listview_setcolumn (hwnd, listview_id, 2, localized_string->buffer, 0); - _r_obj_movereference (&localized_string, _r_format_string (L"%s (" SZ_DIRECTION_LOCAL L")", _r_locale_getstring (IDS_PORT))); + _r_obj_movereference ( + &localized_string, + _r_format_string (L"%s (" SZ_DIRECTION_LOCAL L")", _r_locale_getstring (IDS_PORT)) + ); + _r_listview_setcolumn (hwnd, listview_id, 3, localized_string->buffer, 0); - _r_obj_movereference (&localized_string, _r_format_string (L"%s (" SZ_DIRECTION_REMOTE L")", _r_locale_getstring (IDS_ADDRESS))); + _r_obj_movereference ( + &localized_string, + _r_format_string (L"%s (" SZ_DIRECTION_REMOTE L")", _r_locale_getstring (IDS_ADDRESS)) + ); + _r_listview_setcolumn (hwnd, listview_id, 4, localized_string->buffer, 0); - _r_obj_movereference (&localized_string, _r_format_string (L"%s (" SZ_DIRECTION_REMOTE L")", _r_locale_getstring (IDS_HOST))); + _r_obj_movereference ( + &localized_string, + _r_format_string (L"%s (" SZ_DIRECTION_REMOTE L")", _r_locale_getstring (IDS_HOST)) + ); + _r_listview_setcolumn (hwnd, listview_id, 5, localized_string->buffer, 0); - _r_obj_movereference (&localized_string, _r_format_string (L"%s (" SZ_DIRECTION_REMOTE L")", _r_locale_getstring (IDS_PORT))); + _r_obj_movereference ( + &localized_string, + _r_format_string (L"%s (" SZ_DIRECTION_REMOTE L")", _r_locale_getstring (IDS_PORT)) + ); + _r_listview_setcolumn (hwnd, listview_id, 6, localized_string->buffer, 0); _r_listview_setcolumn (hwnd, listview_id, 7, _r_locale_getstring (IDS_PROTOCOL), 0); @@ -330,22 +751,46 @@ VOID _app_message_localize ( _r_listview_setcolumn (hwnd, listview_id, 0, _r_locale_getstring (IDS_NAME), 0); _r_listview_setcolumn (hwnd, listview_id, 1, _r_locale_getstring (IDS_DATE), 0); - _r_obj_movereference (&localized_string, _r_format_string (L"%s (" SZ_DIRECTION_LOCAL L")", _r_locale_getstring (IDS_ADDRESS))); + _r_obj_movereference ( + &localized_string, + _r_format_string (L"%s (" SZ_DIRECTION_LOCAL L")", _r_locale_getstring (IDS_ADDRESS)) + ); + _r_listview_setcolumn (hwnd, listview_id, 2, localized_string->buffer, 0); - _r_obj_movereference (&localized_string, _r_format_string (L"%s (" SZ_DIRECTION_LOCAL L")", _r_locale_getstring (IDS_HOST))); + _r_obj_movereference ( + &localized_string, + _r_format_string (L"%s (" SZ_DIRECTION_LOCAL L")", _r_locale_getstring (IDS_HOST)) + ); + _r_listview_setcolumn (hwnd, listview_id, 3, localized_string->buffer, 0); - _r_obj_movereference (&localized_string, _r_format_string (L"%s (" SZ_DIRECTION_LOCAL L")", _r_locale_getstring (IDS_PORT))); + _r_obj_movereference ( + &localized_string, + _r_format_string (L"%s (" SZ_DIRECTION_LOCAL L")", _r_locale_getstring (IDS_PORT)) + ); + _r_listview_setcolumn (hwnd, listview_id, 4, localized_string->buffer, 0); - _r_obj_movereference (&localized_string, _r_format_string (L"%s (" SZ_DIRECTION_REMOTE L")", _r_locale_getstring (IDS_ADDRESS))); + _r_obj_movereference ( + &localized_string, + _r_format_string (L"%s (" SZ_DIRECTION_REMOTE L")", _r_locale_getstring (IDS_ADDRESS)) + ); + _r_listview_setcolumn (hwnd, listview_id, 5, localized_string->buffer, 0); - _r_obj_movereference (&localized_string, _r_format_string (L"%s (" SZ_DIRECTION_REMOTE L")", _r_locale_getstring (IDS_HOST))); + _r_obj_movereference ( + &localized_string, + _r_format_string (L"%s (" SZ_DIRECTION_REMOTE L")", _r_locale_getstring (IDS_HOST)) + ); + _r_listview_setcolumn (hwnd, listview_id, 6, localized_string->buffer, 0); - _r_obj_movereference (&localized_string, _r_format_string (L"%s (" SZ_DIRECTION_REMOTE L")", _r_locale_getstring (IDS_PORT))); + _r_obj_movereference ( + &localized_string, + _r_format_string (L"%s (" SZ_DIRECTION_REMOTE L")", _r_locale_getstring (IDS_PORT)) + ); + _r_listview_setcolumn (hwnd, listview_id, 7, localized_string->buffer, 0); _r_listview_setcolumn (hwnd, listview_id, 8, _r_locale_getstring (IDS_PROTOCOL), 0); @@ -422,18 +867,27 @@ VOID _app_message_contextmenu ( ptr_app = _app_getappitem (hash_code); - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_EDIT2), L"...\tEnter")); - AppendMenu (hmenu, MF_STRING, IDM_PROPERTIES, localized_string->buffer); + _r_obj_movereference ( + &localized_string, + _r_obj_concatstrings (2, _r_locale_getstring (IDS_EDIT2), L"...\tEnter") + ); - AppendMenu (hmenu, MF_SEPARATOR, 0, NULL); + _r_menu_additem_ex (hmenu, IDM_PROPERTIES, localized_string->buffer, MF_DEFAULT); + + _r_menu_additem (hmenu, 0, NULL); // show rules if (hsubmenu_rules) { - AppendMenu (hmenu, MF_POPUP, (UINT_PTR)hsubmenu_rules, _r_locale_getstring (IDS_TRAY_RULES)); + _r_menu_addsubmenu (hmenu, hsubmenu_rules, _r_locale_getstring (IDS_TRAY_RULES)); - AppendMenu (hsubmenu_rules, MF_STRING, IDM_DISABLENOTIFICATIONS, _r_locale_getstring (IDS_DISABLENOTIFICATIONS)); - AppendMenu (hsubmenu_rules, MF_SEPARATOR, 0, NULL); + _r_menu_additem ( + hsubmenu_rules, + IDM_DISABLENOTIFICATIONS, + _r_locale_getstring (IDS_DISABLENOTIFICATIONS) + ); + + _r_menu_additem (hsubmenu_rules, 0, NULL); _app_generate_rulescontrol (hsubmenu_rules, hash_code, NULL); } @@ -441,47 +895,65 @@ VOID _app_message_contextmenu ( // show timers if (hsubmenu_timers) { - AppendMenu (hmenu, MF_POPUP, (UINT_PTR)hsubmenu_timers, _r_locale_getstring (IDS_TIMER)); + _r_menu_addsubmenu (hmenu, hsubmenu_timers, _r_locale_getstring (IDS_TIMER)); - AppendMenu (hsubmenu_timers, MF_STRING, IDM_DISABLETIMER, _r_locale_getstring (IDS_DISABLETIMER)); - AppendMenu (hsubmenu_timers, MF_SEPARATOR, 0, NULL); + _r_menu_additem (hsubmenu_timers, IDM_DISABLETIMER, _r_locale_getstring (IDS_DISABLETIMER)); + _r_menu_additem (hsubmenu_timers, 0, NULL); _app_generate_timerscontrol (hsubmenu_timers, hash_code); } - AppendMenu (hmenu, MF_SEPARATOR, 0, NULL); + _r_menu_additem (hmenu, 0, NULL); - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_EXPLORE), L"\tCtrl+E")); - AppendMenu (hmenu, MF_STRING, IDM_EXPLORE, localized_string->buffer); + _r_obj_movereference ( + &localized_string, + _r_obj_concatstrings (2, _r_locale_getstring (IDS_EXPLORE), L"\tCtrl+E") + ); - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_DELETE), L"\tDel")); - AppendMenu (hmenu, MF_STRING, IDM_DELETE, localized_string->buffer); + _r_menu_additem (hmenu, IDM_EXPLORE, localized_string->buffer); - AppendMenu (hmenu, MF_SEPARATOR, 0, NULL); - AppendMenu (hmenu, MF_STRING, IDM_CHECK, _r_locale_getstring (IDS_CHECK)); - AppendMenu (hmenu, MF_STRING, IDM_UNCHECK, _r_locale_getstring (IDS_UNCHECK)); - AppendMenu (hmenu, MF_SEPARATOR, 0, NULL); + _r_obj_movereference ( + &localized_string, + _r_obj_concatstrings (2, _r_locale_getstring (IDS_DELETE), L"\tDel") + ); - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_SELECT_ALL), L"\tCtrl+A")); - AppendMenu (hmenu, MF_STRING, IDM_SELECT_ALL, localized_string->buffer); + _r_menu_additem (hmenu, IDM_DELETE, localized_string->buffer); - AppendMenu (hmenu, MF_SEPARATOR, 0, NULL); + _r_menu_additem (hmenu, 0, NULL); + _r_menu_additem (hmenu, IDM_CHECK, _r_locale_getstring (IDS_CHECK)); + _r_menu_additem (hmenu, IDM_UNCHECK, _r_locale_getstring (IDS_UNCHECK)); + _r_menu_additem (hmenu, 0, NULL); - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_COPY), L"\tCtrl+C")); - AppendMenu (hmenu, MF_STRING, IDM_COPY, localized_string->buffer); + _r_obj_movereference ( + &localized_string, + _r_obj_concatstrings (2, _r_locale_getstring (IDS_SELECT_ALL), L"\tCtrl+A") + ); + + _r_menu_additem (hmenu, IDM_SELECT_ALL, localized_string->buffer); + + _r_menu_additem (hmenu, 0, NULL); + + _r_obj_movereference ( + &localized_string, + _r_obj_concatstrings (2, _r_locale_getstring (IDS_COPY), L"\tCtrl+C") + ); + + _r_menu_additem (hmenu, IDM_COPY, localized_string->buffer); column_text = _r_listview_getcolumntext (hwnd, listview_id, lv_column_current); if (column_text) { - _r_obj_movereference (&localized_string, _r_obj_concatstrings (4, _r_locale_getstring (IDS_COPY), L" \"", column_text->buffer, L"\"")); - AppendMenu (hmenu, MF_STRING, IDM_COPY2, localized_string->buffer); + _r_obj_movereference ( + &localized_string, + _r_obj_concatstrings (4, _r_locale_getstring (IDS_COPY), L" \"", column_text->buffer, L"\"") + ); + + _r_menu_additem (hmenu, IDM_COPY2, localized_string->buffer); _r_obj_dereference (column_text); } - SetMenuDefaultItem (hmenu, IDM_PROPERTIES, MF_BYCOMMAND); - if (ptr_app) { if (_app_getappinfo (ptr_app, INFO_IS_SILENT, (PVOID_PTR)&is_checked) && is_checked) @@ -495,132 +967,199 @@ VOID _app_message_contextmenu ( { if (listview_id == IDC_RULES_CUSTOM) { - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_ADD), L"...")); - AppendMenu (hmenu, MF_STRING, IDM_OPENRULESEDITOR, localized_string->buffer); + _r_obj_movereference ( + &localized_string, + _r_obj_concatstrings (2, _r_locale_getstring (IDS_ADD), L"...") + ); + + _r_menu_additem (hmenu, IDM_OPENRULESEDITOR, localized_string->buffer); } - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_EDIT2), L"...\tEnter")); - AppendMenu (hmenu, MF_STRING, IDM_PROPERTIES, localized_string->buffer); + _r_obj_movereference ( + &localized_string, + _r_obj_concatstrings (2, _r_locale_getstring (IDS_EDIT2), L"...\tEnter") + ); + + _r_menu_additem_ex (hmenu, IDM_PROPERTIES, localized_string->buffer, MF_DEFAULT); if (listview_id == IDC_RULES_CUSTOM) { - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_DELETE), L"\tDel")); - AppendMenu (hmenu, MF_STRING, IDM_DELETE, localized_string->buffer); + _r_obj_movereference ( + &localized_string, + _r_obj_concatstrings (2, _r_locale_getstring (IDS_DELETE), L"\tDel") + ); + + _r_menu_additem (hmenu, IDM_DELETE, localized_string->buffer); if (_app_getruleinfobyid (hash_code, INFO_IS_READONLY, (PVOID_PTR)&is_readonly) && is_readonly) _r_menu_enableitem (hmenu, IDM_DELETE, MF_BYCOMMAND, FALSE); } - AppendMenu (hmenu, MF_SEPARATOR, 0, NULL); - AppendMenu (hmenu, MF_STRING, IDM_CHECK, _r_locale_getstring (IDS_CHECK)); - AppendMenu (hmenu, MF_STRING, IDM_UNCHECK, _r_locale_getstring (IDS_UNCHECK)); - AppendMenu (hmenu, MF_SEPARATOR, 0, NULL); + _r_menu_additem (hmenu, 0, NULL); + _r_menu_additem (hmenu, IDM_CHECK, _r_locale_getstring (IDS_CHECK)); + _r_menu_additem (hmenu, IDM_UNCHECK, _r_locale_getstring (IDS_UNCHECK)); + _r_menu_additem (hmenu, 0, NULL); - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_SELECT_ALL), L"\tCtrl+A")); - AppendMenu (hmenu, MF_STRING, IDM_SELECT_ALL, localized_string->buffer); + _r_obj_movereference ( + &localized_string, + _r_obj_concatstrings (2, _r_locale_getstring (IDS_SELECT_ALL), L"\tCtrl+A") + ); - AppendMenu (hmenu, MF_SEPARATOR, 0, NULL); + _r_menu_additem (hmenu, IDM_SELECT_ALL, localized_string->buffer); + _r_menu_additem (hmenu, 0, NULL); - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_COPY), L"\tCtrl+C")); - AppendMenu (hmenu, MF_STRING, IDM_COPY, localized_string->buffer); + _r_obj_movereference ( + &localized_string, + _r_obj_concatstrings (2, _r_locale_getstring (IDS_COPY), L"\tCtrl+C") + ); + + _r_menu_additem (hmenu, IDM_COPY, localized_string->buffer); column_text = _r_listview_getcolumntext (hwnd, listview_id, lv_column_current); if (column_text) { - _r_obj_movereference (&localized_string, _r_obj_concatstrings (4, _r_locale_getstring (IDS_COPY), L" \"", column_text->buffer, L"\"")); - AppendMenu (hmenu, MF_STRING, IDM_COPY2, localized_string->buffer); + _r_obj_movereference ( + &localized_string, + _r_obj_concatstrings (4, _r_locale_getstring (IDS_COPY), L" \"", column_text->buffer, L"\"") + ); + + _r_menu_additem (hmenu, IDM_COPY2, localized_string->buffer); _r_obj_dereference (column_text); } - - SetMenuDefaultItem (hmenu, IDM_PROPERTIES, MF_BYCOMMAND); } else if (listview_id == IDC_NETWORK) { - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_SHOWINLIST), L"\tEnter")); - AppendMenu (hmenu, MF_STRING, IDM_PROPERTIES, localized_string->buffer); + _r_obj_movereference ( + &localized_string, + _r_obj_concatstrings (2, _r_locale_getstring (IDS_SHOWINLIST), L"\tEnter") + ); - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_OPENRULESEDITOR), L"...")); - AppendMenu (hmenu, MF_STRING, IDM_OPENRULESEDITOR, localized_string->buffer); + _r_menu_additem_ex (hmenu, IDM_PROPERTIES, localized_string->buffer, MF_DEFAULT); - AppendMenu (hmenu, MF_SEPARATOR, 0, NULL); + _r_obj_movereference ( + &localized_string, + _r_obj_concatstrings (2, _r_locale_getstring (IDS_OPENRULESEDITOR), L"...") + ); - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_EXPLORE), L"\tCtrl+E")); - AppendMenu (hmenu, MF_STRING, IDM_EXPLORE, localized_string->buffer); + _r_menu_additem (hmenu, IDM_OPENRULESEDITOR, localized_string->buffer); - AppendMenu (hmenu, MF_STRING, IDM_DELETE, _r_locale_getstring (IDS_NETWORK_CLOSE)); - AppendMenu (hmenu, MF_SEPARATOR, 0, NULL); + _r_menu_additem (hmenu, 0, NULL); - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_SELECT_ALL), L"\tCtrl+A")); - AppendMenu (hmenu, MF_STRING, IDM_SELECT_ALL, localized_string->buffer); + _r_obj_movereference ( + &localized_string, + _r_obj_concatstrings (2, _r_locale_getstring (IDS_EXPLORE), L"\tCtrl+E") + ); - AppendMenu (hmenu, MF_SEPARATOR, 0, NULL); + _r_menu_additem (hmenu, IDM_EXPLORE, localized_string->buffer); - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_COPY), L"\tCtrl+C")); - AppendMenu (hmenu, MF_STRING, IDM_COPY, localized_string->buffer); + _r_menu_additem (hmenu, IDM_DELETE, _r_locale_getstring (IDS_NETWORK_CLOSE)); + _r_menu_additem (hmenu, 0, NULL); + + _r_obj_movereference ( + &localized_string, + _r_obj_concatstrings (2, _r_locale_getstring (IDS_SELECT_ALL), L"\tCtrl+A") + ); + + _r_menu_additem (hmenu, IDM_SELECT_ALL, localized_string->buffer); + + _r_menu_additem (hmenu, 0, NULL); + + _r_obj_movereference ( + &localized_string, + _r_obj_concatstrings (2, _r_locale_getstring (IDS_COPY), L"\tCtrl+C") + ); + + _r_menu_additem (hmenu, IDM_COPY, localized_string->buffer); column_text = _r_listview_getcolumntext (hwnd, listview_id, lv_column_current); if (column_text) { - _r_obj_movereference (&localized_string, _r_obj_concatstrings (4, _r_locale_getstring (IDS_COPY), L" \"", column_text->buffer, L"\"")); - AppendMenu (hmenu, MF_STRING, IDM_COPY2, localized_string->buffer); + _r_obj_movereference ( + &localized_string, + _r_obj_concatstrings (4, _r_locale_getstring (IDS_COPY), L" \"", column_text->buffer, L"\"") + ); + + _r_menu_additem (hmenu, IDM_COPY2, localized_string->buffer); _r_obj_dereference (column_text); } - SetMenuDefaultItem (hmenu, IDM_PROPERTIES, MF_BYCOMMAND); - ptr_network = _app_network_getitem (hash_code); if (ptr_network) { if (ptr_network->af != AF_INET || ptr_network->state != MIB_TCP_STATE_ESTAB) - { _r_menu_enableitem (hmenu, IDM_DELETE, MF_BYCOMMAND, FALSE); - } _r_obj_dereference (ptr_network); } } else if (listview_id == IDC_LOG) { - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_SHOWINLIST), L"\tEnter")); - AppendMenu (hmenu, MF_STRING, IDM_PROPERTIES, localized_string->buffer); + _r_obj_movereference ( + &localized_string, + _r_obj_concatstrings (2, _r_locale_getstring (IDS_SHOWINLIST), L"\tEnter") + ); - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_OPENRULESEDITOR), L"...")); - AppendMenu (hmenu, MF_STRING, IDM_OPENRULESEDITOR, localized_string->buffer); + _r_menu_additem_ex (hmenu, IDM_PROPERTIES, localized_string->buffer, MF_DEFAULT); - AppendMenu (hmenu, MF_SEPARATOR, 0, NULL); + _r_obj_movereference ( + &localized_string, + _r_obj_concatstrings (2, _r_locale_getstring (IDS_OPENRULESEDITOR), L"...") + ); - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_EXPLORE), L"\tCtrl+E")); - AppendMenu (hmenu, MF_STRING, IDM_EXPLORE, localized_string->buffer); + _r_menu_additem (hmenu, IDM_OPENRULESEDITOR, localized_string->buffer); - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_LOGCLEAR), L"\tCtrl+X")); - AppendMenu (hmenu, MF_STRING, IDM_TRAY_LOGCLEAR, localized_string->buffer); + _r_menu_additem (hmenu, 0, NULL); - AppendMenu (hmenu, MF_SEPARATOR, 0, NULL); + _r_obj_movereference ( + &localized_string, + _r_obj_concatstrings (2, _r_locale_getstring (IDS_EXPLORE), L"\tCtrl+E") + ); - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_SELECT_ALL), L"\tCtrl+A")); - AppendMenu (hmenu, MF_STRING, IDM_SELECT_ALL, localized_string->buffer); + _r_menu_additem (hmenu, IDM_EXPLORE, localized_string->buffer); - AppendMenu (hmenu, MF_SEPARATOR, 0, NULL); + _r_obj_movereference ( + &localized_string, + _r_obj_concatstrings (2, _r_locale_getstring (IDS_LOGCLEAR), L"\tCtrl+X") + ); - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_COPY), L"\tCtrl+C")); - AppendMenu (hmenu, MF_STRING, IDM_COPY, localized_string->buffer); + _r_menu_additem (hmenu, IDM_TRAY_LOGCLEAR, localized_string->buffer); + + _r_menu_additem (hmenu, 0, NULL); + + _r_obj_movereference ( + &localized_string, + _r_obj_concatstrings (2, _r_locale_getstring (IDS_SELECT_ALL), L"\tCtrl+A") + ); + + _r_menu_additem (hmenu, IDM_SELECT_ALL, localized_string->buffer); + + _r_menu_additem (hmenu, 0, NULL); + + _r_obj_movereference ( + &localized_string, + _r_obj_concatstrings (2, _r_locale_getstring (IDS_COPY), L"\tCtrl+C") + ); + + _r_menu_additem (hmenu, IDM_COPY, localized_string->buffer); column_text = _r_listview_getcolumntext (hwnd, listview_id, lv_column_current); if (column_text) { - _r_obj_movereference (&localized_string, _r_obj_concatstrings (4, _r_locale_getstring (IDS_COPY), L" \"", column_text->buffer, L"\"")); - AppendMenu (hmenu, MF_STRING, IDM_COPY2, localized_string->buffer); + _r_obj_movereference ( + &localized_string, + _r_obj_concatstrings (4, _r_locale_getstring (IDS_COPY), L" \"", column_text->buffer, L"\"") + ); + + _r_menu_additem (hmenu, IDM_COPY2, localized_string->buffer); _r_obj_dereference (column_text); } - - SetMenuDefaultItem (hmenu, IDM_PROPERTIES, MF_BYCOMMAND); } command_id = _r_menu_popup (hmenu, hwnd, NULL, FALSE); @@ -674,7 +1213,7 @@ VOID _app_message_contextmenu_columns ( if (column_text) { - AppendMenu (hmenu, MF_STRING, IDX_COLUMN + (UINT_PTR)i, column_text->buffer); + _r_menu_additem (hmenu, IDX_COLUMN + i, column_text->buffer); _r_menu_checkitem (hmenu, IDX_COLUMN + i, 0, MF_BYCOMMAND, TRUE); @@ -721,14 +1260,48 @@ VOID _app_message_traycontextmenu ( _r_menu_setitemtext (hsubmenu, NOTIFICATIONS_ID, TRUE, _r_locale_getstring (IDS_TITLE_NOTIFICATIONS)); _r_menu_setitemtext (hsubmenu, LOGGING_ID, TRUE, _r_locale_getstring (IDS_TITLE_LOGGING)); - _r_menu_setitemtext (hsubmenu, IDM_TRAY_ENABLENOTIFICATIONS_CHK, FALSE, _r_locale_getstring (IDS_ENABLENOTIFICATIONS_CHK)); - _r_menu_setitemtext (hsubmenu, IDM_TRAY_ENABLENOTIFICATIONSSOUND_CHK, FALSE, _r_locale_getstring (IDS_NOTIFICATIONSOUND_CHK)); - _r_menu_setitemtext (hsubmenu, IDM_TRAY_NOTIFICATIONFULLSCREENSILENTMODE_CHK, FALSE, _r_locale_getstring (IDS_NOTIFICATIONFULLSCREENSILENTMODE_CHK)); - _r_menu_setitemtext (hsubmenu, IDM_TRAY_NOTIFICATIONONTRAY_CHK, FALSE, _r_locale_getstring (IDS_NOTIFICATIONONTRAY_CHK)); + _r_menu_setitemtext ( + hsubmenu, + IDM_TRAY_ENABLENOTIFICATIONS_CHK, + FALSE, + _r_locale_getstring (IDS_ENABLENOTIFICATIONS_CHK) + ); - _r_menu_setitemtext (hsubmenu, IDM_TRAY_ENABLELOG_CHK, FALSE, _r_locale_getstring (IDS_ENABLELOG_CHK)); + _r_menu_setitemtext ( + hsubmenu, + IDM_TRAY_ENABLENOTIFICATIONSSOUND_CHK, + FALSE, + _r_locale_getstring (IDS_NOTIFICATIONSOUND_CHK) + ); - _r_menu_setitemtextformat (hsubmenu, IDM_TRAY_ENABLEUILOG_CHK, FALSE, L"%s (session only)", _r_locale_getstring (IDS_ENABLEUILOG_CHK)); + _r_menu_setitemtext ( + hsubmenu, + IDM_TRAY_NOTIFICATIONFULLSCREENSILENTMODE_CHK, + FALSE, + _r_locale_getstring (IDS_NOTIFICATIONFULLSCREENSILENTMODE_CHK) + ); + + _r_menu_setitemtext ( + hsubmenu, + IDM_TRAY_NOTIFICATIONONTRAY_CHK, + FALSE, + _r_locale_getstring (IDS_NOTIFICATIONONTRAY_CHK) + ); + + _r_menu_setitemtext ( + hsubmenu, + IDM_TRAY_ENABLELOG_CHK, + FALSE, + _r_locale_getstring (IDS_ENABLELOG_CHK) + ); + + _r_menu_setitemtextformat ( + hsubmenu, + IDM_TRAY_ENABLEUILOG_CHK, + FALSE, + L"%s (session only)", + _r_locale_getstring (IDS_ENABLEUILOG_CHK) + ); _r_menu_setitemtext (hsubmenu, IDM_TRAY_LOGSHOW, FALSE, _r_locale_getstring (IDS_LOGSHOW)); _r_menu_setitemtext (hsubmenu, IDM_TRAY_LOGCLEAR, FALSE, _r_locale_getstring (IDS_LOGCLEAR)); @@ -745,20 +1318,65 @@ VOID _app_message_traycontextmenu ( DeleteMenu (hsubmenu, ERRLOG_ID, MF_BYPOSITION); } - _r_menu_setitemtextformat (hsubmenu, IDM_TRAY_SETTINGS, FALSE, L"%s...", _r_locale_getstring (IDS_SETTINGS)); + _r_menu_setitemtextformat ( + hsubmenu, + IDM_TRAY_SETTINGS, + FALSE, + L"%s...", + _r_locale_getstring (IDS_SETTINGS) + ); _r_menu_setitemtext (hsubmenu, IDM_TRAY_WEBSITE, FALSE, _r_locale_getstring (IDS_WEBSITE)); _r_menu_setitemtext (hsubmenu, IDM_TRAY_ABOUT, FALSE, _r_locale_getstring (IDS_ABOUT)); _r_menu_setitemtext (hsubmenu, IDM_TRAY_EXIT, FALSE, _r_locale_getstring (IDS_EXIT)); - _r_menu_checkitem (hsubmenu, IDM_TRAY_ENABLENOTIFICATIONS_CHK, 0, MF_BYCOMMAND, _r_config_getboolean (L"IsNotificationsEnabled", TRUE)); - _r_menu_checkitem (hsubmenu, IDM_TRAY_ENABLENOTIFICATIONSSOUND_CHK, 0, MF_BYCOMMAND, _r_config_getboolean (L"IsNotificationsSound", TRUE)); - _r_menu_checkitem (hsubmenu, IDM_TRAY_NOTIFICATIONFULLSCREENSILENTMODE_CHK, 0, MF_BYCOMMAND, _r_config_getboolean (L"IsNotificationsFullscreenSilentMode", TRUE)); + _r_menu_checkitem ( + hsubmenu, + IDM_TRAY_ENABLENOTIFICATIONS_CHK, + 0, + MF_BYCOMMAND, + _r_config_getboolean (L"IsNotificationsEnabled", TRUE) + ); - _r_menu_checkitem (hsubmenu, IDM_TRAY_NOTIFICATIONONTRAY_CHK, 0, MF_BYCOMMAND, _r_config_getboolean (L"IsNotificationsOnTray", FALSE)); + _r_menu_checkitem ( + hsubmenu, + IDM_TRAY_ENABLENOTIFICATIONSSOUND_CHK, + 0, + MF_BYCOMMAND, + _r_config_getboolean (L"IsNotificationsSound", TRUE) + ); - _r_menu_checkitem (hsubmenu, IDM_TRAY_ENABLELOG_CHK, 0, MF_BYCOMMAND, _r_config_getboolean (L"IsLogEnabled", FALSE)); - _r_menu_checkitem (hsubmenu, IDM_TRAY_ENABLEUILOG_CHK, 0, MF_BYCOMMAND, _r_config_getboolean (L"IsLogUiEnabled", FALSE)); + _r_menu_checkitem ( + hsubmenu, + IDM_TRAY_NOTIFICATIONFULLSCREENSILENTMODE_CHK, + 0, + MF_BYCOMMAND, + _r_config_getboolean (L"IsNotificationsFullscreenSilentMode", TRUE) + ); + + _r_menu_checkitem ( + hsubmenu, + IDM_TRAY_NOTIFICATIONONTRAY_CHK, + 0, + MF_BYCOMMAND, + _r_config_getboolean (L"IsNotificationsOnTray", FALSE) + ); + + _r_menu_checkitem ( + hsubmenu, + IDM_TRAY_ENABLELOG_CHK, + 0, + MF_BYCOMMAND, + _r_config_getboolean (L"IsLogEnabled", FALSE) + ); + + _r_menu_checkitem ( + hsubmenu, + IDM_TRAY_ENABLEUILOG_CHK, + 0, + MF_BYCOMMAND, + _r_config_getboolean (L"IsLogUiEnabled", FALSE) + ); if (!_r_config_getboolean (L"IsNotificationsEnabled", TRUE)) { @@ -928,6 +1546,7 @@ LONG_PTR _app_message_custdraw ( INT icon_size_x; INT icon_size_y; INT ctrl_id; + LRESULT result; BOOLEAN is_systemapp; BOOLEAN is_validconnection; @@ -952,7 +1571,14 @@ LONG_PTR _app_message_custdraw ( tbi.cbSize = sizeof (tbi); tbi.dwMask = TBIF_STYLE | TBIF_STATE | TBIF_IMAGE; - if (SendMessage (lpnmlv->nmcd.hdr.hwndFrom, TB_GETBUTTONINFO, (WPARAM)lpnmlv->nmcd.dwItemSpec, (LPARAM)&tbi) == -1) + result = SendMessage ( + lpnmlv->nmcd.hdr.hwndFrom, + TB_GETBUTTONINFO, + (WPARAM)lpnmlv->nmcd.dwItemSpec, + (LPARAM)&tbi + ); + + if (result == -1) return CDRF_DODEFAULT; if (tbi.fsState & TBSTATE_ENABLED) @@ -991,12 +1617,24 @@ LONG_PTR _app_message_custdraw ( // draw text if ((tbi.fsStyle & BTNS_SHOWTEXT) == BTNS_SHOWTEXT) { - SendMessage (lpnmlv->nmcd.hdr.hwndFrom, TB_GETBUTTONTEXT, (WPARAM)lpnmlv->nmcd.dwItemSpec, (LPARAM)text); + SendMessage ( + lpnmlv->nmcd.hdr.hwndFrom, + TB_GETBUTTONTEXT, + (WPARAM)lpnmlv->nmcd.dwItemSpec, + (LPARAM)text + ); if (tbi.iImage != I_IMAGENONE) lpnmlv->nmcd.rc.left += icon_size_x; - DrawTextEx (lpnmlv->nmcd.hdc, text, (INT)_r_str_getlength (text), &lpnmlv->nmcd.rc, DT_CENTER | DT_VCENTER | DT_SINGLELINE | DT_HIDEPREFIX, NULL); + DrawTextEx ( + lpnmlv->nmcd.hdc, + text, + (INT)_r_str_getlength (text), + &lpnmlv->nmcd.rc, + DT_CENTER | DT_VCENTER | DT_SINGLELINE | DT_HIDEPREFIX, + NULL + ); } return CDRF_SKIPDEFAULT; @@ -1017,7 +1655,10 @@ LONG_PTR _app_message_custdraw ( is_systemapp = FALSE; is_validconnection = FALSE; - if ((ctrl_id >= IDC_APPS_PROFILE && ctrl_id <= IDC_APPS_UWP) || ctrl_id == IDC_RULE_APPS_ID || ctrl_id == IDC_NETWORK || ctrl_id == IDC_LOG) + if ((ctrl_id >= IDC_APPS_PROFILE && ctrl_id <= IDC_APPS_UWP) || + ctrl_id == IDC_RULE_APPS_ID || + ctrl_id == IDC_NETWORK || + ctrl_id == IDC_LOG) { app_hash = 0; index = _app_listview_getcontextcode (lpnmlv->nmcd.lItemlParam); @@ -1037,7 +1678,6 @@ LONG_PTR _app_message_custdraw ( } else if (ctrl_id == IDC_LOG) { - ptr_log = _app_getlogitem (index); if (ptr_log) @@ -1064,7 +1704,7 @@ LONG_PTR _app_message_custdraw ( if (app_hash) new_clr = _app_getappcolor (ctrl_id, app_hash, is_systemapp, is_validconnection); } - else if (ctrl_id >= IDC_RULES_BLOCKLIST && ctrl_id <= IDC_RULES_CUSTOM || ctrl_id == IDC_APP_RULES_ID) + else if ((ctrl_id >= IDC_RULES_BLOCKLIST && ctrl_id <= IDC_RULES_CUSTOM) || ctrl_id == IDC_APP_RULES_ID) { index = _app_listview_getcontextcode (lpnmlv->nmcd.lItemlParam); @@ -1359,7 +1999,11 @@ VOID _app_displayinfonetwork_callback ( case 1: { - string = InterlockedCompareExchangePointer (&ptr_network->local_addr_str, NULL, NULL); + string = InterlockedCompareExchangePointer ( + &ptr_network->local_addr_str, + NULL, + NULL + ); if (string) _r_str_copy (lpnmlv->item.pszText, lpnmlv->item.cchTextMax, string->buffer); @@ -1369,7 +2013,11 @@ VOID _app_displayinfonetwork_callback ( case 2: { - string = InterlockedCompareExchangePointer (&ptr_network->local_host_str, NULL, NULL); + string = InterlockedCompareExchangePointer ( + &ptr_network->local_host_str, + NULL, + NULL + ); if (string) { @@ -1401,7 +2049,11 @@ VOID _app_displayinfonetwork_callback ( case 4: { - string = InterlockedCompareExchangePointer (&ptr_network->remote_addr_str, NULL, NULL); + string = InterlockedCompareExchangePointer ( + &ptr_network->remote_addr_str, + NULL, + NULL + ); if (string) _r_str_copy (lpnmlv->item.pszText, lpnmlv->item.cchTextMax, string->buffer); @@ -1411,7 +2063,11 @@ VOID _app_displayinfonetwork_callback ( case 5: { - string = InterlockedCompareExchangePointer (&ptr_network->remote_host_str, NULL, NULL); + string = InterlockedCompareExchangePointer ( + &ptr_network->remote_host_str, + NULL, + NULL + ); if (string) { @@ -1557,7 +2213,11 @@ VOID _app_displayinfolog_callback ( case 2: { - string = InterlockedCompareExchangePointer (&ptr_log->local_addr_str, NULL, NULL); + string = InterlockedCompareExchangePointer ( + &ptr_log->local_addr_str, + NULL, + NULL + ); if (string) _r_str_copy (lpnmlv->item.pszText, lpnmlv->item.cchTextMax, string->buffer); @@ -1567,7 +2227,11 @@ VOID _app_displayinfolog_callback ( case 3: { - string = InterlockedCompareExchangePointer (&ptr_log->local_host_str, NULL, NULL); + string = InterlockedCompareExchangePointer ( + &ptr_log->local_host_str, + NULL, + NULL + ); if (string) { @@ -1599,7 +2263,11 @@ VOID _app_displayinfolog_callback ( case 5: { - string = InterlockedCompareExchangePointer (&ptr_log->remote_addr_str, NULL, NULL); + string = InterlockedCompareExchangePointer ( + &ptr_log->remote_addr_str, + NULL, + NULL + ); if (string) _r_str_copy (lpnmlv->item.pszText, lpnmlv->item.cchTextMax, string->buffer); @@ -1609,7 +2277,11 @@ VOID _app_displayinfolog_callback ( case 6: { - string = InterlockedCompareExchangePointer (&ptr_log->remote_host_str, NULL, NULL); + string = InterlockedCompareExchangePointer ( + &ptr_log->remote_host_str, + NULL, + NULL + ); if (string) { @@ -1952,7 +2624,14 @@ VOID _app_command_logshow ( if (viewer_path) { - process_path = _r_obj_concatstrings (5, L"\"", viewer_path->buffer, L"\" \"", log_path->buffer, L"\""); + process_path = _r_obj_concatstrings ( + 5, + L"\"", + viewer_path->buffer, + L"\" \"", + log_path->buffer, + L"\"" + ); status = _r_sys_createprocess (viewer_path->buffer, process_path->buffer, NULL); @@ -1981,7 +2660,11 @@ VOID _app_command_logclear ( log_path = _r_config_getstringexpand (L"LogPath", LOG_PATH_DEFAULT); - current_handle = InterlockedCompareExchangePointer (&config.hlogfile, NULL, NULL); + current_handle = InterlockedCompareExchangePointer ( + &config.hlogfile, + NULL, + NULL + ); is_valid = (current_handle && _r_fs_getsize (current_handle) > 2) || (log_path && _r_fs_exists (log_path->buffer)); @@ -2023,7 +2706,14 @@ VOID _app_command_logerrshow ( if (viewer_path) { - process_path = _r_format_string (L"\"%s\" \"%s\"", viewer_path->buffer, log_path->buffer); + process_path = _r_obj_concatstrings ( + 5, + L"\"", + viewer_path->buffer, + L"\" \"", + log_path->buffer, + L"\"" + ); status = _r_sys_createprocess (viewer_path->buffer, process_path->buffer, NULL); @@ -2518,6 +3208,7 @@ VOID _app_command_openeditor ( PITEM_NETWORK ptr_network; PITEM_RULE ptr_rule; PITEM_LOG ptr_log; + PR_STRING string; ULONG_PTR hash_code; SIZE_T id_code; INT listview_id; @@ -2538,9 +3229,7 @@ VOID _app_command_openeditor ( hash_code = _app_listview_getitemcontext (hwnd, listview_id, item_id); if (_app_isappfound (hash_code)) - { _r_obj_addhashtableitem (ptr_rule->apps, hash_code, NULL); - } } } else if (listview_id == IDC_NETWORK) @@ -2563,7 +3252,13 @@ VOID _app_command_openeditor ( { if (!_app_isappfound (ptr_network->app_hash)) { - ptr_network->app_hash = _app_addapplication (hwnd, DATA_UNKNOWN, ptr_network->path, NULL, NULL); + ptr_network->app_hash = _app_addapplication ( + hwnd, + DATA_UNKNOWN, + ptr_network->path, + NULL, + NULL + ); if (ptr_network->app_hash) { @@ -2578,16 +3273,26 @@ VOID _app_command_openeditor ( ptr_rule->protocol = ptr_network->protocol; - _r_obj_movereference ( - &ptr_rule->rule_remote, - _app_formataddress (ptr_network->af, 0, &ptr_network->remote_addr, ptr_network->remote_port, FMTADDR_AS_RULE) + string = _app_formataddress ( + ptr_network->af, + 0, + &ptr_network->remote_addr, + ptr_network->remote_port, + FMTADDR_AS_RULE ); - _r_obj_movereference ( - &ptr_rule->rule_local, - _app_formataddress (ptr_network->af, 0, &ptr_network->local_addr, ptr_network->local_port, FMTADDR_AS_RULE) + _r_obj_movereference (&ptr_rule->rule_remote, string); + + string = _app_formataddress ( + ptr_network->af, + 0, + &ptr_network->local_addr, + ptr_network->local_port, + FMTADDR_AS_RULE ); + _r_obj_movereference (&ptr_rule->rule_local, string); + _r_obj_dereference (ptr_network); } } @@ -2610,7 +3315,13 @@ VOID _app_command_openeditor ( { if (!_app_isappfound (ptr_log->app_hash)) { - ptr_log->app_hash = _app_addapplication (hwnd, DATA_UNKNOWN, ptr_log->path, NULL, NULL); + ptr_log->app_hash = _app_addapplication ( + hwnd, + DATA_UNKNOWN, + ptr_log->path, + NULL, + NULL + ); if (ptr_log->app_hash) { @@ -2626,16 +3337,26 @@ VOID _app_command_openeditor ( ptr_rule->protocol = ptr_log->protocol; ptr_rule->direction = ptr_log->direction; - _r_obj_movereference ( - &ptr_rule->rule_remote, - _app_formataddress (ptr_log->af, 0, &ptr_log->remote_addr, ptr_log->remote_port, FMTADDR_AS_RULE) + string = _app_formataddress ( + ptr_log->af, + 0, + &ptr_log->remote_addr, + ptr_log->remote_port, + FMTADDR_AS_RULE ); - _r_obj_movereference ( - &ptr_rule->rule_local, - _app_formataddress (ptr_log->af, 0, &ptr_log->local_addr, ptr_log->local_port, FMTADDR_AS_RULE) + _r_obj_movereference (&ptr_rule->rule_remote, string); + + string = _app_formataddress ( + ptr_log->af, + 0, + &ptr_log->local_addr, + ptr_log->local_port, + FMTADDR_AS_RULE ); + _r_obj_movereference (&ptr_rule->rule_local, string); + _r_obj_dereference (ptr_log); } } @@ -2744,7 +3465,13 @@ VOID _app_command_properties ( { if (!_app_isappfound (ptr_network->app_hash)) { - ptr_network->app_hash = _app_addapplication (hwnd, DATA_UNKNOWN, ptr_network->path, NULL, NULL); + ptr_network->app_hash = _app_addapplication ( + hwnd, + DATA_UNKNOWN, + ptr_network->path, + NULL, + NULL + ); if (ptr_network->app_hash) { @@ -2772,7 +3499,13 @@ VOID _app_command_properties ( { if (!_app_isappfound (ptr_log->app_hash)) { - ptr_log->app_hash = _app_addapplication (hwnd, DATA_UNKNOWN, ptr_log->path, NULL, NULL); + ptr_log->app_hash = _app_addapplication ( + hwnd, + DATA_UNKNOWN, + ptr_log->path, + NULL, + NULL + ); if (ptr_log->app_hash) { @@ -2783,9 +3516,7 @@ VOID _app_command_properties ( } if (ptr_log->app_hash) - { _app_listview_showitemby_param (hwnd, ptr_log->app_hash, TRUE); - } } _r_obj_dereference (ptr_log); @@ -2952,6 +3683,11 @@ VOID _app_command_selectfont ( _app_listview_loadfont (dpi_value, TRUE); _app_listview_updateby_id (hwnd, DATA_LISTVIEW_CURRENT, PR_UPDATE_TYPE | PR_UPDATE_FORCE); - RedrawWindow (hwnd, NULL, NULL, RDW_NOFRAME | RDW_NOINTERNALPAINT | RDW_ERASE | RDW_INVALIDATE | RDW_ALLCHILDREN); + RedrawWindow ( + hwnd, + NULL, + NULL, + RDW_NOFRAME | RDW_NOINTERNALPAINT | RDW_ERASE | RDW_INVALIDATE | RDW_ALLCHILDREN + ); } } diff --git a/src/network.c b/src/network.c index 24a1daf8..13bd81c2 100644 --- a/src/network.c +++ b/src/network.c @@ -838,8 +838,15 @@ VOID _app_network_printlistviewtable ( BOOLEAN is_highlight; BOOLEAN is_refresh; - is_highlight = _r_config_getboolean (L"IsEnableHighlighting", TRUE) && - _r_config_getboolean_ex (L"IsHighlightConnection", TRUE, L"colors"); + if (_r_config_getboolean (L"IsEnableHighlighting", TRUE) && + _r_config_getboolean_ex (L"IsHighlightConnection", TRUE, L"colors")) + { + is_highlight = TRUE; + } + else + { + is_highlight = FALSE; + } is_refresh = FALSE; diff --git a/src/search.c b/src/search.c index b62c2b7a..a8ce1da7 100644 --- a/src/search.c +++ b/src/search.c @@ -144,7 +144,13 @@ VOID _app_search_drawbutton ( if (!hdc) return; - SetRect (&rect, 0, 0, button_rect->right - button_rect->left, button_rect->bottom - button_rect->top); + SetRect ( + &rect, + 0, + 0, + button_rect->right - button_rect->left, + button_rect->bottom - button_rect->top + ); buffer_dc = CreateCompatibleDC (hdc); buffer_bitmap = CreateCompatibleBitmap (hdc, rect.right, rect.bottom); @@ -342,7 +348,8 @@ BOOLEAN _app_search_applyfilteritem ( goto CleanupExit; } } - else if ((listview_id >= IDC_RULES_BLOCKLIST && listview_id <= IDC_RULES_CUSTOM) || listview_id == IDC_APP_RULES_ID) + else if ((listview_id >= IDC_RULES_BLOCKLIST && listview_id <= IDC_RULES_CUSTOM) || + listview_id == IDC_APP_RULES_ID) { ptr_rule = _app_getrulebyid (context->id_code); @@ -535,8 +542,12 @@ VOID _app_search_applyfilter ( _In_opt_ PR_STRING search_string ) { - if (!((listview_id >= IDC_APPS_PROFILE && listview_id <= IDC_LOG) || listview_id == IDC_RULE_APPS_ID || listview_id == IDC_APP_RULES_ID)) + if (!((listview_id >= IDC_APPS_PROFILE && listview_id <= IDC_LOG) || + listview_id == IDC_RULE_APPS_ID || + listview_id == IDC_APP_RULES_ID)) + { return; + } _app_search_applyfiltercallback (hwnd, listview_id, search_string); } diff --git a/src/wfp.c b/src/wfp.c index 7389893d..d661bfb7 100644 --- a/src/wfp.c +++ b/src/wfp.c @@ -2922,9 +2922,15 @@ BOOLEAN _wfp_create2filters ( ); // block inbound connections - action = (_r_config_getboolean (L"UseStealthMode", TRUE) || - _r_config_getboolean (L"BlockInboundConnections", TRUE)) ? - FWP_ACTION_BLOCK : FWP_ACTION_PERMIT; + if (_r_config_getboolean (L"UseStealthMode", TRUE) || + _r_config_getboolean (L"BlockInboundConnections", TRUE)) + { + action = FWP_ACTION_BLOCK; + } + else + { + action = FWP_ACTION_PERMIT; + } _wfp_createfilter ( engine_handle,