Compartir a través de


Función RemoveFontResourceA (wingdi.h)

La función RemoveFontResource quita las fuentes del archivo especificado de la tabla de fuentes del sistema.

Si la fuente se agregó mediante la función AddFontResourceEx , debe usar la función RemoveFontResourceEx .

Sintaxis

BOOL RemoveFontResourceA(
  [in] LPCSTR lpFileName
);

Parámetros

[in] lpFileName

Puntero a una cadena terminada en null que asigna un nombre a un archivo de recursos de fuente.

Valor devuelto

Si la función se realiza correctamente, el valor devuelto es distinto de cero.

Si la función no se realiza correctamente, el valor devuelto es cero.

Comentarios

Se recomienda que si una aplicación agrega o quita fuentes de la tabla de fuentes del sistema que notifica a otras ventanas del cambio mediante el envío de un mensaje de WM_FONTCHANGE a todas las ventanas de nivel superior del sistema. La aplicación envía este mensaje llamando a la función SendMessage con el parámetro hwnd establecido en HWND_BROADCAST.

Si hay referencias pendientes a una fuente, el recurso asociado permanece cargado hasta que no se usa ningún contexto de dispositivo. Además, si la fuente aparece en el Registro de fuentes (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts) y se instala en cualquier ubicación distinta de la carpeta %windir%\fonts\, se puede cargar en otras sesiones activas (incluida la sesión 0).

Al intentar reemplazar un archivo de fuente existente que contiene una fuente con referencias pendientes, es posible que reciba un error que indique que la fuente original no se puede eliminar porque está en uso incluso después de llamar a RemoveFontResource. Si la aplicación requiere que se reemplace el archivo de fuente, para reducir el número de recursos de la fuente original a cero, llame a RemoveFontResource en un bucle, como se muestra en este código de ejemplo. Si sigue recibiendo errores, se trata de una indicación de que el archivo de fuente permanece cargado en otras sesiones. Asegúrese de que la fuente no aparece en el registro de fuentes y reinicie el sistema para asegurarse de que la fuente se descarga de todas las sesiones.

Nota Las aplicaciones en las que el archivo de fuente original está en uso seguirán siendo capaces de acceder al archivo original y no usarán la nueva fuente hasta que se vuelva a cargar la fuente. Llame a AddFontResource para volver a cargar la fuente. Se recomienda llamar a AddFontResource el mismo número de veces que la llamada a RemoveFontResource se realizó correctamente, como se muestra en este código de ejemplo.
 

int i = 0;
while( RemoveFontResource( FontFile ) )
{
    i++;
}

// TODO: Replace font file

while( i-- )
{
    AddFontResource( FontFile );
}

Nota

El encabezado wingdi.h define RemoveFontResource como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado wingdi.h (incluye Windows.h)
Library Gdi32.lib
Archivo DLL Gdi32.dll

Consulte también

AddFontResource

Funciones de fuente y texto

Información general sobre fuentes y texto

RemoveFontResourceEx

SendMessage