Partilhar via


Inicializando um aplicativo

Para habilitar a funcionalidade do instalador, um aplicativo deve chamar várias funções quando estiver inicializando. Para obter mais informações, consulte Mecanismo de Instalação. As etapas a seguir descrevem como usar o instalador para inicializar um aplicativo:

Para inicializar um aplicativo

  1. Chame a função MsiGetProductCodepara que a aplicação possa identificar-se ao instalador.

    O código do produto é um parâmetro necessário para muitas funções do instalador.

  2. Chame a função MsiGetUserInfo para coletar informações do utilizador pela primeira vez que o aplicativo for iniciado.

    Se a chamada para MsiGetUserInfo falhar, chame a funçãoMsiCollectUserInfo para coletar informações do usuário.

  3. Exiba uma interface de usuário padrão, se necessário, chamando a função MsiSetInternalUI.

    Para criar a sua própria interface de utilizador, registe-a no instalador chamando a função MsiSetExternalUI.

  4. Chame a função MsiEnableLog para definir o nível de registo.

  5. Apresente ao usuário os recursos disponíveis enumerando os recursos do seu aplicativo. Você pode enumerar funcionalidades das seguintes maneiras:

    • Obtenha informações do instalador recurso a recurso. Por exemplo, antes que o aplicativo desenhe um botão ou um item de menu, o aplicativo chama a funçãoMsiQueryFeatureState para que o instalador possa verificar se o recurso está disponível.
    • Enumere todos os recursos disponíveis de uma só vez chamando a função MsiEnumFeatures. Para usar essa função, o aplicativo deve chamar MsiEnumFeatures repetidamente ao incrementar um índice.
  6. Obtenha informações detalhadas sobre a instalação atual chamando as seguintes funções de enumeração repetidamente, incrementando uma variável de índice para cada chamada:

    • Chame a função MsiEnumProducts para enumerar produtos registrados com o instalador.
    • Chame a funçãoMsiEnumComponents para enumerar componentes.
    • Chame a função MsiEnumComponentQualifiers para enumerar qualificadores de componentes.
    • Chame a função MsiEnumClients para enumerar os produtos para um componente específico.

    Se o valor de retorno em uma função de enumeração for ERROR_SUCCESS, ainda há mais itens a serem enumerados e a função deve ser chamada novamente com uma variável de índice incrementada. Se o valor de retorno for ERROR_NO_MORE_ITEMS, todos os itens foram enumerados e a função não deve ser chamada novamente.