Compartilhar via


Função VerFindFileA (winver.h)

Determina onde instalar um arquivo com base em se ele localiza outra versão do arquivo no sistema. Os valores VerFindFile retorna nos buffers especificados são usados em uma chamada subsequente para a função VerInstallFile.

Sintaxe

DWORD VerFindFileA(
  [in]           DWORD  uFlags,
  [in]           LPCSTR szFileName,
  [in, optional] LPCSTR szWinDir,
  [in]           LPCSTR szAppDir,
  [out]          LPSTR  szCurDir,
  [in, out]      PUINT  puCurDirLen,
  [out]          LPSTR  szDestDir,
  [in, out]      PUINT  puDestDirLen
);

Parâmetros

[in] uFlags

Tipo: DWORD

Esse parâmetro pode ser o valor a seguir. Todos os outros bits são reservados.

Valor Significado
VFFF_ISSHAREDFILE
0x0001
O arquivo de origem pode ser compartilhado por vários aplicativos. Um aplicativo pode usar essas informações para determinar onde o arquivo deve ser copiado.

[in] szFileName

Tipo: LPCTSTR

O nome do arquivo a ser instalado. Inclua apenas o nome e a extensão do arquivo, não um caminho.

[in, optional] szWinDir

Tipo: LPCTSTR

O diretório no qual o Windows está em execução ou será executado. Essa cadeia de caracteres é retornada pela função GetWindowsDirectory .

[in] szAppDir

Tipo: LPCTSTR

O diretório em que o programa de instalação está instalando um conjunto de arquivos relacionados. Se o programa de instalação estiver instalando um aplicativo, esse será o diretório em que o aplicativo residirá. Esse parâmetro também aponta para o diretório atual do aplicativo, a menos que especificado de outra forma.

[out] szCurDir

Tipo: LPWSTR

Um buffer que recebe o caminho para uma versão atual do arquivo que está sendo instalado. O caminho é uma cadeia de caracteres com término zero. Se uma versão atual não estiver instalada, o buffer conterá uma cadeia de caracteres de comprimento zero. O buffer deve ter pelo menos _MAX_PATH caracteres, embora isso não seja necessário.

[in, out] puCurDirLen

Tipo: PUINT

O comprimento do buffer de szCurDir. Esse ponteiro não deve ser NULL.

Quando a função retorna, lpuCurDirLen contém o tamanho, em caracteres, dos dados retornados em szCurDir, incluindo o caractere nulo de encerramento. Se o buffer for muito pequeno para conter todos os dados, lpuCurDirLen será o tamanho do buffer necessário para manter o caminho.

[out] szDestDir

Tipo: LPTSTR

Um buffer que recebe o caminho para o local de instalação recomendado pelo VerFindFile. O caminho é uma cadeia de caracteres com término zero. O buffer deve ter pelo menos _MAX_PATH caracteres, embora isso não seja necessário.

[in, out] puDestDirLen

Tipo: PUINT

Um ponteiro para uma variável que especifica o comprimento do buffer de szDestDir. Esse ponteiro não deve ser NULL.

Quando a função retorna, lpuDestDirLen contém o tamanho, em caracteres, dos dados retornados em szDestDir, incluindo o caractere nulo de terminação. Se o buffer for muito pequeno para conter todos os dados, lpuDestDirLen será o tamanho do buffer necessário para manter o caminho.

Valor de retorno

Tipo: DWORD

O valor retornado é uma máscara de bits que indica o status do arquivo. Pode ser um ou mais dos valores a seguir. Todos os outros valores são reservados.

Código/valor de retorno Descrição
VFF_CURNEDEST
0x0001
A versão atualmente instalada do arquivo não está no destino recomendado.
VFF_FILEINUSE
0x0002
O sistema está usando a versão atualmente instalada do arquivo; portanto, o arquivo não pode ser substituído ou excluído.
VFF_BUFFTOOSMALL
0x0004
Pelo menos um dos buffers era muito pequeno para conter a cadeia de caracteres correspondente. Um aplicativo deve verificar os buffers de saída para determinar qual buffer era muito pequeno.

Observações

Essa função funciona em imagens de arquivo de 16, 32 e 64 bits.

VerFindFile pesquisa uma cópia do arquivo especificado usando a função OpenFile. No entanto, ele determina o diretório do sistema do diretório do Windows especificado ou pesquisa o caminho.

Se o parâmetro dwFlags indicar que o arquivo é privado para este aplicativo (não VFFF_ISSHAREDFILE), VerFindFile recomenda instalar o arquivo no diretório do aplicativo. Caso contrário, se o sistema estiver executando uma cópia compartilhada do sistema, a função recomendará a instalação do arquivo no diretório do Windows. Se o sistema estiver executando uma cópia privada do sistema, a função recomendará a instalação do arquivo no diretório do sistema.

Nota

O cabeçalho winver.h define VerFindFile 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 2000 Professional [somente aplicativos da área de trabalho]
servidor com suporte mínimo Windows 2000 Server [somente aplicativos da área de trabalho]
da Plataforma de Destino Windows
cabeçalho winver.h (inclua Windows.h)
biblioteca Version.lib
de DLL Api-ms-win-core-version-l1-1-0.dll

Consulte também

Conceitual

GetWindowsDirectory

OpenFile

outros recursos

de referência de

VerInstallFile

informações de versão