|
|
// stdcmpnt.h : Declaration of CComponent
#ifndef __STDCMPNT_H_INCLUDED__
#define __STDCMPNT_H_INCLUDED__
#include "stdcooki.h" // CCookie
#include "stdcdata.h" // CComponentData
class CComponent : public CComObjectRoot, public IComponent { public: CComponent(); virtual ~CComponent();
BEGIN_COM_MAP(CComponent) COM_INTERFACE_ENTRY(IComponent) END_COM_MAP()
// IComponent
STDMETHOD(Initialize)(LPCONSOLE lpConsole); STDMETHOD(Notify)(LPDATAOBJECT lpDataObject, MMC_NOTIFY_TYPE event, LPARAM arg, LPARAM param); STDMETHOD(Destroy)(MMC_COOKIE cookie); STDMETHOD(QueryDataObject)(MMC_COOKIE cookie, DATA_OBJECT_TYPES type, LPDATAOBJECT* ppDataObject); STDMETHOD(GetResultViewType)(MMC_COOKIE cookie, LPOLESTR* ppViewType, long* pViewOptions); STDMETHOD(GetDisplayInfo)(RESULTDATAITEM* pResultDataItem); STDMETHOD(CompareObjects)(LPDATAOBJECT lpDataObjectA, LPDATAOBJECT lpDataObjectB);
// support methods for IComponent
virtual HRESULT ReleaseAll(); virtual HRESULT OnPropertyChange( LPARAM param ); virtual HRESULT OnViewChange( LPDATAOBJECT lpDataObject, LPARAM data, LPARAM hint ); virtual HRESULT OnNotifyRefresh( LPDATAOBJECT lpDataObject ); virtual HRESULT OnNotifyDelete( LPDATAOBJECT lpDataObject ); virtual HRESULT OnNotifyColumnClick( LPDATAOBJECT lpDataObject, LPARAM iColumn, LPARAM uFlags ); virtual HRESULT OnNotifySelect( LPDATAOBJECT lpDataObject, BOOL fSelected ); virtual HRESULT OnNotifyActivate( LPDATAOBJECT lpDataObject, BOOL fActivated ); virtual HRESULT OnNotifyAddImages( LPDATAOBJECT lpDataObject, LPIMAGELIST lpImageList, HSCOPEITEM hSelectedItem ); virtual HRESULT OnNotifyClick( LPDATAOBJECT lpDataObject ); virtual HRESULT OnNotifyDblClick( LPDATAOBJECT lpDataObject ); virtual HRESULT Show(CCookie* pcookie, LPARAM arg, HSCOPEITEM hScopeItem) = 0; virtual HRESULT OnNotifyContextHelp (LPDATAOBJECT pDataObject); virtual HRESULT OnNotifySnapinHelp (LPDATAOBJECT pDataObject);
HRESULT ShowHelpTopic( LPCWSTR lpcwszHelpTopic );
HRESULT InsertResultCookies( CCookie& refparentcookie );
void SetComponentDataPtr(CComponentData* pComponentData); CComponentData& QueryBaseComponentDataRef() { // ISSUE-2002/03/28-JonN We need to handle NULL better
ASSERT( NULL != m_pComponentData ); return *m_pComponentData; }
inline CCookie& QueryBaseRootCookie() { return QueryBaseComponentDataRef().QueryBaseRootCookie(); }
inline CCookie* ActiveBaseCookie( CCookie* pcookie ) { return QueryBaseComponentDataRef().ActiveBaseCookie( pcookie ); }
inline INT DoPopup( INT nResourceID, DWORD dwErrorNumber = 0, LPCTSTR pszInsertionString = NULL, UINT fuStyle = MB_OK | MB_ICONSTOP ) { return QueryBaseComponentDataRef().DoPopup( nResourceID, dwErrorNumber, pszInsertionString, fuStyle ); }
HRESULT LoadColumnsFromArrays( INT objecttype );
protected: LPCONSOLE m_pConsole; LPCONSOLEVERB m_pConsoleVerb; LPHEADERCTRL m_pHeader; LPRESULTDATA m_pResultData; LPCONSOLENAMESPACE m_pConsoleNameSpace; LPIMAGELIST m_pRsltImageList;
private: CComponentData* m_pComponentData; };
#endif // ~__STDCMPNT_H_INCLUDED__
|