windows-nt/Source/XPSP1/NT/net/mmc/mprsnap/dmvcomp.h

188 lines
5.2 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
/**********************************************************************/
/** Microsoft Windows/NT **/
/** Copyright(c) Microsoft Corporation, 1997 - 1998 **/
/**********************************************************************/
/*
*/
#ifndef _DMVCOMP_H
#define _DMVCOMP_H
#include "resource.h" // main symbols
#ifndef __mmc_h__
#include <mmc.h>
#endif
#ifndef _CCDATA_H
#include "ccdata.h"
#endif
#ifndef _COMPONT_H
#include "compont.h"
#endif
#ifndef _RTRSTRM_H
#include "rtrstrm.h"
#endif
#ifndef _COLUMN_H
#include "column.h"
#endif
#ifndef _DMVSTRM_H
#include "dmvstrm.h"
#endif
enum
{
DM_COLUMNS_DVSUM = 0,
DM_COLUMNS_IFADMIN=1,
DM_COLUMNS_DIALIN=2,
DM_COLUMNS_PORTS = 3,
DM_COLUMNS_MAX_COUNT,
};
#define COLORREF_PINK 0x00FF00FF
/*---------------------------------------------------------------------------
CDMVComponentData
This is the base implementation of ComponentData. This will be
incorporated into the two derived classes.
---------------------------------------------------------------------------*/
class CDMVComponentData :
public CComponentData,
public CComObjectRoot
{
public:
BEGIN_COM_MAP(CDMVComponentData)
COM_INTERFACE_ENTRY(IComponentData)
COM_INTERFACE_ENTRY(IExtendPropertySheet)
COM_INTERFACE_ENTRY(IExtendContextMenu)
COM_INTERFACE_ENTRY(IPersistStreamInit)
COM_INTERFACE_ENTRY(ISnapinHelp)
END_COM_MAP()
public:
// These are the interfaces that we MUST implement
// We will implement our common behavior here, with the derived
// classes implementing the specific behavior.
DeclareIPersistStreamInitMembers(IMPL)
DeclareITFSCompDataCallbackMembers(IMPL)
CDMVComponentData();
~CDMVComponentData();
HRESULT FinalConstruct();
void FinalRelease();
protected:
SPITFSNodeMgr m_spNodeMgr;
private:
WATERMARKINFO m_WatermarkInfo;
};
/////////////////////////////////////////////////////////////////////////////
//
// CDMVComponent
//
/////////////////////////////////////////////////////////////////////////////
class CDMVComponent :
public TFSComponent,
public IPersistStreamInit
{
public:
CDMVComponent();
~CDMVComponent();
DeclareIUnknownMembers(IMPL)
DeclareIPersistStreamInitMembers(IMPL)
DeclareITFSCompCallbackMembers(IMPL)
// Override OnQueryDataObject, so that we can forward
// the calls down to the Result Handlers
STDMETHOD(QueryDataObject)(MMC_COOKIE cookie, DATA_OBJECT_TYPES type,
LPDATAOBJECT* ppDataObject);
STDMETHOD(OnSnapinHelp)(LPDATAOBJECT pDataObject, LPARAM arg, LPARAM param);
//Attributes
protected:
// This is used to store view information. A pointer to this
// object is used as the GetString() lParam.
DVComponentConfigStream m_ComponentConfig;
};
/////////////////////////////////////////////////////////////////////////////
// Domain View Snapin
class CDomainViewSnap :
public CDMVComponentData,
public CComCoClass<CDomainViewSnap, &CLSID_RouterSnapin>
{
public:
DECLARE_REGISTRY(CDMVComponentData,
_T("DomainViewSnapin.DomainViewSnapin.1"),
_T("DomainViewSnapin.DomainViewSnapin"),
IDS_DMV_DESC, THREADFLAGS_APARTMENT)
STDMETHOD_(const CLSID *,GetCoClassID()){ return &CLSID_RouterSnapin; }
};
class CDomainViewSnapExtension :
public CDMVComponentData,
public CComCoClass<CDomainViewSnapExtension, &CLSID_RouterSnapinExtension>
{
public:
DECLARE_REGISTRY(CDomainViewSnapExtension,
_T("CDomainViewSnapExtension.CDomainViewSnapExtension.1"),
_T("CDomainViewSnapExtension.CDomainViewSnapExtension"),
IDS_DMV_DESC, THREADFLAGS_APARTMENT)
STDMETHODIMP_(const CLSID *)GetCoClassID() { return &CLSID_RouterSnapinExtension; }
};
/*---------------------------------------------------------------------------
This is the derived class for handling the IAbout interface from MMC
Author: EricDav
---------------------------------------------------------------------------*/
class CDomainViewSnapAbout :
public CAbout,
public CComCoClass<CDomainViewSnapAbout, &CLSID_RouterSnapinAbout>
{
public:
DECLARE_REGISTRY(CDomainViewSnapAbout,
_T("DomainViewSnapin.About.1"),
_T("DomainViewSnapin.About"),
IDS_SNAPIN_DESC,
THREADFLAGS_BOTH)
BEGIN_COM_MAP(CDomainViewSnapAbout)
COM_INTERFACE_ENTRY(ISnapinAbout) // Must have one static entry
COM_INTERFACE_ENTRY_CHAIN(CAbout) // chain to the base class
END_COM_MAP()
DECLARE_NOT_AGGREGATABLE(CDomainViewSnapAbout)
// these must be overridden to provide values to the base class
//???? need to change to doamin
protected:
virtual UINT GetAboutDescriptionId() { return IDS_DMV_ABOUT_DESCRIPTION; }
virtual UINT GetAboutProviderId() { return IDS_ABOUT_PROVIDER; }
virtual UINT GetAboutVersionId() { return IDS_ABOUT_VERSION; }
virtual UINT GetAboutIconId() { return IDI_SNAPIN_ICON; }
virtual UINT GetSmallRootId() { return IDB_ROOT_SMALL; }
virtual UINT GetSmallOpenRootId() { return IDB_ROOT_SMALL; }
virtual UINT GetLargeRootId() { return IDB_ROOT_LARGE; }
virtual COLORREF GetLargeColorMask() { return (COLORREF) COLORREF_PINK; }
};
#endif _DMVCOMP_H