파일 버전 정보 얻기

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;
}

 

prev 1 ··· 16 17 18 19 20 21 22 ··· 54 next