ページ

2014年6月6日金曜日

ActiveBasic: Win32API の AddFontResourceEx 等を使えるようにする

ActiveBasicでゲームを作っているとき(with DXライブラリDLL)無料のフォントを組み込みたくなりました、そこでいろいろ調べてみるとここでそのやり方が載っていました。
ところが自分は ActiveBasic を使っているので、AddFontResource 関数が見当たりませんでした。(Ver 4.24.00のリファレンスを検索) どうやら FreeBasic では使えるようなので、そのリファレンスに載っている定義とマイクロソフトの Developer Network のページを参考に ActiveBasic 用に AddFontResource 関数を定義してみました。(表現が変?)
 ご使用は自己責任でお願いいたします。
※詳しい使い方はマイクロソフトの Develper network を参照してください。
※FR_NOT_ENUM は使えません。(ただし、自分で定数を定義すればOKです)
※空のDESIGNVECTOR構造体宣言は Add(Remove)FontResourceEx 関数の三番目の引数のために作りました。自分は構造体を使わない(つまりNULL)ので定義していませんが、引数が NULL でない場合は、ちゃんと構造体を定義してください。

'FontLoader.sbp

Const FR_PRIVATE = &H10

Type DESIGNVECTOR
End Type

Declare Function AddFontResource Lib"gdi32" Alias "AddFontResourceA" ( lpszFilename As BytePtr ) As Long
Declare Function RemoveFontResource Lib"gdi32" Alias "RemoveFontResourceA" ( lpFileName As BytePtr ) As Long

Declare Function AddFontResourceEx Lib"gdi32" Alias "AddFontResourceExA" ( lpszFilename As BytePtr , fl As DWord , pdv As *DESIGNVECTOR ) As Long
Declare Function RemoveFontResourceEx Lib"gdi32" Alias "RemoveFontResourceExA" ( lpFileName As BytePtr , fl As DWord , pdv As *DESIGNVECTOR ) As Long

0 件のコメント:

コメントを投稿