188 lines
5.2 KiB
C++
188 lines
5.2 KiB
C++
/**********************************************************************/
|
|
/** 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
|
|
|