BOOL WINAPI GetFileVersionInfoA(
  _In_       LPCSTR lptstrFilename,
  _Reserved_ DWORD   dwHandle,
  _In_       DWORD   dwLen,
  _Out_      LPVOID  lpData
);


BOOL WINAPI GetFileVersionInfoW(
  _In_       LPWSTR lptstrFilename,
  _Reserved_ DWORD   dwHandle,
  _In_       DWORD   dwLen,
  _Out_      LPVOID  lpData
);


BOOL GetFileVersionInfoExA(
  DWORD  dwFlags,
  LPCSTR lpwstrFilename,
  DWORD  dwHandle,
  DWORD  dwLen,
  LPVOID lpData
);


BOOL GetFileVersionInfoExW(
  DWORD   dwFlags,
  LPCWSTR lpwstrFilename,
  DWORD   dwHandle,
  DWORD   dwLen,
  LPVOID  lpData
);


DWORD WINAPI GetFileVersionInfoSizeA(
  _In_      LPCSTR lptstrFilename,
  _Out_opt_ LPDWORD lpdwHandle
);


DWORD WINAPI GetFileVersionInfoSizeW(
  _In_      LPWSTR lptstrFilename,
  _Out_opt_ LPDWORD lpdwHandle
);


DWORD GetFileVersionInfoSizeExA(
  DWORD   dwFlags,
  LPCSTR  lpwstrFilename,
  LPDWORD lpdwHandle
);


DWORD GetFileVersionInfoSizeExW(
  DWORD   dwFlags,
  LPCWSTR lpwstrFilename,
  LPDWORD lpdwHandle
);


BOOL WINAPI VerQueryValueA(
  _In_  LPCVOID pBlock,
  _In_  LPCSTR lpSubBlock,
  _Out_ LPVOID  *lplpBuffer,
  _Out_ PUINT   puLen
);


BOOL WINAPI VerQueryValueW(
  _In_  LPCVOID pBlock,
  _In_  LPWSTR lpSubBlock,
  _Out_ LPVOID  *lplpBuffer,
  _Out_ PUINT   puLen
);
