Função MsiJoinTransaction (msi.h)

A função MsiJoinTransaction solicita que o Windows Installer torne o processo atual o proprietário da transação que instala a instalação de vários pacotes.

Windows Installer 4.0 e versões anteriores: Sem suporte. Essa função está disponível a partir do Windows Installer 4.5.

Sintaxe

UINT MsiJoinTransaction(
  [in]  MSIHANDLE hTransactionHandle,
  [in]  DWORD     dwTransactionAttributes,
  [out] HANDLE    *phChangeOfOwnerEvent
);

Parâmetros

[in] hTransactionHandle

A ID da transação, que identifica a transação e é o identificador retornado pela função MsiBeginTransaction .

[in] dwTransactionAttributes

Atributos da instalação de vários pacotes.

Valor Significado
0
Quando 0 ou nenhum valor é definido, o Windows Installer fecha a interface do usuário da instalação anterior.
MSITRANSACTION_CHAIN_EMBEDDEDUI
Defina esse atributo para solicitar que o Windows Installer não desligue a interface do usuário inserida até que a transação seja concluída.
MSITRANSACTION_JOIN_EXISTING_EMBEDDEDUI
Defina esse atributo para solicitar que o Windows Installer transfira a interface do usuário inserida da instalação original. Se a instalação original não tiver nenhuma interface do usuário inserida, definir esse atributo não fará nada.

[out] phChangeOfOwnerEvent

Esse parâmetro retorna um identificador para um evento definido quando a função MsiJoinTransaction altera o proprietário da transação para um novo proprietário. O proprietário atual pode usar isso para determinar quando a propriedade da transação foi alterada. Deixar uma transação sem um proprietário reverterá a transação.

Retornar valor

A função MsiJoinTransaction pode retornar os valores a seguir.

Valor Significado
ERROR_ACCESS_DENIED
O usuário que possui a transação e o usuário que ingressa na transação não são os mesmos.
ERROR_INVALID_PARAMETER
Um parâmetro que não é válido é passado para a função .
ERROR_INSTALL_ALREADY_RUNNING
O proprietário não pode ser alterado enquanto uma instalação ativa estiver em andamento.
ERROR_INVALID_HANDLE_STATE
A ID da transação fornecida não é válida.

Comentários

Como uma transação pode pertencer a não mais de um processo por vez, as funções criadas na tabela MsiEmbeddedChainer podem usar MsiJoinTransaction para solicitar a propriedade da transação antes de usar a API do Windows Installer para configurar ou instalar um aplicativo. O instalador verifica se não há nenhuma instalação em andamento. O instalador verifica se o processo que solicita a propriedade e o processo que atualmente possui a transação compartilham um processo pai na mesma árvore de processo. Se a função for bem-sucedida, o processo que chama MsiJoinTransaction se tornará o proprietário atual da transação.

MsiJoinTransaction define a interface do usuário interna da nova instalação para o nível da interface do usuário da instalação original. Depois que a nova instalação possui a transação, ela pode chamar MsiSetInternalUI para alterar o nível da interface do usuário. Isso permite que a nova instalação seja executada em um nível de interface do usuário mais alto do que a instalação original.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Installer 5.0 no Windows Server 2012, no Windows 8, no Windows Server 2008 R2 ou no Windows 7. Windows Installer 4.5 no Windows Vista, Windows XP, Windows Server 2003 e Windows Server 2008. Confira os Requisitos de tempo de execução do Windows Installer para obter informações sobre o service pack mínimo do Windows exigido por uma versão do Windows Installer.
Plataforma de Destino Windows
Cabeçalho msi.h
Biblioteca Msi.lib
DLL Msi.dll

Confira também

Várias instalações de pacote