CMNetwork/inc/hgl/network/WinFireWall.h

93 lines
4.0 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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