The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

AddFontResourceEx function

The AddFontResourceEx function adds the font resource from the specified file to the system. Fonts added with the AddFontResourceEx function can be marked as private and not enumerable.


int AddFontResourceEx(
  _In_ LPCTSTR lpszFilename,
  _In_ DWORD   fl,
  _In_ PVOID   pdv


lpszFilename [in]

A pointer to a null-terminated character string that contains a valid font file name. This parameter can specify any of the following files.

File ExtensionMeaning

Font resource file.


Raw bitmap font file.


Raw TrueType file.


East Asian Windows: TrueType font collection.


TrueType resource file.


PostScript OpenType font.


multiple master Type1 font resource file. It must be used with .pfm and .pfb files.


Type 1 font bits file. It is used with a .pfm file.


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.

fl [in]

The characteristics of the font to be added to the system. This parameter can be one of the following values.


Specifies that only the process that called the AddFontResourceEx function can use this font. When the font name matches a public font, the private font will be chosen. When the process terminates, the system will remove all fonts installed by the process with the AddFontResourceEx function.


Specifies that no process, including the process that called the AddFontResourceEx function, can enumerate this font.


pdv [in]

Reserved. Must be zero.

Return value

If the function succeeds, the return value specifies the number of fonts added.

If the function fails, the return value is zero. No extended error information is available.


This function allows a process to use fonts without allowing other processes access to the fonts.

When an application no longer needs a font resource it loaded by calling the AddFontResourceEx function, it must remove the resource by calling the RemoveFontResourceEx function.

This function installs the font only for the current session. When the system restarts, the font will not be present. To have the font installed even after restarting the system, the font must be listed in the registry.

A font listed in the registry and installed to a location other than the %windir%\fonts\ folder cannot be modified, deleted, or replaced as long as it is loaded in any session. In order to change one of these fonts, it must first be removed by calling RemoveFontResource, removed from the font registry (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts), and the system restarted. After restarting the system, the font will no longer be loaded and can be changed.


Minimum supported client

Windows 2000 Professional [desktop apps only]

Minimum supported server

Windows 2000 Server [desktop apps only]


Wingdi.h (include Windows.h)





Unicode and ANSI names

AddFontResourceExW (Unicode) and AddFontResourceExA (ANSI)

See also

Fonts and Text Overview
Font and Text Functions