232 lines
5.1 KiB
C
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
|