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,16 +274,31 @@ static void ParseApplicationInformation(CComPtr<IXMLDOMNode>& parent, AttributeW
|
||||
}
|
||||
}
|
||||
|
||||
static void ParseSettingIdentity(CComPtr<IXMLDOMNode>& parent, AttributeWriter& writer)
|
||||
{
|
||||
CComPtr<IXMLDOMNode> node;
|
||||
if (parent->selectSingleNode(CComBSTR(L"SettingIdentity"), &node) == S_OK)
|
||||
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)
|
||||
{
|
||||
// Win11 24H2+
|
||||
ParseSettingPaths(node, writer);
|
||||
// older
|
||||
ParseSettingIDs(node, writer);
|
||||
}
|
||||
}
|
||||
|
||||
static void ParseSettingInformation(CComPtr<IXMLDOMNode>& parent, AttributeWriter& writer)
|
||||
|
||||
Reference in New Issue
Block a user