Sync with trunk (r48545)
[reactos.git] / include / ddk / ntnls.h
1
2 #ifndef _NTNLS_
3 #define _NTNLS_
4
5 #ifdef __cplusplus
6 extern "C" {
7 #endif
8
9 #define MAXIMUM_LEADBYTES 12
10
11 /* Some documentation can be found here: http://www.ping.uio.no/~ovehk/nls/ */
12 typedef struct _CPTABLEINFO {
13 USHORT CodePage;
14 USHORT MaximumCharacterSize; /* 1 = SBCS, 2 = DBCS */
15 USHORT DefaultChar; /* Default MultiByte Character for the CP->Unicode conversion */
16 USHORT UniDefaultChar; /* Default Unicode Character for the CP->Unicode conversion */
17 USHORT TransDefaultChar; /* Default MultiByte Character for the Unicode->CP conversion */
18 USHORT TransUniDefaultChar; /* Default Unicode Character for the Unicode->CP conversion */
19 USHORT DBCSCodePage;
20 UCHAR LeadByte[MAXIMUM_LEADBYTES];
21 PUSHORT MultiByteTable; /* Table for CP->Unicode conversion */
22 PVOID WideCharTable; /* Table for Unicode->CP conversion */
23 PUSHORT DBCSRanges;
24 PUSHORT DBCSOffsets;
25 } CPTABLEINFO, *PCPTABLEINFO;
26
27 typedef struct _NLSTABLEINFO {
28 CPTABLEINFO OemTableInfo;
29 CPTABLEINFO AnsiTableInfo;
30 PUSHORT UpperCaseTable;
31 PUSHORT LowerCaseTable;
32 } NLSTABLEINFO, *PNLSTABLEINFO;
33
34 #ifdef __cplusplus
35 }
36 #endif
37
38 #endif /* _NTNLS_ */