1 // Licensed under the Apache License, Version 2.0
2 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4 // All files in the project carrying such notice may not be copied, modified, or distributed
5 // except according to those terms.
6 use ctypes::c_int;
7 use shared::minwindef::{BOOL, DWORD, LPARAM, LPBOOL, LPVOID, LPWORD, UINT};
8 use um::winnls::LPNLSVERSIONINFO;
9 use um::winnt::{LCID, LPCSTR, LPCWCH, LPCWSTR, LPSTR, LPWSTR, PCNZWCH};
10 extern "system" {
CompareStringEx( lpLocaleName: LPCWSTR, dwCmpFlags: DWORD, lpString1: LPCWCH, cchCount1: c_int, lpString2: LPCWCH, cchCount2: c_int, lpVersionInformation: LPNLSVERSIONINFO, lpReserved: LPVOID, lParam: LPARAM, ) -> c_int11     pub fn CompareStringEx(
12         lpLocaleName: LPCWSTR,
13         dwCmpFlags: DWORD,
14         lpString1: LPCWCH,
15         cchCount1: c_int,
16         lpString2: LPCWCH,
17         cchCount2: c_int,
18         lpVersionInformation: LPNLSVERSIONINFO,
19         lpReserved: LPVOID,
20         lParam: LPARAM,
21     ) -> c_int;
CompareStringOrdinal( lpString1: LPCWCH, cchCount1: c_int, lpString2: LPCWCH, cchCount2: c_int, bIgnoreCase: BOOL, ) -> c_int22     pub fn CompareStringOrdinal(
23         lpString1: LPCWCH,
24         cchCount1: c_int,
25         lpString2: LPCWCH,
26         cchCount2: c_int,
27         bIgnoreCase: BOOL,
28     ) -> c_int;
CompareStringW( Locale: LCID, dwCmpFlags: DWORD, lpString1: PCNZWCH, cchCount1: c_int, lpString2: PCNZWCH, cchCount2: c_int, ) -> c_int29     pub fn CompareStringW(
30         Locale: LCID,
31         dwCmpFlags: DWORD,
32         lpString1: PCNZWCH,
33         cchCount1: c_int,
34         lpString2: PCNZWCH,
35         cchCount2: c_int,
36     ) -> c_int;
FoldStringW( dwMapFlags: DWORD, lpSrcStr: LPCWCH, cchSrc: c_int, lpDestStr: LPWSTR, cchDest: c_int, ) -> c_int37     pub fn FoldStringW(
38         dwMapFlags: DWORD,
39         lpSrcStr: LPCWCH,
40         cchSrc: c_int,
41         lpDestStr: LPWSTR,
42         cchDest: c_int,
43     ) -> c_int;
GetStringTypeExW( Locale: LCID, dwInfoType: DWORD, lpSrcStr: LPCWCH, cchSrc: c_int, lpCharType: LPWORD, ) -> BOOL44     pub fn GetStringTypeExW(
45         Locale: LCID,
46         dwInfoType: DWORD,
47         lpSrcStr: LPCWCH,
48         cchSrc: c_int,
49         lpCharType: LPWORD,
50     ) -> BOOL;
GetStringTypeW( dwInfoType: DWORD, lpSrcStr: LPCWCH, cchSrc: c_int, lpCharType: LPWORD, ) -> BOOL51     pub fn GetStringTypeW(
52         dwInfoType: DWORD,
53         lpSrcStr: LPCWCH,
54         cchSrc: c_int,
55         lpCharType: LPWORD,
56     ) -> BOOL;
MultiByteToWideChar( CodePage: UINT, dwFlags: DWORD, lpMultiByteStr: LPCSTR, cbMultiByte: c_int, lpWideCharStr: LPWSTR, cchWideChar: c_int, ) -> c_int57     pub fn MultiByteToWideChar(
58         CodePage: UINT,
59         dwFlags: DWORD,
60         lpMultiByteStr: LPCSTR,
61         cbMultiByte: c_int,
62         lpWideCharStr: LPWSTR,
63         cchWideChar: c_int,
64     ) -> c_int;
WideCharToMultiByte( CodePage: UINT, dwFlags: DWORD, lpWideCharStr: LPCWSTR, cchWideChar: c_int, lpMultiByteStr: LPSTR, cbMultiByte: c_int, lpDefaultChar: LPCSTR, lpUsedDefaultChar: LPBOOL, ) -> c_int65     pub fn WideCharToMultiByte(
66         CodePage: UINT,
67         dwFlags: DWORD,
68         lpWideCharStr: LPCWSTR,
69         cchWideChar: c_int,
70         lpMultiByteStr: LPSTR,
71         cbMultiByte: c_int,
72         lpDefaultChar: LPCSTR,
73         lpUsedDefaultChar: LPBOOL,
74     ) -> c_int;
75 }
76