Função MsiDetermineApplicablePatchesA (msi.h)
A função MsiDetermineApplicablePatches usa um conjunto de arquivos de patch, arquivos XML e blobs XML e determina quais patches se aplicam a um pacote especificado do Windows Installer e em qual sequência. A função pode levar em conta os patches substituídos ou obsoletos. Essa função não contabiliza os produtos ou patches instalados no sistema que não são especificados no conjunto.
Sintaxe
UINT MsiDetermineApplicablePatchesA(
[in] LPCSTR szProductPackagePath,
[in] DWORD cPatchInfo,
[in] PMSIPATCHSEQUENCEINFOA pPatchInfo
);
Parâmetros
[in] szProductPackagePath
Caminho completo para um arquivo de .msi. A função determina os patches aplicáveis a esse pacote e em qual sequência.
[in] cPatchInfo
Número de patches na matriz. Deve ser maior que zero.
[in] pPatchInfo
Ponteiro para uma matriz de estruturas MSIPATCHSEQUENCEINFO .
Valor retornado
A função MsiDetermineApplicablePatches retorna os valores a seguir.
Valor | Significado |
---|---|
|
A função falhou de uma maneira não abordada nos outros códigos de erro. |
|
Um argumento é inválido. |
|
Nenhuma sequência válida foi encontrada para o conjunto de patches. |
|
Os patches foram classificados com êxito. |
|
O arquivo .msi não foi encontrado. |
|
O caminho para o arquivo .msi não foi encontrado. |
|
Os dados de patch XML são inválidos. |
|
Um pacote de instalação referenciado por caminho não pode ser aberto. |
|
Esse erro poderá ser retornado se a função tiver sido chamada de uma ação personalizada ou se o MSXML 3.0 não estiver instalado. |
Comentários
Se essa função for chamada de uma ação personalizada, ela falhará e retornará ERROR_CALL_NOT_IMPLEMENTED. A função requer MSXML versão 3.0 para processar XML e retorna ERROR_CALL_NOT_IMPLEMENTED se o MSXML 3.0 não estiver instalado.
A função MsiDetermineApplicablePatches define os membros uStatus e dwOrder de cada estrutura MSIPATCHSEQUENCEINFO apontada por pPatchInfo. Cada estrutura contém informações sobre um patch específico.
Se a função for bem-sucedida, a estrutura MSIPATCHSEQUENCEINFO de cada patch que pode ser aplicado ao produto retornará com um uStatus de ERROR_SUCCESS e um dwOrder maior ou igual a zero. Os valores de dwOrder maiores ou iguais a zero indicam a melhor sequência de aplicativos para os patches começando com zero.
Se a função for bem-sucedida, os patches excluídos da melhor sequência de aplicação de patch retornarão uma estrutura MSIPATCHSEQUENCEINFO com um dwOrder igual a -1. Nesses casos, um campo uStatus de ERROR_SUCCESS indica um patch obsoleto ou substituído para o produto. Um campo uStatus de ERROR_PATCH_TARGET_NOT_FOUND indica um patch inaplicativo ao produto.
Se a função falhar, a estrutura MSIPATCHSEQUENCEINFO para cada patch retornará um dwOrder igual a -1. Nesse caso, os campos uStatus podem conter erros com mais informações sobre patches individuais. Por exemplo, ERROR_PATCH_NO_SEQUENCE é retornado para patches que têm informações de sequenciamento circular.
Observação
O cabeçalho msi.h define MsiDetermineApplicablePatches 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
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 3.0 ou versões posteriores 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 |
Confira também
Sem suporte no Windows Installer 2.0 e nas versões anteriores