Função MsiLocateComponentA (msi.h)

A função MsiLocateComponent retorna o caminho completo para um componente instalado sem um código de produto. Essa função tenta determinar o produto usando MsiGetProductCode, mas não é garantido que encontre o produto correto para o chamador. MsiGetComponentPath sempre deve ser chamado quando possível.

Sintaxe

INSTALLSTATE MsiLocateComponentA(
  [in]      LPCSTR  szComponent,
  [out]     LPSTR   lpPathBuf,
  [in, out] LPDWORD pcchBuf
);

Parâmetros

[in] szComponent

Especifica a ID do componente a ser localizado.

[out] lpPathBuf

Ponteiro para uma variável que recebe o caminho para o componente. A variável inclui o caractere nulo de terminação.

[in, out] pcchBuf

Ponteiro para uma variável que especifica o tamanho, em caracteres, do buffer apontado pelo parâmetro lpPathBuf . Na entrada, esse é o tamanho total do buffer, incluindo um espaço para um caractere nulo de terminação. Após o sucesso da função MsiLocateComponent , a variável apontada por pcchBuf contém a contagem de caracteres que não incluem o caractere nulo de terminação. Se o tamanho do buffer passado for muito pequeno, a função retornará INSTALLSTATE_MOREDATA.

Se lpPathBuf for nulo, pcchBuf poderá ser nulo.

Valor retornado

Valor Significado
INSTALLSTATE_NOTUSED
O componente que está sendo solicitado está desabilitado no computador.
INSTALLSTATE_ABSENT
O componente não está instalado. Consulte Observações.
INSTALLSTATE_INVALIDARG
Um dos parâmetros de função é inválido.
INSTALLSTATE_LOCAL
O componente é instalado localmente.
INSTALLSTATE_MOREDATA
O buffer fornecido era muito pequeno.
INSTALLSTATE_SOURCE
O componente é instalado para ser executado a partir da origem.
INSTALLSTATE_SOURCEABSENT
A origem do componente é inacessível.
INSTALLSTATE_UNKNOWN
O código do produto ou A ID do componente é desconhecido. Consulte Observações.

Comentários

A função MsiLocateComponent pode retornar INSTALLSTATE_ABSENT ou INSTALL_STATE_UNKNOWN, pelos seguintes motivos:

  • INSTALLSTATE_ABSENT

    O aplicativo não garantiu corretamente que o recurso foi instalado chamando MsiUseFeature e, se necessário, MsiConfigureFeature.

  • INSTALLSTATE_UNKNOWN

    O recurso não foi publicado. O aplicativo deve ter determinado isso anteriormente chamando MsiQueryFeatureState ou MsiEnumFeatures. O aplicativo faz essas chamadas enquanto inicializa. Um aplicativo só deve usar recursos que são conhecidos por serem publicados. Como INSTALLSTATE_UNKNOWN deveria ter sido retornado por MsiUseFeature também, MsiUseFeature não foi chamado ou seu valor retornado não foi verificado corretamente.

Observação

O cabeçalho msi.h define MsiLocateComponent 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

Confira também

Funções específicas do componente