Guest User

Untitled

a guest
Jun 24th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.08 KB | None | 0 0
  1. extern "C"
  2. BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpReserved*/)
  3. {
  4. if (dwReason == DLL_PROCESS_ATTACH)
  5. {
  6. DWORD length = ::GetModuleFileName(hInstance, fullFilename, MAX_PATH);
  7. // ...
  8. }
  9. }
  10.  
  11. CString modFilename;
  12. if(GetModuleFileName(AfxGetInstanceHandle(), modFilename.GetBuffer(MAX_PATH), MAX_PATH) > 0)
  13. {
  14. modFilename.ReleaseBuffer(MAX_PATH);
  15. DWORD dwHandle = 0;
  16. DWORD dwSize = GetFileVersionInfoSize(modFilename, &dwHandle);
  17. if(dwSize > 0)
  18. {
  19. LPBYTE lpInfo = new BYTE[dwSize];
  20. ZeroMemory(lpInfo, dwSize);
  21. if(GetFileVersionInfo(modFilename, 0, dwSize, lpInfo))
  22. {
  23. //// Use the version information block to obtain the FILEVERSION.
  24. //// This will extract language specific part of versio resources. 040904E4 is English(US) locale,
  25. //// it should match to your project
  26. //UINT valLen = MAX_PATH;
  27. //LPVOID valPtr = NULL;
  28. //if(::VerQueryValue(lpInfo,
  29. // TEXT("\StringFileInfo\040904E4\FileVersion"),
  30. // &valPtr,
  31. // &valLen))
  32. //{
  33. // CString valStr((LPCTSTR)valPtr);
  34.  
  35. // AfxMessageBox(valStr);
  36. //}
  37.  
  38. //// This will extract so called FIXED portion of the version info
  39. UINT valLen = MAX_PATH;
  40. LPVOID valPtr = NULL;
  41. if(::VerQueryValue(lpInfo,
  42. TEXT("\"),
  43. &valPtr,
  44. &valLen))
  45. {
  46. VS_FIXEDFILEINFO* pFinfo = (VS_FIXEDFILEINFO*)valPtr;
  47.  
  48. // convert to text
  49. CString valStr;
  50. valStr.Format(_T("%d.%d.%d.%d"),
  51. (pFinfo->dwFileVersionMS >> 16) & 0xFFFF,
  52. (pFinfo->dwFileVersionMS) & 0xFFFF,
  53. (pFinfo->dwFileVersionLS >> 16) & 0xFFFF,
  54. (pFinfo->dwFileVersionLS) & 0xFFFF
  55. );
  56.  
  57. AfxMessageBox(valStr);
  58. }
  59. }
  60. delete[] lpInfo;
  61. }
  62. }
Add Comment
Please, Sign In to add comment