33 static const int bufSize = 512;
34 TCHAR filename[bufSize];
36 UINT i = GetSystemDirectory(filename, bufSize);
37 if (i > 0 && i < bufSize) {
38 if (_tcscat_s(filename, bufSize, __TEXT(
"\\d2d1.dll")) == 0) {
39 DWORD versionInfoSize = GetFileVersionInfoSize(filename,
nullptr);
40 if (versionInfoSize) {
41 QVarLengthArray<BYTE> info(
static_cast<
int>(versionInfoSize));
42 if (GetFileVersionInfo(filename, 0, versionInfoSize, info.data())) {
46 if (VerQueryValue(info.constData(), __TEXT(
"\\"),
47 reinterpret_cast<
void **>(&fi), &size) && size) {
48 const auto *verInfo =
reinterpret_cast<
const VS_FIXEDFILEINFO *>(fi);
49 return QVersionNumber{HIWORD(verInfo->dwFileVersionMS), LOWORD(verInfo->dwFileVersionMS),
50 HIWORD(verInfo->dwFileVersionLS), LOWORD(verInfo->dwFileVersionLS)};
56 return QVersionNumber();
74 const QVersionNumber systemVersion = systemD2DVersion();
75 const QVersionNumber minimumVersion = minimumD2DVersion();
76 if (!systemVersion.isNull() && systemVersion < minimumVersion) {
77 QString msg = QCoreApplication::translate(
"QWindowsDirect2DIntegration",
78 "Qt cannot load the direct2d platform plugin because "
79 "the Direct2D version on this system is too old. The "
80 "minimum system requirement for this platform plugin "
81 "is Windows 7 SP1 with Platform Update.\n\n"
82 "The minimum Direct2D version required is %1. "
83 "The Direct2D version on this system is %2.")
84 .arg(minimumVersion.toString(), systemVersion.toString());
86 QString caption = QCoreApplication::translate(
"QWindowsDirect2DIntegration",
87 "Cannot load direct2d platform plugin");
90 msg.toStdWString().c_str(),
91 caption.toStdWString().c_str(),
92 MB_OK | MB_ICONERROR);
99 if (!integration->init()) {
101 integration =
nullptr;