Condividi tramite


Funzione RemoveFontResourceA (wingdi.h)

La funzione RemoveFontResource rimuove i tipi di carattere nel file specificato dalla tabella dei tipi di carattere di sistema.

Se il tipo di carattere è stato aggiunto utilizzando la funzione addFontResourceEx , è necessario utilizzare 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.

Osservazioni

Se un'app aggiunge o rimuove i tipi di carattere dalla tabella dei tipi di carattere di sistema, è consigliabile inviare 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 impostato su HWND_BROADCAST.

Se sono presenti riferimenti in sospeso a un tipo di carattere, la risorsa associata rimane caricata fino a quando non viene usato alcun contesto di dispositivo. Inoltre, se il tipo di carattere è elencato nel Registro di sistema dei tipi di carattere (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts) e viene installato in qualsiasi posizione diversa dalla cartella %windir%\fonts\, potrebbe essere caricato in altre sessioni attive (inclusa la sessione 0).

Quando si tenta di sostituire un file di tipo di carattere esistente che contiene un tipo di carattere con riferimenti in sospeso, è 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 tipo 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 ricevere errori, si tratta di un'indicazione che il file di tipo di carattere rimane caricato in altre sessioni. Assicurarsi che il tipo di 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 App in cui è in uso il file del tipo di carattere originale 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 riuscito, 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 del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
client minimo supportato Windows 2000 Professional [solo app desktop]
server minimo supportato Windows 2000 Server [solo app desktop]
piattaforma di destinazione Finestre
intestazione wingdi.h (include Windows.h)
libreria Gdi32.lib
dll Gdi32.dll

Vedere anche

addFontResource

funzioni di tipo carattere e testo

panoramica tipi di carattere e testo

RemoveFontResourceEx

SendMessage