ダイナミックリンク ライブラリ (Windows インストーラー)
カスタム アクションでは、ダイナミックリンク ライブラリ (DLL) で定義されている、C または C++ で書かれた関数を呼び出すことができます。 DLL は、現在のインストールの間にインストールされたファイルとして、またはインストール データベースの Binary テーブルから生成される一時的なバイナリ ストリームとして、存在できます。
DLL 内のカスタム アクションを含め、呼び出されるすべての関数で、__stdcall 呼び出し規則が指定されている必要があることに注意してください。 たとえば、CustomAction を呼び出すには次のようにします。
#include <windows.h>
#include <msi.h>
#include <Msiquery.h>
#pragma comment(lib, "msi.lib")
UINT __stdcall CustomAction(MSIHANDLE hInstall)
詳しくは、「カスタム アクション内から現在のインストーラー セッションにアクセスする」をご覧ください。
次の種類のカスタム アクションは、ダイナミックリンク ライブラリを呼び出します。
カスタム アクションの種類 | 説明 |
---|---|
カスタム アクションの種類 1 | Binary テーブル ストリームに格納されている DLL ファイル。 |
カスタム アクションの種類 17 | 製品と共にインストールされる DLL ファイル。 |
Note
COM を使うには、カスタム アクションで CoInitializeEx を呼び出す必要があります。 スレッドが既に初期化されている場合は終了しないでください。 たとえば、スレッドはコンピューターごとのインストールでは初期化されますが、ユーザーごとのインストールでは初期化されません。
すべてのカスタム アクションの種類の概要と、それらが CustomAction テーブルにどのようにエンコードされるかについては、すべてのカスタム アクションの種類の概要一覧に関する記事をご覧ください。