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.

116 lines
2.9 KiB

  1. //+---------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 1992 - 1996.
  5. //
  6. // File: layouter.cxx
  7. //
  8. // Contents: Error functions
  9. //
  10. // Classes:
  11. //
  12. // Functions:
  13. //
  14. // History: 21-Feb-96 SusiA Created
  15. //
  16. //----------------------------------------------------------------------------
  17. #include "layouthd.cxx"
  18. #pragma hdrstop
  19. //+---------------------------------------------------------------------------
  20. //
  21. // Function: Win32ErrorToScode, public
  22. //
  23. // Synopsis: Map a Win32 error into a corresponding scode, remapping
  24. // into Facility_Storage if appropriate.
  25. //
  26. // Arguments: [dwErr] -- Win32 error to map
  27. //
  28. // Returns: Appropriate scode
  29. //
  30. // History: 22-Sep-93 PhilipLa Created
  31. //
  32. //----------------------------------------------------------------------------
  33. SCODE Win32ErrorToScode(DWORD dwErr)
  34. {
  35. layAssert((dwErr != NO_ERROR) &&
  36. "Win32ErrorToScode called on NO_ERROR");
  37. SCODE sc = STG_E_UNKNOWN;
  38. switch (dwErr)
  39. {
  40. case ERROR_INVALID_FUNCTION:
  41. sc = STG_E_INVALIDFUNCTION;
  42. break;
  43. case ERROR_FILE_NOT_FOUND:
  44. sc = STG_E_FILENOTFOUND;
  45. break;
  46. case ERROR_PATH_NOT_FOUND:
  47. sc = STG_E_PATHNOTFOUND;
  48. break;
  49. case ERROR_TOO_MANY_OPEN_FILES:
  50. sc = STG_E_TOOMANYOPENFILES;
  51. break;
  52. case ERROR_ACCESS_DENIED:
  53. case ERROR_NETWORK_ACCESS_DENIED:
  54. sc = STG_E_ACCESSDENIED;
  55. break;
  56. case ERROR_INVALID_HANDLE:
  57. sc = STG_E_INVALIDHANDLE;
  58. break;
  59. case ERROR_NOT_ENOUGH_MEMORY:
  60. sc = STG_E_INSUFFICIENTMEMORY;
  61. break;
  62. case ERROR_NO_MORE_FILES:
  63. sc = STG_E_NOMOREFILES;
  64. break;
  65. case ERROR_WRITE_PROTECT:
  66. sc = STG_E_DISKISWRITEPROTECTED;
  67. break;
  68. case ERROR_SEEK:
  69. sc = STG_E_SEEKERROR;
  70. break;
  71. case ERROR_WRITE_FAULT:
  72. sc = STG_E_WRITEFAULT;
  73. break;
  74. case ERROR_READ_FAULT:
  75. sc = STG_E_READFAULT;
  76. break;
  77. case ERROR_SHARING_VIOLATION:
  78. sc = STG_E_SHAREVIOLATION;
  79. break;
  80. case ERROR_LOCK_VIOLATION:
  81. sc = STG_E_LOCKVIOLATION;
  82. break;
  83. case ERROR_HANDLE_DISK_FULL:
  84. case ERROR_DISK_FULL:
  85. sc = STG_E_MEDIUMFULL;
  86. break;
  87. case ERROR_FILE_EXISTS:
  88. case ERROR_ALREADY_EXISTS:
  89. sc = STG_E_FILEALREADYEXISTS;
  90. break;
  91. case ERROR_INVALID_PARAMETER:
  92. sc = STG_E_INVALIDPARAMETER;
  93. break;
  94. case ERROR_INVALID_NAME:
  95. case ERROR_BAD_PATHNAME:
  96. case ERROR_FILENAME_EXCED_RANGE:
  97. sc = STG_E_INVALIDNAME;
  98. break;
  99. case ERROR_INVALID_FLAGS:
  100. sc = STG_E_INVALIDFLAG;
  101. break;
  102. default:
  103. sc = WIN32_SCODE(dwErr);
  104. break;
  105. }
  106. return sc;
  107. }