xref: /reactos/sdk/include/ddk/ntnls.h (revision c2c66aff)
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_ */
39