Funzione DrvLoadFontFile (winddi.h)

La funzione DrvLoadFontFile riceve informazioni da GDI relative al caricamento e al mapping dei file di carattere.

Sintassi

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

Parametri

cFiles

Valore fornito dal chiamante che indica il numero di file associati al tipo di carattere.

piFile

Puntatore fornito dal chiamante a una matrice di handle di file di dimensioni cFiles. Ogni handle rappresenta uno dei file associati al tipo di carattere. Gli handle di file possono essere passati singolarmente a EngMapFontFileFD.

ppvView

Puntatore fornito dal chiamante a una matrice di dimensioni cFiles contenente l'indirizzo iniziale dello spazio di memoria in cui è stato eseguito il mapping di ogni file di carattere.

pcjView

Puntatore fornito dal chiamante a una matrice di dimensioni cFiles contenente le dimensioni dello spazio di memoria in cui è stato eseguito il mapping di ogni file di carattere.

pdv

Per i tipi di carattere Adobe Multiple Master, si tratta di un puntatore fornito dal chiamante a una struttura DESIGNVECTOR (descritta nella documentazione di Microsoft Windows SDK) che identifica l'istanza Multiple Master. In caso contrario, questo parametro è NULL.

ulLangID

Identificatore di lingua fornito dal chiamante, ottenuto dal Registro di sistema.

ulFastCheckSum

Specifica un checksum fornito da GDI per il tipo di carattere. Se questo parametro è diverso da zero, è possibile usare il motore della cache dei tipi di carattere GDI per accedere più rapidamente a un tipo di carattere. Se questo parametro è zero, non è possibile utilizzare il motore dei tipi di carattere GDI.

Valore restituito

Se l'operazione ha esito positivo, deve restituire un puntatore a un valore definito dal driver che identifica in modo univoco il tipo di carattere. Il driver riceve successivamente questo puntatore come parametro di input per funzioni quali DrvQueryFont, DrvQueryFontFile, DrvQueryFontTree. Se viene rilevato un errore, la funzione deve restituire HFF_INVALID.

Commenti

I driver dei tipi di carattere sono necessari per fornire una funzione DrvLoadFontFile . Lo scopo della funzione è consentire a un driver del tipo di carattere di ricevere una notifica che indica che i file associati di un tipo di carattere vengono caricati e mappati. Il driver può archiviare gli argomenti di input per usarli in un secondo momento.

Il caricamento e il mapping di un file di tipo di carattere comporta la chiamata a EngMapFontFileFD. Quando un'applicazione chiama AddFontResource o AddFontResourceEx (descritto nella documentazione di Windows SDK), GDI chiama EngMapFontFileFD e quindi chiama DrvLoadFontFile. I parametri ppvView e pcjView della funzione DrvLoadFontFile forniscono il percorso e le dimensioni del mapping di ogni file, come restituito da EngMapFontFileFD.

GDI rimuove il mapping dei file quando viene restituito DrvLoadFontFile . Se il driver deve rieseguire il mapping dei file in un secondo momento, in risposta alle chiamate successive da GDI, può chiamare EngMapFontFileFD stesso se ha salvato i parametri cFiles e piFile .

Quando il motore dei tipi di carattere GDI chiama l'DDI DrvLoadFontFile del driver del tipo di carattere, passa un checksum per il tipo di carattere nel parametro ulFastCheckSum . Se questo parametro è diverso da zero e il tipo di carattere in questione è stato memorizzato nella cache, DrvLoadFontFile può ottenere un puntatore ai dati del tipo di carattere con una chiamata a EngFntCacheLookUp. Dopo che il driver del tipo di carattere ottiene il puntatore ai dati del tipo di carattere, può quindi caricare i dati del tipo di carattere. Se il tipo di carattere non è stato memorizzato nella cache, il driver del tipo di carattere può memorizzare nella cache il tipo di carattere allocando prima di tutto la memoria per la cache dei tipi di carattere, usando una chiamata a EngFntCacheAlloc e quindi scrivendo i dati del tipo di carattere in tale memoria. Se il driver del tipo di carattere rileva un errore durante la lettura o la scrittura dei dati del tipo di carattere, può inviare una notifica al motore dei tipi di carattere GDI effettuando una chiamata a EngFntCacheFault.

Se il motore dei tipi di carattere GDI ha chiamato DrvLoadFontFile e passato un valore pari a zero per il parametro ulFastCheckSum , significa che il motore dei tipi di carattere GDI non è in funzione e il driver del tipo di carattere non deve eseguire alcuna azione.

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione winddi.h (include Winddi.h)

Vedi anche

DrvUnloadFontFile

EngFntCacheAlloc

EngFntCacheFault

EngFntCacheLookUp