MCPcopy Create free account
hub / github.com/danoon2/Boxedwine / setWindowsVersion

Method setWindowsVersion

source/ui/data/boxedContainer.cpp:573–638  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

571}
572
573void BoxedContainer::setWindowsVersion(const BoxedWinVersion& version) {
574 BoxedReg userReg(this, false);
575 BoxedReg systemReg(this, true);
576
577 BString build = BString::valueOf(version.dwBuildNumber);
578 if (version.dwPlatformId == VER_PLATFORM_WIN32_NT) {
579
580 BString ver = B(version.szCurrentVersion);
581 if (ver.length() == 0) {
582 ver = BString::valueOf(version.dwMajorVersion) + "." + BString::valueOf(version.dwMinorVersion);
583 }
584 BString product = B("Microsoft ") + version.szDescription;
585
586 systemReg.writeKey(szKeyNT, "CurrentVersion", ver.c_str());
587 systemReg.writeKey(szKeyNT, "CSDVersion", version.szCSDVersion);
588 systemReg.writeKeyDword(szKeyNT, "CurrentMajorVersionNumber", version.dwMajorVersion);
589 systemReg.writeKeyDword(szKeyNT, "CurrentMinorVersionNumber", version.dwMinorVersion);
590 systemReg.writeKey(szKeyNT, "CurrentBuild", build.c_str());
591 systemReg.writeKey(szKeyNT, "CurrentBuildNumber", build.c_str());
592 systemReg.writeKey(szKeyNT, "ProductName", product.c_str());
593 systemReg.writeKey(szKeyProdNT, "ProductType", version.szProductType);
594 systemReg.writeKeyDword(szKeyWindNT, "CSDVersion", (U32)((version.wServicePackMajor << 8) | version.wServicePackMinor));
595 systemReg.writeKey(szKeyEnvNT, "OS", "Windows_NT");
596
597 systemReg.writeKey(szKey9x, "VersionNumber", nullptr);
598 systemReg.writeKey(szKey9x, "SubVersionNumber", nullptr);
599 systemReg.writeKey(szKey9x, "ProductName", nullptr);
600 userReg.writeKey("Software\\Wine", "Version", nullptr);
601 } else if (version.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) {
602 BString ver = BString::valueOf(version.dwMajorVersion) + "." + BString::valueOf(version.dwMinorVersion) + "." + BString::valueOf(version.dwBuildNumber);
603 BString product = B("Microsoft ") + version.szDescription;
604
605 systemReg.writeKey(szKeyNT, "CurrentVersion", nullptr);
606 systemReg.writeKey(szKeyNT, "CSDVersion", nullptr);
607 systemReg.writeKey(szKeyNT, "CurrentMajorVersionNumber", nullptr);
608 systemReg.writeKey(szKeyNT, "CurrentMinorVersionNumber", nullptr);
609 systemReg.writeKey(szKeyNT, "CurrentBuild", nullptr);
610 systemReg.writeKey(szKeyNT, "CurrentBuildNumber", nullptr);
611 systemReg.writeKey(szKeyNT, "ProductName", nullptr);
612 systemReg.writeKey(szKeyProdNT, "ProductType", nullptr);
613 systemReg.writeKey(szKeyWindNT, "CSDVersion", nullptr);
614 systemReg.writeKey(szKeyEnvNT, "OS", nullptr);
615
616 systemReg.writeKey(szKey9x, "VersionNumber", ver.c_str());
617 systemReg.writeKey(szKey9x, "SubVersionNumber", version.szCSDVersion);
618 systemReg.writeKey(szKey9x, "ProductName", product.c_str());
619 userReg.writeKey("Software\\Wine", "Version", nullptr);
620 } else {
621 systemReg.writeKey(szKeyNT, "CurrentVersion", nullptr);
622 systemReg.writeKey(szKeyNT, "CSDVersion", nullptr);
623 systemReg.writeKey(szKeyNT, "CurrentBuild", nullptr);
624 systemReg.writeKey(szKeyNT, "CurrentBuildNumber", nullptr);
625 systemReg.writeKey(szKeyNT, "ProductName", nullptr);
626 systemReg.writeKey(szKeyProdNT, "ProductType", nullptr);
627 systemReg.writeKey(szKeyWindNT, "CSDVersion", nullptr);
628 systemReg.writeKey(szKeyEnvNT, "OS", nullptr);
629
630 systemReg.writeKey(szKey9x, "VersionNumber", nullptr);

Callers 3

runOptionsMethod · 0.80
saveChangesMethod · 0.80
onInstallMethod · 0.80

Calls 6

BFunction · 0.85
writeKeyMethod · 0.80
writeKeyDwordMethod · 0.80
lengthMethod · 0.45
c_strMethod · 0.45
saveMethod · 0.45

Tested by

no test coverage detected