次の方法で共有


カスタム アクションの種類 1

このカスタム アクションは、C または C++ で記述されたダイナミック リンク ライブラリ (DLL) を呼び出します。

source

DLL は、一時バイナリ ストリームから生成されます。 CustomAction テーブルの Source フィールドには、Binary テーブルへのキーが含まれています。

Binary テーブルの Data 列には、ストリーム データが含まれています。 各行に個別のストリームが割り当てられます。 MsiRecordSetStream の後に MsiViewModify を使用してレコードをテーブルに挿入することで、ファイルから新しいバイナリ データを挿入できます。 カスタム アクションが呼び出されると、ストリーム データが一時ファイルにコピーされ、その後、カスタム アクションの種類に応じて処理されます。

Type の値

CustomAction テーブルの Type 列には、基本的な数値型を指定する次のフラグ ビットを設定します。

定数 16 進数 Decimal (10 進数型)
msidbCustomActionTypeDll + msidbCustomActionTypeBinaryData 0x001 1

 

移行先

この DLL は、CustomAction テーブルの Target フィールドに指定されたエントリ ポイントを介して呼び出され、現在のインストール セッションへのハンドルである 1 つの引数を渡します。 テーブルで指定されたエントリ ポイント名は、DLL からエクスポートされたものと一致する必要があります。 エントリ関数が .DEF ファイルで、または /EXPORT: リンカー仕様で指定されていない場合は、名前の先頭にアンダースコアと "@4" サフィックスを付けることができることに注意してください。 呼び出された関数は、__stdcall 呼び出し規則を指定する必要があります。

戻り処理オプション

CustomAction テーブルの Type 列に、戻り処理オプションを指定する省略可能なフラグ ビットを設定します。 オプションと値の説明については、「カスタム アクションの戻り処理オプション」をご覧ください。

実行スケジュール オプション

CustomAction テーブルの Type 列に、実行スケジュール オプションを指定する省略可能なフラグ ビットを設定します。 これらのオプションは、カスタム アクションの複数の実行を制御します。 オプションの説明については、「カスタム アクションの実行スケジュール オプション」をご覧ください。

スクリプト内実行オプション

CustomAction テーブルの Type 列に、スクリプト内実行オプションを指定する省略可能なフラグ ビットを設定します。 これらのオプションは、アクション コードを実行、ロールバック、またはコミット スクリプトにコピーします。 オプションの説明については、「カスタム アクションのスクリプト内実行オプション」を参照してください。

戻り値

カスタム アクションの戻り値」をご覧ください。

解説

ダイナミック リンク ライブラリ (DLL) を呼び出すカスタム アクションには、インストール セッションへのハンドルが必要です。 これが遅延実行カスタム アクションでもある場合、インストール スクリプトの実行中にセッションが存在しなくなる可能性があります。 この種類のカスタム アクションでコンテキスト情報を取得する方法については、「遅延実行カスタム アクションのコンテキスト情報の取得」を参照してください。

データベース テーブルがエクスポートされると、各ストリームは、テーブルに基づく名前が付けられたサブフォルダーに個別のファイルとして書き込まれます。そのファイル名として主キー (Binary テーブルの Name 列) を使用し、既定の拡張子の ".ibd" が付きます。 ファイル システムまたはバージョン管理システムで長いファイル名がサポートされていない場合、名前は 8.3 形式を使用する必要があります。 永続アーカイブ ファイルでは、ストリーム データを、使用したファイル名に置き換えるため、テーブルのインポート時にデータを見つけることができます。

カスタム アクション

ダイナミックリンク ライブラリ

遅延実行カスタム アクションのコンテキスト情報の取得