//+--------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1997. // // File: I P C T R L . C P P // // Contents: // // Notes: // // Author: tongl // //---------------------------------------------------------------------------- #include "pch.h" #pragma hdrstop #include "ipctrl.h" #include "tcpip.h" /////////////////////////////////////////////////////////////////////// // // IP Address control helpers IpControl::IpControl() { m_hIpAddress = 0; } IpControl::~IpControl() { } BOOL IpControl::Create(HWND hParent, UINT nId) { Assert(IsWindow(hParent)); if (hParent) m_hIpAddress = GetDlgItem(hParent, nId); return m_hIpAddress != NULL; } LRESULT IpControl::SendMessage(UINT uMsg, WPARAM wParam, LPARAM lParam) { Assert(IsWindow(m_hIpAddress)); return ::SendMessage(m_hIpAddress, uMsg, wParam, lParam); } BOOL IpControl::IsBlank() { return SendMessage(IPM_ISBLANK, 0, 0); } void IpControl::SetAddress(DWORD ardwAddress[4]) { SendMessage(IPM_SETADDRESS, 0, MAKEIPADDRESS(ardwAddress[0], ardwAddress[1], ardwAddress[2], ardwAddress[3])); } void IpControl::SetAddress(DWORD a1, DWORD a2, DWORD a3, DWORD a4) { SendMessage(IPM_SETADDRESS, 0, MAKEIPADDRESS(a1,a2,a3,a4)); } void IpControl::SetAddress(PCWSTR pszString) { Assert(pszString != NULL); SendMessage(WM_SETTEXT, 0, (LPARAM)pszString); } void IpControl::GetAddress(DWORD *a1, DWORD *a2, DWORD *a3, DWORD *a4) { DWORD dwAddress; Assert(a1 && a2 && a3 && a4); if (SendMessage(IPM_GETADDRESS,0,(LPARAM)&dwAddress)== 0) { *a1 = 0; *a2 = 0; *a3 = 0; *a4 = 0; } else { *a1 = FIRST_IPADDRESS( dwAddress ); *a2 = SECOND_IPADDRESS( dwAddress ); *a3 = THIRD_IPADDRESS( dwAddress ); *a4 = FOURTH_IPADDRESS( dwAddress ); } } void IpControl::GetAddress(DWORD ardwAddress[4]) { DWORD dwAddress; if (SendMessage(IPM_GETADDRESS, 0, (LPARAM)&dwAddress ) == 0) { ardwAddress[0] = 0; ardwAddress[1] = 0; ardwAddress[2] = 0; ardwAddress[3] = 0; } else { ardwAddress[0] = FIRST_IPADDRESS( dwAddress ); ardwAddress[1] = SECOND_IPADDRESS( dwAddress ); ardwAddress[2] = THIRD_IPADDRESS( dwAddress ); ardwAddress[3] = FOURTH_IPADDRESS( dwAddress ); } } void IpControl::GetAddress(tstring * pstrAddress) { WCHAR szIpAddress[1000]; if (SendMessage(WM_GETTEXT, celems(szIpAddress), (LPARAM)&szIpAddress) == 0) { *pstrAddress = ZERO_ADDRESS; } else { *pstrAddress = szIpAddress; } } void IpControl::SetFocusField(DWORD dwField) { SendMessage(IPM_SETFOCUS, dwField, 0); } void IpControl::ClearAddress() { SendMessage(IPM_CLEARADDRESS, 0, 0); } void IpControl::SetFieldRange(DWORD dwField, DWORD dwMin, DWORD dwMax) { SendMessage(IPM_SETRANGE, dwField, MAKEIPRANGE(dwMin,dwMax)); }