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) |