次の方法で共有


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

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

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

型の値

基本的な数値型を指定する CustomAction テーブルの Type 列に次の値を含めます。

定数 16 進 数 小数
msidbCustomActionTypeDll + msidbCustomActionTypeSourceFile 0x011 17

 

ターゲット

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

戻り処理オプション

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

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

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

In-Script 実行オプション

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

戻り値

「カスタム アクションの戻り値 」を参照してください。

備考

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

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

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

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

Custom_Actions

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

Dynamic-Link ライブラリ