windows-nt/Source/XPSP1/NT/net/wlbs/nlbmgr/exe/ipsubnetmaskcontrol.h
2020-09-26 16:20:57 +08:00

66 lines
1.8 KiB
C++

#pragma once
#include "resource.h"
#include "wlbsparm.h"
#define WLBS_IP_FIELD_ZERO_LOW 1
#define WLBS_IP_FIELD_ZERO_HIGH 223
//+----------------------------------------------------------------------------
//
// class CIpSubnetMaskControl
//
// Description: Add error checking for an IP address and subnet mask pair.
// Generate default subnetmask based on ip
//
// History: shouse initial code
// fengsun Created class 1/12/01
//
//+----------------------------------------------------------------------------
class CIpSubnetMaskControl
{
public:
CIpSubnetMaskControl(DWORD dwIpAddressResourceId, DWORD dwSubnetMaskResourceId);
~CIpSubnetMaskControl(){};
void OnInitDialog(HWND hWnd, HINSTANCE hInstance);
LRESULT OnSubnetMask(WORD wNotifyCode);
LRESULT OnIpFieldChange(int idCtrl, LPNMHDR pnmh);
void SetInfo(const WCHAR* pszIpAddress, const WCHAR* pszSubnetMask);
void UpdateInfo(OUT WCHAR* pszIpAddress, OUT WCHAR* pszSubnetMask);
bool ValidateInfo();
protected:
DWORD m_dwIpAddressId;
DWORD m_dwSubnetMaskId;
HWND m_hWndDialog; // parent dialog window handle
HINSTANCE m_hInstance; // instance handle for error string resource
//
// The PropertySheet may call us twice for the same change, so we have to do the bookkeeping to make
// sure we only alert the user once. Use static variables to keep track of our state. This will
// allow us to ignore duplicate alerts.
//
struct {
UINT IpControl;
int Field;
int Value;
UINT RejectTimes;
} m_IPFieldChangeState;
};
INT
WINAPIV
NcMsgBox (
IN HINSTANCE hinst,
IN HWND hwnd,
IN UINT unIdCaption,
IN UINT unIdFormat,
IN UINT unStyle,
IN ...);