다음을 통해 공유


VerFindFileW 함수(winver.h)

시스템에서 파일의 다른 버전을 찾을지 여부에 따라 파일을 설치할 위치를 결정합니다. 지정된 버퍼에서 VerFindFile 이 반환하는 값은 VerInstallFile 함수에 대한 후속 호출에서 사용됩니다.

구문

DWORD VerFindFileW(
  [in]           DWORD   uFlags,
  [in]           LPCWSTR szFileName,
  [in, optional] LPCWSTR szWinDir,
  [in]           LPCWSTR szAppDir,
  [out]          LPWSTR  szCurDir,
  [in, out]      PUINT   puCurDirLen,
  [out]          LPWSTR  szDestDir,
  [in, out]      PUINT   puDestDirLen
);

매개 변수

[in] uFlags

형식:DWORD

이 매개 변수는 다음 값일 수 있습니다. 다른 모든 비트는 예약되어 있습니다.

의미
VFFF_ISSHAREDFILE
0x0001
원본 파일은 여러 애플리케이션에서 공유할 수 있습니다. 애플리케이션은 이 정보를 사용하여 파일을 복사할 위치를 결정할 수 있습니다.

[in] szFileName

형식: LPCTSTR

설치할 파일의 이름입니다. 경로가 아닌 파일 이름 및 확장명만 포함합니다.

[in, optional] szWinDir

형식: LPCTSTR

Windows가 실행 중이거나 실행될 디렉터리입니다. 이 문자열은 GetWindowsDirectory 함수에 의해 반환됩니다.

[in] szAppDir

형식: LPCTSTR

설치 프로그램이 관련 파일 집합을 설치하는 디렉터리입니다. 설치 프로그램이 애플리케이션을 설치하는 경우 애플리케이션이 상주할 디렉터리입니다. 이 매개 변수는 달리 지정하지 않는 한 애플리케이션의 현재 디렉터리를 가리킵니다.

[out] szCurDir

형식: LPWSTR

설치 중인 파일의 현재 버전에 대한 경로를 수신하는 버퍼입니다. 경로는 0으로 끝나는 문자열입니다. 현재 버전이 설치되어 있지 않으면 버퍼에 길이가 0인 문자열이 포함됩니다. 버퍼는 필수는 아니지만 최소 _MAX_PATH 문자 길이여야 합니다.

[in, out] puCurDirLen

형식: PUINT

szCurDir 버퍼의 길이입니다. 이 포인터는 NULL이 아니어야 합니다.

함수가 반환되면 lpuCurDirLen 은 종료 null 문자를 포함하여 szCurDir에서 반환된 데이터의 크기(문자)를 포함합니다. 버퍼가 너무 작아서 모든 데이터를 포함할 수 없는 경우 lpuCurDirLen 은 경로를 보유하는 데 필요한 버퍼의 크기가 됩니다.

[out] szDestDir

형식: LPTSTR

VerFindFile에서 권장하는 설치 위치의 경로를 수신하는 버퍼입니다. 경로는 0으로 끝나는 문자열입니다. 버퍼는 필수는 아니지만 최소 _MAX_PATH 문자 길이여야 합니다.

[in, out] puDestDirLen

형식: PUINT

szDestDir 버퍼의 길이를 지정하는 변수에 대한 포인터입니다. 이 포인터는 NULL이 아니어야 합니다.

함수가 반환되면 lpuDestDirLen 은 종료 null 문자를 포함하여 szDestDir에서 반환된 데이터의 크기(문자)를 포함합니다. 버퍼가 너무 작아서 모든 데이터를 포함할 수 없는 경우 lpuDestDirLen 은 경로를 보유하는 데 필요한 버퍼의 크기가 됩니다.

반환 값

형식:DWORD

반환 값은 파일의 상태 나타내는 비트 마스크입니다. 다음 값 중 하나 이상일 수 있습니다. 다른 모든 값은 예약되어 있습니다.

반환 코드/값 설명
VFF_CURNEDEST
0x0001
현재 설치된 파일 버전이 권장 대상에 없습니다.
VFF_FILEINUSE
0x0002
시스템에서 현재 설치된 파일 버전을 사용하고 있습니다. 따라서 파일을 덮어쓰거나 삭제할 수 없습니다.
VFF_BUFFTOOSMALL
0x0004
버퍼 중 하나 이상이 너무 작아서 해당 문자열을 포함할 수 없습니다. 애플리케이션은 출력 버퍼를 검사 너무 작은 버퍼를 확인해야 합니다.

설명

이 함수는 16비트, 32비트 및 64비트 파일 이미지에서 작동합니다.

VerFindFile은OpenFile 함수를 사용하여 지정된 파일의 복사본을 검색합니다. 그러나 지정된 Windows 디렉터리에서 시스템 디렉터리를 결정하거나 경로를 검색합니다.

dwFlags 매개 변수가 파일이 이 애플리케이션에 비공개임을 나타내는 경우(VFFF_ISSHAREDFILE 아님) VerFindFile은 애플리케이션의 디렉터리에 파일을 설치하는 것이 좋습니다. 그렇지 않으면 시스템에서 시스템의 공유 복사본을 실행하는 경우 함수는 Windows 디렉터리에 파일을 설치하는 것이 좋습니다. 시스템에서 시스템의 프라이빗 복사본을 실행하는 경우 함수는 시스템 디렉터리에 파일을 설치하는 것이 좋습니다.

참고

winver.h 헤더는 UNICODE 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 VerFindFile을 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 winver.h(Windows.h 포함)
라이브러리 Version.lib
DLL Api-ms-win-core-version-l1-1-0.dll

추가 정보

개념

GetWindowsDirectory

OpenFile

기타 리소스

참조

VerInstallFile

버전 정보