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