Prev Next

EnumFontFamiliesEx info  Overview  Group

The EnumFontFamiliesEx function enumerates all fonts in the system that match the font characteristics specified by the LOGFONT structure. EnumFontFamiliesEx enumerates fonts based on typeface name, character set, or both. It is recommended that Win32-based applications use this function rather than EnumFontFamilies to enumerate fonts.

int EnumFontFamiliesEx(

    HDC hdc,

// handle to device context

    LPLOGFONT lpLogfont,

// pointer to logical font information

    FONTENUMPROC lpEnumFontFamExProc,

// pointer to callback function

    LPARAM lParam,

// application-supplied data

    DWORD dwFlags

// reserved; must be zero

    );

 

Parameters

hdc
Identifies the device context.
lpLogfont
Points to a LOGFONT structure that contains information about the fonts to enumerate. The function examines these members:

Member

Description

lfCharset

If set to DEFAULT_CHARSET, the function enumerates all fonts in all character sets. If set to a valid character set value, the function enumerates only fonts in the specified character set.

lfFaceName

If set to an empty string, the function enumerates one font in each available typeface name. If set to a valid typeface name, the function enumerates all fonts with the specified name.

lfPitchAndFamily

Must be set to zero for all language versions of the operating system except Hebrew and Arabic. For these languages, set IfPitchAndFamily to MONO_FONT to enumerate only fonts that provide all codepage characters within the font.

lpEnumFontFamExProc
Points to the application-defined callback function. For more information about the callback function, see the EnumFontFamExProc function.
lParam
Specifies a 32-bit application-defined value. The function passes this value to the callback function along with font information.
dwFlags
Reserved; must be zero.

Return Values

The return value is the last value returned by the callback function. This value depends on which font families are available for the specified device.

Remarks

EnumFontFamiliesEx does not use “tagged” typeface names to identify character sets. Instead, it always passes the correct typeface name and a separate character set value to the callback function. The function enumerates fonts based on the the values of the lfCharset and lfFacename members in the LOGFONT structure.

If lfCharset is DEFAULT_CHARSET and lfFaceName is an empty string, the function enumerates one font in every face in every character set. If lfFaceName is not empty, the function enumerates every font in the specified typeface regardless of character set.

If lfCharset is a valid character set value and lfFaceName is an empty string, the function enumerates every font in the specified character set. If lfFaceName is not empty, the function enumerates every font having the specified typeface and character set.

See Also

EnumFontFamilies, EnumFontFamExProc, LOGFONT