UNIFM_HDR结构(prntfont.h)

UNIFM_HDR结构用于定义 Unidrv 字体指标文件(.ufm 文件)的内容。

语法

typedef struct _UNIFM_HDR {
  DWORD dwSize;
  DWORD dwVersion;
  ULONG ulDefaultCodepage;
  LONG  lGlyphSetDataRCID;
  DWORD loUnidrvInfo;
  DWORD loIFIMetrics;
  DWORD loExtTextMetric;
  DWORD loWidthTable;
  DWORD loKernPair;
  DWORD dwReserved[2];
} UNIFM_HDR, *PUNIFM_HDR;

成员

dwSize

指定 .ufm 文件的总大小(以字节为单位)。 请注意,这是用于定义文件的所有结构的总大小。 此值不是UNIFM_HDR结构的大小。

dwVersion

使用名称格式为 UNIFM_VERSION_x_x的常量指定在 prntfont.h 中定义的文件版本号。

ulDefaultCodepage

指定字体的默认代码页的代码页标识符。 有关详细信息,请参阅以下“备注”部分。

lGlyphSetDataRCID

指定标识 .gtt(字形转换表)文件的RC_GTT资源标识符,或 prntfont.h 中定义的CC_前缀代码转换标识符之一。 有关详细信息,请参阅以下“备注”部分。

loUnidrvInfo

指定从 .ufm (Unidrv Font Metrics) 文件的开头到文件 UNIDRVINFO 结构的位置的字节偏移量。

loIFIMetrics

指定从 .ufm 文件的开头到文件 PRINTIFI32 结构的位置的字节偏移量。

loExtTextMetric

指定从 .ufm 文件的开头到文件 EXTTEXTMETRIC 结构的位置的字节偏移量。

loWidthTable

指定从 .ufm 文件的开头到文件 WIDTHTABLE 结构的位置的字节偏移量。

loKernPair

指定从 .ufm 文件的开头到文件 KERNDATA 结构的位置的字节偏移量。

dwReserved[2]

未使用。

言论

UNIFM_HDR结构必须是 .ufm 文件中包含的第一个结构。

如果未CC_DEFAULT lGlyphSetDataRCID,则适用以下规则:

  • 如果 lGlyphSetDataRCID 包含RC_GTT资源标识符,则为 ulDefaultCodepage 指定的代码页码 必须与 .gtt (Glyph Translation Table) 文件的第一个 UNI_CODEPAGEINFO 结构中包含的代码页码相同。

  • 如果 lGlyphSetDataRCID 包含CC_前缀的代码转换标识符之一(而不是 CC_DEFAULT),则为 ulDefaultCodepage 指定的代码页码必须是与CC_前缀标识符关联的代码页码。 (这些代码页码列在 Prntfont.h 中,每个CC_前缀标识符旁边。

    在 Prntfont.h 中列出的系统预定义的字符转换代码如下所示:

    //
    // System predefined character conversion
    //
    // UNIDRV is going to support  following system predefined character conversion.
    // By specifying these number in UNIFM.dwGlyphSetDataRCID;
    //
    
    #define CC_NOPRECNV 0x0000FFFF // Not use predefined
    
    //
    // ANSI
    //
    #define CC_DEFAULT  0 // Default Character Conversion
    #define CC_CP437   -1 // Unicode to IBM Codepage 437
    #define CC_CP850   -2 // Unicode to IBM Codepage 850
    #define CC_CP863   -3 // Unicode to IBM Codepage 863
    
    //
    // East Asia
    //
    
    #define CC_BIG5     -10 // Unicode to Chinese Big 5. Codepage 950.
    #define CC_ISC      -11 // Unicode to Korean Industrial Standard. Codepage 949.
    #define CC_JIS      -12 // Unicode to JIS X0208. Codepage 932.
    #define CC_JIS_ANK  -13 // Unicode to JIS X0208 except ANK. Codepage 932.
    #define CC_NS86     -14 // Big-5 to National Standard conversion. Codepage 950
    #define CC_TCA      -15 // Big-5 to Taipei Computer Association. Codepage 950.
    #define CC_GB2312   -16 // Unicode to GB2312. Codepage 936
    #define CC_SJIS     -17 // Unicode to Shift-JIS. Codepage 932.
    #define CC_WANSUNG  -18 // Unicode to Extended Wansung. Codepage 949.
    

如果CC_DEFAULT lGlyphSetDataRCID,则为 ulDefaultCodepage指定的值没有限制,但必须指定默认代码页。

要求

要求 价值
标头 prntfont.h (包括 Prntfont.h)

另请参阅

EXTTEXTMETRIC

KERNDATA

PRINTIFI32

UNIDRVINFO

UNI_CODEPAGEINFO

WIDTHTABLE