ntnls.h 1.2 KB

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