Compartilhar via


Função MsiGetSourcePathA (msiquery.h)

A função msiGetSourcePath retorna o caminho de origem completo para uma pasta na tabela Directory.

Sintaxe

UINT MsiGetSourcePathA(
  [in]      MSIHANDLE hInstall,
  [in]      LPCSTR    szFolder,
  [out]     LPSTR     szPathBuf,
  [in, out] LPDWORD   pcchPathBuf
);

Parâmetros

[in] hInstall

Manipule a instalação fornecida para uma ação personalizada de DLL ou obtida por meio MsiOpenPackage, MsiOpenPackageExou MsiOpenProduct.

[in] szFolder

Uma cadeia de caracteres terminada em nulo que especifica um registro da tabela Directory. Se o diretório for um diretório raiz, isso poderá ser um valor da coluna DefaultDir. Caso contrário, ele deve ser um valor da coluna Diretório.

[out] szPathBuf

Ponteiro para o buffer que recebe o caminho de origem completo encerrado nulo. Não tente determinar o tamanho do buffer passando um nulo (valor=0) para szPathBuf. Você pode obter o tamanho do buffer passando uma cadeia de caracteres vazia (por exemplo, ""). Em seguida, a função retorna ERROR_MORE_DATA e pcchPathBuf contém o tamanho do buffer necessário em TCHARs, não incluindo o caractere nulo de terminação. No retorno de ERROR_SUCCESS, pcchPathBuf contém o número de TCHARs gravados no buffer, não incluindo o caractere nulo de terminação.

[in, out] pcchPathBuf

Ponteiro para a variável que especifica o tamanho, em TCHARs, do buffer apontado pela variável szPathBuf. Quando a função retorna ERROR_SUCCESS, essa variável contém o tamanho dos dados copiados para szPathBuf, não incluindo o caractere nulo de terminação. Se szPathBuf não for grande o suficiente, a função retornará ERROR_MORE_DATA e armazenará o tamanho necessário, não incluindo o caractere nulo de encerramento, na variável apontada por pcchPathBuf.

Valor de retorno

A função MsiGetSourcePath retorna os seguintes valores:

Observações

Antes de chamar essa função, o instalador deve primeiro executar a ação CostInitialize, de ação FileCost e ação CostFinalize. Para obter mais informações, consulte chamando funções de banco de dados de programas.

Se ERROR_MORE_DATA for retornado, o parâmetro que é um ponteiro fornecerá o tamanho do buffer necessário para manter a cadeia de caracteres. Se ERROR_SUCCESS for retornado, ele fornecerá o número de caracteres gravados no buffer de cadeia de caracteres. Portanto, você pode obter o tamanho do buffer passando uma cadeia de caracteres vazia (por exemplo, "") para o parâmetro que especifica o buffer. Não tente determinar o tamanho do buffer passando um Nulo (valor=0).

Se a função falhar, você poderá obter informações de erro estendidas usando msiGetLastErrorRecord.

Nota

O cabeçalho msiquery.h define MsiGetSourcePath como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do 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
da Plataforma de Destino Windows
cabeçalho msiquery.h
biblioteca Msi.lib
de DLL Msi.dll

Consulte também

Funções de local do instalador

passando nulo como o argumento do Windows Installer Functions