GetFontResourceInfo 函数: 获取字体文件对应的字体名
在 win 7, gdi32.dll,找不到 GetFontResourceInfo(), 但能找到 GetFontResourceInfoW(), 用法类似。
//--------------------------------------------------------------------------------------------------------------------------------------------------
另外看到一篇,通过读取字体文件,分析结构,找到字体名: https://bbs.csdn.net/topics/390317612?list=3482466
//---------------------------------------------------------------------------------------------------------------------------------------------------
来源:http://www.undocprint.org/winspool/getfontresourceinfo
GetFontResourceInfo
The GetFontResourceInfo function retrieves information from a font resource file.
BOOL GetFontResourceInfo(
LPCTSTR lpszFilename, // font file name
LPDWORD cbBuffer, // size of buffer for resouce information
LPVOID lpBuffer, // buffer for returned resouce information
DWORD dwQueryType, // resouce information query type
);
Parameters
lpszFilename
[in] Pointer to a null-terminated character string that contains a valid font file name. This parameter can specify any of the following files. File extension Description .fon Font resource file. .fnt Raw bitmap font file. .ttf Raw TrueType file. .ttc East Asian Windows: TrueType font collection. .fot TrueType resource file. .otf PostScript OpenType font. .mmm multiple master Type1 font resource file. It must be used with .pfm and .pfb files. .pfb Type 1 font bits file. It is used with a .pfm file. .pfm Type 1 font metrics file. It is used with a .pfb file.
To add a font whose information comes from several resource files, point lpszFileName to a string with the file names separated by a | –for example, abcxxxxx.pfm | abcxxxxx.pfb.
cbBuffer
[in,out] Specifies the length, in bytes, of the information to be retrieved. If this parameter is zero, GetFontResourceInfo returns the size of the data specified in the dwQueryType parameter.
lpBuffer
[out] Pointer to a buffer that receives the font information. If this parameter is NULL, the function returns the size of the buffer required for the font data.
dwQueryType
Specifies the type of resouce information to return. This parameter can be one of the following values.
Value | Meaning |
---|---|
QFR_0 0 |
DWORD or LPVOID unknown |
QFR_DESCRIPTION 1 |
The function provides a string that an NT-based operating system will use to describe the font file. A null-terminated Unicode string is written to the buffer pointed to by lpBuffer. |
QFR_LOGFONT 2 |
Array of LOGFONT |
QFR_PDEV 3 |
PDEV ? |
QFR_FONTFILE 4 |
scalable font file name |
QFR_5 5 |
DWORD Windows XP: Always returns 0 |
Return Values
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero.
Windows NT/2000/XP: To get extended error information, call GetLastError.
Remarks
When 4 is specified in dwQueryType and lpszFilename specifies a FOT file, then lpBuffer returns the file name of the linked .ttf file.
Requirements
Windows NT/2000/XP: Included in Windows NT ? and later.
Windows 95/98/Me: Included in Windows ? and later.
Header: Declared in Wingdi.h; include Windows.h.
Library: Use Gdi32.lib.
Unicode: Implemented as Unicode and ANSI versions on Windows NT/2000/XP