diff options
Diffstat (limited to 'src/ext/NetFx/be/netfxsearch.cpp')
-rw-r--r-- | src/ext/NetFx/be/netfxsearch.cpp | 25 |
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 | } |