Compartilhar via


Função MsiGetComponentPathA (msi.h)

A função MsiGetComponentPath retorna o caminho completo para um componente instalado. Se o caminho da chave do componente for uma chave do Registro, a chave do Registro será retornada.

Sintaxe

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

Parâmetros

[in] szProduct

Especifica o código do produto para o produto cliente.

[in] szComponent

Especifica a ID do componente a ser localizado.

[out] lpPathBuf

Ponteiro para uma variável que recebe o caminho para o componente. Esse parâmetro pode ser nulo. Se o componente for uma chave do Registro, as raízes do Registro serão representadas numericamente. Se esse for um caminho de subchave do Registro, haverá uma barra invertida no final do Caminho da Chave. Se esse for um caminho de chave de valor do Registro, não haverá barra invertida no final. Por exemplo, um caminho do Registro em um sistema operacional de 32 bits de HKEY_CURRENT_USER\SOFTWARE\Microsoft é retornado como "01:\SOFTWARE\Microsoft". As raízes do Registro retornadas em sistemas operacionais de 32 bits são definidas conforme mostrado na tabela a seguir.

Observação Em sistemas operacionais de 64 bits, um valor de 20 é adicionado às raízes numéricas do Registro nesta tabela para distingui-los dos caminhos de chave do Registro em sistemas operacionais de 32 bits. Por exemplo, um caminho de chave do Registro de HKEY_CURRENT_USER\SOFTWARE\Microsoft será retornado como "21:\SOFTWARE\Microsoft\", se o caminho do componente for uma chave do Registro em um sistema operacional de 64 bits.
 
Raiz Significado
HKEY_CLASSES_ROOT
00
HKEY_CURRENT_USER
01
HKEY_LOCAL_MACHINE
02
HKEY_USERS
03

[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. Se o buffer passado for muito pequeno, a contagem retornada não incluirá o caractere nulo de encerramento.

Se lpPathBuf for nulo, pcchBuf poderá ser nulo.

Valor de retorno

A função MsiGetComponentPath retorna os valores a seguir.

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

Observações

Após o sucesso da função msiGetComponentPath , o parâmetro pcchBuf contém o comprimento da cadeia de caracteres em lpPathBuf.

A função MsiGetComponentPath 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.

Nota

O cabeçalho msi.h define MsiGetComponentPath 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. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows Installer 5.0 no Windows Server 2012, Windows 8, Windows Server 2008 R2 ou Windows 7. Windows Installer 4.0 ou Windows Installer 4.5 no Windows Server 2008 ou Windows Vista. Windows Installer no Windows Server 2003 ou Windows XP. Consulte os Requisitos de Run-Time do Windows Installer para obter informações sobre o service pack mínimo do Windows exigido por uma versão do Windows Installer.
da Plataforma de Destino Windows
cabeçalho msi.h
biblioteca Msi.lib
de DLL Msi.dll

Consulte também

Funções Component-Specific