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

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

source

DLL は、現在のセッション中にアプリケーションと共にインストールされます。 CustomAction テーブルの Source フィールドには、File テーブルのキーが含まれています。 カスタム アクション コードの場所は、このファイルのターゲット パスの解決によって決まります。そのため、このカスタム アクションは、ファイルがインストールされてから削除されるまでの間に、呼び出す必要があります。

型の値

CustomAction テーブルの Type 列には、基本的な数値の種類を指定する次の値を設定します。

定数 16 進数 Decimal (10 進数型)
msidbCustomActionTypeDll + msidbCustomActionTypeSourceFile 0x011 17

 

移行先

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

戻り処理オプション

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

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

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

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

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

戻り値

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

解説

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

カスタム アクションは別のスレッドで実行され、システムへのアクセスが制限される場合があります。 非同期で実行されるカスタム アクションの場合、現在のシーケンスまたはインストール セッションの終了時に、戻るまでメイン スレッドはブロックされます。

インストールされているファイルをソースとして参照するカスタム アクション (カスタム アクションの種類 17 (DLL) など) は、次のシーケンス制限に従う必要があります。

  • カスタム アクションの順序は、CostFinalize アクションの後にする必要があります。 これは、カスタム アクションが DLL の特定に必要なパスを解決できるようにするためです。
  • ソース ファイルがコンピューターにまだインストールされていない場合、この種類の遅延 (スクリプト内) カスタム アクションの順序は、InstallFiles アクションより後にする必要があります。
  • ソース ファイルがコンピューターにまだインストールされていない場合、この種類の非遅延カスタム アクションの順序は、InstallFinalize アクションより後にする必要があります。

Custom_Actions

遅延実行カスタム アクション

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