Função MsiGetTargetPathA (msiquery.h)
A função MsiGetTargetPath retorna o caminho de destino completo para uma pasta na tabela Diretório.
Sintaxe
UINT MsiGetTargetPathA(
[in] MSIHANDLE hInstall,
[in] LPCSTR szFolder,
[out] LPSTR szPathBuf,
[in, out] LPDWORD pcchPathBuf
);
Parâmetros
[in] hInstall
Manipule para a instalação fornecida a uma ação personalizada de DLL ou obtida por meio de MsiOpenPackage, MsiOpenPackageEx ou 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 deverá ser um valor da coluna Diretório.
[out] szPathBuf
Ponteiro para o buffer que recebe o caminho de destino completo encerrado em nulo. Não tente determinar o tamanho do buffer passando um nulo (value=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, sem incluir o caractere nulo de terminação. No retorno de ERROR_SUCCESS, pcchPathBuf contém o número de TCHARs gravados no buffer, sem incluir 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, sem incluir 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, sem incluir o caractere nulo de terminação, na variável apontada por pcchPathBuf.
Valor retornado
A função MsiGetTargetPath retorna os seguintes valores:
Comentários
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 Null (value=0).
Antes de chamar essa função, o instalador deve primeiro executar a ação CostInitialize, a ação FileCost e a ação CostFinalize. Para obter mais informações, consulte Chamando funções de banco de dados de programas.
MsiGetTargetPath retornará o caminho padrão do diretório de destino criado no pacote se o local atual do destino não estiver disponível para uma instalação. Por exemplo, se durante uma Instalação de Manutenção um diretório de destino em um local de rede não estiver disponível, o instalador redefinirá os caminhos de diretório de destino de volta para seus padrões. Para obter o caminho real do diretório de destino, nesse caso, chame MsiProvideComponent para um componente que é conhecido por ter sido instalado anteriormente no diretório pesquisado e defina dwInstallMode como INSTALLMODE_NODETECTION.
Para obter mais informações, consulte Chamando funções de banco de dados de programas.
Se a função falhar, você poderá obter informações de erro estendidas usando MsiGetLastErrorRecord.
Observação
O cabeçalho msiquery.h define MsiGetTargetPath 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 no Windows Server 2003 ou no Windows XP |
Plataforma de Destino | Windows |
Cabeçalho | msiquery.h |
Biblioteca | Msi.lib |
DLL | Msi.dll |
Confira também
Funções de localização do instalador
Passando Null como o argumento das funções do Windows Installer