1
// boost/system/windows_error.hpp ------------------------------------------//
3
// Copyright Beman Dawes 2007
5
// Distributed under the Boost Software License, Version 1.0. (See accompanying
6
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
8
// See library home page at http://www.boost.org/libs/system
10
#ifndef BOOST_WINDOWS_ERROR_HPP
11
#define BOOST_WINDOWS_ERROR_HPP
13
// This header is effectively empty for compiles on operating systems where
14
// it is not applicable.
16
#include <boost/system/config.hpp>
18
#ifdef BOOST_WINDOWS_API
20
#include <boost/system/error_code.hpp>
28
// Microsoft Windows ---------------------------------------------------//
30
// To construct an error_code after a API error:
32
// error_code( ::GetLastError(), system_category() )
34
namespace windows_error
36
enum windows_error_code
39
// These names and values are based on Windows winerror.h
40
invalid_function = ERROR_INVALID_FUNCTION,
41
file_not_found = ERROR_FILE_NOT_FOUND,
42
path_not_found = ERROR_PATH_NOT_FOUND,
43
too_many_open_files = ERROR_TOO_MANY_OPEN_FILES,
44
access_denied = ERROR_ACCESS_DENIED,
45
invalid_handle = ERROR_INVALID_HANDLE,
46
arena_trashed = ERROR_ARENA_TRASHED,
47
not_enough_memory = ERROR_NOT_ENOUGH_MEMORY,
48
invalid_block = ERROR_INVALID_BLOCK,
49
bad_environment = ERROR_BAD_ENVIRONMENT,
50
bad_format = ERROR_BAD_FORMAT,
51
invalid_access = ERROR_INVALID_ACCESS,
52
outofmemory = ERROR_OUTOFMEMORY,
53
invalid_drive = ERROR_INVALID_DRIVE,
54
current_directory = ERROR_CURRENT_DIRECTORY,
55
not_same_device = ERROR_NOT_SAME_DEVICE,
56
no_more_files = ERROR_NO_MORE_FILES,
57
write_protect = ERROR_WRITE_PROTECT,
58
bad_unit = ERROR_BAD_UNIT,
59
not_ready = ERROR_NOT_READY,
60
bad_command = ERROR_BAD_COMMAND,
62
bad_length = ERROR_BAD_LENGTH,
64
not_dos_disk = ERROR_NOT_DOS_DISK,
65
sector_not_found = ERROR_SECTOR_NOT_FOUND,
66
out_of_paper = ERROR_OUT_OF_PAPER,
67
write_fault = ERROR_WRITE_FAULT,
68
read_fault = ERROR_READ_FAULT,
69
gen_failure = ERROR_GEN_FAILURE,
70
sharing_violation = ERROR_SHARING_VIOLATION,
71
lock_violation = ERROR_LOCK_VIOLATION,
72
wrong_disk = ERROR_WRONG_DISK,
73
sharing_buffer_exceeded = ERROR_SHARING_BUFFER_EXCEEDED,
74
handle_eof = ERROR_HANDLE_EOF,
75
handle_disk_full= ERROR_HANDLE_DISK_FULL,
76
rem_not_list = ERROR_REM_NOT_LIST,
77
dup_name = ERROR_DUP_NAME,
78
bad_net_path = ERROR_BAD_NETPATH,
79
network_busy = ERROR_NETWORK_BUSY,
81
file_exists = ERROR_FILE_EXISTS,
82
cannot_make = ERROR_CANNOT_MAKE,
84
broken_pipe = ERROR_BROKEN_PIPE,
85
open_failed = ERROR_OPEN_FAILED,
86
buffer_overflow = ERROR_BUFFER_OVERFLOW,
87
disk_full= ERROR_DISK_FULL,
89
lock_failed = ERROR_LOCK_FAILED,
91
cancel_violation = ERROR_CANCEL_VIOLATION,
92
already_exists = ERROR_ALREADY_EXISTS
95
// TODO: add more Windows errors
98
} // namespace windows
100
# ifndef BOOST_SYSTEM_NO_DEPRECATED
101
namespace windows = windows_error;
104
template<> struct is_error_code_enum<windows_error::windows_error_code>
105
{ static const bool value = true; };
107
namespace windows_error
109
inline error_code make_error_code( windows_error_code e )
110
{ return error_code( e, system_category() ); }
113
} // namespace system
116
#endif // BOOST_WINDOWS_API
118
#endif // BOOST_WINDOWS_ERROR_HPP