파일 버전 정보 얻기
CString GetCurrentVersion()
{// 현재 버전 얻어 옴
WCHAR szPath[512] = {0,};
GetModuleFileNameW(AfxGetInstanceHandle(), szPath, _countof(szPath));
DWORD dwVersion;
DWORD dwVersionLen = GetFileVersionInfoSizeW(szPath, &dwVersion);
if(dwVersionLen < 0)
return NULL;
HANDLE hVersionInfo = GlobalAlloc(GMEM_MOVEABLE, dwVersionLen);
LPVOID pVersionInfo = GlobalLock(hVersionInfo);
BOOL bRet = GetFileVersionInfoW(szPath, dwVersion, dwVersionLen, pVersionInfo);
WCHAR* pszVersion = NULL;
UINT uiVersionLen;
CString strVersion;
VS_FIXEDFILEINFO* pFileInfo;
if( VerQueryValueW(pVersionInfo, L"\\", (void**)&pFileInfo, &uiVersionLen) )
{
strVersion.Format(L"%u.%u.%u.%u",
HIWORD(pFileInfo->dwFileVersionMS), LOWORD(pFileInfo->dwFileVersionMS),
HIWORD(pFileInfo->dwFileVersionLS), LOWORD(pFileInfo->dwFileVersionLS));
strVersion.ReleaseBuffer();
}
GlobalUnlock(hVersionInfo);
GlobalFree(hVersionInfo);
return strVersion;
}