RemoveFontResourceExA 関数 (wingdi.h)

RemoveFontResourceEx 関数は、指定したファイル内のフォントをシステム フォント テーブルから削除します。

構文

BOOL RemoveFontResourceExA(
  [in] LPCSTR name,
  [in] DWORD  fl,
  [in] PVOID  pdv
);

パラメーター

[in] name

フォント リソース ファイルに名前を付ける null で終わる文字列へのポインター。

[in] fl

システムから削除するフォントの特性。 フォントを削除するには、 AddFontResourceEx 関数を使用してフォントを追加したときと同じフラグを使用する必要があります。 詳細については、 AddFontResourceEx 関数を参照してください。

[in] pdv

予約済み。 ゼロを指定してください。

戻り値

関数が成功すると、戻り値は 0 以外になります。

関数が失敗した場合は、0 を返します。 拡張エラー情報は使用できません。

注釈

この関数は、指定されたフラグが AddFontResourceEx 関数を使用してフォントを追加したときと同じ場合にのみ、フォントを削除します。

フォントを含む既存のフォント ファイルを未解決の参照で置き換えようとすると、 RemoveFontResourceEx を呼び出した後でも使用されているため、元のフォントを削除できないことを示すエラーが発生する可能性があります。 アプリでフォント ファイルを置き換える必要がある場合は、元のフォントのリソース数を 0 に減らすために、次のコード例に示すようにループで RemoveFontResourceEx を呼び出します。 エラーが引き続き発生する場合は、フォント ファイルが他のセッションに読み込まれたままになります。 フォントがフォント レジストリに一覧表示されていないことを確認し、システムを再起動して、フォントがすべてのセッションからアンロードされるようにします。

メモ 元のフォント ファイルが使用されているアプリは、元のファイルに引き続きアクセスでき、フォントが再読み込みされるまで新しいフォントは使用されません。 AddFontResourceEx を呼び出してフォントを再読み込みします。 このコード例に示すように、 RemoveFontResourceEx の呼び出しが成功した回数と同じ回数、 AddFontResourceEx を呼び出することをお勧めします。
 

int i = 0;
while( RemoveFontResourceEx( FontFile, FR_PRIVATE, 0 ) )
{
    i++;
}

// TODO: Replace font file

while( i-- )
{
    AddFontResourceEx( FontFile, FR_PRIVATE, 0 );
}

注意

wingdi.h ヘッダーは、RemoveFontResourceEx をエイリアスとして定義します。このエイリアスは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー wingdi.h (Windows.h を含む)
Library Gdi32.lib
[DLL] Gdi32.dll

こちらもご覧ください

AddFontResourceEx

フォント関数とテキスト関数

フォントとテキストの概要

SendMessage