mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
158 lines
2.8 KiB
158 lines
2.8 KiB
//
|
|
// ipaddr.cpp: CWndIpAddress class control implementation
|
|
//
|
|
|
|
#include <afxwin.h> // MFC core and standard components
|
|
#include <afxext.h> // MFC extensions (including VB)
|
|
|
|
#include "ipaddr.hpp"
|
|
|
|
extern "C"
|
|
{
|
|
#include "..\ipadrdll\ipadd.h"
|
|
#include "..\ipadrdll\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
|
|
)
|
|
{
|
|
TRACE(_T("CreateWindowClass\r\n"));
|
|
if ( ! m_b_inited )
|
|
{
|
|
m_b_inited = ::IPAddrInit( hInstance ) ;
|
|
}
|
|
return m_b_inited ;
|
|
}
|
|
|
|
IMPLEMENT_DYNAMIC(CWndIpAddress, CWnd)
|
|
|
|
CWndIpAddress :: CWndIpAddress ()
|
|
{
|
|
TRACE(_T("Constructing CWndIpAddress\r\n"));
|
|
}
|
|
|
|
CWndIpAddress :: ~ CWndIpAddress ()
|
|
{
|
|
TRACE(_T("Destroying CWndIpAddress\r\n"));
|
|
DestroyWindow();
|
|
}
|
|
|
|
BOOL
|
|
CWndIpAddress :: Create (
|
|
LPCTSTR lpszText,
|
|
DWORD dwStyle,
|
|
const RECT & rect,
|
|
CWnd * pParentWnd,
|
|
UINT nID
|
|
)
|
|
{
|
|
return CWnd::Create( _T("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 SetIPField(int dwField, BYTE bValue);
|
|
|
|
void
|
|
CWndIpAddress :: SetReadOnly (
|
|
BOOL fReadOnly
|
|
)
|
|
{
|
|
::SendMessage( m_hWnd, IP_SETREADONLY, (WPARAM)fReadOnly, (LPARAM)0 );
|
|
}
|
|
|
|
void
|
|
CWndIpAddress :: SetIPField (
|
|
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 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;
|
|
}
|