]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/boost/winapi/error_handling.hpp
update sources to v12.2.3
[ceph.git] / ceph / src / boost / boost / winapi / error_handling.hpp
CommitLineData
b32b8144
FG
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_
7c673cae
FG
12
13#include <stdarg.h>
b32b8144
FG
14#include <boost/winapi/basic_types.hpp>
15#include <boost/winapi/get_last_error.hpp>
7c673cae
FG
16
17#ifdef BOOST_HAS_PRAGMA_ONCE
18#pragma once
19#endif
20
21#if !defined( BOOST_USE_WINDOWS_H )
22extern "C" {
23#if !defined( BOOST_NO_ANSI_APIS )
b32b8144 24BOOST_SYMBOL_IMPORT boost::winapi::DWORD_ WINAPI
7c673cae 25FormatMessageA(
b32b8144
FG
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,
7c673cae
FG
32 va_list *Arguments);
33#endif
34
b32b8144 35BOOST_SYMBOL_IMPORT boost::winapi::DWORD_ WINAPI
7c673cae 36FormatMessageW(
b32b8144
FG
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,
7c673cae
FG
43 va_list *Arguments);
44
b32b8144
FG
45#if BOOST_WINAPI_PARTITION_DESKTOP || BOOST_WINAPI_PARTITION_SYSTEM
46BOOST_SYMBOL_IMPORT boost::winapi::UINT_ WINAPI
47SetErrorMode(boost::winapi::UINT_ uMode);
48#endif
49} // extern "C"
7c673cae
FG
50#endif
51
52namespace boost {
7c673cae
FG
53namespace winapi {
54
55#if defined( BOOST_USE_WINDOWS_H )
56
b32b8144 57#if BOOST_WINAPI_PARTITION_APP_SYSTEM
7c673cae 58const DWORD_ FORMAT_MESSAGE_ALLOCATE_BUFFER_= FORMAT_MESSAGE_ALLOCATE_BUFFER;
b32b8144
FG
59#endif
60
7c673cae
FG
61const DWORD_ FORMAT_MESSAGE_IGNORE_INSERTS_= FORMAT_MESSAGE_IGNORE_INSERTS;
62const DWORD_ FORMAT_MESSAGE_FROM_STRING_= FORMAT_MESSAGE_FROM_STRING;
63const DWORD_ FORMAT_MESSAGE_FROM_HMODULE_= FORMAT_MESSAGE_FROM_HMODULE;
64const DWORD_ FORMAT_MESSAGE_FROM_SYSTEM_= FORMAT_MESSAGE_FROM_SYSTEM;
65const DWORD_ FORMAT_MESSAGE_ARGUMENT_ARRAY_= FORMAT_MESSAGE_ARGUMENT_ARRAY;
66const DWORD_ FORMAT_MESSAGE_MAX_WIDTH_MASK_= FORMAT_MESSAGE_MAX_WIDTH_MASK;
67
68const WORD_ LANG_NEUTRAL_= LANG_NEUTRAL;
69const WORD_ LANG_INVARIANT_= LANG_INVARIANT;
70
71const WORD_ SUBLANG_DEFAULT_= SUBLANG_DEFAULT; // user default
72
b32b8144 73BOOST_FORCEINLINE BOOST_CONSTEXPR WORD_ MAKELANGID_(WORD_ p, WORD_ s) BOOST_NOEXCEPT
7c673cae
FG
74{
75 return MAKELANGID(p,s);
76}
77
b32b8144 78#if BOOST_WINAPI_PARTITION_DESKTOP
7c673cae
FG
79const DWORD_ SEM_FAILCRITICALERRORS_ = SEM_FAILCRITICALERRORS;
80const DWORD_ SEM_NOGPFAULTERRORBOX_ = SEM_NOGPFAULTERRORBOX;
81const DWORD_ SEM_NOALIGNMENTFAULTEXCEPT_ = SEM_NOALIGNMENTFAULTEXCEPT;
82const DWORD_ SEM_NOOPENFILEERRORBOX_ = SEM_NOOPENFILEERRORBOX;
b32b8144 83#endif
7c673cae
FG
84
85#else
86
b32b8144 87#if BOOST_WINAPI_PARTITION_APP_SYSTEM
7c673cae 88const DWORD_ FORMAT_MESSAGE_ALLOCATE_BUFFER_= 0x00000100;
b32b8144 89#endif
7c673cae
FG
90const DWORD_ FORMAT_MESSAGE_IGNORE_INSERTS_= 0x00000200;
91const DWORD_ FORMAT_MESSAGE_FROM_STRING_= 0x00000400;
92const DWORD_ FORMAT_MESSAGE_FROM_HMODULE_= 0x00000800;
93const DWORD_ FORMAT_MESSAGE_FROM_SYSTEM_= 0x00001000;
94const DWORD_ FORMAT_MESSAGE_ARGUMENT_ARRAY_= 0x00002000;
95const DWORD_ FORMAT_MESSAGE_MAX_WIDTH_MASK_= 0x000000FF;
96
97const WORD_ LANG_NEUTRAL_= 0x00;
98const WORD_ LANG_INVARIANT_= 0x7f;
99
100const WORD_ SUBLANG_DEFAULT_= 0x01; // user default
101
b32b8144 102BOOST_FORCEINLINE BOOST_CONSTEXPR WORD_ MAKELANGID_(WORD_ p, WORD_ s) BOOST_NOEXCEPT
7c673cae
FG
103{
104 return (WORD_)((((WORD_)(s)) << 10) | (WORD_)(p));
105}
106
b32b8144 107#if BOOST_WINAPI_PARTITION_DESKTOP
7c673cae
FG
108const DWORD_ SEM_FAILCRITICALERRORS_ = 0x0001;
109const DWORD_ SEM_NOGPFAULTERRORBOX_ = 0x0002;
110const DWORD_ SEM_NOALIGNMENTFAULTEXCEPT_ = 0x0004;
111const DWORD_ SEM_NOOPENFILEERRORBOX_ = 0x8000;
b32b8144 112#endif
7c673cae
FG
113
114#endif
115
116#if !defined( BOOST_NO_ANSI_APIS )
117using ::FormatMessageA;
118#endif
119using ::FormatMessageW;
b32b8144 120#if BOOST_WINAPI_PARTITION_DESKTOP || BOOST_WINAPI_PARTITION_SYSTEM
7c673cae 121using ::SetErrorMode;
b32b8144 122#endif
7c673cae
FG
123
124#if !defined( BOOST_NO_ANSI_APIS )
125BOOST_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
138BOOST_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
7c673cae
FG
150}
151}
152
b32b8144 153#endif // BOOST_WINAPI_ERROR_HANDLING_HPP_INCLUDED_