================================================================================ HSP RESOURCE COMPILER リファレンスマニュアル FORCE (C) 2002 ================================================================================ 1. 概要 『 HSP RESOURCE COMPILER 』は、HSP (Hot Soup Processor)のランタイムファ イルにユーザー独自のアイコンやバージョン情報、HTMLリソースなどを埋め込ん だり、Windows XP のビジュアルスタイルを定義して、自在にカスタマイズする ことができるリソースコンパイラです。 HSPの標準コンパイラと共通したわかりやすいコマンド体系で、ランタイム開発 環境をもたないユーザーにもリソースをカスタマイズした実行ファイルを作成で きます。 2. 使用手順 HSPランタイム - - - - - - → HSP実行ファイル (hsprt,*.hrt) (*.exe,*.scr) │ ↑ └─→ カスタムランタイム ──┘ (hrcrt,*.hrt) 2-1. HRCファイルの作成 カスタムランタイムの作成の準備として、コンパイル情報を記述した、 HRCファイルを作成します。書式は 「5. HRCファイル」の項を参照して ください。必要に応じてアイコンやHTMLなどのリソースを用意します。 2-2. カスタムランタイムの作成 リソースコンパイラを使って、HSP標準ランタイム(hsprt)や、拡張ラン タイム(.hrt)にリソースを付加します。 hrc_ini ==> hrc_comp の2ステップでコンパイルが完了します。 hrcrtまたは指定された名前のカスタムランタイムが作成されます。 2-3. 実行ファイルの作成 hspcmp.dllまたはHSP拡張ランタイムマネージャを使用して、2-2で出力 されたカスタムランタイムを指定し、実行ファイルを作成します。 3. 命令一覧 コマンド名 内容 ------------------------------------------------------------------- hrc_ini HRCCMP.DLLを初期化 hrc_comp リソースコンパイルを実行 hrc_getmes コンパイラ出力メッセージを取得 hrc_ver HRCCMP.DLLのバージョンを取得 hrc_bye HRCCMP.DLLの終了処理を実行 ------------------------------------------------------------------- 4. 命令詳細 ■ hrc_ini p1 p1 = 文字列または文字列型変数 :HRCファイル名 ・説明 HRCCMP.DLLの初期化を行います。 p1には、ランタイムやアイコン名などの情報を記述したHRCファイル名 を指定します。 戻り値statの値は常に0になります。 ■ hrc_comp (パラメータなし) ・説明 hrc_iniで初期化された情報に基づいて、リソースコンパイルを実行し ます。 出力された中間ランタイムを、hspcmp.dllの"pack_rt"命令のパラメー タに指定して、実行ファイルを作成してください。 戻り値statには、実行結果を表すエラーコードが代入されます。 stat エラー内容 ------------------------------------------- 0 正常に終了しました。 1 メモリが不足しています。 2 HRCファイルが開けません。 3 HRCファイルの書式が正しくありません。 4 ランタイムファイルが開けません。 5 ランタイムの形式が正しくありません。 6 中間ランタイムが作成できません。 7 アイコンファイルが開けません。 8 アイコンの形式が正しくありません。 9 HTMLファイルが開けません。 10 HTMLの形式が正しくありません。 11 マニフェストファイルが開けません。 12 マニフェストの形式が正しくありません。 13 リソースサイズがオーバーしました。 14 コンパイルエラーが発生しました。 ■ hrc_getmes p1 p1 = 文字列型変数 :メッセージを受け取るバッファ ・説明 コンパイラが出力したメッセージをp1の変数に取得します。 p1にはあらかじめ32KB程度のサイズを確保した変数を指定して下さい。 戻り値statの値は常に0になります。 ■ hrc_ver (パラメータなし) ・説明 システム変数refstrに、HRCCMP.DLLのバージョン情報を文字列として 取得します。 戻り値statの値は常に0になります。 ■ hrc_bye (パラメータなし) ・説明 HRCCMP.DLLの終了処理を行います。この命令は自動実行されます。 戻り値statの値は常に0になります。 5. HRCファイル HRCファイルは、コンパイル時に実行ファイルに含めるリソースの情報を指定す る初期化ファイルで、書式はWindowsのINIファイル形式と同じです。 HRC規定の5つのセクションを以下に示します。各セクションは省略可能で、";" (セミコロン)で始まる行はコメントとして扱われます。 ○ ランタイムセクション [RUNTIME] filename=ランタイムファイル名 (デフォルト=hsprt) tempname=中間ランタイム名 (デフォルト=hrcrt) ランタイムはHSPランタイム形式であれば特にサイズや名前に制限はありません。 ただし、アイコンリソースを持たないものや、アイコン以外のリソースデータを 含むものは指定できません。 HRCはリソースコンパイル時に中間ランタイムを作成します。通常はhrcrtという 名前ですが、他の名前を指定することもできます。実行ファイル作成後は、中間 ランタイムを削除しても問題ありません。 ○ アイコンセクション [ICON] filename=アイコンファイル名 アイコンは通常のICO形式のフォーマットであれば、特にアイコンの数や色数、 サイズに制限はありません。 指定されなかった場合はランタイムのアイコンがそのまま使用されます。 ○ HTMLセクション [HTML] HTMLリソース名=ディスク上のファイル名 HTMLリソースは、Internet Explorerで表示可能なHTMLドキュメントや画像など を、リソースとして実行ファイルの内部に埋め込むことが出来ます。 HTMLリソースの形式はHTML・JPEG・GIF・BMPなど、Internet Explorerが対応し ているものであれば、リソース数やデータサイズに制限はありません。 リソース名はリソース内部でのファイル名に相当する識別子で、ディスク上の ファイル名とは別の名前を設定することができます。リソース名には、ファイル 名に使用可能な1バイト文字のみ使用できます。 WEBブラウザ(Internet Explorer)でHTMLリソースを表示するには、"res://"で 始まるURLを次のように指定します。リソースURLは、実行ファイルの完全なパス を指定する必要があります。 例: C:\HSP\SAMPLE.EXE内部のSAMPLE.HTMをブラウザに表示する res://C:\HSP\SAMPLE.EXE/SAMPLE.HTM 例: C:\HSP\SAMPLE.EXE内部のSAMPLE.JPGをHTML内に表示する ○ マニフェストセクション [MANIFEST] filename=マニフェストファイル名 マニフェストリソースは、実行ファイルのビジュアルスタイルを定義する情報で、 マニフェストファイルと呼ばれる、XML形式で記述されたデータです。 付属のサンプルマニフェストは、標準的なビジュアルスタイルを定義します。 マニフェストを編集して、独自のビジュアルスタイルを作成することも可能です。 ○ バージョンセクション [VERSION] FileVerNumber=*,*,*,* ProductVerNumber=*,*,*,* FileVersion=ファイルバージョン ProductVersion=製品バージョン FileDescription=ファイルの説明 LegalCopyright=著作権 Comments=コメント CompanyName=会社名 LegalTrademarks=商標 OriginalFilename=ファイル名 ProductName=製品名 InternalName=内部名 PrivateBuild=プライベートビルド情報 SpecialBuild=スペシャルビルド情報 このセクション以下のキーは、全てバージョン情報としてリソースに含まれます。 FileVerNumber及びProductVerNumberについては、 (上位メジャー),(下位メジャー),(上位マイナー),(下位マイナー)の順で、0から 32767までの数値を","(カンマ)で区切って指定して下さい。 キーの順番にきまりはなく、不要なキーは省略可能です。 これらのキーのほか、独自のキーを追加してカスタマイズすることもできます。 ただし、キー名に2バイト(全角)文字を使用すると、システムのバージョンに よっては正しく表示されない場合がありますのでご注意ください。 =============================================================================EOF