STATUS.INC
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:6k
源码类别:

Windows编程

开发平台:

Visual C++

  1. // **************************************************************************
  2. // Copyright (C) 1995 by Microsoft Corporation.
  3. //
  4. //  File: status.inc
  5. //
  6. //  This file is included by most of the samples. It contains a single
  7. //  function that translates an SMS status code into a string.
  8. //
  9. //  Author: Larry A. French
  10. //
  11. // **************************************************************************
  12. // ====================================================================
  13. //
  14. // GetStatusName
  15. //
  16. // This function converts the numeric SMS return code value
  17. // into its mnemonic form.
  18. //
  19. // Parameters:
  20. //  SMS_STATUS stat
  21. //      The SMS return status code.
  22. //
  23. // Returns:
  24. //  const char*
  25. //      A pointer to a constant string containing the memonic name
  26. //      of the status value.
  27. //
  28. // ====================================================================
  29. const char *GetStatusName( SMS_STATUS stat )
  30. {
  31.     // For any status codes not in the following switch
  32.     // statement, the default cause converts it to a
  33.     // decimal value and stores the converted value in
  34.     // "szStatus".  Sixteen bytes should be enough to
  35.     // hold any such value.
  36.     // There should not be any such values.
  37.     //===================================================
  38.     static char szStatus[16];
  39.     const char* pszStat;
  40.     switch(stat) {
  41.     case SMS_OK:
  42.         pszStat = "SMS_OK";
  43.         break;
  44.     case SMS_MORE_DATA:
  45.         pszStat = "SMS_MORE_DATA";
  46.         break;
  47.     case SMS_NO_MORE_DATA:
  48.         pszStat = "SMS_NO_MORE_DATA";
  49.         break;
  50.     case SMS_FOLDER_NO_UPDATE:
  51.         pszStat = "SMS_FOLDER_NO_UPDATE";
  52.         break;
  53.     case SMS_DUPLICATE_CONTAINER_ID:
  54.         pszStat = "SMS_DUPLICATE_CONTAINER_ID";
  55.         break;
  56.     case SMS_DUPLICATE_FOLDER_ID:
  57.         pszStat = "SMS_DUPLICATE_FOLDER_ID";
  58.         break;
  59.     case SMS_DUPLICATE_FILTER_ID:
  60.         pszStat = "SMS_DUPLICATE_FILTER_ID";
  61.         break;
  62.     case SMS_DUPLICATE_FILTER:
  63.         pszStat = "SMS_DUPLICATE_FILTER";
  64.         break;
  65.     case SMS_SCALAR_NO_UPDATE:
  66.         pszStat = "SMS_SCALAR_NO_UPDATE";
  67.         break;
  68.     case SMS_SCALAR_WRONG_TYPE:
  69.         pszStat = "SMS_SCALAR_WRONG_TYPE";
  70.         break;
  71.     case SMS_INVALID_CONTAINER_ID:
  72.         pszStat = "SMS_INVALID_CONTAINER_ID";
  73.         break;
  74.     case SMS_INVALID_FOLDER_ID:
  75.         pszStat = "SMS_INVALID_FOLDER_ID";
  76.         break;
  77.     case SMS_INVALID_FILTER_ID:
  78.         pszStat = "SMS_INVALID_FILTER_ID";
  79.         break;
  80.     case SMS_CONTAINER_NO_UPDATE:
  81.         pszStat = "SMS_CONTAINER_NO_UPDATE";
  82.         break;
  83.     case SMS_PARAMETER_ERROR:
  84.         pszStat = "SMS_PARAMETER_ERROR";
  85.         break;
  86.     case SMS_UNSUPPORTED:
  87.         pszStat = "SMS_UNSUPPORTED";
  88.         break;
  89.     case SMS_NOT_FOUND:
  90.         pszStat = "SMS_NOT_FOUND";
  91.         break;
  92.     case SMS_PARENT_NOT_FOUND:
  93.         pszStat = "SMS_PARENT_NOT_FOUND";
  94.         break;
  95.     case SMS_CANT_DELETE:
  96.         pszStat = "SMS_CANT_DELETE";
  97.         break;
  98.     case SMS_NEW_FOLDER:
  99.         pszStat = "SMS_NEW_FOLDER";
  100.         break;
  101.     case SMS_FOLDER_LINKED:
  102.         pszStat = "SMS_FOLDER_LINKED";
  103.         break;
  104.     case SMS_RANGE_ERROR:
  105.         pszStat = "SMS_RANGE_ERROR";
  106.         break;
  107.     case SMS_CONTAINER_NOT_POPULATED:
  108.         pszStat = "SMS_CONTAINER_NOT_POPULATED";
  109.         break;
  110.     case SMS_CONTAINER_POPULATED:
  111.         pszStat = "SMS_CONTAINER_POPULATED";
  112.         break;
  113.     case SMS_FILTER_NOT_PERSISTENT:
  114.         pszStat = "SMS_FILTER_NOT_PERSISTENT";
  115.         break;
  116.     case SMS_INVALID_CONNECTION_HANDLE:
  117.         pszStat = "SMS_FILTER_NOT_PERSISTENT";
  118.         break;
  119.     case SMS_INVALID_FILTER_TYPE:
  120.         pszStat = "SMS_INVALID_FILTER_TYPE";
  121.         break;
  122.     case SMS_ERROR:
  123.         pszStat = "SMS_ERROR";
  124.         break;
  125.     case SMS_SQL_ERROR:
  126.         pszStat = "SMS_SQL_ERROR";
  127.         break;
  128.     case SMS_INVALID_DATASOURCE:
  129.         pszStat = "SMS_INVALID_DATA_SOURCE";
  130.         break;
  131.     case SMS_INVALID_HANDLE:
  132.         pszStat = "SMS_INVALID_HANDLE";
  133.         break;
  134.     case SMS_INVALID_FOLDER_TYPE:
  135.         pszStat = "SMS_INVALID_FOLDER_TYPE";
  136.         break;
  137.     case SMS_CONNECT_FAILED:
  138.         pszStat = "SMS_CONNECT_FAILED";
  139.         break;
  140.     case SMS_NO_CREATE:
  141.         pszStat = "SMS_NO_CREATE";
  142.         break;
  143.     case SMS_FOLDER_NOT_MODIFIED:
  144.         pszStat = "SMS_FOLDER_NOT_MODIFIED";
  145.         break;
  146.     case SMS_INCORRECT_FOLDER_TYPE:
  147.         pszStat = "SMS_INCORRECT_FOLDER_TYPE";
  148.         break;
  149.     case SMS_INVALID_PARAMETER:
  150.         pszStat = "SMS_INVALID_PARAMETER";
  151.         break;
  152.     case SMS_EMPTY:
  153.         pszStat = "SMS_EMPTY";
  154.         break;
  155.     case SMS_NOT_READY:
  156.         pszStat = "SMS_NOT_READY";
  157.         break;
  158.     case SMS_PARENT_ALREADY_COMMITTED:
  159.         pszStat = "SMS_PARENT_ALREADY_COMMITTED";
  160.         break;
  161.     case SMS_FILTER_NO_MODIFY:
  162.         pszStat = "SMS_FILTER_NO_MODIFY";
  163.         break;
  164.     case SMS_ALREADY_CONNECTED:
  165.         pszStat = "SMS_ALREADY_CONNECTED";
  166.         break;
  167.     case SMS_COMMIT_FAILED:
  168.         pszStat = "SMS_COMMIT_FAILED";
  169.         break;
  170.     case SMS_FOLDER_ALREADY_DELETED:
  171.         pszStat = "SMS_FOLDER_ALREADY_DELETED";
  172.         break;
  173.     default:
  174.         sprintf(szStatus, "%ld", stat);
  175.         pszStat = szStatus;
  176.         break;
  177.     }
  178.     return( pszStat );
  179. }
  180. // ====================================================================
  181. // DisplaySmsError
  182. //
  183. // Convert the SMS status value to a human-readable form and display it
  184. // along with an error message string.
  185. //
  186. // Input:
  187. //      const char* pszMessage
  188. //              Pointer to the error message string
  189. //
  190. //      SMS_STATUS stat
  191. //              A value returned from the SMS api.
  192. //
  193. // Returns: Nothing.
  194. //
  195. // ====================================================================
  196. void DisplaySmsError(const char* pszMessage, SMS_STATUS stat)
  197. {
  198.     const char* pszStat = GetStatusName(stat);
  199.     printf("%s: (status = %ld :  %s)n", pszMessage, stat, pszStat);
  200. }
  201. /* EOF: status.inc */