windows-nt/Source/XPSP1/NT/net/mmc/rtrlib/basecon.h
2020-09-26 16:20:57 +08:00

106 lines
2.7 KiB
C++

//============================================================================
// Copyright (C) Microsoft Corporation, 1997 - 1999
//
// File: basecon.h
//
// History:
// 07/22/97 Kenn M. Takara Created.
//
// Basic interface container functionality. One of the functions of
// this basic container class is to provide column support.
//
//============================================================================
#ifndef _BASECON_H
#define _BASECON_H
#ifndef _BASEHAND_H
#include "basehand.h"
#endif
#ifndef _HANDLERS_H
#include "handlers.h"
#endif
#ifndef _XSTREAM_H
#include "xstream.h" // need for ColumnData
#endif
#ifndef _RTRLIB_H
#include "rtrlib.h" // ContainerColumnInfo
#endif
#ifndef _BASERTR_H
#include "basertr.h" // BaseRouterHandler
#endif
#include "resource.h"
// forward declarations
struct ContainerColumnInfo;
/*---------------------------------------------------------------------------
Class: BaseContainerHandler
The purpose for this class is to provide support common to all
containers in the router snapins.
- One feature is the ability to provide column remapping. This
also supports the saving/loading of column data.
---------------------------------------------------------------------------*/
// Valid UserResultNotify params
// This is called when it is time to save.
#define RRAS_ON_SAVE 500
HRESULT HrDisplayHelp(ITFSComponent *, LPCTSTR, UINT);
HRESULT HrDisplayHelp(ITFSComponent *, LPCTSTR, LPCTSTR);
class BaseContainerHandler :
public BaseRouterHandler
{
public:
BaseContainerHandler(ITFSComponentData *pCompData, ULONG ulColumnId,
const ContainerColumnInfo *prgColumnInfo)
: BaseRouterHandler(pCompData),
m_ulColumnId(ulColumnId),
m_prgColumnInfo(prgColumnInfo),
m_nHelpTopicId(IDS_DEFAULT_HELP_TOPIC),
m_nTaskPadDisplayNameId(IDS_DEFAULT_TASKPAD_DISPLAY_TITLE)
{};
// Override the column click so that we can get notifications
// about changes to the sort order
OVERRIDE_BaseResultHandlerNotify_OnResultColumnClick();
OVERRIDE_BaseResultHandlerNotify_OnResultContextHelp();
OVERRIDE_ResultHandler_UserResultNotify();
OVERRIDE_ResultHandler_TaskPadNotify();
OVERRIDE_ResultHandler_TaskPadGetTitle();
//OVERRIDE_ResultHandler_EnumTasks();
// Override LoadColumns/SaveColumns so that we can persist our data
HRESULT LoadColumns(ITFSComponent *, MMC_COOKIE, LPARAM, LPARAM);
HRESULT SaveColumns(ITFSComponent *, MMC_COOKIE, LPARAM, LPARAM);
HRESULT SortColumns(ITFSComponent *);
protected:
HRESULT PrivateLoadColumns(ITFSComponent * pComponent,
IHeaderCtrl * pHeaderCtrl,
MMC_COOKIE cookie);
ULONG m_ulColumnId;
const ContainerColumnInfo * m_prgColumnInfo;
UINT m_nHelpTopicId;
UINT m_nTaskPadDisplayNameId;
};
#endif _BASECON_H