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.
131 lines
5.4 KiB
131 lines
5.4 KiB
/*======================================================================================//
|
|
| Process Control //
|
|
| //
|
|
|Copyright (c) 1998 Sequent Computer Systems, Incorporated. All rights reserved. //
|
|
| //
|
|
|File Name: ComponentData.h //
|
|
| //
|
|
|Description: Class definition for CComponentData, implements IComponentData interface //
|
|
| //
|
|
|Created: Paul Skoglund 07-1998 //
|
|
| //
|
|
|Rev History: //
|
|
| //
|
|
|=======================================================================================*/
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CComponentData: CComponentData handles interactions with the result pane. MMC
|
|
// calls the IComponentData interfaces.
|
|
//
|
|
// This is a part of the MMC SDK.
|
|
// Copyright (C) 1997 Microsoft Corporation
|
|
// All rights reserved.
|
|
//
|
|
// This source code is only intended as a supplement to the
|
|
// MMC SDK Reference and related
|
|
// electronic documentation provided with the library.
|
|
// See these sources for detailed information regarding the
|
|
// MMC Library product.
|
|
|
|
#ifndef __COMPONENTDATA_H_
|
|
#define __COMPONENTDATA_H_
|
|
|
|
|
|
#include "Globals.h"
|
|
|
|
|
|
class CBaseNode;
|
|
class CRootFolder;
|
|
class CComponent;
|
|
|
|
|
|
class ATL_NO_VTABLE CComponentData :
|
|
public CComObjectRootEx<CComSingleThreadModel>,
|
|
public CComCoClass<CComponentData, &CLSID_ComponentData>,
|
|
public IComponentData,
|
|
public IExtendContextMenu,
|
|
public IExtendPropertySheet2,
|
|
public IPersistStream,
|
|
public ISnapinHelp2
|
|
{
|
|
public:
|
|
CComponentData();
|
|
~CComponentData();
|
|
|
|
// Note: we can't use DECLARE_REGISTRY_RESOURCEID(IDR_PROCCON)
|
|
// because we need to be able to localize some of the strings we
|
|
// write into the registry.
|
|
static HRESULT STDMETHODCALLTYPE UpdateRegistry (BOOL bRegister) {
|
|
return UpdateRegistryHelper(IDR_PROCCON, bRegister);
|
|
}
|
|
|
|
DECLARE_NOT_AGGREGATABLE(CComponentData)
|
|
|
|
BEGIN_COM_MAP(CComponentData)
|
|
COM_INTERFACE_ENTRY(IComponentData)
|
|
COM_INTERFACE_ENTRY(IExtendContextMenu)
|
|
COM_INTERFACE_ENTRY(IExtendPropertySheet2)
|
|
COM_INTERFACE_ENTRY(IPersistStream)
|
|
COM_INTERFACE_ENTRY(ISnapinHelp)
|
|
COM_INTERFACE_ENTRY(ISnapinHelp2)
|
|
END_COM_MAP()
|
|
|
|
// IComponentData methods
|
|
public:
|
|
STDMETHOD(CompareObjects)(LPDATAOBJECT ipDataObjectA, LPDATAOBJECT ipDataObjectB);
|
|
STDMETHOD(GetDisplayInfo)(LPSCOPEDATAITEM pItem);
|
|
STDMETHOD(QueryDataObject)(MMC_COOKIE cookie, DATA_OBJECT_TYPES type, LPDATAOBJECT * ppDataObject);
|
|
STDMETHOD(Notify)(LPDATAOBJECT ipDataObject, MMC_NOTIFY_TYPE Event, LPARAM Arg, LPARAM Param);
|
|
STDMETHOD(CreateComponent)(LPCOMPONENT * ppComponent);
|
|
STDMETHOD(Initialize)(LPUNKNOWN pUnknown);
|
|
STDMETHOD(Destroy)();
|
|
|
|
// IExtendContextMenu
|
|
public:
|
|
STDMETHOD(AddMenuItems)( LPDATAOBJECT ipDataObject,
|
|
LPCONTEXTMENUCALLBACK pCallback,
|
|
long *pInsertionAllowed);
|
|
STDMETHOD(Command)(long nCommandID, LPDATAOBJECT ipDataObject);
|
|
|
|
// IExtendPropertySheet2
|
|
public:
|
|
STDMETHOD(CreatePropertyPages)( LPPROPERTYSHEETCALLBACK lpProvider,
|
|
LONG_PTR handle,
|
|
LPDATAOBJECT ipDataObject
|
|
);
|
|
STDMETHOD(QueryPagesFor)(LPDATAOBJECT ipDataObject);
|
|
STDMETHOD(GetWatermarks)(LPDATAOBJECT ipDataObject, HBITMAP * lphWatermark, HBITMAP * lphHeader, HPALETTE * lphPalette, BOOL* bStretch);
|
|
|
|
// IPersistStream
|
|
public:
|
|
STDMETHOD(GetClassID)(CLSID *pClassID);
|
|
STDMETHOD(IsDirty)();
|
|
STDMETHOD(Load)(IStream *pStm);
|
|
STDMETHOD(Save)(IStream *pStm, BOOL fClearDirty);
|
|
STDMETHOD(GetSizeMax)(ULARGE_INTEGER *pcbSize);
|
|
|
|
// ISnapinHelp2
|
|
public:
|
|
STDMETHOD(GetHelpTopic) (LPOLESTR* lpCompiledHelpFile);
|
|
STDMETHOD(GetLinkedTopics) (LPOLESTR* lpCompiledHelpFiles);
|
|
|
|
private:
|
|
IConsoleNameSpace2 *m_ipConsoleNameSpace2; // Pointer to the IConsoleNameSpace2 interface
|
|
IConsole2 *m_ipConsole2; // Pointer to the IConsole2 interface
|
|
IImageList *m_ipScopeImage; // Pointer to the scope's ImageList interface
|
|
HBITMAP m_hbmpSNodes16; // Strip to 16x16 images
|
|
HBITMAP m_hbmpSNodes32; // Strip to 32x32 images
|
|
|
|
|
|
CRootFolder *m_ptrRootNode; // newed in constructor...Initialize is too late
|
|
// QueryDataObject() can be used prior to Initialize()
|
|
|
|
BOOL m_Initialized; // TRUE implies Initialize() method returned S_OK
|
|
|
|
HBITMAP m_hWatermark1; // property sheet watermark
|
|
HBITMAP m_hHeader1; // property sheet header
|
|
|
|
HRESULT OnPropertyChange( BOOL bScopeItem, LPARAM Param );
|
|
};
|
|
|
|
#endif //__COMPONENTDATA_H_
|