]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/boost/winapi/error_handling.hpp
update sources to v12.2.3
[ceph.git] / ceph / src / boost / boost / winapi / error_handling.hpp
1 /*
2 * Copyright 2010 Vicente J. Botet Escriba
3 * Copyright 2015 Andrey Semashev
4 * Copyright 2016 Jorge Lodos
5 *
6 * Distributed under the Boost Software License, Version 1.0.
7 * See http://www.boost.org/LICENSE_1_0.txt
8 */
9
10 #ifndef BOOST_WINAPI_ERROR_HANDLING_HPP_INCLUDED_
11 #define BOOST_WINAPI_ERROR_HANDLING_HPP_INCLUDED_
12
13 #include <stdarg.h>
14 #include <boost/winapi/basic_types.hpp>
15 #include <boost/winapi/get_last_error.hpp>
16
17 #ifdef BOOST_HAS_PRAGMA_ONCE
18 #pragma once
19 #endif
20
21 #if !defined( BOOST_USE_WINDOWS_H )
22 extern "C" {
23 #if !defined( BOOST_NO_ANSI_APIS )
24 BOOST_SYMBOL_IMPORT boost::winapi::DWORD_ WINAPI
25 FormatMessageA(
26 boost::winapi::DWORD_ dwFlags,
27 boost::winapi::LPCVOID_ lpSource,
28 boost::winapi::DWORD_ dwMessageId,
29 boost::winapi::DWORD_ dwLanguageId,
30 boost::winapi::LPSTR_ lpBuffer,
31 boost::winapi::DWORD_ nSize,
32 va_list *Arguments);
33 #endif
34
35 BOOST_SYMBOL_IMPORT boost::winapi::DWORD_ WINAPI
36 FormatMessageW(
37 boost::winapi::DWORD_ dwFlags,
38 boost::winapi::LPCVOID_ lpSource,
39 boost::winapi::DWORD_ dwMessageId,
40 boost::winapi::DWORD_ dwLanguageId,
41 boost::winapi::LPWSTR_ lpBuffer,
42 boost::winapi::DWORD_ nSize,
43 va_list *Arguments);
44
45 #if BOOST_WINAPI_PARTITION_DESKTOP || BOOST_WINAPI_PARTITION_SYSTEM
46 BOOST_SYMBOL_IMPORT boost::winapi::UINT_ WINAPI
47 SetErrorMode(boost::winapi::UINT_ uMode);
48 #endif
49 } // extern "C"
50 #endif
51
52 namespace boost {
53 namespace winapi {
54
55 #if defined( BOOST_USE_WINDOWS_H )
56
57 #if BOOST_WINAPI_PARTITION_APP_SYSTEM
58 const DWORD_ FORMAT_MESSAGE_ALLOCATE_BUFFER_= FORMAT_MESSAGE_ALLOCATE_BUFFER;
59 #endif
60
61 const DWORD_ FORMAT_MESSAGE_IGNORE_INSERTS_= FORMAT_MESSAGE_IGNORE_INSERTS;
62 const DWORD_ FORMAT_MESSAGE_FROM_STRING_= FORMAT_MESSAGE_FROM_STRING;
63 const DWORD_ FORMAT_MESSAGE_FROM_HMODULE_= FORMAT_MESSAGE_FROM_HMODULE;
64 const DWORD_ FORMAT_MESSAGE_FROM_SYSTEM_= FORMAT_MESSAGE_FROM_SYSTEM;
65 const DWORD_ FORMAT_MESSAGE_ARGUMENT_ARRAY_= FORMAT_MESSAGE_ARGUMENT_ARRAY;
66 const DWORD_ FORMAT_MESSAGE_MAX_WIDTH_MASK_= FORMAT_MESSAGE_MAX_WIDTH_MASK;
67
68 const WORD_ LANG_NEUTRAL_= LANG_NEUTRAL;
69 const WORD_ LANG_INVARIANT_= LANG_INVARIANT;
70
71 const WORD_ SUBLANG_DEFAULT_= SUBLANG_DEFAULT; // user default
72
73 BOOST_FORCEINLINE BOOST_CONSTEXPR WORD_ MAKELANGID_(WORD_ p, WORD_ s) BOOST_NOEXCEPT
74 {
75 return MAKELANGID(p,s);
76 }
77
78 #if BOOST_WINAPI_PARTITION_DESKTOP
79 const DWORD_ SEM_FAILCRITICALERRORS_ = SEM_FAILCRITICALERRORS;
80 const DWORD_ SEM_NOGPFAULTERRORBOX_ = SEM_NOGPFAULTERRORBOX;
81 const DWORD_ SEM_NOALIGNMENTFAULTEXCEPT_ = SEM_NOALIGNMENTFAULTEXCEPT;
82 const DWORD_ SEM_NOOPENFILEERRORBOX_ = SEM_NOOPENFILEERRORBOX;
83 #endif
84
85 #else
86
87 #if BOOST_WINAPI_PARTITION_APP_SYSTEM
88 const DWORD_ FORMAT_MESSAGE_ALLOCATE_BUFFER_= 0x00000100;
89 #endif
90 const DWORD_ FORMAT_MESSAGE_IGNORE_INSERTS_= 0x00000200;
91 const DWORD_ FORMAT_MESSAGE_FROM_STRING_= 0x00000400;
92 const DWORD_ FORMAT_MESSAGE_FROM_HMODULE_= 0x00000800;
93 const DWORD_ FORMAT_MESSAGE_FROM_SYSTEM_= 0x00001000;
94 const DWORD_ FORMAT_MESSAGE_ARGUMENT_ARRAY_= 0x00002000;
95 const DWORD_ FORMAT_MESSAGE_MAX_WIDTH_MASK_= 0x000000FF;
96
97 const WORD_ LANG_NEUTRAL_= 0x00;
98 const WORD_ LANG_INVARIANT_= 0x7f;
99
100 const WORD_ SUBLANG_DEFAULT_= 0x01; // user default
101
102 BOOST_FORCEINLINE BOOST_CONSTEXPR WORD_ MAKELANGID_(WORD_ p, WORD_ s) BOOST_NOEXCEPT
103 {
104 return (WORD_)((((WORD_)(s)) << 10) | (WORD_)(p));
105 }
106
107 #if BOOST_WINAPI_PARTITION_DESKTOP
108 const DWORD_ SEM_FAILCRITICALERRORS_ = 0x0001;
109 const DWORD_ SEM_NOGPFAULTERRORBOX_ = 0x0002;
110 const DWORD_ SEM_NOALIGNMENTFAULTEXCEPT_ = 0x0004;
111 const DWORD_ SEM_NOOPENFILEERRORBOX_ = 0x8000;
112 #endif
113
114 #endif
115
116 #if !defined( BOOST_NO_ANSI_APIS )
117 using ::FormatMessageA;
118 #endif
119 using ::FormatMessageW;
120 #if BOOST_WINAPI_PARTITION_DESKTOP || BOOST_WINAPI_PARTITION_SYSTEM
121 using ::SetErrorMode;
122 #endif
123
124 #if !defined( BOOST_NO_ANSI_APIS )
125 BOOST_FORCEINLINE DWORD_ format_message(
126 DWORD_ dwFlags,
127 LPCVOID_ lpSource,
128 DWORD_ dwMessageId,
129 DWORD_ dwLanguageId,
130 LPSTR_ lpBuffer,
131 DWORD_ nSize,
132 va_list *Arguments)
133 {
134 return ::FormatMessageA(dwFlags, lpSource, dwMessageId, dwLanguageId, lpBuffer, nSize, Arguments);
135 }
136 #endif
137
138 BOOST_FORCEINLINE DWORD_ format_message(
139 DWORD_ dwFlags,
140 LPCVOID_ lpSource,
141 DWORD_ dwMessageId,
142 DWORD_ dwLanguageId,
143 LPWSTR_ lpBuffer,
144 DWORD_ nSize,
145 va_list *Arguments)
146 {
147 return ::FormatMessageW(dwFlags, lpSource, dwMessageId, dwLanguageId, lpBuffer, nSize, Arguments);
148 }
149
150 }
151 }
152
153 #endif // BOOST_WINAPI_ERROR_HANDLING_HPP_INCLUDED_