Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

109 lines
2.6 KiB

  1. /*++
  2. Copyright (c) 1995 Microsoft Corporation
  3. Module Name:
  4. bootfint.h
  5. Abstract:
  6. Header file describing the bootfont.bin file used to provide
  7. dbcs support during system or setup bootstrap.
  8. Author:
  9. tedm 11-July-1995
  10. Revision History:
  11. --*/
  12. #pragma pack(1)
  13. //
  14. // Define maximum number of dbcs lead byte ranges we support.
  15. //
  16. #define MAX_DBCS_RANGE 5
  17. //
  18. // Define signature value.
  19. //
  20. #define BOOTFONTBIN_SIGNATURE 0x5465644d
  21. //
  22. // Define structure used as a header for the bootfont.bin file.
  23. //
  24. typedef struct _BOOTFONTBIN_HEADER {
  25. //
  26. // Signature. Must be BOOTFONTBIN_SIGNATURE.
  27. //
  28. ULONG Signature;
  29. //
  30. // Language id of the language supported by this font.
  31. // This should match the language id of resources in msgs.xxx.
  32. //
  33. ULONG LanguageId;
  34. //
  35. // Number of sbcs characters and dbcs characters contained in the file.
  36. //
  37. unsigned NumSbcsChars;
  38. unsigned NumDbcsChars;
  39. //
  40. // Offsets within the file to the images.
  41. //
  42. unsigned SbcsOffset;
  43. unsigned DbcsOffset;
  44. //
  45. // Total sizes of the images.
  46. //
  47. unsigned SbcsEntriesTotalSize;
  48. unsigned DbcsEntriesTotalSize;
  49. //
  50. // Dbcs lead byte table. Must contain a pair of 0's to indicate the end.
  51. //
  52. UCHAR DbcsLeadTable[(MAX_DBCS_RANGE+1)*2];
  53. //
  54. // Height values for the font.
  55. // CharacterImageHeight is the height in scan lines/pixels of the
  56. // font image. Each character is drawn with additional 'padding'
  57. // lines on the top and bottom, whose sizes are also contained here.
  58. //
  59. UCHAR CharacterImageHeight;
  60. UCHAR CharacterTopPad;
  61. UCHAR CharacterBottomPad;
  62. //
  63. // Width values for the font. These values contain the width in pixels
  64. // of a single byte character and double byte character.
  65. //
  66. // NOTE: CURRENTLY THE SINGLE BYTE WIDTH *MUST* BE 8 AND THE DOUBLE BYTE
  67. // WIDTH *MUST* BE 16!!!
  68. //
  69. UCHAR CharacterImageSbcsWidth;
  70. UCHAR CharacterImageDbcsWidth;
  71. } BOOTFONTBIN_HEADER, *PBOOTFONTBIN_HEADER;
  72. #pragma pack()
  73. //
  74. // Images themselves follow.
  75. //
  76. // First there are SbcsCharacters entries for single-byte chars.
  77. // The first byte in each entry is the ascii char code. The next n bytes are
  78. // the image. n is dependent on the width and height of an sbcs char.
  79. //
  80. // Following these are the dbcs images. The first 2 bytes are the dbcs
  81. // character code (highbyte lowbyte) and the next n bytes are the image.
  82. // n is dependent on the width and height of a dbcs char.
  83. //
  84. // Important note: the characters must be sorted in ascending order!
  85. //