Compartir a través de


Función DrvLoadFontFile (winddi.h)

La función DrvLoadFontFile recibe información de GDI relacionada con la carga y asignación de archivos de fuente.

Sintaxis

ULONG_PTR DrvLoadFontFile(
  ULONG        cFiles,
  ULONG_PTR    *piFile,
  PVOID        *ppvView,
  ULONG        *pcjView,
  DESIGNVECTOR *pdv,
  ULONG        ulLangID,
  ULONG        ulFastCheckSum
);

Parámetros

cFiles

Valor proporcionado por el autor de la llamada que indica el número de archivos asociados a la fuente.

piFile

Puntero proporcionado por el llamador a una matriz de tamaño cFiles de identificadores de archivo. Cada identificador representa uno de los archivos asociados a la fuente. Los identificadores de archivo se pueden pasar individualmente a EngMapFontFileFD.

ppvView

Puntero proporcionado por el autor de la llamada a una matriz de tamaño cFiles que contiene la dirección inicial del espacio de memoria en el que se ha asignado cada archivo de fuente.

pcjView

Puntero proporcionado por el autor de la llamada a una matriz de tamaño cFiles que contiene el tamaño del espacio de memoria en el que se ha asignado cada archivo de fuente.

pdv

Para las fuentes Adobe Multiple Master, se trata de un puntero proporcionado por el autor de la llamada a una estructura DESIGNVECTOR (descrita en la documentación de Microsoft Windows SDK) que identifica la instancia de multiple master. De lo contrario, este parámetro es NULL.

ulLangID

Identificador de idioma proporcionado por el autor de la llamada, obtenido del registro.

ulFastCheckSum

Especifica una suma de comprobación proporcionada por GDI para la fuente. Si este parámetro es distinto de cero, el motor de caché de fuentes GDI se puede usar para acceder a una fuente más rápidamente. Si este parámetro es cero, no se puede usar el motor de fuentes GDI.

Valor devuelto

Si la operación se realiza correctamente, debe devolver un puntero a un valor definido por el controlador que identifica de forma única la fuente. Posteriormente, el controlador recibe este puntero como parámetro de entrada para funciones como DrvQueryFont, DrvQueryFontFile, DrvQueryFontTree. Si se produce un error, la función debe devolver HFF_INVALID.

Comentarios

Los controladores de fuente son necesarios para proporcionar una función DrvLoadFontFile . El propósito de la función es permitir que un controlador de fuente reciba una notificación de que los archivos asociados de una fuente se cargan y asignan. El controlador puede almacenar argumentos de entrada para su uso posterior.

La carga y asignación de un archivo de fuente implica llamar a EngMapFontFileFD. Cuando una aplicación llama a AddFontResource o AddFontResourceEx (que se describe en la documentación de Windows SDK), GDI llama a EngMapFontFileFD y, a continuación, llama a DrvLoadFontFile. Los parámetros ppvView y pcjView de la función DrvLoadFontFile proporcionan la ubicación y el tamaño de la asignación de cada archivo, tal y como devuelve EngMapFontFileFD.

GDI desasignación de los archivos cuando se devuelve DrvLoadFontFile . Si el controlador necesita reasignar los archivos más adelante, en respuesta a las llamadas posteriores de GDI, puede llamar a EngMapFontFileFD si ha guardado los parámetros cFiles y piFile .

Cuando el motor de fuentes GDI llama al DDI DrvLoadFontFile del controlador de fuente, pasa una suma de comprobación para la fuente en el parámetro ulFastCheckSum . Si este parámetro es distinto de cero y la fuente en cuestión se ha almacenado en caché, DrvLoadFontFile puede obtener un puntero a los datos de fuente con una llamada a EngFntCacheLookUp. Una vez que el controlador de fuente obtiene el puntero a los datos de fuente, puede cargar los datos de fuente. Si la fuente no se ha almacenado en caché, el controlador de fuente puede almacenar en caché la fuente asignando primero memoria para la memoria caché de fuentes, mediante una llamada a EngFntCacheAlloc y después escribiendo los datos de fuente en esa memoria. Si el controlador de fuente encuentra un error al leer o escribir los datos de fuente, puede notificar al motor de fuentes GDI realizando una llamada a EngFntCacheFault.

Si el motor de fuentes GDI llamó a DrvLoadFontFile y pasó un valor de cero para el parámetro ulFastCheckSum , esto significa que el motor de fuentes GDI no está en funcionamiento y el controlador de fuente no necesita realizar ninguna acción.

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado winddi.h (incluya Winddi.h)

Consulte también

DrvUnloadFontFile

EngFntCacheAlloc

EngFntCacheFault

EngFntCacheLookUp