std::string GetAppProductVersion(char* path)
{
VS_FIXEDFILEINFO verInfo;
DWORD dwHandle;
DWORD dwSize = GetFileVersionInfoSize(path, &dwHandle);
if (dwSize != 0)
{
BYTE* pData = new BYTE[dwSize];
if (!GetFileVersionInfo(path, dwHandle, dwSize, pData))
{
delete [] pData;
return strVersion;
}
void* pBuf = NULL;
UINT pBufLen;
if (!VerQueryValue(pData, "//StringFileInfo//080404e4//ProductVersion", &pBuf, &pBufLen)) {
delete [] pData;
return strVersion;
}
char szVersion[80];
memcpy(szVersion, pBuf, pBufLen);
szVersion[pBufLen] = 0;
strVersion = szVersion;
delete [] pData;
}
return strVersion;
}