/*++ Copyright (c) 1994-1998 Microsoft Corporation Module Name : ipctl.h Abstract: IP Address common control MFC wrapper definitions Author: Ronald Meijer (ronaldm) Project: Internet Services Manager Revision History: --*/ #ifndef _IPCTL_H #define _IPCTL_H #if (_WIN32_IE < 0x0400) // // Defined in comctrl.h. Defined here because NT 5 MFC42.dll are // defined with _WIN32_IE 0x300 // #pragma message("Warning: privately defining _WIN32_IE definitions") #define IPM_CLEARADDRESS (WM_USER+100) #define IPM_SETADDRESS (WM_USER+101) #define IPM_GETADDRESS (WM_USER+102) #define IPM_SETRANGE (WM_USER+103) #define IPM_SETFOCUS (WM_USER+104) #define IPM_ISBLANK (WM_USER+105) #define WC_IPADDRESSW L"SysIPAddress32" #define WC_IPADDRESSA "SysIPAddress32" #ifdef UNICODE #define WC_IPADDRESS WC_IPADDRESSW #else #define WC_IPADDRESS WC_IPADDRESSA #endif // UNICODE #endif // _WIN32_IE class COMDLL CIPAddressCtl : public CWnd { /*-- Class Description: MFC IP Address control wrapper. Public Interface: CIPAddressCtl : Constructor ~CIPAddressCtl : Destructor Create : Create the control ClearAddress : Clear the address SetAddress : Set address to value GetAddress : Get address from the control SetRange : Set field to octet range SetFocus : Set focus on a specifc field IsBlank : Return true if the control is blank Notes: Either create control dynamically with Create method, or put in resource template as a user control of name "SysIPAddress32". In this case, common style DWORDs as follows: WS_BORDER | WS_CHILD | WS_VISIBLE 0x50800000 --*/ DECLARE_DYNAMIC(CIPAddressCtl) // // Constructor/Destructor // public: CIPAddressCtl(); ~CIPAddressCtl(); // // Interface // public: // // Create the control // BOOL Create( IN LPCTSTR lpszName, IN DWORD dwStyle, IN const RECT & rect, IN CWnd * pParentWnd, IN UINT nID ); // // Clear the address in the control // void ClearAddress(); // // Set the ip address value // void SetAddress( IN DWORD dwIPAddress ); // // Get the ip address value. // Returns the number of non-blank values // int GetAddress( OUT LPDWORD lpdwIPAddress ); // // Set the octet range of a field // void SetRange( IN int iField, IN BYTE bRange ); // // Set focus on an octet field within the control // void SetFocus( IN int iField ); // // Return TRUE if the control is blank // BOOL IsBlank(); protected: static BOOL m_fClassRegistered; protected: static BOOL RegisterClass(); }; // // Inline Expansion // // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< inline BOOL CIPAddressCtl::Create( IN LPCTSTR lpszName, IN DWORD dwStyle, IN const RECT & rect, IN CWnd * pParentWnd, IN UINT nID ) { // // Create the control // return CWnd::Create( WC_IPADDRESS, lpszName, dwStyle, rect, pParentWnd, nID ); } inline void CIPAddressCtl::ClearAddress() { SNDMSG(m_hWnd, IPM_CLEARADDRESS, 0, 0L); } inline void CIPAddressCtl::SetAddress( IN DWORD dwIPAddress ) { SNDMSG(m_hWnd, IPM_SETADDRESS, 0, (LPARAM)dwIPAddress); } inline int CIPAddressCtl::GetAddress( OUT LPDWORD lpdwIPAddress ) { return (int)SNDMSG(m_hWnd, IPM_GETADDRESS, 0, (LPARAM)lpdwIPAddress); } inline void CIPAddressCtl::SetRange( IN int iField, IN BYTE bRange ) { SNDMSG(m_hWnd, IPM_SETRANGE, (WPARAM)iField, (LPARAM)bRange); } inline void CIPAddressCtl::SetFocus( IN int iField ) { SNDMSG(m_hWnd, IPM_SETFOCUS, (WPARAM)iField, 0L); } inline BOOL CIPAddressCtl::IsBlank() { return (BOOL)SNDMSG(m_hWnd, IPM_ISBLANK, 0, 0L); } #endif // _IPCTL_H