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

211 lines
6.3 KiB
C++

//////////////////////////////////////////////////////////////////////////////
/*++
Copyright (C) Microsoft Corporation, 1997 - 1999
Module Name:
MachineNode.h
Abstract:
Header file for the MachineNode subnode.
See MachineNode.cpp for implementation.
Revision History:
mmaguire 12/03/97 - created
--*/
//////////////////////////////////////////////////////////////////////////////
#if !defined(_LOG_MACHINE_NODE_H_)
#define _LOG_MACHINE_NODE_H_
//////////////////////////////////////////////////////////////////////////////
// BEGIN INCLUDES
//
// where we can find what this class derives from:
//
#include "SnapinNode.h"
#include "rtradvise.h"
//
//
// where we can find what this class has or uses:
//
#include "LoggingMethodsNode.h"
#include "ConnectionToServer.h"
#include <map>
#include <string>
//
// END INCLUDES
//////////////////////////////////////////////////////////////////////////////
class CLoggingMachineNode;
class CLoggingComponentData;
typedef std::map< std::basic_string< wchar_t > , CLoggingMachineNode * > LOGGINGSERVERSMAP;
class CLoggingMachineNode : public CSnapinNode< CLoggingMachineNode, CLoggingComponentData, CLoggingComponent >
{
public:
// Clipboard format through which this extension snapin receives
// information about machine it's focussed on.
static CLIPFORMAT m_CCF_MMC_SNAPIN_MACHINE_NAME;
static void InitClipboardFormat();
// Returns whether we extend a particular GUID and sets the
// m_enumExtendedSnapin to indicate which snapin we are extending.
BOOL IsSupportedGUID( GUID & guid );
// Indicates which standalone snapin we are extending.
_enum_EXTENDED_SNAPIN m_enumExtendedSnapin;
HRESULT InitSdoObjects();
SNAPINMENUID(IDM_MACHINE_NODE)
BEGIN_SNAPINTOOLBARID_MAP(CLoggingMachineNode)
SNAPINTOOLBARID_ENTRY(IDR_MACHINE_TOOLBAR)
END_SNAPINTOOLBARID_MAP()
CSnapInItem * GetExtNodeObject(LPDATAOBJECT pDataObject, CLoggingMachineNode * pDataClass );
CLoggingMachineNode();
~CLoggingMachineNode();
LPOLESTR GetResultPaneColInfo(int nCol);
STDMETHOD(CheckConnectionToServer)( BOOL fVerbose = TRUE );
// Pointer to the CComponentData object owning this node.
// A root node doesn't belong to another node, so its
// m_pParentNode pointer is NULL.
// Rather it is owned by the unique IComponentData object
// for this snapin.
// We pass in this CComponentData pointer during CComponentData initialization.
// By storing this pointer, we can have access to member
// variables stored in CComponentData, e.g. a pointer to IConsole.
// Since all nodes store a pointer to their parent, any node
// can look its way up the tree and get access to CComponentData.
CLoggingComponentData * m_pComponentData;
void InitDataClass(IDataObject* pDataObject, CSnapInItem* pDefault);
BOOL m_fAlreadyAnalyzedDataClass;
BOOL m_bConfigureLocal;
CComBSTR m_bstrServerAddress;
virtual HRESULT OnExpand(
LPARAM arg
, LPARAM param
, IComponentData * pComponentData
, IComponent * pComponent
, DATA_OBJECT_TYPES type
);
virtual HRESULT OnRename(
LPARAM arg
, LPARAM param
, IComponentData * pComponentData
, IComponent * pComponent
, DATA_OBJECT_TYPES type
);
virtual HRESULT OnRefresh(
LPARAM arg
, LPARAM param
, IComponentData * pComponentData
, IComponent * pComponent
, DATA_OBJECT_TYPES type
);
virtual HRESULT OnRemoveChildren(
LPARAM arg
, LPARAM param
, IComponentData * pComponentData
, IComponent * pComponent
, DATA_OBJECT_TYPES type
);
STDMETHOD(TaskNotify)(
IDataObject * pDataObject
, VARIANT * pvarg
, VARIANT * pvparam
);
STDMETHOD(EnumTasks)(
IDataObject * pDataObject
, BSTR szTaskGroup
, IEnumTASK** ppEnumTASK
);
HRESULT OnTaskPadDefineNetworkAccessPolicy(
IDataObject * pDataObject
, VARIANT * pvarg
, VARIANT * pvparam
);
CLoggingComponentData * GetComponentData( void );
HRESULT DataRefresh();
// Pointers to child nodes.
CLoggingMethodsNode * m_pLoggingNode; // this is one CPoliciesNode object
////////////////////////////////////////////////////////////////////////////
//
// Asynchrnous connect related...
//
////////////////////////////////////////////////////////////////////////////
HRESULT BeginConnectAction( void );
HRESULT LoadSdoData(BOOL fDSAvailable);
HRESULT LoadCachedInfoFromSdo( void );
////////////////////////////////////////////////////////////////////////////
// OnRRASChange -- to decide if to show LOGGING node under the machine node
// Only show LOGGING node if NT Accounting is selected
HRESULT OnRRASChange(
/* [in] */ LONG_PTR ulConnection,
/* [in] */ DWORD dwChangeType,
/* [in] */ DWORD dwObjectType,
/* [in] */ LPARAM lUserParam,
/* [in] */ LPARAM lParam);
HRESULT TryShow(BOOL* pbVisible);
////////////////////////////////////////////////////////////////////////////
//
// SDO related pointers
//
////////////////////////////////////////////////////////////////////////////
CComPtr<ISdoDictionaryOld> m_spDictionarySdo; // Dictionary SDO
// if the server being focused is supported by this node
// during connection, if server is NT4, this is set to false
BOOL m_bServerSupported;
protected:
virtual HRESULT SetVerbs( IConsoleVerb * pConsoleVerb );
BOOL m_fSdoConnected;
BOOL m_fUseActiveDirectory;
BOOL m_fDSAvailable;
CLoggingConnectionToServer * m_pConnectionToServer;
BOOL m_fNodeHasUI;
// For extending snapins like RRAS which have multiple machine views.
LOGGINGSERVERSMAP m_mapMachineNodes;
CComPtr< CRtrAdviseSinkForIAS<CLoggingMachineNode> > m_spRtrAdviseSink;
};
_declspec( selectany ) CLIPFORMAT CLoggingMachineNode::m_CCF_MMC_SNAPIN_MACHINE_NAME = 0;
// _declspec( selectany ) _enum_EXTENDED_SNAPIN CLoggingMachineNode::m_enumExtendedSnapin = INTERNET_AUTHENTICATION_SERVICE_SNAPIN;
#endif // _LOG_MACHINE_NODE_H_