Función DrvQueryTrueTypeTable (winddi.h)
La función DrvQueryTrueTypeTable tiene acceso a tablas específicas en un archivo de descripción de fuente TrueType.
Sintaxis
LONG DrvQueryTrueTypeTable(
ULONG_PTR iFile,
ULONG ulFont,
ULONG ulTag,
PTRDIFF dpStart,
ULONG cjBuf,
BYTE *pjBuf,
PBYTE *ppjTable,
ULONG *pcjTable
);
Parámetros
iFile
Puntero a un valor definido por el controlador que identifica el archivo de fuente TrueType proporcionado por el controlador. Este puntero se obtiene de DrvLoadFontFile.
ulFont
Especifica el índice basado en uno de la fuente del controlador.
ulTag
Especifica la tabla a la que se va a acceder. Si ulTag es cero, el controlador debe devolver acceso a todo el archivo.
dpStart
Especifica el desplazamiento desde el principio de las tablas desde las que se va a comenzar el acceso. Si ulTag es cero, dpStart es el desplazamiento desde el principio del archivo.
cjBuf
Especifica el tamaño en bytes del búfer al que apunta pjBuf o cero.
pjBuf
Si no es NULL, apunta al búfer en el que el controlador debe copiar los datos de la tabla o fuente.
ppjTable
Si no es NULL, apunta a la ubicación en la que el controlador debe devolver la dirección de los datos de tabla o fuente.
pcjTable
Si no es NULL, apunta a la ubicación en la que el controlador debe devolver la longitud en bytes de los datos de tabla o fuente a los que *ppjTable apunta.
Valor devuelto
DrvQueryTrueTypeTable devuelve uno de los siguientes valores:
- Si pjBuf es NULL, el número de bytes necesarios para que el búfer contenga toda la tabla (sería igual que el valor devuelto en pcjTable).
- Si pjBuf no es NULL, el número de bytes copiados.
- Si se produce un error, FD_ERROR.
Comentarios
DrvQueryTrueTypeTable debe implementarse en los controladores de fuente TrueType.
Hay dos maneras en las que se puede solicitar DrvQueryTrueTypeTable para devolver datos de tabla o fuente:
- Cuando ni cjBuf ni pjBuf son NULL, el controlador debe copiar el contenido de la tabla solicitada en el búfer al que apunta pjBuf . En esta situación, ppjTable y pcjTable serán NULL y el controlador debe omitirlo.
- Cuando ni ppjTable ni pcjTable son NULL, el controlador debe colocar un puntero a la tabla en *ppjTable y la longitud, en bytes, de la tabla en *pciTable. En esta situación, cjBuf y pjBuf serán NULL y el controlador debe omitirlo.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Escritorio |
Encabezado | winddi.h (incluya Winddi.h) |