summaryrefslogtreecommitdiff
path: root/src/ext/NetFx/be/netfxsearch.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ext/NetFx/be/netfxsearch.cpp')
-rw-r--r--src/ext/NetFx/be/netfxsearch.cpp25
1 files changed, 21 insertions, 4 deletions
diff --git a/src/ext/NetFx/be/netfxsearch.cpp b/src/ext/NetFx/be/netfxsearch.cpp
index 3c12161d..671e7546 100644
--- a/src/ext/NetFx/be/netfxsearch.cpp
+++ b/src/ext/NetFx/be/netfxsearch.cpp
@@ -15,7 +15,7 @@ STDMETHODIMP NetfxSearchParseFromXml(
15 BSTR bstrNodeName = NULL; 15 BSTR bstrNodeName = NULL;
16 16
17 // Select Netfx search nodes. 17 // Select Netfx search nodes.
18 hr = XmlSelectNodes(pixnBundleExtension, L"NetFxNetCoreSearch", &pixnNodes); 18 hr = XmlSelectNodes(pixnBundleExtension, L"NetFxNetCoreSearch|NetFxNetCoreSdkSearch", &pixnNodes);
19 BextExitOnFailure(hr, "Failed to select Netfx search nodes."); 19 BextExitOnFailure(hr, "Failed to select Netfx search nodes.");
20 20
21 // Get Netfx search node count. 21 // Get Netfx search node count.
@@ -50,18 +50,32 @@ STDMETHODIMP NetfxSearchParseFromXml(
50 { 50 {
51 pSearch->Type = NETFX_SEARCH_TYPE_NET_CORE_SEARCH; 51 pSearch->Type = NETFX_SEARCH_TYPE_NET_CORE_SEARCH;
52 52
53 auto& netCoreSearch = pSearch->NetCoreSearch;
53 // @RuntimeType 54 // @RuntimeType
54 hr = XmlGetAttributeUInt32(pixnNode, L"RuntimeType", reinterpret_cast<DWORD*>(&pSearch->NetCoreSearch.runtimeType)); 55 hr = XmlGetAttributeUInt32(pixnNode, L"RuntimeType", reinterpret_cast<DWORD*>(&netCoreSearch.runtimeType));
55 BextExitOnFailure(hr, "Failed to get @RuntimeType."); 56 BextExitOnFailure(hr, "Failed to get @RuntimeType.");
56 57
57 // @Platform 58 // @Platform
58 hr = XmlGetAttributeUInt32(pixnNode, L"Platform", reinterpret_cast<DWORD*>(&pSearch->NetCoreSearch.platform)); 59 hr = XmlGetAttributeUInt32(pixnNode, L"Platform", reinterpret_cast<DWORD*>(&netCoreSearch.platform));
59 BextExitOnFailure(hr, "Failed to get @Platform."); 60 BextExitOnFailure(hr, "Failed to get @Platform.");
60 61
61 // @MajorVersion 62 // @MajorVersion
62 hr = XmlGetAttributeEx(pixnNode, L"MajorVersion", &pSearch->NetCoreSearch.sczMajorVersion); 63 hr = XmlGetAttributeEx(pixnNode, L"MajorVersion", &netCoreSearch.sczMajorVersion);
63 BextExitOnFailure(hr, "Failed to get @MajorVersion."); 64 BextExitOnFailure(hr, "Failed to get @MajorVersion.");
64 } 65 }
66 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrNodeName, -1, L"NetFxNetCoreSdkSearch", -1))
67 {
68 pSearch->Type = NETFX_SEARCH_TYPE_NET_CORE_SDK_SEARCH;
69
70 auto& netCoreSdkSearch = pSearch->NetCoreSdkSearch;
71 // @Platform
72 hr = XmlGetAttributeUInt32(pixnNode, L"Platform", reinterpret_cast<DWORD*>(&netCoreSdkSearch.platform));
73 BextExitOnFailure(hr, "Failed to get @Platform.");
74
75 // @Version
76 hr = XmlGetAttributeEx(pixnNode, L"Version", &netCoreSdkSearch.sczVersion);
77 BextExitOnFailure(hr, "Failed to get @Version.");
78 }
65 else 79 else
66 { 80 {
67 BextExitWithRootFailure(hr, E_UNEXPECTED, "Unexpected element name: %ls", bstrNodeName); 81 BextExitWithRootFailure(hr, E_UNEXPECTED, "Unexpected element name: %ls", bstrNodeName);
@@ -115,6 +129,9 @@ STDMETHODIMP NetfxSearchExecute(
115 case NETFX_SEARCH_TYPE_NET_CORE_SEARCH: 129 case NETFX_SEARCH_TYPE_NET_CORE_SEARCH:
116 hr = NetfxPerformDetectNetCore(wzVariable, pSearch, pEngine, wzBaseDirectory); 130 hr = NetfxPerformDetectNetCore(wzVariable, pSearch, pEngine, wzBaseDirectory);
117 break; 131 break;
132 case NETFX_SEARCH_TYPE_NET_CORE_SDK_SEARCH:
133 hr = NetfxPerformDetectNetCoreSdk(wzVariable, pSearch, pEngine, wzBaseDirectory);
134 break;
118 default: 135 default:
119 hr = E_UNEXPECTED; 136 hr = E_UNEXPECTED;
120 } 137 }