aboutsummaryrefslogtreecommitdiff
path: root/src/ext/NetFx/be/netfxsearch.h
blob: f532a5a53819552dcd26bebafce484b5f8c3f329 (plain)
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
    );