Dynamic-Link Libraries (Windows Installer)

Eine benutzerdefinierte Aktion kann eine Funktion aufrufen, die in einer in C oder C++ geschriebenen DLL-Datei (Dynamic Link Library) definiert 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 in der Installationsdatenbank stammt.

Beachten Sie, dass alle aufgerufenen Funktionen, einschließlich benutzerdefinierter Aktionen in DLLs, die Aufrufkonvention __stdcall angeben müssen. Verwenden Sie beispielsweise Folgendes, um CustomAction aufzurufen.

#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 Arten benutzerdefinierter Aktionen rufen eine DLL auf.

Benutzerdefinierter Aktionstyp BESCHREIBUNG
Benutzerdefinierter Aktionstyp 1 In einem Stream in der Binary-Tabelle gespeicherte DLL-Datei
Benutzerdefinierter Aktionstyp 17 Mit einem Produkt installierte DLL-Datei.

 

Hinweis

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

 

Eine Zusammenfassung aller Arten benutzerdefinierter Aktionen und ihrer Codierung in der CustomAction-Tabelle finden Sie unter Zusammenfassung aller benutzerdefinierten Aktionstypen.