windows-nt/Source/XPSP1/NT/net/mmc/common/ipadrcls.cpp
2020-09-26 16:20:57 +08:00

130 lines
2.9 KiB
C++

/**********************************************************************/
/** Microsoft Windows/NT **/
/** Copyright(c) Microsoft Corporation, 1995 - 1998 **/
/**********************************************************************/
/*
ipaddr.cpp: CWndIpAddress class control implementation
FILE HISTORY:
*/
#include "stdafx.h"
#include "ipaddr.hpp"
extern "C"
{
#include "ipadd.h"
#include "ipaddr.h"
}
// Static class-level data
// Super window proc address
WNDPROC CWndIpAddress :: m_wproc_super = NULL ;
// Window class initialization flag
BOOL CWndIpAddress :: m_b_inited = FALSE ;
WNDPROC * CWndIpAddress :: GetSuperWndProcAddr ()
{
return & m_wproc_super ;
}
BOOL CWndIpAddress :: CreateWindowClass ( HINSTANCE hInstance )
{
Trace0("CWndIpAddress::CreateWindowClass\n");
if ( ! m_b_inited )
{
m_b_inited = ::IPAddrInit( hInstance ) ;
}
return m_b_inited ;
}
IMPLEMENT_DYNAMIC(CWndIpAddress, CWnd)
CWndIpAddress :: CWndIpAddress ()
{
}
CWndIpAddress :: ~ CWndIpAddress ()
{
DestroyWindow();
}
BOOL CWndIpAddress :: Create (
LPCTSTR lpszText,
DWORD dwStyle,
const RECT & rect,
CWnd * pParentWnd,
UINT nID )
{
return CWnd::Create( TEXT("IPAddress"), lpszText, dwStyle, rect, pParentWnd, nID);
}
// Modification flag handling
void CWndIpAddress :: SetModify ( BOOL bModified )
{
::SendMessage( m_hWnd, IP_SETMODIFY, bModified, 0 );
}
BOOL CWndIpAddress :: GetModify () const
{
return ::SendMessage( m_hWnd, IP_GETMODIFY, 0, 0 ) > 0 ;
}
void CWndIpAddress :: SetFocusField( int iField )
{
::SendMessage( m_hWnd, IP_SETFOCUS, iField, 0);
}
void CWndIpAddress::ClearAddress ( )
{
::SendMessage( m_hWnd, IP_CLEARADDRESS, 0, 0);
}
BOOL CWndIpAddress :: SetAddress ( DWORD dwAddr )
{
return ::SendMessage( m_hWnd, IP_SETADDRESS, 0, dwAddr ) > 0 ;
}
BOOL CWndIpAddress :: GetAddress ( DWORD * pdwAddr ) const
{
return ::SendMessage( m_hWnd, IP_GETADDRESS, 0,(LPARAM) pdwAddr ) > 0 ;
}
void SetReadOnly (BOOL fReadonly = TRUE);
void SetField(int dwField, BYTE bValue);
void CWndIpAddress :: SetReadOnly ( BOOL fReadOnly )
{
::SendMessage( m_hWnd, IP_SETREADONLY, (WPARAM)fReadOnly, (LPARAM)0 );
}
void CWndIpAddress :: SetField (int dwField, BOOL fSet, BYTE bValue)
{
::SendMessage( m_hWnd, IP_SETFIELD, (WPARAM)dwField, fSet
? MAKELPARAM(0, MAKEWORD(0, bValue))
: (LPARAM)-1
);
}
BYTE CWndIpAddress :: GetMask () const
{
DWORD_PTR dw = ::SendMessage( m_hWnd, IP_GETMASK, 0, 0);
return (BYTE)dw;
}
BOOL CWndIpAddress :: SetMask(DWORD dwAddress, BYTE bMask)
{
return ::SendMessage( m_hWnd, IP_SETMASK, (WPARAM)bMask, (LPARAM)dwAddress) > 0;
}
BOOL CWndIpAddress :: IsBlank()
{
return ::SendMessage( m_hWnd, IP_ISBLANK, 0, 0) > 0;
}