mirror of
https://github.com/Open-Shell/Open-Shell-Menu.git
synced 2026-04-11 17:37:22 +10:00
Fix modern settings on Win11 24H2+ (#2091)
This commit is contained in:
@@ -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)
|
static void ParseSettingIdentity(CComPtr<IXMLDOMNode>& parent, AttributeWriter& writer)
|
||||||
{
|
{
|
||||||
CComPtr<IXMLDOMNode> node;
|
CComPtr<IXMLDOMNode> node;
|
||||||
if (parent->selectSingleNode(CComBSTR(L"SettingIdentity"), &node) == S_OK)
|
if (parent->selectSingleNode(CComBSTR(L"SettingIdentity"), &node) == S_OK)
|
||||||
{
|
{
|
||||||
writer.addString(Id::PageId, GetTranslatedString(node, L"PageID"));
|
// Win11 24H2+
|
||||||
writer.addString(Id::HostId, GetTranslatedString(node, L"HostID"));
|
ParseSettingPaths(node, writer);
|
||||||
writer.addString(Id::GroupId, GetTranslatedString(node, L"GroupID"));
|
// older
|
||||||
writer.addString(Id::SettingId, GetTranslatedString(node, L"SettingID"));
|
ParseSettingIDs(node, writer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user