RemoveFontResource 関数は、指定したファイル内のフォントをシステムフォントテーブルから削除する。(Unicode)
RemoveFontResourceW lpFileName
lpFileName : [wstr] フォントリソースファイル名を表す NULL 終端文字列へのポインタ。
(プラグイン / モジュール : gdi32.dll)
RemoveFontResource 関数は、指定したファイル内のフォントをシステムフォントテーブルから削除する。(Unicode) [戻り値] 関数が成功した場合、戻り値は非ゼロである。関数が失敗した場合、戻り値はゼロである。 [備考] アプリがシステムフォントテーブルにフォントを追加または削除した場合、WM_FONTCHANGE メッセージをシステム内のすべてのトップレベルウィンドウに送信して他のウィンドウに変更を通知することを推奨する。アプリは SendMessage 関数を hwnd パラメータに HWND_BROADCAST を設定して呼び出すことでこのメッセージを送信する。フォントへの未参照がある場合、そのフォントを使用しているデバイスコンテキストがなくなるまで、関連リソースはロードされたままになる。さらに、フォントがフォントレジストリ(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts)に登録されており、%windir%\fonts\ フォルダ以外の場所にインストールされている場合、他のアクティブなセッション(セッション 0 を含む)にロードされることがある。未参照のあるフォントを含む既存のフォントファイルを置き換えようとすると、RemoveFontResource を呼び出した後でも、元のフォントが使用中のため削除できないというエラーが発生することがある。アプリケーションがフォントファイルの置き換えを必要とする場合、元のフォントの参照カウントをゼロに減らすために、このサンプルコードのように RemoveFontResource をループで呼び出す。エラーが続く場合は、フォントファイルが他のセッションに読み込まれたままであることを示す。フォントがフォントレジストリに登録されていないことを確認し、すべてのセッションからフォントをアンロードするためにシステムを再起動すること。注: 元のフォントファイルを使用しているアプリは、フォントがリロードされるまで元のファイルにアクセスでき、新しいフォントは使用されない。フォントをリロードするには AddFontResource を呼び出す。このサンプルコードに示すように、RemoveFontResource が成功した回数と同じ回数だけ AddFontResource を呼び出すことを推奨する。 (以下省略)
| プラグイン / モジュール | gdi32.dll |
| バージョン | 1.0 |
| 作成日 | 2026/04/16 |
| 著作者 | IronHSP / CsWin32 bridge |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の gdi32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_gdi32_gen2.hs |