Freigeben über


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 wurde. Die DLL kann während der aktuellen Installation oder als temporärer binärer Datenstrom vorhanden sein, der aus der Binärtabelle der Installationsdatenbank stammt.

Beachten Sie, dass alle aufgerufenen Funktionen, einschließlich benutzerdefinierter Aktionen in DLLs, die __stdcall Aufrufkonvention 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 Installationsprogrammsitzung aus einer benutzerdefinierten Aktion

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

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

 

Anmerkung

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. Beispielsweise wird der Thread in einer Installation pro Computer initialisiert, aber nicht in einer benutzerspezifischen Installation.

 

Eine Zusammenfassung aller benutzerdefinierten Aktionstypen finden Sie in Zusammenfassung aller Arten von benutzerdefinierten Aktionen und deren Codiert in der CustomAction-Tabelle.