mirror of https://github.com/tongzx/nt5src
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.
172 lines
5.0 KiB
172 lines
5.0 KiB
/**********************************************************************/
|
|
/** Microsoft Windows/NT **/
|
|
/** Copyright(c) Microsoft Corporation, 1997 - 2000 **/
|
|
/**********************************************************************/
|
|
|
|
/*
|
|
IPSMhand.h
|
|
Header file for IPSecMon specific base handler classes and query obj
|
|
|
|
FILE HISTORY:
|
|
|
|
*/
|
|
|
|
#ifndef _IPSMHAND_H
|
|
#define _IPSMHAND_H
|
|
|
|
#ifndef _HANDLERS_H
|
|
#include <handlers.h>
|
|
#endif
|
|
|
|
#ifndef _QUERYOBJ_H
|
|
#include <queryobj.h>
|
|
#endif
|
|
|
|
extern const TCHAR g_szDefaultHelpTopic[];
|
|
|
|
/*---------------------------------------------------------------------------
|
|
Class: CHandlerEx
|
|
---------------------------------------------------------------------------*/
|
|
class CHandlerEx
|
|
{
|
|
// Interface
|
|
public:
|
|
virtual HRESULT InitializeNode(ITFSNode * pNode) = 0;
|
|
LPCTSTR GetDisplayName() { return m_strDisplayName; }
|
|
void SetDisplayName(LPCTSTR pName) { m_strDisplayName = pName; }
|
|
|
|
private:
|
|
CString m_strDisplayName;
|
|
};
|
|
|
|
/*---------------------------------------------------------------------------
|
|
Class: CIpsmHandler
|
|
---------------------------------------------------------------------------*/
|
|
class CIpsmHandler :
|
|
public CHandler,
|
|
public CHandlerEx
|
|
{
|
|
public:
|
|
CIpsmHandler(ITFSComponentData *pCompData) :
|
|
CHandler(pCompData),
|
|
m_verbDefault(MMC_VERB_OPEN) {};
|
|
~CIpsmHandler() {};
|
|
|
|
// base handler virtual function over-rides
|
|
virtual HRESULT SaveColumns(ITFSComponent *, MMC_COOKIE, LPARAM, LPARAM);
|
|
|
|
// by default we don't allow nodes to be renamed
|
|
OVERRIDE_BaseHandlerNotify_OnRename() { return hrFalse; }
|
|
|
|
OVERRIDE_BaseResultHandlerNotify_OnResultSelect();
|
|
OVERRIDE_BaseResultHandlerNotify_OnResultDelete();
|
|
OVERRIDE_BaseResultHandlerNotify_OnResultContextHelp();
|
|
OVERRIDE_BaseResultHandlerNotify_OnResultRefresh();
|
|
|
|
// Multi-select functionalty
|
|
OVERRIDE_ResultHandler_OnCreateDataObject();
|
|
|
|
void EnableVerbs(IConsoleVerb * pConsoleVerb,
|
|
MMC_BUTTON_STATE ButtonState[],
|
|
BOOL bEnable[]);
|
|
|
|
MMC_CONSOLE_VERB m_verbDefault;
|
|
|
|
protected:
|
|
HRESULT CreateMultiSelectData(ITFSComponent * pComponent, CDataObject * pObject);
|
|
|
|
public:
|
|
};
|
|
|
|
/*---------------------------------------------------------------------------
|
|
Class: CMTIpsmHandler
|
|
---------------------------------------------------------------------------*/
|
|
class CMTIpsmHandler :
|
|
public CMTHandler,
|
|
public CHandlerEx
|
|
{
|
|
public:
|
|
// enumeration for node states, to handle icon changes
|
|
typedef enum
|
|
{
|
|
notLoaded = 0, // initial state, valid only if server never contacted
|
|
loading,
|
|
loaded,
|
|
unableToLoad
|
|
} nodeStateType;
|
|
|
|
CMTIpsmHandler(ITFSComponentData *pCompData) :
|
|
CMTHandler(pCompData),
|
|
m_verbDefault(MMC_VERB_OPEN)
|
|
{ m_nState = notLoaded; m_bSelected = FALSE; }
|
|
~CMTIpsmHandler() {};
|
|
|
|
// base handler virtual function over-rides
|
|
virtual HRESULT SaveColumns(ITFSComponent *, MMC_COOKIE, LPARAM, LPARAM);
|
|
|
|
// by default we don't allow nodes to be renamed
|
|
OVERRIDE_BaseHandlerNotify_OnRename() { return hrFalse; }
|
|
|
|
// base result handler overrides
|
|
OVERRIDE_BaseResultHandlerNotify_OnResultRefresh();
|
|
OVERRIDE_BaseResultHandlerNotify_OnResultUpdateView();
|
|
OVERRIDE_BaseResultHandlerNotify_OnResultSelect();
|
|
OVERRIDE_BaseResultHandlerNotify_OnResultContextHelp();
|
|
|
|
// Multi-select functionalty
|
|
OVERRIDE_ResultHandler_OnCreateDataObject();
|
|
|
|
void EnableVerbs(IConsoleVerb * pConsoleVerb,
|
|
MMC_BUTTON_STATE ButtonState[],
|
|
BOOL bEnable[]);
|
|
|
|
protected:
|
|
virtual void OnChangeState(ITFSNode* pNode);
|
|
virtual void GetErrorPrefix(ITFSNode * pNode, CString * pstrPrefix) { };
|
|
virtual void OnHaveData(ITFSNode * pParentNode, ITFSNode * pNewNode)
|
|
{
|
|
if (pNewNode->IsContainer())
|
|
{
|
|
// assume all the child containers are derived from this class
|
|
//((CIpsmMTContainer*)pNode)->SetServer(GetServer());
|
|
}
|
|
pParentNode->AddChild(pNewNode);
|
|
}
|
|
|
|
virtual void UpdateConsoleVerbs(IConsoleVerb * pConsoleVerb, LONG_PTR dwNodeType, BOOL bMultiSelect = FALSE);
|
|
|
|
void UpdateStandardVerbs(ITFSNode * pToolbar, LONG_PTR dwNodeType);
|
|
HRESULT CreateMultiSelectData(ITFSComponent * pComponent, CDataObject * pObject);
|
|
void ExpandNode(ITFSNode * pNode, BOOL fExpand);
|
|
|
|
MMC_CONSOLE_VERB m_verbDefault;
|
|
protected:
|
|
BOOL m_bSelected;
|
|
};
|
|
|
|
/*---------------------------------------------------------------------------
|
|
Class: CIpsmQueryObj : general purpose base class
|
|
---------------------------------------------------------------------------*/
|
|
class CIpsmQueryObj : public CNodeQueryObject
|
|
{
|
|
public:
|
|
CIpsmQueryObj
|
|
(
|
|
ITFSComponentData * pTFSCompData,
|
|
ITFSNodeMgr * pNodeMgr
|
|
) : m_dwErr(0)
|
|
{
|
|
m_spTFSCompData.Set(pTFSCompData);
|
|
m_spNodeMgr.Set(pNodeMgr);
|
|
}
|
|
|
|
CQueueDataListBase & GetQueue() { return m_dataQueue; }
|
|
|
|
public:
|
|
CString m_strServer;
|
|
SPITFSComponentData m_spTFSCompData;
|
|
SPITFSNodeMgr m_spNodeMgr;
|
|
DWORD m_dwErr;
|
|
};
|
|
|
|
#endif _IPSMHAND_H
|