Função MsiOpenPackageExA (msi.h)

A função MsiOpenPackageEx abre um pacote a ser usado com funções que acessam o banco de dados do produto. A função MsiCloseHandle deve ser chamada com o identificador quando o identificador não é mais necessário.

Nota Inicialize COM no mesmo thread antes de chamar a função MsiOpenPackage, MsiOpenPackageEx ou MsiOpenProduct .

 

Sintaxe

UINT MsiOpenPackageExA(
  [in]  LPCSTR    szPackagePath,
  [in]  DWORD     dwOptions,
  [out] MSIHANDLE *hProduct
);

Parâmetros

[in] szPackagePath

O caminho para o pacote.

[in] dwOptions

Os sinalizadores de bit para indicar se o estado do computador deve ou não ser ignorado. Passe 0 (zero) para usar o comportamento msiOpenPackage .

Constante Significado
MSIOPENPACKAGEFLAGS_IGNOREMACHINESTATE
1
Ignore o estado do computador ao criar o identificador do produto.

[out] hProduct

Um ponteiro para uma variável que recebe o identificador do produto.

Valor retornado

Valor Significado
ERROR_BAD_CONFIGURATION
As informações de configuração estão corrompidas.
ERROR_INSTALL_FAILURE
Não foi possível abrir o produto.
ERROR_INSTALL_REMOTE_PROHIBITED
O Windows Installer não permite a instalação de uma conexão de área de trabalho remota.
ERROR_INVALID_PARAMETER
Um parâmetro inválido é passado para a função .
ERROR_SUCCESS
A função é concluída com êxito.
 

Se essa função falhar, ela poderá retornar um código de erro do sistema. Para obter mais informações, consulte Códigos de erro do sistema.

Comentários

Para criar um identificador de produto restrito independente do estado do computador atual e incapaz de alterar o estado atual do computador, use MsiOpenPackageEx com MSIOPENPACKAGEFLAGS_IGNOREMACHINESTATE definido em dwOptions.

Observe que, se dwOptions for MSIOPENPACKAGEFLAGS_IGNOREMACHINESTATE ou 1, MsiOpenPackageEx ignorará o estado atual do computador ao criar o identificador do produto. Se o valor de dwOptions for 0, MsiOpenPackageEx será o mesmo que MsiOpenPackage e criará um identificador de produto que depende se o pacote especificado por szPackagePath já está instalado no computador.

O identificador restrito criado usando MsiOpenPackageEx com MSIOPENPACKAGEFLAGS_IGNOREMACHINESTATE permite apenas a execução de caixas de diálogo, um subconjunto das ações padrão e ações personalizadas que definem propriedades ( Tipo de Ação Personalizada 35, Tipo de Ação Personalizada 51 e Tipo de Ação Personalizada 19). O identificador restrito impede o uso de ações personalizadas que executam Bibliotecas de Link Dinâmico, Arquivos Executáveis ou Scripts.

Você pode chamar MsiDoAction nas seguintes ações padrão usando o identificador restrito. Todas as outras ações retornam ERROR_FUNCTION_NOT_CALLED se forem chamadas com o identificador restrito.

A função MsiCloseHandle deve ser chamada quando o identificador não é necessário.

Observação

O cabeçalho msi.h define MsiOpenPackageEx como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

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.0 ou Windows Installer 4.5 no Windows Server 2008 ou no Windows Vista. Windows Installer no Windows Server 2003 ou no Windows XP. 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