93 lines
4.0 KiB
C++
93 lines
4.0 KiB
C++
#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
|