カスタム アクションの種類 6
このカスタム アクションは VBScript で記述されます。 詳細については、「スクリプトの」を参照してください。
源
スクリプトは、一時バイナリ ストリームから生成されます。 CustomAction テーブルの [ソース] フィールド には、バイナリ テーブルのキーが含まれています。 バイナリ テーブルの [データ] 列には、ストリーム データが含まれています。 行ごとに個別のストリームが割り当てられます。
MsiRecordSetStream を使用してファイルから新しいバイナリ データを挿入し、その後に MsiViewModifyしてレコードをテーブルに挿入できます。 カスタム アクションが呼び出されると、ストリーム データが一時ファイルにコピーされ、カスタム アクションの種類に応じて処理されます。
型の値
32 ビット カスタム アクションの基本的な数値型を指定するには、CustomAction テーブル の Type 列に次の値を含めます。
定数 | 16 進 数 | 小数 |
---|---|---|
msidbCustomActionTypeVBScript + msidbCustomActionTypeBinaryData | 0x006 | 6 |
Windows インストーラーでは、64 ビット オペレーティング システムで 64 ビット カスタム アクションを使用できます。 スクリプトに基づく 64 ビットのカスタム アクションでは、msidbCustomActionType64BitScript ビットを数値型に含める必要があります。 詳細については、「64 ビット カスタム アクションの」を参照してください。 64 ビット カスタム アクションの基本的な数値型を指定するには、CustomAction テーブルの の Type 列に次の値を含めます。
定数 | 16 進 数 | 小数 |
---|---|---|
msidbCustomActionTypeVBScript + msidbCustomActionTypeBinaryData + msidbCustomActionType64BitScript | 0x0001006 | 4102 |
ターゲット
CustomAction テーブルの [ターゲット] フィールド には、オプションのスクリプト関数が含まれています。 処理は、最初に解析用のスクリプトを送信してから、オプションのスクリプト関数を呼び出します。
戻り処理オプション
戻り値の処理オプションを指定するために、CustomAction テーブルの の Type 列に省略可能なフラグ ビットを含めます。 オプションと値の説明については、「カスタム アクションの戻り値の処理オプション 」を参照してください。
実行スケジュール オプション
実行スケジュール オプションを指定するために、CustomAction テーブルの の Type 列に省略可能なフラグ ビットを含めます。 これらのオプションは、カスタム アクションの複数の実行を制御します。 オプションの詳細については、「カスタム アクション実行スケジュール オプション 」を参照してください。
In-Script 実行オプション
スクリプト内実行オプションを指定するために、CustomAction テーブルの の Type 列に省略可能なフラグ ビットを含めます。 これらのオプションは、アクション コードを実行、ロールバック、またはコミット スクリプトにコピーします。 オプションの詳細については、「カスタム アクション In-Script 実行オプションの 」を参照してください。
戻り値
スクリプトで記述された省略可能な関数は、「JScript と VBScript カスタム アクションの戻り値 で説明されている値のいずれかを返す必要があります。
備考
JScript または VBScript で記述されたカスタム アクションでは、セッション オブジェクトをインストールする必要があります。 インストーラーは、Session オブジェクトを、Session という名前スクリプトにアタッチします。 Session オブジェクトはインストールのロールバック中に存在しない可能性があるため、スクリプトで記述された遅延カスタム アクションでは、「遅延実行カスタム アクションのコンテキスト情報の取得 」セクションで説明されている Session オブジェクトのメソッドまたはプロパティのいずれかを使用して、そのコンテキストを取得する必要があります。
データベース テーブルがエクスポートされると、各ストリームは、ファイル名 (バイナリ テーブルの名前列) として主キーを使用し、既定の拡張子が ".ibd" のサブフォルダーに個別のファイルとして書き込まれます。 ファイル システムまたはバージョン管理システムが長いファイル名をサポートしていない場合は、名前に 8.3 ファイル名の形式を使用する必要があります。 永続アーカイブ ファイルは、ストリーム データを使用したファイル名に置き換え、テーブルのインポート時にデータを見つけられます。
関連トピック