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