Dynamic-Link Bibliotheken (Windows Installer)

Eine benutzerdefinierte Aktion kann eine Funktion aufrufen, die in einer Dll (Dynamic Link Library) definiert ist, die in C oder C++ geschrieben ist. Die DLL kann als Datei vorhanden sein, die während der aktuellen Installation installiert wurde, oder als temporärer binärer Stream, der aus der Binary-Tabelle der Installationsdatenbank stammt.

Beachten Sie, dass alle aufgerufenen Funktionen, einschließlich benutzerdefinierter Aktionen in DLLs, die _ _ Aufrufkonvention stdcall angeben müssen. Verwenden Sie zum Aufrufen von CustomAction beispielsweise Folgendes.

#include <windows.h>
#include <msi.h>
#include <Msiquery.h>
#pragma comment(lib, "msi.lib")

UINT __stdcall CustomAction(MSIHANDLE hInstall)

Weitere Informationen finden Sie unter Zugreifen auf die aktuelle Installersitzung innerhalb einer benutzerdefinierten Aktion.

Die folgenden Typen von benutzerdefinierten Aktionen rufen eine Dynamic Link Library auf.

Benutzerdefinierter Aktionstyp Beschreibung
Benutzerdefinierter Aktionstyp 1 DLL-Datei, die in einem Binärtabellenstream gespeichert ist.
Benutzerdefinierter Aktionstyp 17 DLL-Datei, die mit einem Produkt installiert ist.

Hinweis

Um COM zu verwenden, müssen Sie CoInitializeEx in der benutzerdefinierten Aktion aufrufen. Beenden Sie nicht, wenn Sie feststellen, dass der Thread bereits initialisiert wurde. Der Thread wird beispielsweise in einer Computerinstallation initialisiert, jedoch nicht in einer benutzerspezifischen Installation.

Eine Zusammenfassung aller Typen von benutzerdefinierten Aktionen und deren Codierung in der CustomAction-Tabelle finden Sie unter Zusammenfassungsliste aller benutzerdefinierten Aktionstypen.