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

189 lines
6.3 KiB
C++

//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1997 - 1999
//
// File: strmap.cpp
//
//--------------------------------------------------------------------------
#include "stdafx.h"
#include "mprapi.h"
#include "ipifcons.h" // MIB constants
#include "strmap.h"
static CString s_stUnknown;
static CString s_stIfTypeClient;
static CString s_stIfTypeHomeRouter;
static CString s_stIfTypeFullRouter;
static CString s_stIfTypeDedicated;
static CString s_stIfTypeInternal;
static CString s_stIfTypeUnknown;
static CString s_stIfTypeLoopback;
static CString s_stIfTypeTunnel1;
static CString s_stConnStateConnected;
static CString s_stConnStateConnecting;
static CString s_stConnStateDisconnected;
static CString s_stConnStateUnreachable;
static CString s_stConnStateUnknown;
static CString s_stStatusEnabled;
static CString s_stStatusDisabled;
static CString s_stStatusUnknown;
static CString s_stUnreachNotLoaded;
static CString s_stUnreachNoPorts;
static CString s_stUnreachAdminDisabled;
static CString s_stUnreachConnectFailure;
static CString s_stUnreachServicePaused;
static CString s_stUnreachNotRunning;
static CString s_stUnreachNoMediaSense;
static CString s_stUnreachDialoutHoursRestriction;
static CString s_stUnreachUnknown;
static CString s_stAdminStatusUp;
static CString s_stAdminStatusDown;
static CString s_stAdminStatusTesting;
static CString s_stAdminStatusUnknown;
static CString s_stOperStatusNonOperational;
static CString s_stOperStatusUnreachable;
static CString s_stOperStatusDisconnected;
static CString s_stOperStatusConnecting;
static CString s_stOperStatusConnected;
static CString s_stOperStatusOperational;
static CString s_stOperStatusUnknown;
static CString s_stEnabled;
static CString s_stDisabled;
const CStringMapEntry IfTypeMap[] =
{
{ ROUTER_IF_TYPE_CLIENT, &s_stIfTypeClient, IDS_IFTYPE_CLIENT },
{ ROUTER_IF_TYPE_HOME_ROUTER, &s_stIfTypeHomeRouter, IDS_IFTYPE_HOMEROUTER },
{ ROUTER_IF_TYPE_FULL_ROUTER, &s_stIfTypeFullRouter, IDS_IFTYPE_FULLROUTER },
{ ROUTER_IF_TYPE_DEDICATED, &s_stIfTypeDedicated, IDS_IFTYPE_DEDICATED },
{ ROUTER_IF_TYPE_INTERNAL, &s_stIfTypeInternal, IDS_IFTYPE_INTERNAL },
{ ROUTER_IF_TYPE_LOOPBACK, &s_stIfTypeLoopback, IDS_IFTYPE_LOOPBACK },
{ ROUTER_IF_TYPE_TUNNEL1, &s_stIfTypeTunnel1, IDS_IFTYPE_TUNNEL1 },
{ -1, &s_stIfTypeUnknown, IDS_IFTYPE_UNKNOWN },
};
const CStringMapEntry ConnStateMap[] =
{
{ ROUTER_IF_STATE_CONNECTED, &s_stConnStateConnected, IDS_CONNSTATE_CONNECTED },
{ ROUTER_IF_STATE_CONNECTING, &s_stConnStateConnecting, IDS_CONNSTATE_CONNECTING },
{ ROUTER_IF_STATE_DISCONNECTED, &s_stConnStateDisconnected, IDS_CONNSTATE_DISCONNECTED },
{ ROUTER_IF_STATE_UNREACHABLE, &s_stConnStateUnreachable, IDS_CONNSTATE_UNREACHABLE },
{ -1, &s_stConnStateUnknown, IDS_CONNSTATE_UNKNOWN },
};
const CStringMapEntry StatusMap[] =
{
{ TRUE, &s_stStatusEnabled, IDS_STATUS_ENABLED },
{ FALSE, &s_stStatusDisabled, IDS_STATUS_DISABLED },
{ -1, &s_stStatusUnknown, IDS_STATUS_UNKNOWN },
};
const CStringMapEntry UnreachMap[] =
{
{ IDS_ERR_UNREACH_NOT_LOADED, &s_stUnreachNotLoaded, IDS_ERR_UNREACH_NOT_LOADED },
{ IDS_ERR_UNREACH_NO_PORTS, &s_stUnreachNoPorts, IDS_ERR_UNREACH_NO_PORTS } ,
{ IDS_ERR_UNREACH_ADMIN_DISABLED, &s_stUnreachAdminDisabled, IDS_ERR_UNREACH_ADMIN_DISABLED },
{ IDS_ERR_UNREACH_CONNECT_FAILURE, &s_stUnreachConnectFailure, IDS_ERR_UNREACH_CONNECT_FAILURE },
{ IDS_ERR_UNREACH_SERVICE_PAUSED, &s_stUnreachServicePaused, IDS_ERR_UNREACH_SERVICE_PAUSED },
{ IDS_ERR_UNREACH_NOT_RUNNING, &s_stUnreachNotRunning, IDS_ERR_UNREACH_NOT_RUNNING },
{ IDS_ERR_UNREACH_NO_MEDIA_SENSE, &s_stUnreachNoMediaSense, IDS_ERR_UNREACH_NO_MEDIA_SENSE },
{ IDS_ERR_UNREACH_DIALOUT_HOURS_RESTRICTION, &s_stUnreachDialoutHoursRestriction, IDS_ERR_UNREACH_DIALOUT_HOURS_RESTRICTION },
{ -1, &s_stUnreachUnknown, IDS_ERR_UNREACH_UNKNOWN },
};
const CStringMapEntry AdminStatusMap[] =
{
{ MIB_IF_ADMIN_STATUS_UP, &s_stAdminStatusUp, IDS_ADMIN_STATUS_UP },
{ MIB_IF_ADMIN_STATUS_DOWN, &s_stAdminStatusDown, IDS_ADMIN_STATUS_DOWN },
{ MIB_IF_ADMIN_STATUS_TESTING, &s_stAdminStatusTesting, IDS_ADMIN_STATUS_TESTING },
{ -1, &s_stAdminStatusUnknown, IDS_ADMIN_STATUS_UNKNOWN },
};
const CStringMapEntry OperStatusMap[] =
{
{ MIB_IF_OPER_STATUS_NON_OPERATIONAL, &s_stOperStatusNonOperational, IDS_OPER_STATUS_NON_OPERATIONAL },
{ MIB_IF_OPER_STATUS_UNREACHABLE, &s_stOperStatusUnreachable, IDS_OPER_STATUS_UNREACHABLE },
{ MIB_IF_OPER_STATUS_DISCONNECTED, &s_stOperStatusDisconnected, IDS_OPER_STATUS_DISCONNECTED },
{ MIB_IF_OPER_STATUS_CONNECTING, &s_stOperStatusConnecting, IDS_OPER_STATUS_CONNECTING },
{ MIB_IF_OPER_STATUS_CONNECTED, &s_stOperStatusConnected, IDS_OPER_STATUS_CONNECTED },
{ MIB_IF_OPER_STATUS_OPERATIONAL, &s_stOperStatusOperational, IDS_OPER_STATUS_OPERATIONAL },
{ -1, &s_stOperStatusUnknown, IDS_OPER_STATUS_UNKNOWN },
};
const CStringMapEntry EnabledDisabledMap[] =
{
{ TRUE, &s_stEnabled, IDS_ENABLED },
{ FALSE, &s_stDisabled, IDS_DISABLED },
{ -1, &s_stUnknown, IDS_UNKNOWN },
};
/*!--------------------------------------------------------------------------
MapDWORDToCString
Generic mapping of a DWORD to a CString.
Author: KennT
---------------------------------------------------------------------------*/
CString& MapDWORDToCString(DWORD dwType, const CStringMapEntry *pMap)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
const CStringMapEntry *pEntry = pMap;
for (; pEntry->dwType != -1; pEntry++)
{
if (pEntry->dwType == dwType)
break;
}
if (pEntry->pst->IsEmpty())
Verify(pEntry->pst->LoadString(pEntry->ulStringId));
return (*(pEntry->pst));
}
CString& InterfaceTypeToCString(DWORD dwType)
{
return MapDWORDToCString(dwType, IfTypeMap);
}
CString& ConnectionStateToCString(DWORD dwConnState)
{
return MapDWORDToCString(dwConnState, ConnStateMap);
}
CString& StatusToCString(DWORD dwStatus)
{
return MapDWORDToCString(dwStatus, StatusMap);
}
CString& GetUnreachReasonCString(UINT ids)
{
return MapDWORDToCString(ids, UnreachMap);
}
CString& AdminStatusToCString(DWORD dwStatus)
{
return MapDWORDToCString(dwStatus, AdminStatusMap);
}
CString& OperStatusToCString(DWORD dwStatus)
{
return MapDWORDToCString(dwStatus, OperStatusMap);
}
CString& EnabledDisabledToCString(BOOL fEnabled)
{
return MapDWORDToCString(fEnabled, EnabledDisabledMap);
}