|
|
// Compont.h : Declaration of the CComponent
#ifndef __COMPONENT_H_
#define __COMPONENT_H_
#include "resource.h" // main symbols
class CScopeNode; class CComponentData;
/////////////////////////////////////////////////////////////////////////////
// CComponent
class ATL_NO_VTABLE CComponent : public CComObjectRootEx<CComSingleThreadModel>, // public CComCoClass<CComponent, &CLSID_Component>,
public IComponent, public IExtendContextMenu, public IExtendControlbar, public IResultOwnerData, public IExtendPropertySheet2 { public: CComponent() : m_pCompData(NULL) { }
DECLARE_NOT_AGGREGATABLE(CComponent)
BEGIN_COM_MAP(CComponent) COM_INTERFACE_ENTRY(IComponent) COM_INTERFACE_ENTRY(IExtendContextMenu) COM_INTERFACE_ENTRY(IExtendControlbar) COM_INTERFACE_ENTRY(IResultOwnerData) COM_INTERFACE_ENTRY(IExtendPropertySheet2) END_COM_MAP()
public: // IComponent
STDMETHOD(Initialize)(LPCONSOLE lpConsole); STDMETHOD(Notify)(LPDATAOBJECT lpDataObject, MMC_NOTIFY_TYPE event, LPARAM arg, LPARAM param); STDMETHOD(Destroy)(MMC_COOKIE cookie); STDMETHOD(GetResultViewType)(MMC_COOKIE cookie, LPOLESTR* ppViewType, long* pViewOptions); STDMETHOD(QueryDataObject)(MMC_COOKIE cookie, DATA_OBJECT_TYPES type, LPDATAOBJECT* ppDataObject); STDMETHOD(GetDisplayInfo)(RESULTDATAITEM* pResultDataItem); STDMETHOD(CompareObjects)(LPDATAOBJECT lpDataObjectA, LPDATAOBJECT lpDataObjectB);
// IExtendContextMenu
STDMETHOD(AddMenuItems)(LPDATAOBJECT pDataObject, LPCONTEXTMENUCALLBACK pCallback, long* plAllowed); STDMETHOD(Command)(long lCommand, LPDATAOBJECT pDataObject);
// IExtendPropertySheet2 methods
STDMETHOD(QueryPagesFor)(LPDATAOBJECT lpDataObject); STDMETHOD(CreatePropertyPages)(LPPROPERTYSHEETCALLBACK lpProvider,LONG_PTR handle, LPDATAOBJECT lpIDataObject); STDMETHOD(GetWatermarks)(LPDATAOBJECT lpIDataObject, HBITMAP* lphWatermark, HBITMAP* lphHeader, HPALETTE* lphPalette, BOOL* bStretch);
// IExtendControlbar
STDMETHOD(SetControlbar)(LPCONTROLBAR pControlbar); STDMETHOD(ControlbarNotify)(MMC_NOTIFY_TYPE event, LPARAM arg, LPARAM param);
// IResultOwnerData
STDMETHOD(FindItem)(LPRESULTFINDINFO pFindInfo, int* pnFoundIndex) { return E_NOTIMPL; } STDMETHOD(CacheHint)(int nStartIndex, int nEndIndex) { return E_NOTIMPL; } STDMETHOD(SortItems)(int nColumn, DWORD dwSortOptions, LPARAM lUserParam);
public: void SetComponentData(CComponentData* pCompData) { ASSERT(pCompData != NULL); m_pCompData = pCompData; }
void ClearRowItems(); void AddRowItems(RowItemVector& vRowItems); IHeaderCtrl* GetHeaderCtrl() { return m_spHeaderCtrl; } IConsole2* GetConsole() { return m_spConsole; } IToolbar* GetToolbar() { return m_spToolbar; }
private: IConsole2Ptr m_spConsole; IResultDataPtr m_spResultData; IHeaderCtrlPtr m_spHeaderCtrl; IControlbarPtr m_spControlbar; IToolbarPtr m_spToolbar; CComponentData* m_pCompData; RowItemVector m_vRowItems; CComPtr<CScopeNode> m_spCurScopeNode;
};
#endif //__COMPONENT_H_
|