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 { 14 USHORT CodePage; 15 USHORT MaximumCharacterSize; /* 1 = SBCS, 2 = DBCS */ 16 USHORT DefaultChar; /* Default MultiByte Character for the CP->Unicode conversion */ 17 USHORT UniDefaultChar; /* Default Unicode Character for the CP->Unicode conversion */ 18 USHORT TransDefaultChar; /* Default MultiByte Character for the Unicode->CP conversion */ 19 USHORT TransUniDefaultChar; /* Default Unicode Character for the Unicode->CP conversion */ 20 USHORT DBCSCodePage; 21 UCHAR LeadByte[MAXIMUM_LEADBYTES]; 22 PUSHORT MultiByteTable; /* Table for CP->Unicode conversion */ 23 PVOID WideCharTable; /* Table for Unicode->CP conversion */ 24 PUSHORT DBCSRanges; 25 PUSHORT DBCSOffsets; 26 } CPTABLEINFO, *PCPTABLEINFO; 27 28 typedef struct _NLSTABLEINFO 29 { 30 CPTABLEINFO OemTableInfo; 31 CPTABLEINFO AnsiTableInfo; 32 PUSHORT UpperCaseTable; 33 PUSHORT LowerCaseTable; 34 } NLSTABLEINFO, *PNLSTABLEINFO; 35 36 #ifdef __cplusplus 37 } 38 #endif 39 40 #endif /* _NTNLS_ */ 41 42