CMNetwork/inc/hgl/network/WinFireWall.h

93 lines
4.0 KiB
C
Raw Normal View History

2022-05-25 19:03:06 +08:00
#ifndef HGL_NETWORK_WINDOW_FIREWALL_INCLUDE
#define HGL_NETWORK_WINDOW_FIREWALL_INCLUDE
struct INetFwProfile;
namespace hgl
{
namespace network
{
const int FW_MAX_ERROR_MESSAGE=256;
enum FW_ERROR_CODE
{
FW_NOERROR = 0,
FW_ERR_INITIALIZED, // Already initialized or doesn't call Initialize()
FW_ERR_CREATE_SETTING_MANAGER, // Can't create an instance of the firewall settings manager
FW_ERR_LOCAL_POLICY, // Can't get local firewall policy
FW_ERR_PROFILE, // Can't get the firewall profile
FW_ERR_FIREWALL_IS_ENABLED, // Can't get the firewall enable information
FW_ERR_FIREWALL_ENABLED, // Can't set the firewall enable option
FW_ERR_INVALID_ARG, // Invalid Arguments
FW_ERR_AUTH_APPLICATIONS, // Failed to get authorized application list
FW_ERR_APP_ENABLED, // Failed to get the application is enabled or not
FW_ERR_CREATE_APP_INSTANCE, // Failed to create an instance of an authorized application
FW_ERR_SYS_ALLOC_STRING, // Failed to alloc a memory for BSTR
FW_ERR_PUT_PROCESS_IMAGE_NAME, // Failed to put Process Image File Name to Authorized Application
FW_ERR_PUT_REGISTER_NAME, // Failed to put a registered name
FW_ERR_ADD_TO_COLLECTION, // Failed to add to the Firewall collection
FW_ERR_REMOVE_FROM_COLLECTION, // Failed to remove from the Firewall collection
FW_ERR_GLOBAL_OPEN_PORTS, // Failed to retrieve the globally open ports
FW_ERR_PORT_IS_ENABLED, // Can't get the firewall port enable information
FW_ERR_PORT_ENABLED, // Can't set the firewall port enable option
FW_ERR_CREATE_PORT_INSTANCE, // Failed to create an instance of an authorized port
FW_ERR_SET_PORT_NUMBER, // Failed to set port number
FW_ERR_SET_IP_PROTOCOL, // Failed to set IP Protocol
FW_ERR_EXCEPTION_NOT_ALLOWED, // Failed to get or put the exception not allowed
FW_ERR_NOTIFICATION_DISABLED, // Failed to get or put the notification disabled
FW_ERR_UNICAST_MULTICAST, // Failed to get or put the UnicastResponses To MulticastBroadcast Disabled Property
};
/**
* Windows 访<br>
* Kim Youngjin
*/
class WinFireWall
{
INetFwProfile* m_pFireWallProfile;
public:
enum PROTOCOL
{
ANY=256,
UDP=17,
TCP=6,
};
public:
WinFireWall();
~WinFireWall();
FW_ERROR_CODE Init();
FW_ERROR_CODE Close();
FW_ERROR_CODE CheckFirewall(bool &);
FW_ERROR_CODE OpenFirewall();
FW_ERROR_CODE CloseFirewall();
FW_ERROR_CODE CheckApplication(const wchar_t *,bool &);
FW_ERROR_CODE AddApplication(const wchar_t *,const wchar_t *);
FW_ERROR_CODE RemoveApplication(const wchar_t *);
FW_ERROR_CODE CheckPort(unsigned int,PROTOCOL,bool &);
FW_ERROR_CODE OpenPort(unsigned int,PROTOCOL,const wchar_t *);
FW_ERROR_CODE ClosePort(unsigned int,PROTOCOL);
FW_ERROR_CODE IsExceptionNotAllowed(bool &);
FW_ERROR_CODE SetExceptionNotAllowed(bool);
FW_ERROR_CODE IsNotificationDiabled(bool &);
FW_ERROR_CODE SetNotificationDiabled(bool);
FW_ERROR_CODE IsUnicastResponsesToMulticastBroadcastDisabled(bool &);
FW_ERROR_CODE SetUnicastResponsesToMulticastBroadcastDisabled(bool);
};
}//namespace network
using namespace network;
}//namespace hgl
#endif//HGL_NETWORK_WINDOW_FIREWALL_INCLUDE