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.