143 lines
3.6 KiB
C
143 lines
3.6 KiB
C
|
//////////////////////////////////////////////////////////////////////////////
|
||
|
/*++
|
||
|
|
||
|
Copyright (C) Microsoft Corporation, 1997 - 1999
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
LogComp.h
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
The CLoggingComponent class implements several interfaces which MMC uses:
|
||
|
|
||
|
The IComponent interface is basically how MMC talks to the snap-in
|
||
|
to get it to implement a right-hand-side "scope" pane. There can be several
|
||
|
objects implementing this interface instantiated at once. These are best
|
||
|
thought of as "views" on the single object implementing the IComponentData
|
||
|
"document" (see ComponentData.cpp).
|
||
|
|
||
|
The IExtendPropertySheet interface is how the snap-in adds property sheets
|
||
|
for any of the items a user might click on.
|
||
|
|
||
|
The IExtendContextMenu interface what we do to add custom entries
|
||
|
to the menu which appears when a user right-clicks on a node.
|
||
|
|
||
|
The IExtendControlBar interface allows us to support a custom
|
||
|
iconic toolbar.
|
||
|
|
||
|
See Component.cpp for implementation details.
|
||
|
|
||
|
Note:
|
||
|
|
||
|
Much of the functionality of this class is implemented in atlsnap.h
|
||
|
by IComponentImpl. We are mostly overriding here.
|
||
|
|
||
|
|
||
|
Revision History:
|
||
|
mmaguire 11/6/97 - created using MMC snap-in wizard
|
||
|
|
||
|
|
||
|
--*/
|
||
|
//////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
#if !defined(_LOG_COMPONENT_H_)
|
||
|
#define _LOG_COMPONENT_H_
|
||
|
|
||
|
//////////////////////////////////////////////////////////////////////////////
|
||
|
// BEGIN INCLUDES
|
||
|
//
|
||
|
// where we can find what this class derives from:
|
||
|
//
|
||
|
//Moved to Precompiled.h: #include <atlsnap.h>
|
||
|
//
|
||
|
//
|
||
|
// where we can find what this class has or uses:
|
||
|
//
|
||
|
#include "LogCompD.h"
|
||
|
//
|
||
|
// END INCLUDES
|
||
|
//////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
|
||
|
class CLoggingComponent :
|
||
|
public CComObjectRootEx<CComSingleThreadModel>
|
||
|
, public CSnapInObjectRoot<2, CLoggingComponentData>
|
||
|
, public IExtendPropertySheetImpl<CLoggingComponent>
|
||
|
, public IExtendContextMenuImpl<CLoggingComponent>
|
||
|
, public IExtendControlbarImpl<CLoggingComponent>
|
||
|
, public IResultDataCompare
|
||
|
, public IExtendTaskPadImpl<CLoggingComponent>
|
||
|
, public IComponentImpl<CLoggingComponent>
|
||
|
{
|
||
|
|
||
|
public:
|
||
|
|
||
|
BEGIN_COM_MAP(CLoggingComponent)
|
||
|
COM_INTERFACE_ENTRY(IComponent)
|
||
|
COM_INTERFACE_ENTRY(IExtendPropertySheet2)
|
||
|
COM_INTERFACE_ENTRY(IExtendContextMenu)
|
||
|
COM_INTERFACE_ENTRY(IExtendControlbar)
|
||
|
COM_INTERFACE_ENTRY(IResultDataCompare)
|
||
|
COM_INTERFACE_ENTRY(IExtendTaskPad)
|
||
|
END_COM_MAP()
|
||
|
|
||
|
CLoggingComponent();
|
||
|
|
||
|
~CLoggingComponent();
|
||
|
|
||
|
// We are overiding ATLsnap.h's IComponentImpl implementation of this
|
||
|
// in order to correctly handle messages which it is incorrectly
|
||
|
// ignoring (e.g. MMCN_COLUMN_CLICK and MMCN_SNAPINHELP)
|
||
|
|
||
|
STDMETHOD(Notify)(
|
||
|
LPDATAOBJECT lpDataObject
|
||
|
, MMC_NOTIFY_TYPE event
|
||
|
, LPARAM arg
|
||
|
, LPARAM param
|
||
|
);
|
||
|
|
||
|
STDMETHOD(CompareObjects)(
|
||
|
LPDATAOBJECT lpDataObjectA
|
||
|
, LPDATAOBJECT lpDataObjectB
|
||
|
);
|
||
|
|
||
|
// IResultDataCompare
|
||
|
STDMETHOD(Compare)(LPARAM lUserParam,
|
||
|
MMC_COOKIE cookieA,
|
||
|
MMC_COOKIE cookieB,
|
||
|
int *pnResult);
|
||
|
|
||
|
CSnapInItem * m_pSelectedNode;
|
||
|
|
||
|
protected:
|
||
|
|
||
|
virtual HRESULT OnColumnClick(
|
||
|
LPARAM arg
|
||
|
, LPARAM param
|
||
|
);
|
||
|
|
||
|
virtual HRESULT OnViewChange(
|
||
|
LPARAM arg
|
||
|
, LPARAM param
|
||
|
);
|
||
|
|
||
|
virtual HRESULT OnPropertyChange(
|
||
|
LPARAM arg
|
||
|
, LPARAM param
|
||
|
);
|
||
|
|
||
|
virtual HRESULT OnAddImages(
|
||
|
LPARAM arg
|
||
|
, LPARAM param
|
||
|
);
|
||
|
|
||
|
// html help
|
||
|
HRESULT OnResultContextHelp(LPDATAOBJECT lpDataObject);
|
||
|
|
||
|
HBITMAP m_hBitmap16;
|
||
|
HBITMAP m_hBitmap32;
|
||
|
};
|
||
|
|
||
|
#endif // _LOG_COMPONENT_H_
|