Funzione RemoveFontResourceA (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 RemoveFontResourceA(
  [in] LPCSTR 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.

Nota Le app in cui il file di carattere originale è in uso sarà comunque in grado di accedere al file originale e non userà il nuovo tipo di carattere finché il tipo di carattere non viene ricaricato. Chiamare AddFontResource per ricaricare il tipo di carattere. È consigliabile chiamare AddFontResource lo stesso numero di volte della chiamata a RemoveFontResource completata come illustrato in questo codice di esempio.
 

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

Vedi anche

Addfontresource

Funzioni carattere e testo

Panoramica dei tipi di carattere e del testo

RemoveFontResourceEx

SendMessage