#include "Winver.h";
#pragma comment(lib,"Version.lib")
DWORD GetIeVersion()
{
const TCHAR szFilename[] = _T("mshtml.dll");
DWORD dwMajorVersion = 0, dwMinorVersion = 0;
DWORD dwBuildNumber = 0, dwRevisionNumber = 0;
DWORD dwHandle = 0;TCHAR szBuf[80];
DWORD dwVerInfoSize = GetFileVersionInfoSize(szFilename, &dwHandle);//判断容纳文件版本信息需要一个多大的缓冲区
if (dwVerInfoSize)
{
LPVOID lpBuffer = LocalAlloc(LPTR, dwVerInfoSize);//从堆中分配指定大小的字节数
if (lpBuffer)
{
//从支持版本标记的一个模块里获取文件版本信息
if (GetFileVersionInfo(szFilename, dwHandle, dwVerInfoSize, lpBuffer))
{
VS_FIXEDFILEINFO * lpFixedFileInfo = NULL;
UINT nFixedFileInfoSize = 0;
if (VerQueryValue(lpBuffer, TEXT("\\"), (LPVOID*)&lpFixedFileInfo, &nFixedFileInfoSize) && (nFixedFileInfoSize))
{//从版本资源中获取信息
dwMajorVersion = HIWORD(lpFixedFileInfo->dwFileVersionMS);//主版本号
dwMinorVersion = LOWORD(lpFixedFileInfo->dwFileVersionMS);//副版本号
dwBuildNumber = HIWORD(lpFixedFileInfo->dwFileVersionLS);//编译版本号
dwRevisionNumber = LOWORD(lpFixedFileInfo->dwFileVersionLS);//修订版本号
}
}
LocalFree(lpBuffer);
}
}
else return 0;
wchar_t buf[1024] = { 0 };
wsprintfW(buf, L"IE 版本为 %d.%d.%d.%d", dwMajorVersion, dwMinorVersion, dwBuildNumber, dwRevisionNumber);
OutputDebugStringW(buf);
return dwMajorVersion;//返回主版本号
}