Files
simplewall/src/profile.h
T
2021-04-16 14:18:31 +06:00

138 lines
4.8 KiB
C

// simplewall
// Copyright (c) 2016-2021 Henry++
#pragma once
_Ret_maybenull_
PVOID _app_getappinfo (_In_ PITEM_APP ptr_app, _In_ ENUM_INFO_DATA info_data);
_Ret_maybenull_
PVOID _app_getappinfobyhash (_In_ SIZE_T app_hash, _In_ ENUM_INFO_DATA info_data);
VOID _app_setappinfo (_In_ PITEM_APP ptr_app, _In_ ENUM_INFO_DATA info_data, _In_ PVOID value);
VOID _app_setappinfobyhash (_In_ SIZE_T app_hash, _In_ ENUM_INFO_DATA info_data, _In_ PVOID value);
_Ret_maybenull_
PVOID _app_getruleinfo (_In_ PITEM_RULE ptr_rule, _In_ ENUM_INFO_DATA info_data);
_Ret_maybenull_
PVOID _app_getruleinfobyid (_In_ SIZE_T idx, _In_ ENUM_INFO_DATA info_data);
_Ret_maybenull_
PITEM_APP _app_addapplication (_In_opt_ HWND hwnd, _In_ ENUM_TYPE_DATA type, _In_ LPCWSTR path, _In_opt_ PR_STRING display_name, _In_opt_ PR_STRING real_path);
PITEM_RULE _app_addrule (_In_opt_ PR_STRING name, _In_opt_ PR_STRING rule_remote, _In_opt_ PR_STRING rule_local, _In_ FWP_DIRECTION direction, _In_ UINT8 protocol, _In_ ADDRESS_FAMILY af);
PITEM_RULE_CONFIG _app_addruleconfigtable (_In_ PR_HASHTABLE hashtable, _In_ SIZE_T rule_hash, _In_opt_ PR_STRING name, _In_ BOOLEAN is_enabled);
_Ret_maybenull_
PITEM_APP _app_getappitem (_In_ SIZE_T app_hash);
_Ret_maybenull_
PITEM_RULE _app_getrulebyid (_In_ SIZE_T idx);
_Ret_maybenull_
PITEM_RULE _app_getrulebyhash (_In_ SIZE_T rule_hash);
SIZE_T _app_getnetworkapp (_In_ SIZE_T network_hash);
_Ret_maybenull_
PITEM_LOG _app_getlogitem (_In_ SIZE_T idx);
SIZE_T _app_getlogapp (_In_ SIZE_T idx);
COLORREF _app_getappcolor (_In_ INT listview_id, _In_ SIZE_T app_hash, _In_ BOOLEAN is_systemapp, _In_ BOOLEAN is_validconnection);
VOID _app_freeapplication (_In_ SIZE_T app_hash);
BOOLEAN _app_isappfromsystem (_In_ LPCWSTR path, _In_ SIZE_T app_hash);
BOOLEAN _app_isapphaveconnection (_In_ SIZE_T app_hash);
BOOLEAN _app_isapphavedrive (_In_ INT letter);
BOOLEAN _app_isapphaverule (_In_ SIZE_T app_hash, _In_ BOOLEAN is_countdisabled);
BOOLEAN _app_isappexists (_In_ PITEM_APP ptr_app);
FORCEINLINE BOOLEAN _app_isappused (_In_ PITEM_APP ptr_app)
{
if (ptr_app->is_enabled || ptr_app->is_silent || _app_isapphaverule (ptr_app->app_hash, TRUE))
return TRUE;
return FALSE;
}
VOID _app_getcount (_Out_ PITEM_STATUS status);
FORCEINLINE INT _app_getappgroup (_In_ PITEM_APP ptr_app)
{
// apps with special rule
if (_app_isapphaverule (ptr_app->app_hash, FALSE))
return 1;
if (!ptr_app->is_enabled)
return 2;
return 0;
}
FORCEINLINE INT _app_getrulegroup (_In_ PITEM_RULE ptr_rule)
{
if (!ptr_rule->is_enabled)
return 2;
return 0;
}
FORCEINLINE INT _app_getnetworkgroup (_In_ PITEM_NETWORK ptr_network)
{
if (ptr_network->type == DataAppService)
return 1;
if (ptr_network->type == DataAppUWP)
return 2;
return 0;
}
FORCEINLINE INT _app_getruleicon (_In_ PITEM_RULE ptr_rule)
{
if (ptr_rule->is_block)
return 1;
return 0;
}
COLORREF _app_getrulecolor (_In_ INT listview_id, _In_ SIZE_T rule_idx);
_Ret_maybenull_
PR_STRING _app_gettooltip (_In_ HWND hwnd, _In_ INT listview_id, _In_ INT item_id);
VOID _app_setappiteminfo (_In_ HWND hwnd, _In_ INT listview_id, _In_ INT item_id, _Inout_ PITEM_APP ptr_app);
VOID _app_setruleiteminfo (_In_ HWND hwnd, _In_ INT listview_id, _In_ INT item_id, _In_ PITEM_RULE ptr_rule, _In_ BOOLEAN include_apps);
VOID _app_ruleenable (_Inout_ PITEM_RULE ptr_rule, _In_ BOOLEAN is_enable, _In_ BOOLEAN is_createconfig);
BOOLEAN _app_ruleblocklistsetchange (_Inout_ PITEM_RULE ptr_rule, _In_ INT new_state);
BOOLEAN _app_ruleblocklistsetstate (_Inout_ PITEM_RULE ptr_rule, _In_ INT spy_state, _In_ INT update_state, _In_ INT extra_state);
VOID _app_ruleblocklistset (_In_opt_ HWND hwnd, _In_ INT spy_state, _In_ INT update_state, _In_ INT extra_state, _In_ BOOLEAN is_instantapply);
_Ret_maybenull_
PR_STRING _app_appexpandrules (_In_ SIZE_T app_hash, _In_ LPCWSTR delimeter);
_Ret_maybenull_
PR_STRING _app_rulesexpandapps (_In_ PITEM_RULE ptr_rule, _In_ BOOLEAN is_fordisplay, _In_ LPCWSTR delimeter);
_Ret_maybenull_
PR_STRING _app_rulesexpandrules (_In_ PR_STRING rule, _In_ LPCWSTR delimeter);
VOID _app_openappdirectory (_In_ PITEM_APP ptr_app);
BOOLEAN _app_profile_load_check (_In_ LPCWSTR path, _In_ ENUM_TYPE_XML type);
FORCEINLINE BOOLEAN _app_profile_load_check_node (_Inout_ PR_XML_LIBRARY xml_library, _In_ ENUM_TYPE_XML type)
{
return (_r_xml_getattribute_integer (xml_library, L"type") == type);
}
VOID _app_profile_load_fallback ();
VOID _app_profile_load_helper (_Inout_ PR_XML_LIBRARY xml_library, _In_ ENUM_TYPE_DATA type, _In_ UINT version);
VOID _app_profile_load_internal (_In_ LPCWSTR path, _In_ LPCWSTR resource_name, _Inout_opt_ PLONG64 timestamp);
VOID _app_profile_load (_In_opt_ HWND hwnd, _In_opt_ LPCWSTR path_custom);
VOID _app_profile_save ();