5 changed files with 45 additions and 33 deletions
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
#ifndef _H_QUERYVERSION_H_ |
||||
#define _H_QUERYVERSION_H_ |
||||
#include <Windows.h> |
||||
#pragma comment(lib, "Version.lib") |
||||
|
||||
inline void QueryVersionInfo(HMODULE hModule, WORD Resource, DWORD* dwLeftMost, DWORD* dwSecondLeft, DWORD* dwSecondRight, DWORD* dwRightMost) |
||||
{ |
||||
HRSRC hResInfo; |
||||
DWORD dwSize; |
||||
HGLOBAL hResData; |
||||
LPVOID pRes, pResCopy; |
||||
UINT uLen; |
||||
VS_FIXEDFILEINFO* lpFfi; |
||||
|
||||
hResInfo = FindResource(hModule, MAKEINTRESOURCE(Resource), RT_VERSION); |
||||
dwSize = SizeofResource(hModule, hResInfo); |
||||
hResData = LoadResource(hModule, hResInfo); |
||||
pRes = LockResource(hResData); |
||||
pResCopy = LocalAlloc(LMEM_FIXED, dwSize); |
||||
CopyMemory(pResCopy, pRes, dwSize); |
||||
FreeResource(hResData); |
||||
|
||||
VerQueryValue(pResCopy, TEXT("\\"), (LPVOID*)&lpFfi, &uLen); |
||||
|
||||
DWORD dwFileVersionMS = lpFfi->dwFileVersionMS; |
||||
DWORD dwFileVersionLS = lpFfi->dwFileVersionLS; |
||||
|
||||
*dwLeftMost = HIWORD(dwFileVersionMS); |
||||
*dwSecondLeft = LOWORD(dwFileVersionMS); |
||||
*dwSecondRight = HIWORD(dwFileVersionLS); |
||||
*dwRightMost = LOWORD(dwFileVersionLS); |
||||
|
||||
LocalFree(pResCopy); |
||||
} |
||||
#endif |
||||
Loading…
Reference in new issue