Udostępnij za pośrednictwem


biblioteki Dynamic-Link (Instalator Windows)

Akcja niestandardowa może wywołać funkcję zdefiniowaną w bibliotece dll (dynamic-link) napisanej w języku C lub C++. Biblioteka DLL może istnieć jako plik zainstalowany podczas bieżącej instalacji lub jako tymczasowy strumień binarny pochodzący z tabeli Binary bazy danych instalacji.

Należy pamiętać, że wszystkie wywoływane funkcje, w tym akcje niestandardowe w bibliotekach DLL, muszą określać __stdcall konwencję wywoływania. Aby na przykład wywołać metodę CustomAction, użyj następującego polecenia.

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

UINT __stdcall CustomAction(MSIHANDLE hInstall)

Aby uzyskać więcej informacji, zobacz uzyskiwanie dostępu do bieżącej sesji instalatora z poziomu akcji niestandardowej

Następujące typy akcji niestandardowych wywołają bibliotekę łącza dynamicznego.

Niestandardowy typ akcji Opis
niestandardowy typ akcji 1 Plik DLL przechowywany w strumieniu tabeli binarnej.
niestandardowy typ akcji 17 Plik DLL zainstalowany z produktem.

 

Nuta

Aby użyć modelu COM, należy wywołać CoInitializeEx w akcji niestandardowej. Nie zamykaj, jeśli okaże się, że wątek został już zainicjowany. Na przykład wątek jest inicjowany w instalacji poszczególnych maszyn, ale nie w instalacji poszczególnych użytkowników.

 

Zobacz Podsumowanie listy wszystkich niestandardowych typów akcji, aby uzyskać podsumowanie wszystkich typów akcji niestandardowych i sposób ich kodowania w tabeli CustomAction.