main
h 150 lines 3.92 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 #include "BootstrapperEngineTypes.h"
5
6 DECLARE_INTERFACE_IID_(IBootstrapperEngine, IUnknown, "6480D616-27A0-44D7-905B-81512C29C2FB")
7 {
8 STDMETHOD(GetPackageCount)(
9 __out DWORD* pcPackages
10 ) = 0;
11
12 STDMETHOD(GetVariableNumeric)(
13 __in_z LPCWSTR wzVariable,
14 __out LONGLONG* pllValue
15 ) = 0;
16
17 STDMETHOD(GetVariableString)(
18 __in_z LPCWSTR wzVariable,
19 __out_ecount_opt(*pcchValue) LPWSTR wzValue,
20 __inout SIZE_T* pcchValue
21 ) = 0;
22
23 STDMETHOD(GetVariableVersion)(
24 __in_z LPCWSTR wzVariable,
25 __out_ecount_opt(*pcchValue) LPWSTR wzValue,
26 __inout SIZE_T * pcchValue
27 ) = 0;
28
29 STDMETHOD(FormatString)(
30 __in_z LPCWSTR wzIn,
31 __out_ecount_opt(*pcchOut) LPWSTR wzOut,
32 __inout SIZE_T * pcchOut
33 ) = 0;
34
35 STDMETHOD(EscapeString)(
36 __in_z LPCWSTR wzIn,
37 __out_ecount_opt(*pcchOut) LPWSTR wzOut,
38 __inout SIZE_T * pcchOut
39 ) = 0;
40
41 STDMETHOD(EvaluateCondition)(
42 __in_z LPCWSTR wzCondition,
43 __out BOOL* pf
44 ) = 0;
45
46 STDMETHOD(Log)(
47 __in BOOTSTRAPPER_LOG_LEVEL level,
48 __in_z LPCWSTR wzMessage
49 ) = 0;
50
51 STDMETHOD(SendEmbeddedError)(
52 __in DWORD dwErrorCode,
53 __in_z_opt LPCWSTR wzMessage,
54 __in DWORD dwUIHint,
55 __out int* pnResult
56 ) = 0;
57
58 STDMETHOD(SendEmbeddedProgress)(
59 __in DWORD dwProgressPercentage,
60 __in DWORD dwOverallProgressPercentage,
61 __out int* pnResult
62 ) = 0;
63
64 STDMETHOD(SetUpdate)(
65 __in_z_opt LPCWSTR wzLocalSource,
66 __in_z_opt LPCWSTR wzDownloadSource,
67 __in DWORD64 qwSize,
68 __in BOOTSTRAPPER_UPDATE_HASH_TYPE hashType,
69 __in_z_opt LPCWSTR wzHash,
70 __in_z_opt LPCWSTR wzUpdatePackageId
71 ) = 0;
72
73 STDMETHOD(SetLocalSource)(
74 __in_z LPCWSTR wzPackageOrContainerId,
75 __in_z_opt LPCWSTR wzPayloadId,
76 __in_z LPCWSTR wzPath
77 ) = 0;
78
79 STDMETHOD(SetDownloadSource)(
80 __in_z LPCWSTR wzPackageOrContainerId,
81 __in_z_opt LPCWSTR wzPayloadId,
82 __in_z LPCWSTR wzUrl,
83 __in_z_opt LPCWSTR wzUser,
84 __in_z_opt LPCWSTR wzPassword,
85 __in_z_opt LPCWSTR wzAuthorizationHeader
86 ) = 0;
87
88 STDMETHOD(SetVariableNumeric)(
89 __in_z LPCWSTR wzVariable,
90 __in LONGLONG llValue
91 ) = 0;
92
93 STDMETHOD(SetVariableString)(
94 __in_z LPCWSTR wzVariable,
95 __in_z_opt LPCWSTR wzValue,
96 __in BOOL fFormatted
97 ) = 0;
98
99 STDMETHOD(SetVariableVersion)(
100 __in_z LPCWSTR wzVariable,
101 __in_z_opt LPCWSTR wzValue
102 ) = 0;
103
104 STDMETHOD(CloseSplashScreen)() = 0;
105
106 STDMETHOD(Detect)(
107 __in_opt HWND hwndParent = NULL
108 ) = 0;
109
110 STDMETHOD(Plan)(
111 __in BOOTSTRAPPER_ACTION action
112 ) = 0;
113
114 STDMETHOD(Elevate)(
115 __in_opt HWND hwndParent
116 ) = 0;
117
118 STDMETHOD(Apply)(
119 __in HWND hwndParent
120 ) = 0;
121
122 STDMETHOD(Quit)(
123 __in DWORD dwExitCode
124 ) = 0;
125
126 STDMETHOD(LaunchApprovedExe)(
127 __in_opt HWND hwndParent,
128 __in_z LPCWSTR wzApprovedExeForElevationId,
129 __in_z_opt LPCWSTR wzArguments,
130 __in DWORD dwWaitForInputIdleTimeout
131 ) = 0;
132
133 STDMETHOD(SetUpdateSource)(
134 __in_z LPCWSTR wzUrl,
135 __in_z_opt LPCWSTR wzAuthorizationHeader
136 ) = 0;
137
138 STDMETHOD(CompareVersions)(
139 __in_z LPCWSTR wzVersion1,
140 __in_z LPCWSTR wzVersion2,
141 __out int* pnResult
142 ) = 0;
143
144 STDMETHOD(GetRelatedBundleVariable)(
145 __in_z LPCWSTR wzBundleId,
146 __in_z LPCWSTR wzVariable,
147 __out_ecount_opt(*pcchValue) LPWSTR wzValue,
148 __inout SIZE_T* pcchValue
149 ) = 0;
150 };