char const* ItemTemplate::GetName(LocaleConstant locale) const { if (!strlen(ExtendedData->Name->Str[locale])) return GetDefaultLocaleName(); return ExtendedData->Name->Str[locale]; }
DWORD Init() { Registry reg; auto result = reg.Open(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", Registry::Mode::Read); if (result != ERROR_SUCCESS) { return result; } reg.TryReadString(L"CurrentBuildNumber", CurrentBuildNumber); reg.TryReadDword(L"CurrentMajorVersionNumber", CurrentMajorVersionNumber); reg.TryReadDword(L"CurrentMinorVersionNumber", CurrentMinorVersionNumber); reg.TryReadString(L"CSDbuildNumber", CSDBuildNumber); reg.TryReadString(L"CSDVersion", ServicePack); auto pos = ServicePack.find_last_not_of(L"Service Pack "); if (pos != std::wstring::npos) { ServicePack = L"SP" + ServicePack.substr(pos); } if (reg.TryReadString(L"BuildLabEx", BuildLabEx) != NO_ERROR) { reg.TryReadString(L"BuildLab", BuildLabEx); } reg.TryReadString(L"CurrentVersion", CurrentVersion); reg.TryReadString(L"EditionId", EditionId); reg.TryReadString(L"ProductName", ProductName); if (CurrentMajorVersionNumber > 0) { CurrentVersion = std::to_wstring(CurrentMajorVersionNumber) + L"." + std::to_wstring(CurrentMinorVersionNumber); } else { reg.TryReadString(L"CurrentVersion", CurrentVersion); } Architecture = IsX64() ? std::wstring(L"x64") : std::wstring(L"x86"); Language = GetDefaultLocaleName(); return ERROR_SUCCESS; }