Leaked source code of windows server 2003
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.
 
 
 
 
 
 

108 lines
3.0 KiB

/**********************************************************************/
/** Microsoft Windows/NT **/
/** Copyright(c) Microsoft Corporation, 1997 - 1998 **/
/**********************************************************************/
/*
compont.h
base classes for IComponent and IComponentData
FILE HISTORY:
*/
#ifndef _COMPONT_H
#define _COMPONT_H
#if _MSC_VER >= 1000 // VC 5.0 or later
#pragma once
#endif
#ifndef __mmc_h__
#include <mmc.h>
#endif
#ifndef _TFSINT_H
#include "tfsint.h"
#endif
class TFSComponentData;
#define IMPL
class TFS_EXPORT_CLASS TFSComponent :
public ITFSComponent,
public IComponent,
public IExtendPropertySheet2,
public IExtendContextMenu,
public IExtendControlbar,
public IResultDataCompare,
public IResultDataCompareEx,
public IResultOwnerData,
public IExtendTaskPad
{
public:
TFSComponent();
virtual ~TFSComponent();
void Construct(ITFSNodeMgr *pNodeMgr,
IComponentData *pCompData,
ITFSComponentData *pTFSCompData);
// INTERFACES
public:
DeclareIUnknownMembers(IMPL)
DeclareIComponentMembers(IMPL)
DeclareIExtendPropertySheetMembers(IMPL)
DeclareIExtendContextMenuMembers(IMPL)
DeclareIExtendControlbarMembers(IMPL)
DeclareIResultDataCompareMembers(IMPL)
DeclareIResultDataCompareExMembers( IMPL )
DeclareIResultOwnerDataMembers(IMPL)
DeclareITFSComponentMembers(IMPL)
DeclareIExtendTaskPadMembers(IMPL)
public:
// These functions are to be implemented by the derived class
//DeclareITFSCompCallbackMembers(PURE)
STDMETHOD(InitializeBitmaps)(MMC_COOKIE cookie) = 0;
STDMETHOD(OnUpdateView)(LPDATAOBJECT pDataObject, LPARAM arg, LPARAM param);
STDMETHOD(OnDeselectAll)(LPDATAOBJECT pDataObject, LPARAM arg, LPARAM param);
STDMETHOD(OnColumnClick)(LPDATAOBJECT pDataObject, LPARAM arg, LPARAM param);
STDMETHOD(OnSnapinHelp)(LPDATAOBJECT pDataObject, LPARAM arg, LPARAM param);
protected:
virtual HRESULT OnNotifyPropertyChange(LPDATAOBJECT lpDataObject,
MMC_NOTIFY_TYPE event,
LPARAM arg,
LPARAM lParam)
{
return E_NOTIMPL;
}
protected:
SPITFSNodeMgr m_spNodeMgr;
SPITFSNode m_spSelectedNode;
SPIConsole m_spConsole; // Console's IConsole interface
SPIHeaderCtrl m_spHeaderCtrl; // Result pane's hdr control
SPIResultData m_spResultData; // if ptr to the result pane
SPIImageList m_spImageList;
SPIConsoleVerb m_spConsoleVerb;
SPIControlBar m_spControlbar;
SPIToolbar m_spToolbar;
SPIDataObject m_spCurrentDataObject;
//$ Review (kennt) : should we be doing this? Should we have
// our components hold onto each other? What if this gets done
// at a higher level?
SPITFSComponentData m_spTFSComponentData;
SPIComponentData m_spComponentData;
LONG_PTR m_ulUserData;
long m_cRef;
};
#endif _COMPONT_H