]>
Commit | Line | Data |
---|---|---|
b32b8144 FG |
1 | /* |
2 | * Copyright 2016 Andrey Semashev | |
3 | * | |
4 | * Distributed under the Boost Software License, Version 1.0. | |
5 | * See http://www.boost.org/LICENSE_1_0.txt | |
6 | */ | |
7c673cae | 7 | |
b32b8144 FG |
8 | #ifndef BOOST_WINAPI_CHARACTER_CODE_CONVERSION_HPP_INCLUDED_ |
9 | #define BOOST_WINAPI_CHARACTER_CODE_CONVERSION_HPP_INCLUDED_ | |
7c673cae | 10 | |
b32b8144 | 11 | #include <boost/winapi/basic_types.hpp> |
20effc67 | 12 | #include <boost/winapi/detail/header.hpp> |
7c673cae FG |
13 | |
14 | #ifdef BOOST_HAS_PRAGMA_ONCE | |
15 | #pragma once | |
16 | #endif | |
17 | ||
18 | #if !defined( BOOST_USE_WINDOWS_H ) | |
19 | extern "C" { | |
20 | ||
20effc67 | 21 | BOOST_WINAPI_IMPORT_EXCEPT_WM int BOOST_WINAPI_WINAPI_CC |
7c673cae | 22 | MultiByteToWideChar( |
b32b8144 FG |
23 | boost::winapi::UINT_ CodePage, |
24 | boost::winapi::DWORD_ dwFlags, | |
25 | boost::winapi::LPCSTR_ lpMultiByteStr, | |
7c673cae | 26 | int cbMultiByte, |
b32b8144 | 27 | boost::winapi::LPWSTR_ lpWideCharStr, |
7c673cae FG |
28 | int cchWideChar); |
29 | ||
20effc67 | 30 | BOOST_WINAPI_IMPORT_EXCEPT_WM int BOOST_WINAPI_WINAPI_CC |
7c673cae | 31 | WideCharToMultiByte( |
b32b8144 FG |
32 | boost::winapi::UINT_ CodePage, |
33 | boost::winapi::DWORD_ dwFlags, | |
34 | boost::winapi::LPCWSTR_ lpWideCharStr, | |
7c673cae | 35 | int cchWideChar, |
b32b8144 | 36 | boost::winapi::LPSTR_ lpMultiByteStr, |
7c673cae | 37 | int cbMultiByte, |
b32b8144 FG |
38 | boost::winapi::LPCSTR_ lpDefaultChar, |
39 | boost::winapi::LPBOOL_ lpUsedDefaultChar); | |
7c673cae FG |
40 | |
41 | } // extern "C" | |
42 | #endif // #if !defined( BOOST_USE_WINDOWS_H ) | |
43 | ||
44 | namespace boost { | |
7c673cae FG |
45 | namespace winapi { |
46 | ||
47 | #if defined( BOOST_USE_WINDOWS_H ) | |
48 | ||
92f5a8d4 TL |
49 | BOOST_CONSTEXPR_OR_CONST UINT_ CP_ACP_ = CP_ACP; |
50 | BOOST_CONSTEXPR_OR_CONST UINT_ CP_OEMCP_ = CP_OEMCP; | |
51 | BOOST_CONSTEXPR_OR_CONST UINT_ CP_MACCP_ = CP_MACCP; | |
52 | BOOST_CONSTEXPR_OR_CONST UINT_ CP_THREAD_ACP_ = CP_THREAD_ACP; | |
53 | BOOST_CONSTEXPR_OR_CONST UINT_ CP_SYMBOL_ = CP_SYMBOL; | |
54 | BOOST_CONSTEXPR_OR_CONST UINT_ CP_UTF7_ = CP_UTF7; | |
55 | BOOST_CONSTEXPR_OR_CONST UINT_ CP_UTF8_ = CP_UTF8; | |
56 | ||
57 | BOOST_CONSTEXPR_OR_CONST DWORD_ MB_PRECOMPOSED_ = MB_PRECOMPOSED; | |
58 | BOOST_CONSTEXPR_OR_CONST DWORD_ MB_COMPOSITE_ = MB_COMPOSITE; | |
59 | BOOST_CONSTEXPR_OR_CONST DWORD_ MB_USEGLYPHCHARS_ = MB_USEGLYPHCHARS; | |
60 | BOOST_CONSTEXPR_OR_CONST DWORD_ MB_ERR_INVALID_CHARS_ = MB_ERR_INVALID_CHARS; | |
61 | ||
62 | BOOST_CONSTEXPR_OR_CONST DWORD_ WC_COMPOSITECHECK_ = WC_COMPOSITECHECK; | |
63 | BOOST_CONSTEXPR_OR_CONST DWORD_ WC_DISCARDNS_ = WC_DISCARDNS; | |
64 | BOOST_CONSTEXPR_OR_CONST DWORD_ WC_SEPCHARS_ = WC_SEPCHARS; | |
65 | BOOST_CONSTEXPR_OR_CONST DWORD_ WC_DEFAULTCHAR_ = WC_DEFAULTCHAR; | |
7c673cae | 66 | #if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN2K |
92f5a8d4 | 67 | BOOST_CONSTEXPR_OR_CONST DWORD_ WC_NO_BEST_FIT_CHARS_ = WC_NO_BEST_FIT_CHARS; |
7c673cae FG |
68 | #endif |
69 | ||
70 | #else // defined( BOOST_USE_WINDOWS_H ) | |
71 | ||
92f5a8d4 TL |
72 | BOOST_CONSTEXPR_OR_CONST UINT_ CP_ACP_ = 0u; |
73 | BOOST_CONSTEXPR_OR_CONST UINT_ CP_OEMCP_ = 1u; | |
74 | BOOST_CONSTEXPR_OR_CONST UINT_ CP_MACCP_ = 2u; | |
75 | BOOST_CONSTEXPR_OR_CONST UINT_ CP_THREAD_ACP_ = 3u; | |
76 | BOOST_CONSTEXPR_OR_CONST UINT_ CP_SYMBOL_ = 42u; | |
77 | BOOST_CONSTEXPR_OR_CONST UINT_ CP_UTF7_ = 65000u; | |
78 | BOOST_CONSTEXPR_OR_CONST UINT_ CP_UTF8_ = 65001u; | |
79 | ||
80 | BOOST_CONSTEXPR_OR_CONST DWORD_ MB_PRECOMPOSED_ = 0x00000001; | |
81 | BOOST_CONSTEXPR_OR_CONST DWORD_ MB_COMPOSITE_ = 0x00000002; | |
82 | BOOST_CONSTEXPR_OR_CONST DWORD_ MB_USEGLYPHCHARS_ = 0x00000004; | |
83 | BOOST_CONSTEXPR_OR_CONST DWORD_ MB_ERR_INVALID_CHARS_ = 0x00000008; | |
84 | ||
85 | BOOST_CONSTEXPR_OR_CONST DWORD_ WC_COMPOSITECHECK_ = 0x00000200; | |
86 | BOOST_CONSTEXPR_OR_CONST DWORD_ WC_DISCARDNS_ = 0x00000010; | |
87 | BOOST_CONSTEXPR_OR_CONST DWORD_ WC_SEPCHARS_ = 0x00000020; | |
88 | BOOST_CONSTEXPR_OR_CONST DWORD_ WC_DEFAULTCHAR_ = 0x00000040; | |
7c673cae | 89 | #if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN2K |
92f5a8d4 | 90 | BOOST_CONSTEXPR_OR_CONST DWORD_ WC_NO_BEST_FIT_CHARS_ = 0x00000400; |
7c673cae FG |
91 | #endif |
92 | ||
93 | #endif // defined( BOOST_USE_WINDOWS_H ) | |
94 | ||
95 | #if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 | |
96 | // This constant is not present in MinGW | |
92f5a8d4 | 97 | BOOST_CONSTEXPR_OR_CONST DWORD_ WC_ERR_INVALID_CHARS_ = 0x00000080; |
7c673cae FG |
98 | #endif |
99 | ||
100 | using ::MultiByteToWideChar; | |
101 | using ::WideCharToMultiByte; | |
102 | ||
103 | } // namespace winapi | |
7c673cae FG |
104 | } // namespace boost |
105 | ||
20effc67 TL |
106 | #include <boost/winapi/detail/footer.hpp> |
107 | ||
b32b8144 | 108 | #endif // BOOST_WINAPI_CHARACTER_CODE_CONVERSION_HPP_INCLUDED_ |