windows-nt/Source/XPSP1/NT/net/mmc/dhcp/croot.h
2020-09-26 16:20:57 +08:00

87 lines
2.7 KiB
C++

/**********************************************************************/
/** Microsoft Windows/NT **/
/** Copyright(c) Microsoft Corporation, 1997 - 1999 **/
/**********************************************************************/
/*
croot.h
DHCP root node information (the root node is not displayed
in the MMC framework but contains information such as
all of the servers in this snapin).
FILE HISTORY:
*/
#ifndef _CROOT_H
#define _CROOT_H
#ifndef _DHCPHAND_H
#include "dhcphand.h"
#endif
#define COMPUTERNAME_LEN_MAX 255
/*---------------------------------------------------------------------------
Class: CDhcpRootHandler
---------------------------------------------------------------------------*/
class CDhcpRootHandler : public CDhcpHandler
{
// Interface
public:
CDhcpRootHandler(ITFSComponentData *pCompData);
// Node handler functionality we override
OVERRIDE_NodeHandler_HasPropertyPages();
OVERRIDE_NodeHandler_CreatePropertyPages();
OVERRIDE_NodeHandler_OnAddMenuItems();
OVERRIDE_NodeHandler_OnCommand();
OVERRIDE_NodeHandler_GetString();
// base handler functionality we override
OVERRIDE_BaseHandlerNotify_OnExpand();
OVERRIDE_BaseHandlerNotify_OnPropertyChange();
// Result handler functionality
OVERRIDE_BaseResultHandlerNotify_OnResultSelect();
OVERRIDE_ResultHandler_AddMenuItems();
OVERRIDE_ResultHandler_Command();
OVERRIDE_ResultHandler_OnGetResultViewType();
public:
// helper routines
void CreateLocalDhcpServer();
HRESULT AddServer(LPCWSTR pServerIp, LPCTSTR pServerName, BOOL bNewServer, DWORD dwServerOptions = 0x00000000, DWORD dwRefreshInterval = 0xffffffff, BOOL bExtension = FALSE);
HRESULT GetGroupName(CString * pstrGroupName);
HRESULT SetGroupName(LPCTSTR pszGroupName);
BOOL IsServerInList(ITFSNode * pRootNode, DHCP_IP_ADDRESS dhcpIpAddressNew, CString & strName);
DWORD LoadOldServerList(ITFSNode * pRootNode);
HRESULT AddServerSortedIp(ITFSNode * pNewNode, BOOL bNewServer);
HRESULT AddServerSortedName(ITFSNode * pNewNode, BOOL bNewServer);
public:
// CDhcpHandler overrides
virtual HRESULT InitializeNode(ITFSNode * pNode);
// Implementation
private:
// Command handlers
HRESULT OnCreateNewServer(ITFSNode * pNode);
HRESULT OnBrowseServers(ITFSNode * pNode);
HRESULT OnImportOldList(ITFSNode * pNode);
BOOL OldServerListExists();
// helpers
HRESULT CheckMachine(ITFSNode * pRootNode, LPDATAOBJECT pDataObject);
HRESULT RemoveOldEntries(ITFSNode * pRootNode, DHCP_IP_ADDRESS dhcpAddress);
void UpdateResultMessage(ITFSNode * pNode);
private:
BOOL m_bMachineAdded;
BOOL m_fViewMessage;
};
#endif _CROOT_H