Funzione RemoveFontResourceW (wingdi.h)
La funzione RemoveFontResource rimuove i tipi di carattere nel file specificato dalla tabella dei tipi di carattere del sistema.
Se il tipo di carattere è stato aggiunto usando la funzione AddFontResourceEx , è necessario usare la funzione RemoveFontResourceEx .
Sintassi
BOOL RemoveFontResourceW(
[in] LPCWSTR lpFileName
);
Parametri
[in] lpFileName
Puntatore a una stringa con terminazione null che assegna un nome a un file di risorse del tipo di carattere.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è diverso da zero.
Se la funzione ha esito negativo, il valore restituito è zero.
Commenti
È consigliabile che se un'app aggiunge o rimuove i tipi di carattere dalla tabella dei tipi di carattere di sistema che notifica altre finestre della modifica inviando un messaggio di WM_FONTCHANGE a tutte le finestre di primo livello del sistema. L'app invia questo messaggio chiamando la funzione SendMessage con il parametro hwnd impostato su HWND_BROADCAST.
Se sono presenti riferimenti in sospeso a un tipo di carattere, la risorsa associata rimane caricata finché non viene usato alcun contesto del dispositivo. Inoltre, se il tipo di carattere è elencato nel Registro di sistema di caratteri (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts) e viene installato in qualsiasi posizione diversa dalla cartella %windir%\font\, può essere caricato in altre sessioni attive (inclusa la sessione 0).
Quando si tenta di sostituire un file di carattere esistente che contiene un tipo di carattere con riferimenti in sospeso a esso, è possibile che venga visualizzato un errore che indica che il tipo di carattere originale non può essere eliminato perché è in uso anche dopo aver chiamato RemoveFontResource. Se l'app richiede che il file di carattere venga sostituito, per ridurre il numero di risorse del tipo di carattere originale a zero, chiamare RemoveFontResource in un ciclo come illustrato in questo codice di esempio. Se si continuano a ottenere errori, si tratta di un'indicazione che il file di carattere rimane caricato in altre sessioni. Assicurarsi che il carattere non sia elencato nel Registro di sistema dei tipi di carattere e riavviare il sistema per assicurarsi che il tipo di carattere venga scaricato da tutte le sessioni.
int i = 0;
while( RemoveFontResource( FontFile ) )
{
i++;
}
// TODO: Replace font file
while( i-- )
{
AddFontResource( FontFile );
}
Nota
L'intestazione wingdi.h definisce RemoveFontResource come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | wingdi.h (include Windows.h) |
Libreria | Gdi32.lib |
DLL | Gdi32.dll |