カスタム アクションの種類 1
このカスタム アクションは、C または C++ で記述されたダイナミック リンク ライブラリ (DLL) を呼び出します。
源
DLL は、一時バイナリ ストリームから生成されます。 CustomAction テーブルの [ソース] フィールド には、バイナリ テーブルのキーが含まれています。
バイナリ テーブルの [データ] 列には、ストリーム データが含まれています。 行ごとに個別のストリームが割り当てられます。 MsiRecordSetStream を使用してファイルから新しいバイナリ データを挿入し、その後に MsiViewModifyしてレコードをテーブルに挿入できます。 カスタム アクションが呼び出されると、ストリーム データが一時ファイルにコピーされ、カスタム アクションの種類に応じて処理されます。
型の値
基本的な数値型を指定するために、CustomAction テーブル の Type 列に次のフラグ ビットを含めます。
定数 | 16 進 数 | 小数 |
---|---|---|
msidbCustomActionTypeDll + msidbCustomActionTypeBinaryData | 0x001 | 1 |
ターゲット
DLL は、CustomAction テーブルの [ターゲット] フィールドに名前が付けられたエントリ ポイントを介して呼び出され、現在のインストール セッションへのハンドルである 1 つの引数が渡されます。 テーブルに指定されたエントリ ポイント名は、DLL からエクスポートされたエントリ ポイント名と一致する必要があります。 エントリ関数がで指定されていない場合に注意してください。DEF ファイルまたは /EXPORT: リンカー仕様では、名前の先頭にアンダースコアと "@4" サフィックスを付けることができます。 呼び出された関数は、__stdcall呼び出し規則を指定する必要があります。
戻り処理オプション
戻り値の処理オプションを指定するために、CustomAction テーブルの の Type 列に省略可能なフラグ ビットを含めます。 オプションと値の説明については、「カスタム アクションの戻り値の処理オプション 」を参照してください。
実行スケジュール オプション
実行スケジュール オプションを指定するために、CustomAction テーブルの の Type 列に省略可能なフラグ ビットを含めます。 これらのオプションは、カスタム アクションの複数の実行を制御します。 オプションの詳細については、「カスタム アクション実行スケジュール オプション 」を参照してください。
In-Script 実行オプション
スクリプト内実行オプションを指定するために、CustomAction テーブルの の Type 列に省略可能なフラグ ビットを含めます。 これらのオプションは、アクション コードを実行、ロールバック、またはコミット スクリプトにコピーします。 オプションの詳細については、「カスタム アクション In-Script 実行オプションの 」を参照してください。
戻り値
備考
ダイナミック リンク ライブラリ (DLL) を呼び出すカスタム アクションには、インストール セッションへのハンドルが必要です。 これが遅延実行カスタム アクションでもある場合、インストール スクリプトの実行中にセッションが存在しなくなる可能性があります。 この種類のカスタム アクションでコンテキスト情報を取得する方法については、「遅延実行カスタム アクションのコンテキスト情報の取得」を参照してください。
データベース テーブルがエクスポートされると、各ストリームは、ファイル名 (バイナリ テーブルの名前列) として主キーを使用し、既定の拡張子が ".ibd" のサブフォルダーに個別のファイルとして書き込まれます。 ファイル システムまたはバージョン管理システムが長いファイル名をサポートしていない場合は、名前に 8.3 形式を使用する必要があります。 永続アーカイブ ファイルは、ストリーム データを使用したファイル名に置き換え、テーブルのインポート時にデータを見つけられます。
関連トピック