Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

188 lines
6.5 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. //
  5. // Copyright (C) Microsoft Corporation, 1997 - 1999
  6. //
  7. // File: strmap.cpp
  8. //
  9. //--------------------------------------------------------------------------
  10. #include "stdafx.h"
  11. #include "mprapi.h"
  12. #include "ipifcons.h" // MIB constants
  13. #include "strmap.h"
  14. static CString s_stUnknown;
  15. static CString s_stIfTypeClient;
  16. static CString s_stIfTypeHomeRouter;
  17. static CString s_stIfTypeFullRouter;
  18. static CString s_stIfTypeDedicated;
  19. static CString s_stIfTypeInternal;
  20. static CString s_stIfTypeUnknown;
  21. static CString s_stIfTypeLoopback;
  22. static CString s_stIfTypeTunnel1;
  23. static CString s_stConnStateConnected;
  24. static CString s_stConnStateConnecting;
  25. static CString s_stConnStateDisconnected;
  26. static CString s_stConnStateUnreachable;
  27. static CString s_stConnStateUnknown;
  28. static CString s_stStatusEnabled;
  29. static CString s_stStatusDisabled;
  30. static CString s_stStatusUnknown;
  31. static CString s_stUnreachNotLoaded;
  32. static CString s_stUnreachNoPorts;
  33. static CString s_stUnreachAdminDisabled;
  34. static CString s_stUnreachConnectFailure;
  35. static CString s_stUnreachServicePaused;
  36. static CString s_stUnreachNotRunning;
  37. static CString s_stUnreachNoMediaSense;
  38. static CString s_stUnreachDialoutHoursRestriction;
  39. static CString s_stUnreachUnknown;
  40. static CString s_stAdminStatusUp;
  41. static CString s_stAdminStatusDown;
  42. static CString s_stAdminStatusTesting;
  43. static CString s_stAdminStatusUnknown;
  44. static CString s_stOperStatusNonOperational;
  45. static CString s_stOperStatusUnreachable;
  46. static CString s_stOperStatusDisconnected;
  47. static CString s_stOperStatusConnecting;
  48. static CString s_stOperStatusConnected;
  49. static CString s_stOperStatusOperational;
  50. static CString s_stOperStatusUnknown;
  51. static CString s_stEnabled;
  52. static CString s_stDisabled;
  53. const CStringMapEntry IfTypeMap[] =
  54. {
  55. { ROUTER_IF_TYPE_CLIENT, &s_stIfTypeClient, IDS_IFTYPE_CLIENT },
  56. { ROUTER_IF_TYPE_HOME_ROUTER, &s_stIfTypeHomeRouter, IDS_IFTYPE_HOMEROUTER },
  57. { ROUTER_IF_TYPE_FULL_ROUTER, &s_stIfTypeFullRouter, IDS_IFTYPE_FULLROUTER },
  58. { ROUTER_IF_TYPE_DEDICATED, &s_stIfTypeDedicated, IDS_IFTYPE_DEDICATED },
  59. { ROUTER_IF_TYPE_INTERNAL, &s_stIfTypeInternal, IDS_IFTYPE_INTERNAL },
  60. { ROUTER_IF_TYPE_LOOPBACK, &s_stIfTypeLoopback, IDS_IFTYPE_LOOPBACK },
  61. { ROUTER_IF_TYPE_TUNNEL1, &s_stIfTypeTunnel1, IDS_IFTYPE_TUNNEL1 },
  62. { -1, &s_stIfTypeUnknown, IDS_IFTYPE_UNKNOWN },
  63. };
  64. const CStringMapEntry ConnStateMap[] =
  65. {
  66. { ROUTER_IF_STATE_CONNECTED, &s_stConnStateConnected, IDS_CONNSTATE_CONNECTED },
  67. { ROUTER_IF_STATE_CONNECTING, &s_stConnStateConnecting, IDS_CONNSTATE_CONNECTING },
  68. { ROUTER_IF_STATE_DISCONNECTED, &s_stConnStateDisconnected, IDS_CONNSTATE_DISCONNECTED },
  69. { ROUTER_IF_STATE_UNREACHABLE, &s_stConnStateUnreachable, IDS_CONNSTATE_UNREACHABLE },
  70. { -1, &s_stConnStateUnknown, IDS_CONNSTATE_UNKNOWN },
  71. };
  72. const CStringMapEntry StatusMap[] =
  73. {
  74. { TRUE, &s_stStatusEnabled, IDS_STATUS_ENABLED },
  75. { FALSE, &s_stStatusDisabled, IDS_STATUS_DISABLED },
  76. { -1, &s_stStatusUnknown, IDS_STATUS_UNKNOWN },
  77. };
  78. const CStringMapEntry UnreachMap[] =
  79. {
  80. { IDS_ERR_UNREACH_NOT_LOADED, &s_stUnreachNotLoaded, IDS_ERR_UNREACH_NOT_LOADED },
  81. { IDS_ERR_UNREACH_NO_PORTS, &s_stUnreachNoPorts, IDS_ERR_UNREACH_NO_PORTS } ,
  82. { IDS_ERR_UNREACH_ADMIN_DISABLED, &s_stUnreachAdminDisabled, IDS_ERR_UNREACH_ADMIN_DISABLED },
  83. { IDS_ERR_UNREACH_CONNECT_FAILURE, &s_stUnreachConnectFailure, IDS_ERR_UNREACH_CONNECT_FAILURE },
  84. { IDS_ERR_UNREACH_SERVICE_PAUSED, &s_stUnreachServicePaused, IDS_ERR_UNREACH_SERVICE_PAUSED },
  85. { IDS_ERR_UNREACH_NOT_RUNNING, &s_stUnreachNotRunning, IDS_ERR_UNREACH_NOT_RUNNING },
  86. { IDS_ERR_UNREACH_NO_MEDIA_SENSE, &s_stUnreachNoMediaSense, IDS_ERR_UNREACH_NO_MEDIA_SENSE },
  87. { IDS_ERR_UNREACH_DIALOUT_HOURS_RESTRICTION, &s_stUnreachDialoutHoursRestriction, IDS_ERR_UNREACH_DIALOUT_HOURS_RESTRICTION },
  88. { -1, &s_stUnreachUnknown, IDS_ERR_UNREACH_UNKNOWN },
  89. };
  90. const CStringMapEntry AdminStatusMap[] =
  91. {
  92. { MIB_IF_ADMIN_STATUS_UP, &s_stAdminStatusUp, IDS_ADMIN_STATUS_UP },
  93. { MIB_IF_ADMIN_STATUS_DOWN, &s_stAdminStatusDown, IDS_ADMIN_STATUS_DOWN },
  94. { MIB_IF_ADMIN_STATUS_TESTING, &s_stAdminStatusTesting, IDS_ADMIN_STATUS_TESTING },
  95. { -1, &s_stAdminStatusUnknown, IDS_ADMIN_STATUS_UNKNOWN },
  96. };
  97. const CStringMapEntry OperStatusMap[] =
  98. {
  99. { MIB_IF_OPER_STATUS_NON_OPERATIONAL, &s_stOperStatusNonOperational, IDS_OPER_STATUS_NON_OPERATIONAL },
  100. { MIB_IF_OPER_STATUS_UNREACHABLE, &s_stOperStatusUnreachable, IDS_OPER_STATUS_UNREACHABLE },
  101. { MIB_IF_OPER_STATUS_DISCONNECTED, &s_stOperStatusDisconnected, IDS_OPER_STATUS_DISCONNECTED },
  102. { MIB_IF_OPER_STATUS_CONNECTING, &s_stOperStatusConnecting, IDS_OPER_STATUS_CONNECTING },
  103. { MIB_IF_OPER_STATUS_CONNECTED, &s_stOperStatusConnected, IDS_OPER_STATUS_CONNECTED },
  104. { MIB_IF_OPER_STATUS_OPERATIONAL, &s_stOperStatusOperational, IDS_OPER_STATUS_OPERATIONAL },
  105. { -1, &s_stOperStatusUnknown, IDS_OPER_STATUS_UNKNOWN },
  106. };
  107. const CStringMapEntry EnabledDisabledMap[] =
  108. {
  109. { TRUE, &s_stEnabled, IDS_ENABLED },
  110. { FALSE, &s_stDisabled, IDS_DISABLED },
  111. { -1, &s_stUnknown, IDS_UNKNOWN },
  112. };
  113. /*!--------------------------------------------------------------------------
  114. MapDWORDToCString
  115. Generic mapping of a DWORD to a CString.
  116. Author: KennT
  117. ---------------------------------------------------------------------------*/
  118. CString& MapDWORDToCString(DWORD dwType, const CStringMapEntry *pMap)
  119. {
  120. AFX_MANAGE_STATE(AfxGetStaticModuleState());
  121. const CStringMapEntry *pEntry = pMap;
  122. for (; pEntry->dwType != -1; pEntry++)
  123. {
  124. if (pEntry->dwType == dwType)
  125. break;
  126. }
  127. if (pEntry->pst->IsEmpty())
  128. Verify(pEntry->pst->LoadString(pEntry->ulStringId));
  129. return (*(pEntry->pst));
  130. }
  131. CString& InterfaceTypeToCString(DWORD dwType)
  132. {
  133. return MapDWORDToCString(dwType, IfTypeMap);
  134. }
  135. CString& ConnectionStateToCString(DWORD dwConnState)
  136. {
  137. return MapDWORDToCString(dwConnState, ConnStateMap);
  138. }
  139. CString& StatusToCString(DWORD dwStatus)
  140. {
  141. return MapDWORDToCString(dwStatus, StatusMap);
  142. }
  143. CString& GetUnreachReasonCString(UINT ids)
  144. {
  145. return MapDWORDToCString(ids, UnreachMap);
  146. }
  147. CString& AdminStatusToCString(DWORD dwStatus)
  148. {
  149. return MapDWORDToCString(dwStatus, AdminStatusMap);
  150. }
  151. CString& OperStatusToCString(DWORD dwStatus)
  152. {
  153. return MapDWORDToCString(dwStatus, OperStatusMap);
  154. }
  155. CString& EnabledDisabledToCString(BOOL fEnabled)
  156. {
  157. return MapDWORDToCString(fEnabled, EnabledDisabledMap);
  158. }