Initiera ett program
För att aktivera installationsfunktioner måste ett program anropa ett antal funktioner när det initieras. Mer information finns i installationsmekanismen. Följande steg beskriver hur du använder installationsprogrammet för att initiera ett program:
Initiera ett program
Anropa funktionen MsiGetProductCode så att programmet kan identifiera sig för installationsprogrammet.
Produktkoden är en obligatorisk parameter för många installationsfunktioner.
Anropa funktionen MsiGetUserInfo för att samla in användarinformation första gången programmet startas.
Om anropet till MsiGetUserInfo misslyckas anropar du funktionen MsiCollectUserInfo för att samla in användarinformation.
Visa ett standardanvändargränssnitt om det behövs genom att anropa funktionen MsiSetInternalUI.
Om du vill skapa ett eget användargränssnitt registrerar du det med installationsprogrammet genom att anropa funktionen MsiSetExternalUI.
Anropa funktionen MsiEnableLog för att ange loggningsnivån.
Presentera användaren med tillgängliga funktioner genom att räkna upp funktionerna i ditt program. Du kan räkna upp funktioner på följande sätt:
- Fråga installationsprogrammets funktion efter funktion. Innan programmet till exempel ritar en knapp eller ett menyalternativ anropar programmet funktionen MsiQueryFeatureState så att installationsprogrammet kan kontrollera att funktionen är tillgänglig.
- Räkna upp alla tillgängliga funktioner samtidigt genom att anropa funktionen MsiEnumFeatures. Om du vill använda den här funktionen måste programmet anropa MsiEnumFeatures upprepade gånger samtidigt som ett index ökas.
Få detaljerad information om den aktuella installationen genom att anropa följande uppräkningsfunktioner upprepade gånger och öka en indexvariabel för varje anrop:
- Anropa funktionen MsiEnumProducts för att räkna upp produkter som registrerats med installationsprogrammet.
- Anropa funktionen MsiEnumComponents för att räkna upp komponenter.
- Anropa funktionen MsiEnumComponentQualifiers för att räkna upp komponentkvalificerare.
- Anropa funktionen MsiEnumClients för att räkna upp produkterna för en viss komponent.
Om returvärdet för en uppräkningsfunktion är ERROR_SUCCESS finns det fortfarande fler objekt att räkna upp och funktionen bör anropas igen med en inkrementerad indexvariabel. Om returvärdet är ERROR_NO_MORE_ITEMS har alla objekt räknats upp och funktionen ska inte anropas igen.