#include <winapifamily.h>
/*****************************************************************************\
* *
* winver.h - Version management functions, types, and definitions *
* *
* Include file for VER.DLL. This library is *
* designed to allow version stamping of Windows executable files*
* and of special .VER files for DOS executable files. *
* *
* Copyright (c) Microsoft Corporation. All rights reserved. *
* *
\*****************************************************************************/
#ifndef VER_H
#define VER_H
#include <SpecStrings.h>
#include <verrsrc.h>
#ifdef __cplusplus
extern
"C"
{
#endif
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#ifndef RC_INVOKED /* RC doesn't need to see the rest of this */
(
_In_opt_ LPCSTR szWinDir,
_Out_writes_(*puCurDirLen) LPSTR szCurDir,
_Inout_ PUINT puCurDirLen,
_Out_writes_(*puDestDirLen) LPSTR szDestDir,
_Inout_ PUINT puDestDirLen
);
(
_In_opt_ LPCWSTR szWinDir,
_Out_writes_(*puCurDirLen) LPWSTR szCurDir,
_Inout_ PUINT puCurDirLen,
_Out_writes_(*puDestDirLen) LPWSTR szDestDir,
_Inout_ PUINT puDestDirLen
);
#ifdef UNICODE
#define VerFindFile VerFindFileW
#else
#define VerFindFile VerFindFileA
#endif // !UNICODE
#endif // RC_INVOKED
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#ifndef RC_INVOKED
(
_In_ LPCSTR szSrcFileName,
_In_ LPCSTR szDestFileName,
_Out_writes_(*puTmpFileLen) LPSTR szTmpFile,
_Inout_ PUINT puTmpFileLen
);
(
_In_ LPCWSTR szSrcFileName,
_In_ LPCWSTR szDestFileName,
_Out_writes_(*puTmpFileLen) LPWSTR szTmpFile,
_Inout_ PUINT puTmpFileLen
);
#ifdef UNICODE
#define VerInstallFile VerInstallFileW
#else
#define VerInstallFile VerInstallFileA
#endif // !UNICODE
#endif // RC_INVOKED
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#ifndef RC_INVOKED
(
_In_ LPCSTR lptstrFilename, /* Filename of version stamped file */
_Out_opt_ LPDWORD lpdwHandle /* Information for use by GetFileVersionInfo */
);
(
_In_ LPCWSTR lptstrFilename, /* Filename of version stamped file */
_Out_opt_ LPDWORD lpdwHandle /* Information for use by GetFileVersionInfo */
);
#ifdef UNICODE
#define GetFileVersionInfoSize GetFileVersionInfoSizeW
#else
#define GetFileVersionInfoSize GetFileVersionInfoSizeA
#endif // !UNICODE
(
_In_ LPCSTR lptstrFilename, /* Filename of version stamped file */
_Reserved_ DWORD dwHandle, /* Information from GetFileVersionSize */
_In_ DWORD dwLen, /* Length of buffer for info */
_Out_writes_bytes_(dwLen) LPVOID lpData /* Buffer to place the data structure */
);
(
_In_ LPCWSTR lptstrFilename, /* Filename of version stamped file */
_Reserved_ DWORD dwHandle, /* Information from GetFileVersionSize */
_In_ DWORD dwLen, /* Length of buffer for info */
_Out_writes_bytes_(dwLen) LPVOID lpData /* Buffer to place the data structure */
);
#ifdef UNICODE
#define GetFileVersionInfo GetFileVersionInfoW
#else
#define GetFileVersionInfo GetFileVersionInfoA
#endif // !UNICODE
#endif // RC_INVOKED
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#pragma region Application or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
#ifndef RC_INVOKED
DWORD APIENTRY GetFileVersionInfoSizeExA(_In_ DWORD dwFlags, _In_ LPCSTR lpwstrFilename, _Out_ LPDWORD lpdwHandle);
__stdcall
GetFileVersionInfoSizeExA
(
,
,
);
DWORD APIENTRY GetFileVersionInfoSizeExW(_In_ DWORD dwFlags, _In_ LPCWSTR lpwstrFilename, _Out_ LPDWORD lpdwHandle);
__stdcall
GetFileVersionInfoSizeExW
(
,
,
);
#ifdef UNICODE
#define GetFileVersionInfoSizeEx GetFileVersionInfoSizeExW
#else
#define GetFileVersionInfoSizeEx GetFileVersionInfoSizeExA
#endif // !UNICODE
BOOL APIENTRY GetFileVersionInfoExA(_In_ DWORD dwFlags,
_In_ LPCSTR lpwstrFilename,
_Reserved_ DWORD dwHandle,
_Out_writes_bytes_(dwLen) LPVOID lpData);
BOOL APIENTRY GetFileVersionInfoExW(_In_ DWORD dwFlags,
_In_ LPCWSTR lpwstrFilename,
_Reserved_ DWORD dwHandle,
_Out_writes_bytes_(dwLen) LPVOID lpData);
#ifdef UNICODE
#define GetFileVersionInfoEx GetFileVersionInfoExW
#else
#define GetFileVersionInfoEx GetFileVersionInfoExA
#endif // !UNICODE
#endif // RC_INVOKED
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#ifndef RC_INVOKED
#endif /* !RC_INVOKED */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
#ifndef RC_INVOKED
(
_Out_writes_(cchLang) LPSTR szLang,
);
(
_Out_writes_(cchLang) LPWSTR szLang,
);
#ifdef UNICODE
#define VerLanguageName VerLanguageNameW
#else
#define VerLanguageName VerLanguageNameA
#endif // !UNICODE
(
_Outptr_result_buffer_(_Inexpressible_("buffer can be PWSTR or DWORD*")) LPVOID * lplpBuffer,
);
(
_Outptr_result_buffer_(_Inexpressible_("buffer can be PWSTR or DWORD*")) LPVOID * lplpBuffer,
);
#ifdef UNICODE
#define VerQueryValue VerQueryValueW
#else
#define VerQueryValue VerQueryValueA
#endif // !UNICODE
#endif /* !RC_INVOKED */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#ifdef __cplusplus
}
#endif
#endif /* !VER_H */