Compartilhar via


Como inicializar um aplicativo

Para habilitar a funcionalidade do instalador, um aplicativo deve chamar várias funções ao inicializar. Para saber mais, confira 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 MsiGetProductCode para que o aplicativo possa se identificar para o instalador.

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

  2. Chame a função MsiGetUserInfo para coletar informações do usuário na primeira vez que o aplicativo for iniciado.

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

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

    Para criar sua própria interface do usuário, registre-a no instalador chamando a função MsiSetExternalUI.

  4. Chame a função MsiEnableLog para definir o nível de registro em log.

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

    • Consultar recurso por recurso do instalador. Por exemplo, antes de o aplicativo desenhar um botão ou um item de menu, o aplicativo chama a função MsiQueryFeatureState para que o instalador possa verificar se o recurso está disponível.
    • Enumerar 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:

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