aboutsummaryrefslogtreecommitdiff
path: root/src/api/burn/balutil/inc/IBootstrapperApplication.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/api/burn/balutil/inc/IBootstrapperApplication.h')
-rw-r--r--src/api/burn/balutil/inc/IBootstrapperApplication.h649
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
5DECLARE_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};