Inicjowanie aplikacji
Aby włączyć funkcję instalatora, aplikacja musi wywołać szereg funkcji podczas inicjowania. Aby uzyskać więcej informacji, zobacz Mechanizm instalacji. W poniższych krokach opisano sposób inicjowania aplikacji przy użyciu instalatora:
Aby zainicjować aplikację
Wywołaj funkcję MsiGetProductCode, aby aplikacja mogła zidentyfikować się w instalatorze.
Kod produktu jest wymaganym parametrem dla wielu funkcji instalatora.
Wywołaj funkcję MsiGetUserInfo, aby zebrać informacje o użytkowniku przy pierwszym uruchomieniu aplikacji.
Jeśli wywołanie polecenia MsiGetUserInfo zakończy się niepowodzeniem, wywołaj funkcję MsiCollectUserInfo w celu zbierania informacji o użytkowniku.
W razie potrzeby wyświetl domyślny interfejs użytkownika, wywołując funkcję MsiSetInternalUI.
Aby utworzyć własny interfejs użytkownika, zarejestruj go w instalatorze, wywołując funkcję MsiSetExternalUI.
Wywołaj funkcję MsiEnableLog, aby ustawić poziom rejestrowania.
Prezentowanie użytkownikowi dostępnych funkcji przez wyliczenie funkcji aplikacji. Funkcje można wyliczyć na następujące sposoby:
- Przeprowadź zapytanie dotyczące każdej funkcji instalatora oddzielnie. Na przykład zanim aplikacja narysuje przycisk lub element menu, aplikacja wywołuje funkcję MsiQueryFeatureState, aby instalator mógł sprawdzić, czy funkcja jest dostępna.
- Wylicz wszystkie dostępne funkcje jednocześnie, wywołując funkcję MsiEnumFeatures. Aby użyć tej funkcji, aplikacja musi wywołać MsiEnumFeatures wielokrotnie podczas przyrostowania indeksu.
Uzyskaj szczegółowe informacje o bieżącej instalacji, wywołując wielokrotnie następujące funkcje wyliczania, zwiększając zmienną indeksu dla każdego wywołania:
- Wywołaj funkcję MsiEnumProducts, aby wyliczyć produkty zarejestrowane w instalatorze.
- Wywołaj funkcję MsiEnumComponents, aby wyliczyć składniki.
- Wywołaj funkcję MsiEnumComponentQualifiers, aby wyliczyć kwalifikatory składników.
- Wywołaj funkcję MsiEnumClients, aby wyliczyć produkty dla określonego składnika.
Jeśli wartość zwracana w funkcji wyliczenia jest ERROR_SUCCESS, istnieje jeszcze więcej elementów do wyliczenia, a funkcja powinna być wywoływana ponownie ze zmienną indeksu przyrostowego. Jeśli wartość zwracana jest ERROR_NO_MORE_ITEMS, wszystkie elementy zostały wyliczone, a funkcja nie powinna być wywoływana ponownie.