Função DrvLoadFontFile (winddi.h)
A função DrvLoadFontFile recebe informações da GDI relacionadas ao carregamento e mapeamento de arquivos de fonte.
Sintaxe
ULONG_PTR DrvLoadFontFile(
ULONG cFiles,
ULONG_PTR *piFile,
PVOID *ppvView,
ULONG *pcjView,
DESIGNVECTOR *pdv,
ULONG ulLangID,
ULONG ulFastCheckSum
);
Parâmetros
cFiles
Valor fornecido pelo chamador que indica o número de arquivos associados à fonte.
piFile
Ponteiro fornecido pelo chamador para uma matriz de identificadores de arquivo do tamanho de cFiles. Cada identificador representa um dos arquivos associados à fonte. Os identificadores de arquivo podem ser passados individualmente para EngMapFontFileFD.
ppvView
Ponteiro fornecido pelo chamador para uma matriz do tamanho de cFiles que contém o endereço inicial do espaço de memória no qual cada arquivo de fonte foi mapeado.
pcjView
Ponteiro fornecido pelo chamador para uma matriz do tamanho de cFiles que contém o tamanho do espaço de memória no qual cada arquivo de fonte foi mapeado.
pdv
Para fontes Adobe Multiple Master, esse é um ponteiro fornecido pelo chamador para uma estrutura DESIGNVECTOR (descrita na documentação do SDK do Microsoft Windows) que identifica a instância de Vários Mestres. Caso contrário, esse parâmetro será NULL.
ulLangID
Identificador de idioma fornecido pelo chamador, obtido do registro.
ulFastCheckSum
Especifica uma soma de verificação fornecida por GDI para a fonte. Se esse parâmetro não for zero, o mecanismo de cache de fonte GDI poderá ser usado para acessar uma fonte mais rapidamente. Se esse parâmetro for zero, o mecanismo de fonte GDI não poderá ser usado.
Retornar valor
Se a operação for bem-sucedida, ela deverá retornar um ponteiro para um valor definido pelo driver que identifique exclusivamente a fonte. Posteriormente, o driver recebe esse ponteiro como um parâmetro de entrada para funções como DrvQueryFont, DrvQueryFontFile, DrvQueryFontTree. Se um erro for encontrado, a função deverá retornar HFF_INVALID.
Comentários
Os drivers de fonte são necessários para fornecer uma função DrvLoadFontFile . A finalidade da função é permitir que um driver de fonte receba a notificação de que os arquivos associados de uma fonte estão sendo carregados e mapeados. O driver pode armazenar argumentos de entrada para uso posterior.
Carregar e mapear um arquivo de fonte envolve chamar EngMapFontFileFD. Quando um aplicativo chama AddFontResource ou AddFontResourceEx (descrito na documentação SDK do Windows), o GDI chama EngMapFontFileFD e chama DrvLoadFontFile. Os parâmetros ppvView e pcjView da função DrvLoadFontFile fornecem o local e o tamanho do mapeamento de cada arquivo, conforme retornado por EngMapFontFileFD.
A GDI cancela omaps dos arquivos quando DrvLoadFontFile retorna. Se o driver precisar remapear os arquivos mais tarde, em resposta às chamadas subsequentes da GDI, ele poderá chamar o próprio EngMapFontFileFD se tiver salvo os parâmetros cFiles e piFile .
Quando o mecanismo de fonte GDI chama o DDI DrvLoadFontFile do driver de fonte, ele passa uma soma de verificação para a fonte no parâmetro ulFastCheckSum . Se esse parâmetro não for zero e a fonte em questão tiver sido armazenada em cache, DrvLoadFontFile poderá obter um ponteiro para os dados da fonte com uma chamada para EngFntCacheLookUp. Depois que o driver de fonte obtém o ponteiro para os dados da fonte, ele pode carregar os dados da fonte. Se a fonte não tiver sido armazenada em cache, o driver de fonte poderá armazenar a fonte em cache primeiro alocando memória para o cache de fontes, usando uma chamada para EngFntCacheAlloc e gravando os dados da fonte nessa memória. Se o driver de fonte encontrar um erro ao ler ou gravar os dados da fonte, ele poderá notificar o mecanismo de fonte GDI fazendo uma chamada para EngFntCacheFault.
Se o mecanismo de fonte GDI chamado DrvLoadFontFile e passado um valor igual a zero para o parâmetro ulFastCheckSum , isso significa que o mecanismo de fonte GDI não está em operação e o driver de fonte não precisa executar nenhuma ação.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Área de Trabalho |
Cabeçalho | winddi.h (inclua Winddi.h) |