main
h 90 lines 2.01 KB
Raw
1 #pragma once
2 // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
3
4
5 // constants
6
7 enum NETFX_SEARCH_TYPE
8 {
9 NETFX_SEARCH_TYPE_NONE,
10 NETFX_SEARCH_TYPE_NET_CORE_SEARCH,
11 NETFX_SEARCH_TYPE_NET_CORE_SDK_SEARCH,
12 NETFX_SEARCH_TYPE_NET_CORE_SDK_FEATURE_BAND_SEARCH,
13 };
14
15 enum NETFX_NET_CORE_RUNTIME_TYPE
16 {
17 NETFX_NET_CORE_RUNTIME_TYPE_CORE,
18 NETFX_NET_CORE_RUNTIME_TYPE_ASPNET,
19 NETFX_NET_CORE_RUNTIME_TYPE_DESKTOP,
20 };
21
22 enum NETFX_NET_CORE_PLATFORM
23 {
24 NETFX_NET_CORE_PLATFORM_X86,
25 NETFX_NET_CORE_PLATFORM_X64,
26 NETFX_NET_CORE_PLATFORM_ARM64,
27 };
28
29
30 // structs
31
32 typedef struct _NETFX_SEARCH
33 {
34 LPWSTR sczId;
35
36 NETFX_SEARCH_TYPE Type;
37 union
38 {
39 struct
40 {
41 NETFX_NET_CORE_RUNTIME_TYPE runtimeType;
42 NETFX_NET_CORE_PLATFORM platform;
43 LPWSTR sczMajorVersion;
44 } NetCoreSearch;
45 struct
46 {
47 NETFX_NET_CORE_PLATFORM platform;
48 LPWSTR sczMajorVersion;
49 } NetCoreSdkSearch;
50 struct
51 {
52 NETFX_NET_CORE_PLATFORM platform;
53 LPWSTR sczMajorVersion;
54 LPWSTR sczMinorVersion;
55 LPWSTR sczPatchVersion;
56 } NetCoreSdkFeatureBandSearch;
57 };
58 } NETFX_SEARCH;
59
60 typedef struct _NETFX_SEARCHES
61 {
62 NETFX_SEARCH* rgSearches;
63 DWORD cSearches;
64 } NETFX_SEARCHES;
65
66
67 // function declarations
68
69 STDMETHODIMP NetfxSearchParseFromXml(
70 __in NETFX_SEARCHES* pSearches,
71 __in IXMLDOMNode* pixnBootstrapperExtension
72 );
73
74 void NetfxSearchUninitialize(
75 __in NETFX_SEARCHES* pSearches
76 );
77
78 STDMETHODIMP NetfxSearchExecute(
79 __in NETFX_SEARCHES* pSearches,
80 __in LPCWSTR wzSearchId,
81 __in LPCWSTR wzVariable,
82 __in IBootstrapperExtensionEngine* pEngine,
83 __in LPCWSTR wzBaseDirectory
84 );
85
86 STDMETHODIMP NetfxSearchFindById(
87 __in NETFX_SEARCHES* pSearches,
88 __in LPCWSTR wzId,
89 __out NETFX_SEARCH** ppSearch
90 );