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.
241 lines
7.1 KiB
241 lines
7.1 KiB
//#--------------------------------------------------------------
|
|
//
|
|
// File: staticip.cpp
|
|
//
|
|
// Synopsis: This file holds the declaration of the
|
|
// of CStaticIp class
|
|
//
|
|
// History: 12/15/2000 serdarun Created
|
|
//
|
|
// Copyright (C) 1999-2000 Microsoft Corporation
|
|
// All rights reserved.
|
|
//
|
|
//#--------------------------------------------------------------
|
|
|
|
#ifndef __STATICIP_H_
|
|
#define __STATICIP_H_
|
|
|
|
#include "resource.h" // main symbols
|
|
#include <atlctl.h>
|
|
#include "LocalUIControlsCP.h"
|
|
#include "salocmgr.h"
|
|
#include "satrace.h"
|
|
|
|
#define IpAddressSize 16
|
|
#define IPHASFOCUS 1
|
|
#define SUBNETHASFOCUS 2
|
|
#define GATEWAYHASFOCUS 3
|
|
#define LASTPOSITION 15
|
|
#define FIRSTPOSITION 1
|
|
#define NUMBEROFENTRIES 3
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CStaticIp
|
|
class ATL_NO_VTABLE CStaticIp :
|
|
public CComObjectRootEx<CComSingleThreadModel>,
|
|
public IDispatchImpl<IStaticIp, &IID_IStaticIp, &LIBID_LOCALUICONTROLSLib>,
|
|
public CComControl<CStaticIp>,
|
|
public IPersistStreamInitImpl<CStaticIp>,
|
|
public IOleControlImpl<CStaticIp>,
|
|
public IOleObjectImpl<CStaticIp>,
|
|
public IOleInPlaceActiveObjectImpl<CStaticIp>,
|
|
public IViewObjectExImpl<CStaticIp>,
|
|
public IOleInPlaceObjectWindowlessImpl<CStaticIp>,
|
|
public IConnectionPointContainerImpl<CStaticIp>,
|
|
public IPersistStorageImpl<CStaticIp>,
|
|
public ISpecifyPropertyPagesImpl<CStaticIp>,
|
|
public IQuickActivateImpl<CStaticIp>,
|
|
public IDataObjectImpl<CStaticIp>,
|
|
public IProvideClassInfo2Impl<&CLSID_StaticIp, &DIID__IStaticIpEvents, &LIBID_LOCALUICONTROLSLib>,
|
|
public IPropertyNotifySinkCP<CStaticIp>,
|
|
public CComCoClass<CStaticIp, &CLSID_StaticIp>,
|
|
public CProxy_IStaticIpEvents< CStaticIp >,
|
|
public IObjectSafetyImpl<CStaticIp,INTERFACESAFE_FOR_UNTRUSTED_CALLER>
|
|
{
|
|
public:
|
|
CStaticIp()
|
|
{
|
|
wcscpy(m_strIpAddress,L"000.000.000.000");
|
|
wcscpy(m_strSubnetMask,L"000.000.000.000");
|
|
wcscpy(m_strGateway,L"000.000.000.000");
|
|
m_iEntryFocus = IPHASFOCUS;
|
|
m_iPositionFocus = 0;
|
|
|
|
m_bstrIpHeader = L"";
|
|
m_bstrSubnetHeader = L"";
|
|
m_bstrDefaultGatewayHeader = L"";
|
|
|
|
m_hFont = NULL;
|
|
}
|
|
|
|
DECLARE_REGISTRY_RESOURCEID(IDR_STATICIP)
|
|
|
|
DECLARE_PROTECT_FINAL_CONSTRUCT()
|
|
|
|
DECLARE_CLASSFACTORY_SINGLETON (CStaticIp)
|
|
|
|
BEGIN_COM_MAP(CStaticIp)
|
|
COM_INTERFACE_ENTRY(IStaticIp)
|
|
COM_INTERFACE_ENTRY(IDispatch)
|
|
COM_INTERFACE_ENTRY(IViewObjectEx)
|
|
COM_INTERFACE_ENTRY(IViewObject2)
|
|
COM_INTERFACE_ENTRY(IViewObject)
|
|
COM_INTERFACE_ENTRY(IOleInPlaceObjectWindowless)
|
|
COM_INTERFACE_ENTRY(IOleInPlaceObject)
|
|
COM_INTERFACE_ENTRY2(IOleWindow, IOleInPlaceObjectWindowless)
|
|
COM_INTERFACE_ENTRY(IOleInPlaceActiveObject)
|
|
COM_INTERFACE_ENTRY(IOleControl)
|
|
COM_INTERFACE_ENTRY(IOleObject)
|
|
COM_INTERFACE_ENTRY(IPersistStreamInit)
|
|
COM_INTERFACE_ENTRY2(IPersist, IPersistStreamInit)
|
|
COM_INTERFACE_ENTRY(IConnectionPointContainer)
|
|
COM_INTERFACE_ENTRY(ISpecifyPropertyPages)
|
|
COM_INTERFACE_ENTRY(IQuickActivate)
|
|
COM_INTERFACE_ENTRY(IPersistStorage)
|
|
COM_INTERFACE_ENTRY(IDataObject)
|
|
COM_INTERFACE_ENTRY(IProvideClassInfo)
|
|
COM_INTERFACE_ENTRY(IProvideClassInfo2)
|
|
COM_INTERFACE_ENTRY(IObjectSafety)
|
|
COM_INTERFACE_ENTRY_IMPL(IConnectionPointContainer)
|
|
END_COM_MAP()
|
|
|
|
BEGIN_PROP_MAP(CStaticIp)
|
|
PROP_DATA_ENTRY("_cx", m_sizeExtent.cx, VT_UI4)
|
|
PROP_DATA_ENTRY("_cy", m_sizeExtent.cy, VT_UI4)
|
|
// Example entries
|
|
// PROP_ENTRY("Property Description", dispid, clsid)
|
|
// PROP_PAGE(CLSID_StockColorPage)
|
|
END_PROP_MAP()
|
|
|
|
BEGIN_CONNECTION_POINT_MAP(CStaticIp)
|
|
CONNECTION_POINT_ENTRY(IID_IPropertyNotifySink)
|
|
CONNECTION_POINT_ENTRY(DIID__IStaticIpEvents)
|
|
END_CONNECTION_POINT_MAP()
|
|
|
|
BEGIN_MSG_MAP(CStaticIp)
|
|
MESSAGE_HANDLER(WM_KEYDOWN, OnKeyDown)
|
|
CHAIN_MSG_MAP(CComControl<CStaticIp>)
|
|
DEFAULT_REFLECTION_HANDLER()
|
|
END_MSG_MAP()
|
|
// Handler prototypes:
|
|
// LRESULT MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
// LRESULT CommandHandler(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
|
|
// LRESULT NotifyHandler(int idCtrl, LPNMHDR pnmh, BOOL& bHandled);
|
|
|
|
|
|
|
|
// IViewObjectEx
|
|
DECLARE_VIEW_STATUS(VIEWSTATUS_SOLIDBKGND | VIEWSTATUS_OPAQUE)
|
|
|
|
// IStaticIp
|
|
public:
|
|
STDMETHOD(get_Gateway)
|
|
(
|
|
/*[out, retval]*/ BSTR *pVal
|
|
);
|
|
|
|
STDMETHOD(put_Gateway)
|
|
(
|
|
/*[in]*/ BSTR newVal
|
|
);
|
|
|
|
STDMETHOD(get_SubnetMask)
|
|
(
|
|
/*[out, retval]*/ BSTR *pVal
|
|
);
|
|
|
|
STDMETHOD(put_SubnetMask)
|
|
(
|
|
/*[in]*/ BSTR newVal
|
|
);
|
|
|
|
STDMETHOD(get_IpAddress)
|
|
(
|
|
/*[out, retval]*/ BSTR *pVal
|
|
);
|
|
|
|
STDMETHOD(put_IpAddress)
|
|
(
|
|
/*[in]*/ BSTR newVal
|
|
);
|
|
// IObjectSafety
|
|
STDMETHOD(SetInterfaceSafetyOptions)
|
|
(
|
|
REFIID riid,
|
|
DWORD dwOptionSetMask,
|
|
DWORD dwEnabledOptions
|
|
)
|
|
{
|
|
return S_OK;
|
|
}
|
|
|
|
//
|
|
// called just after constructor, gets the localized strings and creates the font
|
|
//
|
|
STDMETHOD(FinalConstruct)(void);
|
|
|
|
//
|
|
// called just before destructor, releases resources
|
|
//
|
|
STDMETHOD(FinalRelease)(void);
|
|
|
|
//
|
|
// gets the current character set
|
|
//
|
|
BYTE GetCharacterSet ();
|
|
|
|
|
|
HRESULT OnDraw
|
|
(
|
|
ATL_DRAWINFO& di
|
|
);
|
|
|
|
LRESULT OnKeyDown
|
|
(
|
|
UINT uMsg,
|
|
WPARAM wParam,
|
|
LPARAM lParam,
|
|
BOOL& bHandled
|
|
);
|
|
|
|
void ProcessArrowKey
|
|
(
|
|
WCHAR * strFocus,
|
|
WPARAM wParam
|
|
);
|
|
|
|
void CreateFocusString
|
|
(
|
|
WCHAR * strFocus,
|
|
WCHAR * strEntry
|
|
);
|
|
|
|
HRESULT FormatAndCopy
|
|
(
|
|
/*[in]*/BSTR bstrValue,
|
|
/*[in,out]*/ WCHAR *strValue
|
|
);
|
|
|
|
HRESULT TrimDuplicateZerosAndCopy
|
|
(
|
|
/*[in]*/WCHAR *strValue,
|
|
/*[in,out]*/ BSTR *pNewVal
|
|
);
|
|
|
|
|
|
WCHAR m_strIpAddress[IpAddressSize];
|
|
WCHAR m_strSubnetMask[IpAddressSize];
|
|
WCHAR m_strGateway[IpAddressSize];
|
|
|
|
int m_iEntryFocus;
|
|
int m_iPositionFocus;
|
|
|
|
CComBSTR m_bstrIpHeader;
|
|
CComBSTR m_bstrSubnetHeader;
|
|
CComBSTR m_bstrDefaultGatewayHeader;
|
|
|
|
HFONT m_hFont;
|
|
|
|
};
|
|
|
|
#endif //__STATICIP_H_
|