Udostępnij za pośrednictwem


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ę

  1. Wywołaj funkcję MsiGetProductCode, aby aplikacja mogła zidentyfikować się w instalatorze.

    Kod produktu jest wymaganym parametrem dla wielu funkcji instalatora.

  2. 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.

  3. 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.

  4. Wywołaj funkcję MsiEnableLog, aby ustawić poziom rejestrowania.

  5. 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.
  6. 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:

    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.