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

232 lines
5.1 KiB
C++

//============================================================================
// Copyright (C) Microsoft Corporation, 1997 - 1999
//
// File: ipxstats.h
//
// History:
// 07/22/97 Kenn M. Takara Created.
//
// IPX Statistics
//
//============================================================================
#ifndef _IPXSTATS_H
#define _IPXSTATS_H
#ifndef _INFO_H
#include "info.h"
#endif
#ifndef _STATSDLG_H
#include "statsdlg.h"
#endif
#include "ipxrtdef.h"
class IPXConnection;
// Base class for IPX statistics dialogs
class IPXStatisticsDialog : public StatsDialog
{
public:
IPXStatisticsDialog(DWORD dwOptions) :
StatsDialog(dwOptions),
m_pIPXConn(NULL),
m_dwSortSubitem(0xFFFFFFFF)
{};
~IPXStatisticsDialog()
{
SetConnectionData(NULL);
}
// Override the OnInitDialog so that we can set the caption
virtual BOOL OnInitDialog();
// Override the PostNcDestroy to do any cleanup action
virtual void PostNcDestroy();
// Override the Sort to provide the ability to do sorting
virtual void Sort(UINT nColumnId);
// Derived classes should override this to provide sorting
// function
virtual PFNLVCOMPARE GetSortFunction();
virtual PFNLVCOMPARE GetInverseSortFunction();
void SetConnectionData(IPXConnection *pIPXConn);
protected:
DWORD m_dwSortSubitem;
IPXConnection * m_pIPXConn;
};
//----------------------------------------------------------------------------
// Enum: MV_ROWS
//
// Indices of rows in the 'IPX' view.
// This list MUST be kept in sync with the list in s_rgIpxStatsColumnInfo.
//----------------------------------------------------------------------------
enum
{
MVR_IPX_STATE = 0,
MVR_IPX_NETWORK,
MVR_IPX_NODE,
MVR_IPX_INTERFACE_COUNT,
MVR_IPX_ROUTE_COUNT,
MVR_IPX_SERVICE_COUNT,
MVR_IPX_PACKETS_SENT,
MVR_IPX_PACKETS_RCVD,
MVR_IPX_PACKETS_FRWD,
MVR_IPX_COUNT
};
class IpxInfoStatistics : public IPXStatisticsDialog
{
public:
IpxInfoStatistics();
~IpxInfoStatistics();
// Override the OnInitDialog so that we can set the caption
virtual BOOL OnInitDialog();
// Override the RefreshData to provide sample data
virtual HRESULT RefreshData(BOOL fGrabNewData);
// Override the Sort to provide the ability to do sorting
// actually we don't do any sorting (this is a vertical format)
virtual void Sort(UINT nColumnId);
protected:
void UpdateIpxData(LPBYTE pData, HRESULT hr);
};
enum
{
MVR_IPXROUTING_NETWORK = 0,
MVR_IPXROUTING_NEXT_HOP_MAC,
MVR_IPXROUTING_TICK_COUNT,
MVR_IPXROUTING_HOP_COUNT,
MVR_IPXROUTING_IF_NAME,
MVR_IPXROUTING_PROTOCOL,
MVR_IPXROUTING_ROUTE_NOTES,
MVR_IPXROUTING_COUNT,
};
typedef CArray<IPX_ROUTE, IPX_ROUTE&> RouteItemInfoArray;
class IpxRoutingStatistics : public IPXStatisticsDialog
{
friend int CALLBACK IpxRoutingStatisticsCompareProc(LPARAM, LPARAM, LPARAM);
public:
IpxRoutingStatistics();
~IpxRoutingStatistics();
// Override the OnInitDialog so that we can set the caption
virtual BOOL OnInitDialog();
// Override the PostNcDestroy to do any cleanup action
virtual void PostNcDestroy();
// Override the RefreshData to provide sample data
virtual HRESULT RefreshData(BOOL fGrabNewData);
// Override the Sort to provide the ability to do sorting
virtual void Sort(UINT nColumnId);
// Override this so that we can free up out item data
virtual void PreDeleteAllItems();
void SetRouterInfo(IRouterInfo *pRouterInfo);
void FixColumnAlignment();
protected:
DWORD m_dwSortSubitem;
SPIRouterInfo m_spRouterInfo;
// Holds the IPX_ROUTE information
RouteItemInfoArray m_Items;
// Holds the interface title (indexed by interfaceindex)
CStringArray m_rgIfTitle;
HRESULT GetIpxRoutingData();
HRESULT FillInterfaceTable();
afx_msg void OnNotifyGetDispInfo(NMHDR *, LRESULT *pResult);
DECLARE_MESSAGE_MAP();
};
enum
{
MVR_IPXSERVICE_SERVICE_NAME = 0,
MVR_IPXSERVICE_SERVICE_TYPE,
MVR_IPXSERVICE_SERVICE_ADDRESS,
MVR_IPXSERVICE_HOP_COUNT,
MVR_IPXSERVICE_IF_NAME,
MVR_IPXSERVICE_PROTOCOL,
MVR_IPXSERVICE_COUNT,
};
typedef CArray<IPX_SERVICE, IPX_SERVICE&> ServiceItemInfoArray;
class IpxServiceStatistics : public IPXStatisticsDialog
{
friend int CALLBACK IpxServiceStatisticsCompareProc(LPARAM, LPARAM, LPARAM);
public:
IpxServiceStatistics();
~IpxServiceStatistics();
// Override the OnInitDialog so that we can set the caption
virtual BOOL OnInitDialog();
// Override the PostNcDestroy to do any cleanup action
virtual void PostNcDestroy();
// Override the RefreshData to provide sample data
virtual HRESULT RefreshData(BOOL fGrabNewData);
// Override the Sort to provide the ability to do sorting
virtual void Sort(UINT nColumnId);
// Override this so that we can free up out item data
virtual void PreDeleteAllItems();
void SetRouterInfo(IRouterInfo *pRouterInfo);
protected:
DWORD m_dwSortSubitem;
SPIRouterInfo m_spRouterInfo;
// Holds the IPX_SERVICE information
ServiceItemInfoArray m_Items;
// Holds the interface title (indexed by interfaceindex)
CStringArray m_rgIfTitle;
HRESULT GetIpxServiceData();
HRESULT FillInterfaceTable();
afx_msg void OnNotifyGetDispInfo(NMHDR *, LRESULT *pResult);
DECLARE_MESSAGE_MAP();
};
#endif _IPXSTATS_H