Fix modern settings on Win11 24H2+ (#2091)

This commit is contained in:
ge0rdi
2025-01-04 09:47:32 +01:00
committed by GitHub
parent d82fadb926
commit 055ac87039

View File

@@ -274,15 +274,30 @@ static void ParseApplicationInformation(CComPtr<IXMLDOMNode>& parent, AttributeW
}
}
static void ParseSettingIDs(CComPtr<IXMLDOMNode>& node, AttributeWriter& writer)
{
writer.addString(Id::PageId, GetTranslatedString(node, L"PageID"));
writer.addString(Id::HostId, GetTranslatedString(node, L"HostID"));
writer.addString(Id::GroupId, GetTranslatedString(node, L"GroupID"));
writer.addString(Id::SettingId, GetTranslatedString(node, L"SettingID"));
}
static void ParseSettingPaths(CComPtr<IXMLDOMNode>& parent, AttributeWriter& writer)
{
CComPtr<IXMLDOMNode> node;
if (parent->selectSingleNode(CComBSTR(L"SettingPaths/Path"), &node) == S_OK)
ParseSettingIDs(node, writer);
}
static void ParseSettingIdentity(CComPtr<IXMLDOMNode>& parent, AttributeWriter& writer)
{
CComPtr<IXMLDOMNode> node;
if (parent->selectSingleNode(CComBSTR(L"SettingIdentity"), &node) == S_OK)
{
writer.addString(Id::PageId, GetTranslatedString(node, L"PageID"));
writer.addString(Id::HostId, GetTranslatedString(node, L"HostID"));
writer.addString(Id::GroupId, GetTranslatedString(node, L"GroupID"));
writer.addString(Id::SettingId, GetTranslatedString(node, L"SettingID"));
// Win11 24H2+
ParseSettingPaths(node, writer);
// older
ParseSettingIDs(node, writer);
}
}