diff options
Diffstat (limited to 'src/api/burn/balutil/inc/IBootstrapperApplication.h')
-rw-r--r-- | src/api/burn/balutil/inc/IBootstrapperApplication.h | 649 |
1 files changed, 649 insertions, 0 deletions
diff --git a/src/api/burn/balutil/inc/IBootstrapperApplication.h b/src/api/burn/balutil/inc/IBootstrapperApplication.h new file mode 100644 index 00000000..c284cb49 --- /dev/null +++ b/src/api/burn/balutil/inc/IBootstrapperApplication.h | |||
@@ -0,0 +1,649 @@ | |||
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 | DECLARE_INTERFACE_IID_(IBootstrapperApplication, IUnknown, "53C31D56-49C0-426B-AB06-099D717C67FE") | ||
6 | { | ||
7 | // BAProc - The PFN_BOOTSTRAPPER_APPLICATION_PROC can call this method to give the BA raw access to the callback from the engine. | ||
8 | // This might be used to help the BA support more than one version of the engine. | ||
9 | STDMETHOD(BAProc)( | ||
10 | __in BOOTSTRAPPER_APPLICATION_MESSAGE message, | ||
11 | __in const LPVOID pvArgs, | ||
12 | __inout LPVOID pvResults, | ||
13 | __in_opt LPVOID pvContext | ||
14 | ) = 0; | ||
15 | |||
16 | // BAProcFallback - The PFN_BOOTSTRAPPER_APPLICATION_PROC can call this method | ||
17 | // to give the BA the ability to use default behavior | ||
18 | // and then forward the message to extensions. | ||
19 | STDMETHOD_(void, BAProcFallback)( | ||
20 | __in BOOTSTRAPPER_APPLICATION_MESSAGE message, | ||
21 | __in const LPVOID pvArgs, | ||
22 | __inout LPVOID pvResults, | ||
23 | __inout HRESULT* phr, | ||
24 | __in_opt LPVOID pvContext | ||
25 | ) = 0; | ||
26 | |||
27 | // OnStartup - called when the engine is ready for the bootstrapper application to start. | ||
28 | // | ||
29 | STDMETHOD(OnStartup)() = 0; | ||
30 | |||
31 | // OnShutdown - called after the bootstrapper application quits the engine. | ||
32 | STDMETHOD(OnShutdown)( | ||
33 | __inout BOOTSTRAPPER_SHUTDOWN_ACTION* pAction | ||
34 | ) = 0; | ||
35 | |||
36 | // OnSystemShutdown - called when the operating system is instructed to shutdown the machine. | ||
37 | STDMETHOD(OnSystemShutdown)( | ||
38 | __in DWORD dwEndSession, | ||
39 | __inout BOOL* pfCancel | ||
40 | ) = 0; | ||
41 | |||
42 | // OnDetectBegin - called when the engine begins detection. | ||
43 | STDMETHOD(OnDetectBegin)( | ||
44 | __in BOOL fCached, | ||
45 | __in BOOL fInstalled, | ||
46 | __in DWORD cPackages, | ||
47 | __inout BOOL* pfCancel | ||
48 | ) = 0; | ||
49 | |||
50 | // OnDetectForwardCompatibleBundle - called when the engine detects a forward compatible bundle. | ||
51 | STDMETHOD(OnDetectForwardCompatibleBundle)( | ||
52 | __in_z LPCWSTR wzBundleId, | ||
53 | __in BOOTSTRAPPER_RELATION_TYPE relationType, | ||
54 | __in_z LPCWSTR wzBundleTag, | ||
55 | __in BOOL fPerMachine, | ||
56 | __in_z LPCWSTR wzVersion, | ||
57 | __in BOOL fMissingFromCache, | ||
58 | __inout BOOL* pfCancel | ||
59 | ) = 0; | ||
60 | |||
61 | // OnDetectUpdateBegin - called when the engine begins detection for bundle update. | ||
62 | STDMETHOD(OnDetectUpdateBegin)( | ||
63 | __in_z LPCWSTR wzUpdateLocation, | ||
64 | __inout BOOL* pfCancel, | ||
65 | __inout BOOL* pfSkip | ||
66 | ) = 0; | ||
67 | |||
68 | // OnDetectUpdate - called when the engine has an update candidate for bundle update. | ||
69 | STDMETHOD(OnDetectUpdate)( | ||
70 | __in_z_opt LPCWSTR wzUpdateLocation, | ||
71 | __in DWORD64 dw64Size, | ||
72 | __in_z LPCWSTR wzVersion, | ||
73 | __in_z_opt LPCWSTR wzTitle, | ||
74 | __in_z_opt LPCWSTR wzSummary, | ||
75 | __in_z_opt LPCWSTR wzContentType, | ||
76 | __in_z_opt LPCWSTR wzContent, | ||
77 | __inout BOOL* pfCancel, | ||
78 | __inout BOOL* pfStopProcessingUpdates | ||
79 | ) = 0; | ||
80 | |||
81 | // OnDetectUpdateComplete - called when the engine completes detection for bundle update. | ||
82 | STDMETHOD(OnDetectUpdateComplete)( | ||
83 | __in HRESULT hrStatus, | ||
84 | __inout BOOL* pfIgnoreError | ||
85 | ) = 0; | ||
86 | |||
87 | // OnDetectRelatedBundle - called when the engine detects a related bundle. | ||
88 | STDMETHOD(OnDetectRelatedBundle)( | ||
89 | __in_z LPCWSTR wzBundleId, | ||
90 | __in BOOTSTRAPPER_RELATION_TYPE relationType, | ||
91 | __in_z LPCWSTR wzBundleTag, | ||
92 | __in BOOL fPerMachine, | ||
93 | __in_z LPCWSTR wzVersion, | ||
94 | __in BOOTSTRAPPER_RELATED_OPERATION operation, | ||
95 | __in BOOL fMissingFromCache, | ||
96 | __inout BOOL* pfCancel | ||
97 | ) = 0; | ||
98 | |||
99 | // OnDetectPackageBegin - called when the engine begins detecting a package. | ||
100 | STDMETHOD(OnDetectPackageBegin)( | ||
101 | __in_z LPCWSTR wzPackageId, | ||
102 | __inout BOOL* pfCancel | ||
103 | ) = 0; | ||
104 | |||
105 | // OnDetectRelatedMsiPackage - called when the engine begins detects a related package. | ||
106 | STDMETHOD(OnDetectRelatedMsiPackage)( | ||
107 | __in_z LPCWSTR wzPackageId, | ||
108 | __in_z LPCWSTR wzUpgradeCode, | ||
109 | __in_z LPCWSTR wzProductCode, | ||
110 | __in BOOL fPerMachine, | ||
111 | __in_z LPCWSTR wzVersion, | ||
112 | __in BOOTSTRAPPER_RELATED_OPERATION operation, | ||
113 | __inout BOOL* pfCancel | ||
114 | ) = 0; | ||
115 | |||
116 | // OnDetectPatchTarget - called when the engine detects a target product | ||
117 | // for an MSP package. | ||
118 | STDMETHOD(OnDetectPatchTarget)( | ||
119 | __in_z LPCWSTR wzPackageId, | ||
120 | __in_z LPCWSTR wzProductCode, | ||
121 | __in BOOTSTRAPPER_PACKAGE_STATE patchState, | ||
122 | __inout BOOL* pfCancel | ||
123 | ) = 0; | ||
124 | |||
125 | // OnDetectMsiFeature - called when the engine detects a feature in an MSI package. | ||
126 | STDMETHOD(OnDetectMsiFeature)( | ||
127 | __in_z LPCWSTR wzPackageId, | ||
128 | __in_z LPCWSTR wzFeatureId, | ||
129 | __in BOOTSTRAPPER_FEATURE_STATE state, | ||
130 | __inout BOOL* pfCancel | ||
131 | ) = 0; | ||
132 | |||
133 | // OnDetectPackageComplete - called after the engine detects a package. | ||
134 | // | ||
135 | STDMETHOD(OnDetectPackageComplete)( | ||
136 | __in_z LPCWSTR wzPackageId, | ||
137 | __in HRESULT hrStatus, | ||
138 | __in BOOTSTRAPPER_PACKAGE_STATE state, | ||
139 | __in BOOL fCached | ||
140 | ) = 0; | ||
141 | |||
142 | // OnDetectPackageComplete - called after the engine completes detection. | ||
143 | // | ||
144 | STDMETHOD(OnDetectComplete)( | ||
145 | __in HRESULT hrStatus, | ||
146 | __in BOOL fEligibleForCleanup | ||
147 | ) = 0; | ||
148 | |||
149 | // OnPlanBegin - called when the engine begins planning. | ||
150 | STDMETHOD(OnPlanBegin)( | ||
151 | __in DWORD cPackages, | ||
152 | __inout BOOL* pfCancel | ||
153 | ) = 0; | ||
154 | |||
155 | // OnPlanRelatedBundle - called when the engine begins planning a related bundle. | ||
156 | STDMETHOD(OnPlanRelatedBundle)( | ||
157 | __in_z LPCWSTR wzBundleId, | ||
158 | __in BOOTSTRAPPER_REQUEST_STATE recommendedState, | ||
159 | __inout BOOTSTRAPPER_REQUEST_STATE* pRequestedState, | ||
160 | __inout BOOL* pfCancel | ||
161 | ) = 0; | ||
162 | |||
163 | // OnPlanPackageBegin - called when the engine has begun getting the BA's input | ||
164 | // for planning a package. | ||
165 | STDMETHOD(OnPlanPackageBegin)( | ||
166 | __in_z LPCWSTR wzPackageId, | ||
167 | __in BOOTSTRAPPER_PACKAGE_STATE state, | ||
168 | __in BOOL fCached, | ||
169 | __in BOOTSTRAPPER_PACKAGE_CONDITION_RESULT installCondition, | ||
170 | __in BOOTSTRAPPER_REQUEST_STATE recommendedState, | ||
171 | __in BOOTSTRAPPER_CACHE_TYPE recommendedCacheType, | ||
172 | __inout BOOTSTRAPPER_REQUEST_STATE* pRequestedState, | ||
173 | __inout BOOTSTRAPPER_CACHE_TYPE* pRequestedCacheType, | ||
174 | __inout BOOL* pfCancel | ||
175 | ) = 0; | ||
176 | |||
177 | // OnPlanPatchTarget - called when the engine is about to plan a target | ||
178 | // of an MSP package. | ||
179 | STDMETHOD(OnPlanPatchTarget)( | ||
180 | __in_z LPCWSTR wzPackageId, | ||
181 | __in_z LPCWSTR wzProductCode, | ||
182 | __in BOOTSTRAPPER_REQUEST_STATE recommendedState, | ||
183 | __inout BOOTSTRAPPER_REQUEST_STATE* pRequestedState, | ||
184 | __inout BOOL* pfCancel | ||
185 | ) = 0; | ||
186 | |||
187 | // OnPlanMsiFeature - called when the engine plans a feature in an | ||
188 | // MSI package. | ||
189 | STDMETHOD(OnPlanMsiFeature)( | ||
190 | __in_z LPCWSTR wzPackageId, | ||
191 | __in_z LPCWSTR wzFeatureId, | ||
192 | __in BOOTSTRAPPER_FEATURE_STATE recommendedState, | ||
193 | __inout BOOTSTRAPPER_FEATURE_STATE* pRequestedState, | ||
194 | __inout BOOL* pfCancel | ||
195 | ) = 0; | ||
196 | |||
197 | // OnPlanMsiPackage - called when the engine plans an MSI or MSP package. | ||
198 | // | ||
199 | STDMETHOD(OnPlanMsiPackage)( | ||
200 | __in_z LPCWSTR wzPackageId, | ||
201 | __in BOOL fExecute, // false means rollback. | ||
202 | __in BOOTSTRAPPER_ACTION_STATE action, | ||
203 | __inout BOOL* pfCancel, | ||
204 | __inout BURN_MSI_PROPERTY* pActionMsiProperty, | ||
205 | __inout INSTALLUILEVEL* pUiLevel, | ||
206 | __inout BOOL* pfDisableExternalUiHandler | ||
207 | ) = 0; | ||
208 | |||
209 | // OnPlanPackageComplete - called after the engine has completed getting the BA's input | ||
210 | // for planning a package. | ||
211 | STDMETHOD(OnPlanPackageComplete)( | ||
212 | __in_z LPCWSTR wzPackageId, | ||
213 | __in HRESULT hrStatus, | ||
214 | __in BOOTSTRAPPER_REQUEST_STATE requested | ||
215 | ) = 0; | ||
216 | |||
217 | // OnPlannedPackage - called after the engine has completed planning a package. | ||
218 | STDMETHOD(OnPlannedPackage)( | ||
219 | __in_z LPCWSTR wzPackageId, | ||
220 | __in BOOTSTRAPPER_ACTION_STATE execute, | ||
221 | __in BOOTSTRAPPER_ACTION_STATE rollback, | ||
222 | __in BOOL fPlannedCache, | ||
223 | __in BOOL fPlannedUncache | ||
224 | ) = 0; | ||
225 | |||
226 | // OnPlanComplete - called when the engine completes planning. | ||
227 | // | ||
228 | STDMETHOD(OnPlanComplete)( | ||
229 | __in HRESULT hrStatus | ||
230 | ) = 0; | ||
231 | |||
232 | // OnApplyBegin - called when the engine begins applying the plan. | ||
233 | // | ||
234 | STDMETHOD(OnApplyBegin)( | ||
235 | __in DWORD dwPhaseCount, | ||
236 | __inout BOOL* pfCancel | ||
237 | ) = 0; | ||
238 | |||
239 | // OnElevateBegin - called before the engine displays an elevation prompt. | ||
240 | // Will only happen once per execution of the engine, | ||
241 | // assuming the elevation was successful. | ||
242 | STDMETHOD(OnElevateBegin)( | ||
243 | __inout BOOL* pfCancel | ||
244 | ) = 0; | ||
245 | |||
246 | // OnElevateComplete - called after the engine attempted to elevate. | ||
247 | // | ||
248 | STDMETHOD(OnElevateComplete)( | ||
249 | __in HRESULT hrStatus | ||
250 | ) = 0; | ||
251 | |||
252 | // OnProgress - called when the engine makes progress. | ||
253 | // | ||
254 | STDMETHOD(OnProgress)( | ||
255 | __in DWORD dwProgressPercentage, | ||
256 | __in DWORD dwOverallPercentage, | ||
257 | __inout BOOL* pfCancel | ||
258 | ) = 0; | ||
259 | |||
260 | // OnError - called when the engine encounters an error. | ||
261 | // | ||
262 | // nResult: | ||
263 | // uiFlags is a combination of valid ID* return values appropriate for | ||
264 | // the error. | ||
265 | // | ||
266 | // IDNOACTION instructs the engine to pass the error through to default | ||
267 | // handling which usually results in the apply failing. | ||
268 | STDMETHOD(OnError)( | ||
269 | __in BOOTSTRAPPER_ERROR_TYPE errorType, | ||
270 | __in_z_opt LPCWSTR wzPackageId, | ||
271 | __in DWORD dwCode, | ||
272 | __in_z_opt LPCWSTR wzError, | ||
273 | __in DWORD dwUIHint, | ||
274 | __in DWORD cData, | ||
275 | __in_ecount_z_opt(cData) LPCWSTR* rgwzData, | ||
276 | __in int nRecommendation, | ||
277 | __inout int* pResult | ||
278 | ) = 0; | ||
279 | |||
280 | // OnRegisterBegin - called when the engine registers the bundle. | ||
281 | // | ||
282 | STDMETHOD(OnRegisterBegin)( | ||
283 | __inout BOOL* pfCancel | ||
284 | ) = 0; | ||
285 | |||
286 | // OnRegisterComplete - called when the engine registration is | ||
287 | // complete. | ||
288 | // | ||
289 | STDMETHOD(OnRegisterComplete)( | ||
290 | __in HRESULT hrStatus | ||
291 | ) = 0; | ||
292 | |||
293 | // OnCacheBegin - called when the engine begins caching. | ||
294 | // | ||
295 | STDMETHOD(OnCacheBegin)( | ||
296 | __inout BOOL* pfCancel | ||
297 | ) = 0; | ||
298 | |||
299 | // OnCachePackageBegin - called when the engine begins caching | ||
300 | // a package. | ||
301 | // | ||
302 | STDMETHOD(OnCachePackageBegin)( | ||
303 | __in_z LPCWSTR wzPackageId, | ||
304 | __in DWORD cCachePayloads, | ||
305 | __in DWORD64 dw64PackageCacheSize, | ||
306 | __inout BOOL* pfCancel | ||
307 | ) = 0; | ||
308 | |||
309 | // OnCacheAcquireBegin - called when the engine begins acquiring a payload or container. | ||
310 | // | ||
311 | // Notes: | ||
312 | // It is expected the BA may call IBootstrapperEngine::SetLocalSource() or IBootstrapperEngine::SetDownloadSource() | ||
313 | // to update the source location before returning. | ||
314 | // | ||
315 | STDMETHOD(OnCacheAcquireBegin)( | ||
316 | __in_z_opt LPCWSTR wzPackageOrContainerId, | ||
317 | __in_z_opt LPCWSTR wzPayloadId, | ||
318 | __in_z LPCWSTR wzSource, | ||
319 | __in_z_opt LPCWSTR wzDownloadUrl, | ||
320 | __in_z_opt LPCWSTR wzPayloadContainerId, | ||
321 | __in BOOTSTRAPPER_CACHE_OPERATION recommendation, | ||
322 | __inout BOOTSTRAPPER_CACHE_OPERATION* pAction, | ||
323 | __inout BOOL* pfCancel | ||
324 | ) = 0; | ||
325 | |||
326 | // OnCacheAcquireProgress - called when the engine makes progress acquiring the payload or container. | ||
327 | // | ||
328 | STDMETHOD(OnCacheAcquireProgress)( | ||
329 | __in_z_opt LPCWSTR wzPackageOrContainerId, | ||
330 | __in_z_opt LPCWSTR wzPayloadId, | ||
331 | __in DWORD64 dw64Progress, | ||
332 | __in DWORD64 dw64Total, | ||
333 | __in DWORD dwOverallPercentage, | ||
334 | __inout BOOL* pfCancel | ||
335 | ) = 0; | ||
336 | |||
337 | // OnCacheAcquireResolving - called to allow the BA to override the acquisition action for the payload or container. | ||
338 | // | ||
339 | // Parameters: | ||
340 | // wzPackageOrContainerId will be NULL when resolving a layout-only payload. | ||
341 | // wzPayloadId will be NULL when resolving a container. | ||
342 | // wzDownloadUrl will be NULL if the container or payload does not provide a DownloadURL. | ||
343 | // wzPayloadContainerId will not be NULL if acquiring a payload that is in a container. | ||
344 | // | ||
345 | // rgSearchPaths are the search paths used for source resolution. | ||
346 | // fFoundLocal is TRUE when dwRecommendedSearchPath indicates that the file was found. | ||
347 | // dwRecommendedSearchPath is the index into rgSearchPaths for the recommended local file. | ||
348 | // | ||
349 | STDMETHOD(OnCacheAcquireResolving)( | ||
350 | __in_z_opt LPCWSTR wzPackageOrContainerId, | ||
351 | __in_z_opt LPCWSTR wzPayloadId, | ||
352 | __in_z LPCWSTR* rgSearchPaths, | ||
353 | __in DWORD cSearchPaths, | ||
354 | __in BOOL fFoundLocal, | ||
355 | __in DWORD dwRecommendedSearchPath, | ||
356 | __in_z_opt LPCWSTR wzDownloadUrl, | ||
357 | __in_z_opt LPCWSTR wzPayloadContainerId, | ||
358 | __in BOOTSTRAPPER_CACHE_RESOLVE_OPERATION recommendation, | ||
359 | __inout DWORD* pdwChosenSearchPath, | ||
360 | __inout BOOTSTRAPPER_CACHE_RESOLVE_OPERATION* pAction, | ||
361 | __inout BOOL* pfCancel | ||
362 | ) = 0; | ||
363 | |||
364 | // OnCacheAcquireComplete - called after the engine acquired the payload or container. | ||
365 | // | ||
366 | // Notes: | ||
367 | // It is expected the BA may call IBootstrapperEngine::SetLocalSource() or IBootstrapperEngine::SetDownloadSource() | ||
368 | // to update the source location before returning BOOTSTRAPPER_CACHEACQUIRECOMPLETE_ACTION_RETRY. | ||
369 | // | ||
370 | STDMETHOD(OnCacheAcquireComplete)( | ||
371 | __in_z_opt LPCWSTR wzPackageOrContainerId, | ||
372 | __in_z_opt LPCWSTR wzPayloadId, | ||
373 | __in HRESULT hrStatus, | ||
374 | __in BOOTSTRAPPER_CACHEACQUIRECOMPLETE_ACTION recommendation, | ||
375 | __inout BOOTSTRAPPER_CACHEACQUIRECOMPLETE_ACTION* pAction | ||
376 | ) = 0; | ||
377 | |||
378 | // OnCacheVerifyBegin - called when the engine begins to verify then copy | ||
379 | // a payload or container to the package cache folder. | ||
380 | // | ||
381 | STDMETHOD(OnCacheVerifyBegin)( | ||
382 | __in_z_opt LPCWSTR wzPackageOrContainerId, | ||
383 | __in_z_opt LPCWSTR wzPayloadId, | ||
384 | __inout BOOL* pfCancel | ||
385 | ) = 0; | ||
386 | |||
387 | STDMETHOD(OnCacheVerifyProgress)( | ||
388 | __in_z_opt LPCWSTR wzPackageOrContainerId, | ||
389 | __in_z_opt LPCWSTR wzPayloadId, | ||
390 | __in DWORD64 dw64Progress, | ||
391 | __in DWORD64 dw64Total, | ||
392 | __in DWORD dwOverallPercentage, | ||
393 | __in BOOTSTRAPPER_CACHE_VERIFY_STEP verifyStep, | ||
394 | __inout BOOL* pfCancel | ||
395 | ) = 0; | ||
396 | |||
397 | // OnCacheVerifyComplete - called after the engine verifies and copies | ||
398 | // a payload or container to the package cache folder. | ||
399 | // | ||
400 | STDMETHOD(OnCacheVerifyComplete)( | ||
401 | __in_z_opt LPCWSTR wzPackageOrContainerId, | ||
402 | __in_z_opt LPCWSTR wzPayloadId, | ||
403 | __in HRESULT hrStatus, | ||
404 | __in BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION recommendation, | ||
405 | __inout BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION* pAction | ||
406 | ) = 0; | ||
407 | |||
408 | // OnCachePackageComplete - called after the engine attempts to copy or download all | ||
409 | // payloads of a package into the package cache folder. | ||
410 | // | ||
411 | STDMETHOD(OnCachePackageComplete)( | ||
412 | __in_z LPCWSTR wzPackageId, | ||
413 | __in HRESULT hrStatus, | ||
414 | __in BOOTSTRAPPER_CACHEPACKAGECOMPLETE_ACTION recommendation, | ||
415 | __inout BOOTSTRAPPER_CACHEPACKAGECOMPLETE_ACTION* pAction | ||
416 | ) = 0; | ||
417 | |||
418 | // OnCacheComplete - called when the engine caching is complete. | ||
419 | // | ||
420 | STDMETHOD(OnCacheComplete)( | ||
421 | __in HRESULT hrStatus | ||
422 | ) = 0; | ||
423 | |||
424 | // OnExecuteBegin - called when the engine begins executing the plan. | ||
425 | // | ||
426 | STDMETHOD(OnExecuteBegin)( | ||
427 | __in DWORD cExecutingPackages, | ||
428 | __inout BOOL* pfCancel | ||
429 | ) = 0; | ||
430 | |||
431 | // OnExecutePackageBegin - called when the engine begins executing a package. | ||
432 | // | ||
433 | STDMETHOD(OnExecutePackageBegin)( | ||
434 | __in_z LPCWSTR wzPackageId, | ||
435 | __in BOOL fExecute, // false means rollback. | ||
436 | __in BOOTSTRAPPER_ACTION_STATE action, | ||
437 | __in INSTALLUILEVEL uiLevel, | ||
438 | __in BOOL fDisableExternalUiHandler, | ||
439 | __inout BOOL* pfCancel | ||
440 | ) = 0; | ||
441 | |||
442 | // OnExecutePatchTarget - called for each patch in an MspPackage targeting the product | ||
443 | // when the engine begins executing the MspPackage. | ||
444 | // | ||
445 | STDMETHOD(OnExecutePatchTarget)( | ||
446 | __in_z LPCWSTR wzPackageId, | ||
447 | __in_z LPCWSTR wzTargetProductCode, | ||
448 | __inout BOOL* pfCancel | ||
449 | ) = 0; | ||
450 | |||
451 | // OnExecuteProgress - called when the engine makes progress executing a package. | ||
452 | // | ||
453 | STDMETHOD(OnExecuteProgress)( | ||
454 | __in_z LPCWSTR wzPackageId, | ||
455 | __in DWORD dwProgressPercentage, | ||
456 | __in DWORD dwOverallPercentage, | ||
457 | __inout BOOL* pfCancel | ||
458 | ) = 0; | ||
459 | |||
460 | // OnExecuteMsiMessage - called when the engine receives an MSI package message. | ||
461 | // | ||
462 | // Return: | ||
463 | // uiFlags is a combination of valid ID* return values appropriate for | ||
464 | // the message. | ||
465 | // | ||
466 | // IDNOACTION instructs the engine to pass the message through to default | ||
467 | // handling which usually results in the execution continuing. | ||
468 | STDMETHOD(OnExecuteMsiMessage)( | ||
469 | __in_z LPCWSTR wzPackageId, | ||
470 | __in INSTALLMESSAGE messageType, | ||
471 | __in DWORD dwUIHint, | ||
472 | __in_z LPCWSTR wzMessage, | ||
473 | __in DWORD cData, | ||
474 | __in_ecount_z_opt(cData) LPCWSTR* rgwzData, | ||
475 | __in int nRecommendation, | ||
476 | __inout int* pResult | ||
477 | ) = 0; | ||
478 | |||
479 | // OnExecuteFilesInUse - called when the engine encounters files in use while | ||
480 | // executing a package. | ||
481 | // | ||
482 | // Return: | ||
483 | // IDOK instructs the engine to let the Restart Manager attempt to close the | ||
484 | // applications to avoid a restart. | ||
485 | // | ||
486 | // IDCANCEL instructs the engine to abort the execution and start rollback. | ||
487 | // | ||
488 | // IDIGNORE instructs the engine to ignore the running applications. A restart will be | ||
489 | // required. | ||
490 | // | ||
491 | // IDRETRY instructs the engine to check if the applications are still running again. | ||
492 | // | ||
493 | // IDNOACTION is equivalent to ignoring the running applications. A restart will be | ||
494 | // required. | ||
495 | STDMETHOD(OnExecuteFilesInUse)( | ||
496 | __in_z LPCWSTR wzPackageId, | ||
497 | __in DWORD cFiles, | ||
498 | __in_ecount_z(cFiles) LPCWSTR* rgwzFiles, | ||
499 | __in int nRecommendation, | ||
500 | __inout int* pResult | ||
501 | ) = 0; | ||
502 | |||
503 | // OnExecutePackageComplete - called when a package execution is complete. | ||
504 | // | ||
505 | STDMETHOD(OnExecutePackageComplete)( | ||
506 | __in_z LPCWSTR wzPackageId, | ||
507 | __in HRESULT hrStatus, | ||
508 | __in BOOTSTRAPPER_APPLY_RESTART restart, | ||
509 | __in BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION recommendation, | ||
510 | __inout BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION* pAction | ||
511 | ) = 0; | ||
512 | |||
513 | // OnExecuteComplete - called when the engine execution is complete. | ||
514 | // | ||
515 | STDMETHOD(OnExecuteComplete)( | ||
516 | __in HRESULT hrStatus | ||
517 | ) = 0; | ||
518 | |||
519 | // OnUnregisterBegin - called when the engine unregisters the bundle. | ||
520 | // | ||
521 | STDMETHOD(OnUnregisterBegin)( | ||
522 | __in BOOL fKeepRegistration, | ||
523 | __inout BOOL* pfForceKeepRegistration | ||
524 | ) = 0; | ||
525 | |||
526 | // OnUnregisterComplete - called when the engine unregistration is complete. | ||
527 | // | ||
528 | STDMETHOD(OnUnregisterComplete)( | ||
529 | __in HRESULT hrStatus | ||
530 | ) = 0; | ||
531 | |||
532 | // OnApplyComplete - called after the plan has been applied. | ||
533 | // | ||
534 | STDMETHOD(OnApplyComplete)( | ||
535 | __in HRESULT hrStatus, | ||
536 | __in BOOTSTRAPPER_APPLY_RESTART restart, | ||
537 | __in BOOTSTRAPPER_APPLYCOMPLETE_ACTION recommendation, | ||
538 | __inout BOOTSTRAPPER_APPLYCOMPLETE_ACTION* pAction | ||
539 | ) = 0; | ||
540 | |||
541 | // OnLaunchApprovedExeBegin - called before trying to launch the preapproved executable. | ||
542 | // | ||
543 | STDMETHOD(OnLaunchApprovedExeBegin)( | ||
544 | __inout BOOL* pfCancel | ||
545 | ) = 0; | ||
546 | |||
547 | // OnLaunchApprovedExeComplete - called after trying to launch the preapproved executable. | ||
548 | // | ||
549 | STDMETHOD(OnLaunchApprovedExeComplete)( | ||
550 | __in HRESULT hrStatus, | ||
551 | __in DWORD dwProcessId | ||
552 | ) = 0; | ||
553 | |||
554 | STDMETHOD(OnBeginMsiTransactionBegin)( | ||
555 | __in_z LPCWSTR wzTransactionId, | ||
556 | __inout BOOL* pfCancel | ||
557 | ) = 0; | ||
558 | |||
559 | STDMETHOD(OnBeginMsiTransactionComplete)( | ||
560 | __in_z LPCWSTR wzTransactionId, | ||
561 | __in HRESULT hrStatus | ||
562 | ) = 0; | ||
563 | |||
564 | STDMETHOD(OnCommitMsiTransactionBegin)( | ||
565 | __in_z LPCWSTR wzTransactionId, | ||
566 | __inout BOOL* pfCancel | ||
567 | ) = 0; | ||
568 | |||
569 | STDMETHOD(OnCommitMsiTransactionComplete)( | ||
570 | __in_z LPCWSTR wzTransactionId, | ||
571 | __in HRESULT hrStatus | ||
572 | ) = 0; | ||
573 | |||
574 | STDMETHOD(OnRollbackMsiTransactionBegin)( | ||
575 | __in_z LPCWSTR wzTransactionId | ||
576 | ) = 0; | ||
577 | |||
578 | STDMETHOD(OnRollbackMsiTransactionComplete)( | ||
579 | __in_z LPCWSTR wzTransactionId, | ||
580 | __in HRESULT hrStatus | ||
581 | ) = 0; | ||
582 | |||
583 | STDMETHOD(OnPauseAutomaticUpdatesBegin)( | ||
584 | ) = 0; | ||
585 | |||
586 | STDMETHOD(OnPauseAutomaticUpdatesComplete)( | ||
587 | __in HRESULT hrStatus | ||
588 | ) = 0; | ||
589 | |||
590 | STDMETHOD(OnSystemRestorePointBegin)( | ||
591 | ) = 0; | ||
592 | |||
593 | STDMETHOD(OnSystemRestorePointComplete)( | ||
594 | __in HRESULT hrStatus | ||
595 | ) = 0; | ||
596 | |||
597 | STDMETHOD(OnPlanForwardCompatibleBundle)( | ||
598 | __in_z LPCWSTR wzBundleId, | ||
599 | __in BOOTSTRAPPER_RELATION_TYPE relationType, | ||
600 | __in_z LPCWSTR wzBundleTag, | ||
601 | __in BOOL fPerMachine, | ||
602 | __in_z LPCWSTR wzVersion, | ||
603 | __in BOOL fRecommendedIgnoreBundle, | ||
604 | __inout BOOL* pfCancel, | ||
605 | __inout BOOL* pfIgnoreBundle | ||
606 | ) = 0; | ||
607 | |||
608 | STDMETHOD(OnCacheContainerOrPayloadVerifyBegin)( | ||
609 | __in_z_opt LPCWSTR wzPackageOrContainerId, | ||
610 | __in_z_opt LPCWSTR wzPayloadId, | ||
611 | __inout BOOL* pfCancel | ||
612 | ) = 0; | ||
613 | |||
614 | STDMETHOD(OnCacheContainerOrPayloadVerifyProgress)( | ||
615 | __in_z_opt LPCWSTR wzPackageOrContainerId, | ||
616 | __in_z_opt LPCWSTR wzPayloadId, | ||
617 | __in DWORD64 dw64Progress, | ||
618 | __in DWORD64 dw64Total, | ||
619 | __in DWORD dwOverallPercentage, | ||
620 | __inout BOOL* pfCancel | ||
621 | ) = 0; | ||
622 | |||
623 | STDMETHOD(OnCacheContainerOrPayloadVerifyComplete)( | ||
624 | __in_z_opt LPCWSTR wzPackageOrContainerId, | ||
625 | __in_z_opt LPCWSTR wzPayloadId, | ||
626 | __in HRESULT hrStatus | ||
627 | ) = 0; | ||
628 | |||
629 | STDMETHOD(OnCachePayloadExtractBegin)( | ||
630 | __in_z_opt LPCWSTR wzContainerId, | ||
631 | __in_z_opt LPCWSTR wzPayloadId, | ||
632 | __inout BOOL* pfCancel | ||
633 | ) = 0; | ||
634 | |||
635 | STDMETHOD(OnCachePayloadExtractProgress)( | ||
636 | __in_z_opt LPCWSTR wzContainerId, | ||
637 | __in_z_opt LPCWSTR wzPayloadId, | ||
638 | __in DWORD64 dw64Progress, | ||
639 | __in DWORD64 dw64Total, | ||
640 | __in DWORD dwOverallPercentage, | ||
641 | __inout BOOL* pfCancel | ||
642 | ) = 0; | ||
643 | |||
644 | STDMETHOD(OnCachePayloadExtractComplete)( | ||
645 | __in_z_opt LPCWSTR wzContainerId, | ||
646 | __in_z_opt LPCWSTR wzPayloadId, | ||
647 | __in HRESULT hrStatus | ||
648 | ) = 0; | ||
649 | }; | ||