diff options
Diffstat (limited to 'src/WixToolset.Mba.Core/BootstrapperApplication.cs')
-rw-r--r-- | src/WixToolset.Mba.Core/BootstrapperApplication.cs | 1591 |
1 files changed, 1591 insertions, 0 deletions
diff --git a/src/WixToolset.Mba.Core/BootstrapperApplication.cs b/src/WixToolset.Mba.Core/BootstrapperApplication.cs new file mode 100644 index 00000000..c08a60c7 --- /dev/null +++ b/src/WixToolset.Mba.Core/BootstrapperApplication.cs | |||
@@ -0,0 +1,1591 @@ | |||
1 | // 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. | ||
2 | |||
3 | namespace WixToolset.BootstrapperCore | ||
4 | { | ||
5 | using System; | ||
6 | using System.Runtime.InteropServices; | ||
7 | using System.Threading; | ||
8 | |||
9 | /// <summary> | ||
10 | /// The default bootstrapper application. | ||
11 | /// </summary> | ||
12 | [ClassInterface(ClassInterfaceType.None)] | ||
13 | public abstract class BootstrapperApplication : MarshalByRefObject, IDefaultBootstrapperApplication | ||
14 | { | ||
15 | /// <summary> | ||
16 | /// Specifies whether this bootstrapper should run asynchronously. The default is true. | ||
17 | /// </summary> | ||
18 | protected readonly bool asyncExecution; | ||
19 | |||
20 | /// <summary> | ||
21 | /// Gets the <see cref="IEngine"/> for interaction with the engine. | ||
22 | /// </summary> | ||
23 | protected readonly IEngine engine; | ||
24 | |||
25 | private bool applying; | ||
26 | |||
27 | /// <summary> | ||
28 | /// Creates a new instance of the <see cref="BootstrapperApplication"/> class. | ||
29 | /// </summary> | ||
30 | protected BootstrapperApplication(IEngine engine) | ||
31 | { | ||
32 | this.engine = engine; | ||
33 | this.applying = false; | ||
34 | this.asyncExecution = true; | ||
35 | } | ||
36 | |||
37 | /// <summary> | ||
38 | /// Fired when the engine is starting up the bootstrapper application. | ||
39 | /// </summary> | ||
40 | public event EventHandler<StartupEventArgs> Startup; | ||
41 | |||
42 | /// <summary> | ||
43 | /// Fired when the engine is shutting down the bootstrapper application. | ||
44 | /// </summary> | ||
45 | public event EventHandler<ShutdownEventArgs> Shutdown; | ||
46 | |||
47 | /// <summary> | ||
48 | /// Fired when the system is shutting down or user is logging off. | ||
49 | /// </summary> | ||
50 | /// <remarks> | ||
51 | /// <para>To prevent shutting down or logging off, set <see cref="CancellableHResultEventArgs.Cancel"/> to | ||
52 | /// true; otherwise, set it to false.</para> | ||
53 | /// <para>By default setup will prevent shutting down or logging off between | ||
54 | /// <see cref="BootstrapperApplication.ApplyBegin"/> and <see cref="BootstrapperApplication.ApplyComplete"/>. | ||
55 | /// Derivatives can change this behavior by overriding <see cref="BootstrapperApplication.OnSystemShutdown"/> | ||
56 | /// or handling <see cref="BootstrapperApplication.SystemShutdown"/>.</para> | ||
57 | /// <para>If <see cref="SystemShutdownEventArgs.Reasons"/> contains <see cref="EndSessionReasons.Critical"/> | ||
58 | /// the bootstrapper cannot prevent the shutdown and only has a few seconds to save state or perform any other | ||
59 | /// critical operations before being closed by the operating system.</para> | ||
60 | /// <para>This event may be fired on a different thread.</para> | ||
61 | /// </remarks> | ||
62 | public event EventHandler<SystemShutdownEventArgs> SystemShutdown; | ||
63 | |||
64 | /// <summary> | ||
65 | /// Fired when the overall detection phase has begun. | ||
66 | /// </summary> | ||
67 | public event EventHandler<DetectBeginEventArgs> DetectBegin; | ||
68 | |||
69 | /// <summary> | ||
70 | /// Fired when a forward compatible bundle is detected. | ||
71 | /// </summary> | ||
72 | public event EventHandler<DetectForwardCompatibleBundleEventArgs> DetectForwardCompatibleBundle; | ||
73 | |||
74 | /// <summary> | ||
75 | /// Fired when the update detection phase has begun. | ||
76 | /// </summary> | ||
77 | public event EventHandler<DetectUpdateBeginEventArgs> DetectUpdateBegin; | ||
78 | |||
79 | /// <summary> | ||
80 | /// Fired when the update detection has found a potential update candidate. | ||
81 | /// </summary> | ||
82 | public event EventHandler<DetectUpdateEventArgs> DetectUpdate; | ||
83 | |||
84 | /// <summary> | ||
85 | /// Fired when the update detection phase has completed. | ||
86 | /// </summary> | ||
87 | public event EventHandler<DetectUpdateCompleteEventArgs> DetectUpdateComplete; | ||
88 | |||
89 | /// <summary> | ||
90 | /// Fired when a related bundle has been detected for a bundle. | ||
91 | /// </summary> | ||
92 | public event EventHandler<DetectRelatedBundleEventArgs> DetectRelatedBundle; | ||
93 | |||
94 | /// <summary> | ||
95 | /// Fired when the detection for a specific package has begun. | ||
96 | /// </summary> | ||
97 | public event EventHandler<DetectPackageBeginEventArgs> DetectPackageBegin; | ||
98 | |||
99 | /// <summary> | ||
100 | /// Fired when a package was not detected but a package using the same provider key was. | ||
101 | /// </summary> | ||
102 | public event EventHandler<DetectCompatibleMsiPackageEventArgs> DetectCompatibleMsiPackage; | ||
103 | |||
104 | /// <summary> | ||
105 | /// Fired when a related MSI package has been detected for a package. | ||
106 | /// </summary> | ||
107 | public event EventHandler<DetectRelatedMsiPackageEventArgs> DetectRelatedMsiPackage; | ||
108 | |||
109 | /// <summary> | ||
110 | /// Fired when an MSP package detects a target MSI has been detected. | ||
111 | /// </summary> | ||
112 | public event EventHandler<DetectTargetMsiPackageEventArgs> DetectTargetMsiPackage; | ||
113 | |||
114 | /// <summary> | ||
115 | /// Fired when a feature in an MSI package has been detected. | ||
116 | /// </summary> | ||
117 | public event EventHandler<DetectMsiFeatureEventArgs> DetectMsiFeature; | ||
118 | |||
119 | /// <summary> | ||
120 | /// Fired when the detection for a specific package has completed. | ||
121 | /// </summary> | ||
122 | public event EventHandler<DetectPackageCompleteEventArgs> DetectPackageComplete; | ||
123 | |||
124 | /// <summary> | ||
125 | /// Fired when the detection phase has completed. | ||
126 | /// </summary> | ||
127 | public event EventHandler<DetectCompleteEventArgs> DetectComplete; | ||
128 | |||
129 | /// <summary> | ||
130 | /// Fired when the engine has begun planning the installation. | ||
131 | /// </summary> | ||
132 | public event EventHandler<PlanBeginEventArgs> PlanBegin; | ||
133 | |||
134 | /// <summary> | ||
135 | /// Fired when the engine has begun planning for a related bundle. | ||
136 | /// </summary> | ||
137 | public event EventHandler<PlanRelatedBundleEventArgs> PlanRelatedBundle; | ||
138 | |||
139 | /// <summary> | ||
140 | /// Fired when the engine has begun planning the installation of a specific package. | ||
141 | /// </summary> | ||
142 | public event EventHandler<PlanPackageBeginEventArgs> PlanPackageBegin; | ||
143 | |||
144 | /// <summary> | ||
145 | /// Fired when the engine plans a new, compatible package using the same provider key. | ||
146 | /// </summary> | ||
147 | public event EventHandler<PlanCompatibleMsiPackageBeginEventArgs> PlanCompatibleMsiPackageBegin; | ||
148 | |||
149 | /// <summary> | ||
150 | /// Fired when the engine has completed planning the installation of a specific package. | ||
151 | /// </summary> | ||
152 | public event EventHandler<PlanCompatibleMsiPackageCompleteEventArgs> PlanCompatibleMsiPackageComplete; | ||
153 | |||
154 | /// <summary> | ||
155 | /// Fired when the engine is about to plan the target MSI of a MSP package. | ||
156 | /// </summary> | ||
157 | public event EventHandler<PlanTargetMsiPackageEventArgs> PlanTargetMsiPackage; | ||
158 | |||
159 | /// <summary> | ||
160 | /// Fired when the engine is about to plan a feature in an MSI package. | ||
161 | /// </summary> | ||
162 | public event EventHandler<PlanMsiFeatureEventArgs> PlanMsiFeature; | ||
163 | |||
164 | /// <summary> | ||
165 | /// Fired when the engine has completed planning the installation of a specific package. | ||
166 | /// </summary> | ||
167 | public event EventHandler<PlanPackageCompleteEventArgs> PlanPackageComplete; | ||
168 | |||
169 | /// <summary> | ||
170 | /// Fired when the engine has completed planning the installation. | ||
171 | /// </summary> | ||
172 | public event EventHandler<PlanCompleteEventArgs> PlanComplete; | ||
173 | |||
174 | /// <summary> | ||
175 | /// Fired when the engine has begun installing the bundle. | ||
176 | /// </summary> | ||
177 | public event EventHandler<ApplyBeginEventArgs> ApplyBegin; | ||
178 | |||
179 | /// <summary> | ||
180 | /// Fired when the engine is about to start the elevated process. | ||
181 | /// </summary> | ||
182 | public event EventHandler<ElevateBeginEventArgs> ElevateBegin; | ||
183 | |||
184 | /// <summary> | ||
185 | /// Fired when the engine has completed starting the elevated process. | ||
186 | /// </summary> | ||
187 | public event EventHandler<ElevateCompleteEventArgs> ElevateComplete; | ||
188 | |||
189 | /// <summary> | ||
190 | /// Fired when the engine has changed progress for the bundle installation. | ||
191 | /// </summary> | ||
192 | public event EventHandler<ProgressEventArgs> Progress; | ||
193 | |||
194 | /// <summary> | ||
195 | /// Fired when the engine has encountered an error. | ||
196 | /// </summary> | ||
197 | public event EventHandler<ErrorEventArgs> Error; | ||
198 | |||
199 | /// <summary> | ||
200 | /// Fired when the engine has begun registering the location and visibility of the bundle. | ||
201 | /// </summary> | ||
202 | public event EventHandler<RegisterBeginEventArgs> RegisterBegin; | ||
203 | |||
204 | /// <summary> | ||
205 | /// Fired when the engine has completed registering the location and visibility of the bundle. | ||
206 | /// </summary> | ||
207 | public event EventHandler<RegisterCompleteEventArgs> RegisterComplete; | ||
208 | |||
209 | /// <summary> | ||
210 | /// Fired when the engine has begun removing the registration for the location and visibility of the bundle. | ||
211 | /// </summary> | ||
212 | public event EventHandler<UnregisterBeginEventArgs> UnregisterBegin; | ||
213 | |||
214 | /// <summary> | ||
215 | /// Fired when the engine has completed removing the registration for the location and visibility of the bundle. | ||
216 | /// </summary> | ||
217 | public event EventHandler<UnregisterCompleteEventArgs> UnregisterComplete; | ||
218 | |||
219 | /// <summary> | ||
220 | /// Fired when the engine has begun caching the installation sources. | ||
221 | /// </summary> | ||
222 | public event EventHandler<CacheBeginEventArgs> CacheBegin; | ||
223 | |||
224 | /// <summary> | ||
225 | /// Fired when the engine has begun caching a specific package. | ||
226 | /// </summary> | ||
227 | public event EventHandler<CachePackageBeginEventArgs> CachePackageBegin; | ||
228 | |||
229 | /// <summary> | ||
230 | /// Fired when the engine has begun acquiring the installation sources. | ||
231 | /// </summary> | ||
232 | public event EventHandler<CacheAcquireBeginEventArgs> CacheAcquireBegin; | ||
233 | |||
234 | /// <summary> | ||
235 | /// Fired when the engine has progress acquiring the installation sources. | ||
236 | /// </summary> | ||
237 | public event EventHandler<CacheAcquireProgressEventArgs> CacheAcquireProgress; | ||
238 | |||
239 | /// <summary> | ||
240 | /// Fired by the engine to allow the BA to change the source | ||
241 | /// using <see cref="M:Engine.SetLocalSource"/> or <see cref="M:Engine.SetDownloadSource"/>. | ||
242 | /// </summary> | ||
243 | public event EventHandler<ResolveSourceEventArgs> ResolveSource; | ||
244 | |||
245 | /// <summary> | ||
246 | /// Fired when the engine has completed the acquisition of the installation sources. | ||
247 | /// </summary> | ||
248 | public event EventHandler<CacheAcquireCompleteEventArgs> CacheAcquireComplete; | ||
249 | |||
250 | /// <summary> | ||
251 | /// Fired when the engine begins the verification of the acquired installation sources. | ||
252 | /// </summary> | ||
253 | public event EventHandler<CacheVerifyBeginEventArgs> CacheVerifyBegin; | ||
254 | |||
255 | /// <summary> | ||
256 | /// Fired when the engine complete the verification of the acquired installation sources. | ||
257 | /// </summary> | ||
258 | public event EventHandler<CacheVerifyCompleteEventArgs> CacheVerifyComplete; | ||
259 | |||
260 | /// <summary> | ||
261 | /// Fired when the engine has completed caching a specific package. | ||
262 | /// </summary> | ||
263 | public event EventHandler<CachePackageCompleteEventArgs> CachePackageComplete; | ||
264 | |||
265 | /// <summary> | ||
266 | /// Fired after the engine has cached the installation sources. | ||
267 | /// </summary> | ||
268 | public event EventHandler<CacheCompleteEventArgs> CacheComplete; | ||
269 | |||
270 | /// <summary> | ||
271 | /// Fired when the engine has begun installing packages. | ||
272 | /// </summary> | ||
273 | public event EventHandler<ExecuteBeginEventArgs> ExecuteBegin; | ||
274 | |||
275 | /// <summary> | ||
276 | /// Fired when the engine has begun installing a specific package. | ||
277 | /// </summary> | ||
278 | public event EventHandler<ExecutePackageBeginEventArgs> ExecutePackageBegin; | ||
279 | |||
280 | /// <summary> | ||
281 | /// Fired when the engine executes one or more patches targeting a product. | ||
282 | /// </summary> | ||
283 | public event EventHandler<ExecutePatchTargetEventArgs> ExecutePatchTarget; | ||
284 | |||
285 | /// <summary> | ||
286 | /// Fired when Windows Installer sends an installation message. | ||
287 | /// </summary> | ||
288 | public event EventHandler<ExecuteMsiMessageEventArgs> ExecuteMsiMessage; | ||
289 | |||
290 | /// <summary> | ||
291 | /// Fired when Windows Installer sends a files in use installation message. | ||
292 | /// </summary> | ||
293 | public event EventHandler<ExecuteFilesInUseEventArgs> ExecuteFilesInUse; | ||
294 | |||
295 | /// <summary> | ||
296 | /// Fired when the engine has completed installing a specific package. | ||
297 | /// </summary> | ||
298 | public event EventHandler<ExecutePackageCompleteEventArgs> ExecutePackageComplete; | ||
299 | |||
300 | /// <summary> | ||
301 | /// Fired when the engine has completed installing packages. | ||
302 | /// </summary> | ||
303 | public event EventHandler<ExecuteCompleteEventArgs> ExecuteComplete; | ||
304 | |||
305 | /// <summary> | ||
306 | /// Fired when the engine has completed installing the bundle. | ||
307 | /// </summary> | ||
308 | public event EventHandler<ApplyCompleteEventArgs> ApplyComplete; | ||
309 | |||
310 | /// <summary> | ||
311 | /// Fired by the engine while executing on payload. | ||
312 | /// </summary> | ||
313 | public event EventHandler<ExecuteProgressEventArgs> ExecuteProgress; | ||
314 | |||
315 | /// <summary> | ||
316 | /// Fired when the engine is about to launch the preapproved executable. | ||
317 | /// </summary> | ||
318 | public event EventHandler<LaunchApprovedExeBeginArgs> LaunchApprovedExeBegin; | ||
319 | |||
320 | /// <summary> | ||
321 | /// Fired when the engine has completed launching the preapproved executable. | ||
322 | /// </summary> | ||
323 | public event EventHandler<LaunchApprovedExeCompleteArgs> LaunchApprovedExeComplete; | ||
324 | |||
325 | /// <summary> | ||
326 | /// Entry point that is called when the bootstrapper application is ready to run. | ||
327 | /// </summary> | ||
328 | protected abstract void Run(); | ||
329 | |||
330 | /// <summary> | ||
331 | /// Called by the engine on startup of the bootstrapper application. | ||
332 | /// </summary> | ||
333 | /// <param name="args">Additional arguments for this event.</param> | ||
334 | protected virtual void OnStartup(StartupEventArgs args) | ||
335 | { | ||
336 | EventHandler<StartupEventArgs> handler = this.Startup; | ||
337 | if (null != handler) | ||
338 | { | ||
339 | handler(this, args); | ||
340 | } | ||
341 | |||
342 | if (this.asyncExecution) | ||
343 | { | ||
344 | this.engine.Log(LogLevel.Verbose, "Creating BA thread to run asynchronously."); | ||
345 | Thread uiThread = new Thread(this.Run); | ||
346 | uiThread.Name = "UIThread"; | ||
347 | uiThread.SetApartmentState(ApartmentState.STA); | ||
348 | uiThread.Start(); | ||
349 | } | ||
350 | else | ||
351 | { | ||
352 | this.engine.Log(LogLevel.Verbose, "Creating BA thread to run synchronously."); | ||
353 | this.Run(); | ||
354 | } | ||
355 | } | ||
356 | |||
357 | /// <summary> | ||
358 | /// Called by the engine to uninitialize the BA. | ||
359 | /// </summary> | ||
360 | /// <param name="args">Additional arguments for this event.</param> | ||
361 | protected virtual void OnShutdown(ShutdownEventArgs args) | ||
362 | { | ||
363 | EventHandler<ShutdownEventArgs> handler = this.Shutdown; | ||
364 | if (null != handler) | ||
365 | { | ||
366 | handler(this, args); | ||
367 | } | ||
368 | } | ||
369 | |||
370 | /// <summary> | ||
371 | /// Called when the system is shutting down or the user is logging off. | ||
372 | /// </summary> | ||
373 | /// <param name="args">Additional arguments for this event.</param> | ||
374 | /// <remarks> | ||
375 | /// <para>To prevent shutting down or logging off, set <see cref="CancellableHResultEventArgs.Cancel"/> to | ||
376 | /// true; otherwise, set it to false.</para> | ||
377 | /// <para>By default setup will prevent shutting down or logging off between | ||
378 | /// <see cref="BootstrapperApplication.ApplyBegin"/> and <see cref="BootstrapperApplication.ApplyComplete"/>. | ||
379 | /// Derivatives can change this behavior by overriding <see cref="BootstrapperApplication.OnSystemShutdown"/> | ||
380 | /// or handling <see cref="BootstrapperApplication.SystemShutdown"/>.</para> | ||
381 | /// <para>If <see cref="SystemShutdownEventArgs.Reasons"/> contains <see cref="EndSessionReasons.Critical"/> | ||
382 | /// the bootstrapper cannot prevent the shutdown and only has a few seconds to save state or perform any other | ||
383 | /// critical operations before being closed by the operating system.</para> | ||
384 | /// <para>This method may be called on a different thread.</para> | ||
385 | /// </remarks> | ||
386 | protected virtual void OnSystemShutdown(SystemShutdownEventArgs args) | ||
387 | { | ||
388 | EventHandler<SystemShutdownEventArgs> handler = this.SystemShutdown; | ||
389 | if (null != handler) | ||
390 | { | ||
391 | handler(this, args); | ||
392 | } | ||
393 | else if (null != args) | ||
394 | { | ||
395 | // Allow requests to shut down when critical or not applying. | ||
396 | bool critical = EndSessionReasons.Critical == (EndSessionReasons.Critical & args.Reasons); | ||
397 | args.Cancel = !critical && this.applying; | ||
398 | } | ||
399 | } | ||
400 | |||
401 | /// <summary> | ||
402 | /// Called when the overall detection phase has begun. | ||
403 | /// </summary> | ||
404 | /// <param name="args">Additional arguments for this event.</param> | ||
405 | protected virtual void OnDetectBegin(DetectBeginEventArgs args) | ||
406 | { | ||
407 | EventHandler<DetectBeginEventArgs> handler = this.DetectBegin; | ||
408 | if (null != handler) | ||
409 | { | ||
410 | handler(this, args); | ||
411 | } | ||
412 | } | ||
413 | |||
414 | /// <summary> | ||
415 | /// Called when the update detection phase has begun. | ||
416 | /// </summary> | ||
417 | /// <param name="args">Additional arguments for this event.</param> | ||
418 | protected virtual void OnDetectForwardCompatibleBundle(DetectForwardCompatibleBundleEventArgs args) | ||
419 | { | ||
420 | EventHandler<DetectForwardCompatibleBundleEventArgs> handler = this.DetectForwardCompatibleBundle; | ||
421 | if (null != handler) | ||
422 | { | ||
423 | handler(this, args); | ||
424 | } | ||
425 | } | ||
426 | |||
427 | /// <summary> | ||
428 | /// Called when the update detection phase has begun. | ||
429 | /// </summary> | ||
430 | /// <param name="args">Additional arguments for this event.</param> | ||
431 | protected virtual void OnDetectUpdateBegin(DetectUpdateBeginEventArgs args) | ||
432 | { | ||
433 | EventHandler<DetectUpdateBeginEventArgs> handler = this.DetectUpdateBegin; | ||
434 | if (null != handler) | ||
435 | { | ||
436 | handler(this, args); | ||
437 | } | ||
438 | } | ||
439 | |||
440 | /// <summary> | ||
441 | /// Fired when the update detection has found a potential update candidate. | ||
442 | /// </summary> | ||
443 | /// <param name="args">Additional arguments for this event.</param> | ||
444 | protected virtual void OnDetectUpdate(DetectUpdateEventArgs args) | ||
445 | { | ||
446 | EventHandler<DetectUpdateEventArgs> handler = this.DetectUpdate; | ||
447 | if (null != handler) | ||
448 | { | ||
449 | handler(this, args); | ||
450 | } | ||
451 | } | ||
452 | |||
453 | /// <summary> | ||
454 | /// Called when the update detection phase has completed. | ||
455 | /// </summary> | ||
456 | /// <param name="args">Additional arguments for this event.</param> | ||
457 | protected virtual void OnDetectUpdateComplete(DetectUpdateCompleteEventArgs args) | ||
458 | { | ||
459 | EventHandler<DetectUpdateCompleteEventArgs> handler = this.DetectUpdateComplete; | ||
460 | if (null != handler) | ||
461 | { | ||
462 | handler(this, args); | ||
463 | } | ||
464 | } | ||
465 | |||
466 | /// <summary> | ||
467 | /// Called when a related bundle has been detected for a bundle. | ||
468 | /// </summary> | ||
469 | /// <param name="args">Additional arguments for this event.</param> | ||
470 | protected virtual void OnDetectRelatedBundle(DetectRelatedBundleEventArgs args) | ||
471 | { | ||
472 | EventHandler<DetectRelatedBundleEventArgs> handler = this.DetectRelatedBundle; | ||
473 | if (null != handler) | ||
474 | { | ||
475 | handler(this, args); | ||
476 | } | ||
477 | } | ||
478 | |||
479 | /// <summary> | ||
480 | /// Called when the detection for a specific package has begun. | ||
481 | /// </summary> | ||
482 | /// <param name="args">Additional arguments for this event.</param> | ||
483 | protected virtual void OnDetectPackageBegin(DetectPackageBeginEventArgs args) | ||
484 | { | ||
485 | EventHandler<DetectPackageBeginEventArgs> handler = this.DetectPackageBegin; | ||
486 | if (null != handler) | ||
487 | { | ||
488 | handler(this, args); | ||
489 | } | ||
490 | } | ||
491 | |||
492 | /// <summary> | ||
493 | /// Called when a package was not detected but a package using the same provider key was. | ||
494 | /// </summary> | ||
495 | /// <param name="args">Additional arguments for this event.</param> | ||
496 | protected virtual void OnDetectCompatibleMsiPackage(DetectCompatibleMsiPackageEventArgs args) | ||
497 | { | ||
498 | EventHandler<DetectCompatibleMsiPackageEventArgs> handler = this.DetectCompatibleMsiPackage; | ||
499 | if (null != handler) | ||
500 | { | ||
501 | handler(this, args); | ||
502 | } | ||
503 | } | ||
504 | |||
505 | /// <summary> | ||
506 | /// Called when a related MSI package has been detected for a package. | ||
507 | /// </summary> | ||
508 | /// <param name="args">Additional arguments for this event.</param> | ||
509 | protected virtual void OnDetectRelatedMsiPackage(DetectRelatedMsiPackageEventArgs args) | ||
510 | { | ||
511 | EventHandler<DetectRelatedMsiPackageEventArgs> handler = this.DetectRelatedMsiPackage; | ||
512 | if (null != handler) | ||
513 | { | ||
514 | handler(this, args); | ||
515 | } | ||
516 | } | ||
517 | |||
518 | /// <summary> | ||
519 | /// Called when an MSP package detects a target MSI has been detected. | ||
520 | /// </summary> | ||
521 | /// <param name="args">Additional arguments for this event.</param> | ||
522 | protected virtual void OnDetectTargetMsiPackage(DetectTargetMsiPackageEventArgs args) | ||
523 | { | ||
524 | EventHandler<DetectTargetMsiPackageEventArgs> handler = this.DetectTargetMsiPackage; | ||
525 | if (null != handler) | ||
526 | { | ||
527 | handler(this, args); | ||
528 | } | ||
529 | } | ||
530 | |||
531 | /// <summary> | ||
532 | /// Called when an MSI feature has been detected for a package. | ||
533 | /// </summary> | ||
534 | /// <param name="args">Additional arguments for this event.</param> | ||
535 | protected virtual void OnDetectMsiFeature(DetectMsiFeatureEventArgs args) | ||
536 | { | ||
537 | EventHandler<DetectMsiFeatureEventArgs> handler = this.DetectMsiFeature; | ||
538 | if (null != handler) | ||
539 | { | ||
540 | handler(this, args); | ||
541 | } | ||
542 | } | ||
543 | |||
544 | /// <summary> | ||
545 | /// Called when the detection for a specific package has completed. | ||
546 | /// </summary> | ||
547 | /// <param name="args">Additional arguments for this event.</param> | ||
548 | protected virtual void OnDetectPackageComplete(DetectPackageCompleteEventArgs args) | ||
549 | { | ||
550 | EventHandler<DetectPackageCompleteEventArgs> handler = this.DetectPackageComplete; | ||
551 | if (null != handler) | ||
552 | { | ||
553 | handler(this, args); | ||
554 | } | ||
555 | } | ||
556 | |||
557 | /// <summary> | ||
558 | /// Called when the detection phase has completed. | ||
559 | /// </summary> | ||
560 | /// <param name="args">Additional arguments for this event.</param> | ||
561 | protected virtual void OnDetectComplete(DetectCompleteEventArgs args) | ||
562 | { | ||
563 | EventHandler<DetectCompleteEventArgs> handler = this.DetectComplete; | ||
564 | if (null != handler) | ||
565 | { | ||
566 | handler(this, args); | ||
567 | } | ||
568 | } | ||
569 | |||
570 | /// <summary> | ||
571 | /// Called when the engine has begun planning the installation. | ||
572 | /// </summary> | ||
573 | /// <param name="args">Additional arguments for this event.</param> | ||
574 | protected virtual void OnPlanBegin(PlanBeginEventArgs args) | ||
575 | { | ||
576 | EventHandler<PlanBeginEventArgs> handler = this.PlanBegin; | ||
577 | if (null != handler) | ||
578 | { | ||
579 | handler(this, args); | ||
580 | } | ||
581 | } | ||
582 | |||
583 | /// <summary> | ||
584 | /// Called when the engine has begun planning for a prior bundle. | ||
585 | /// </summary> | ||
586 | /// <param name="args">Additional arguments for this event.</param> | ||
587 | protected virtual void OnPlanRelatedBundle(PlanRelatedBundleEventArgs args) | ||
588 | { | ||
589 | EventHandler<PlanRelatedBundleEventArgs> handler = this.PlanRelatedBundle; | ||
590 | if (null != handler) | ||
591 | { | ||
592 | handler(this, args); | ||
593 | } | ||
594 | } | ||
595 | |||
596 | /// <summary> | ||
597 | /// Called when the engine has begun planning the installation of a specific package. | ||
598 | /// </summary> | ||
599 | /// <param name="args">Additional arguments for this event.</param> | ||
600 | protected virtual void OnPlanPackageBegin(PlanPackageBeginEventArgs args) | ||
601 | { | ||
602 | EventHandler<PlanPackageBeginEventArgs> handler = this.PlanPackageBegin; | ||
603 | if (null != handler) | ||
604 | { | ||
605 | handler(this, args); | ||
606 | } | ||
607 | } | ||
608 | |||
609 | /// <summary> | ||
610 | /// Called when the engine plans a new, compatible package using the same provider key. | ||
611 | /// </summary> | ||
612 | /// <param name="args">Additional arguments for this event.</param> | ||
613 | protected virtual void OnPlanCompatibleMsiPackageBegin(PlanCompatibleMsiPackageBeginEventArgs args) | ||
614 | { | ||
615 | EventHandler<PlanCompatibleMsiPackageBeginEventArgs> handler = this.PlanCompatibleMsiPackageBegin; | ||
616 | if (null != handler) | ||
617 | { | ||
618 | handler(this, args); | ||
619 | } | ||
620 | } | ||
621 | |||
622 | /// <summary> | ||
623 | /// Called when the engine has completed planning the installation of a specific package. | ||
624 | /// </summary> | ||
625 | /// <param name="args">Additional arguments for this event.</param> | ||
626 | protected virtual void OnPlanCompatibleMsiPackageComplete(PlanCompatibleMsiPackageCompleteEventArgs args) | ||
627 | { | ||
628 | EventHandler<PlanCompatibleMsiPackageCompleteEventArgs> handler = this.PlanCompatibleMsiPackageComplete; | ||
629 | if (null != handler) | ||
630 | { | ||
631 | handler(this, args); | ||
632 | } | ||
633 | } | ||
634 | |||
635 | /// <summary> | ||
636 | /// Called when the engine is about to plan the target MSI of a MSP package. | ||
637 | /// </summary> | ||
638 | /// <param name="args">Additional arguments for this event.</param> | ||
639 | protected virtual void OnPlanTargetMsiPackage(PlanTargetMsiPackageEventArgs args) | ||
640 | { | ||
641 | EventHandler<PlanTargetMsiPackageEventArgs> handler = this.PlanTargetMsiPackage; | ||
642 | if (null != handler) | ||
643 | { | ||
644 | handler(this, args); | ||
645 | } | ||
646 | } | ||
647 | |||
648 | /// <summary> | ||
649 | /// Called when the engine is about to plan an MSI feature of a specific package. | ||
650 | /// </summary> | ||
651 | /// <param name="args">Additional arguments for this event.</param> | ||
652 | protected virtual void OnPlanMsiFeature(PlanMsiFeatureEventArgs args) | ||
653 | { | ||
654 | EventHandler<PlanMsiFeatureEventArgs> handler = this.PlanMsiFeature; | ||
655 | if (null != handler) | ||
656 | { | ||
657 | handler(this, args); | ||
658 | } | ||
659 | } | ||
660 | |||
661 | /// <summary> | ||
662 | /// Called when then engine has completed planning the installation of a specific package. | ||
663 | /// </summary> | ||
664 | /// <param name="args">Additional arguments for this event.</param> | ||
665 | protected virtual void OnPlanPackageComplete(PlanPackageCompleteEventArgs args) | ||
666 | { | ||
667 | EventHandler<PlanPackageCompleteEventArgs> handler = this.PlanPackageComplete; | ||
668 | if (null != handler) | ||
669 | { | ||
670 | handler(this, args); | ||
671 | } | ||
672 | } | ||
673 | |||
674 | /// <summary> | ||
675 | /// Called when the engine has completed planning the installation. | ||
676 | /// </summary> | ||
677 | /// <param name="args">Additional arguments for this event.</param> | ||
678 | protected virtual void OnPlanComplete(PlanCompleteEventArgs args) | ||
679 | { | ||
680 | EventHandler<PlanCompleteEventArgs> handler = this.PlanComplete; | ||
681 | if (null != handler) | ||
682 | { | ||
683 | handler(this, args); | ||
684 | } | ||
685 | } | ||
686 | |||
687 | /// <summary> | ||
688 | /// Called when the engine has begun installing the bundle. | ||
689 | /// </summary> | ||
690 | /// <param name="args">Additional arguments for this event.</param> | ||
691 | protected virtual void OnApplyBegin(ApplyBeginEventArgs args) | ||
692 | { | ||
693 | EventHandler<ApplyBeginEventArgs> handler = this.ApplyBegin; | ||
694 | if (null != handler) | ||
695 | { | ||
696 | handler(this, args); | ||
697 | } | ||
698 | } | ||
699 | |||
700 | /// <summary> | ||
701 | /// Called when the engine is about to start the elevated process. | ||
702 | /// </summary> | ||
703 | /// <param name="args">Additional arguments for this event.</param> | ||
704 | protected virtual void OnElevateBegin(ElevateBeginEventArgs args) | ||
705 | { | ||
706 | EventHandler<ElevateBeginEventArgs> handler = this.ElevateBegin; | ||
707 | if (null != handler) | ||
708 | { | ||
709 | handler(this, args); | ||
710 | } | ||
711 | } | ||
712 | |||
713 | /// <summary> | ||
714 | /// Called when the engine has completed starting the elevated process. | ||
715 | /// </summary> | ||
716 | /// <param name="args">Additional arguments for this event.</param> | ||
717 | protected virtual void OnElevateComplete(ElevateCompleteEventArgs args) | ||
718 | { | ||
719 | EventHandler<ElevateCompleteEventArgs> handler = this.ElevateComplete; | ||
720 | if (null != handler) | ||
721 | { | ||
722 | handler(this, args); | ||
723 | } | ||
724 | } | ||
725 | |||
726 | /// <summary> | ||
727 | /// Called when the engine has changed progress for the bundle installation. | ||
728 | /// </summary> | ||
729 | /// <param name="args">Additional arguments for this event.</param> | ||
730 | protected virtual void OnProgress(ProgressEventArgs args) | ||
731 | { | ||
732 | EventHandler<ProgressEventArgs> handler = this.Progress; | ||
733 | if (null != handler) | ||
734 | { | ||
735 | handler(this, args); | ||
736 | } | ||
737 | } | ||
738 | |||
739 | /// <summary> | ||
740 | /// Called when the engine has encountered an error. | ||
741 | /// </summary> | ||
742 | /// <param name="args">Additional arguments for this event.</param> | ||
743 | protected virtual void OnError(ErrorEventArgs args) | ||
744 | { | ||
745 | EventHandler<ErrorEventArgs> handler = this.Error; | ||
746 | if (null != handler) | ||
747 | { | ||
748 | handler(this, args); | ||
749 | } | ||
750 | } | ||
751 | |||
752 | /// <summary> | ||
753 | /// Called when the engine has begun registering the location and visibility of the bundle. | ||
754 | /// </summary> | ||
755 | /// <param name="args">Additional arguments for this event.</param> | ||
756 | protected virtual void OnRegisterBegin(RegisterBeginEventArgs args) | ||
757 | { | ||
758 | EventHandler<RegisterBeginEventArgs> handler = this.RegisterBegin; | ||
759 | if (null != handler) | ||
760 | { | ||
761 | handler(this, args); | ||
762 | } | ||
763 | } | ||
764 | |||
765 | /// <summary> | ||
766 | /// Called when the engine has completed registering the location and visilibity of the bundle. | ||
767 | /// </summary> | ||
768 | /// <param name="args">Additional arguments for this event.</param> | ||
769 | protected virtual void OnRegisterComplete(RegisterCompleteEventArgs args) | ||
770 | { | ||
771 | EventHandler<RegisterCompleteEventArgs> handler = this.RegisterComplete; | ||
772 | if (null != handler) | ||
773 | { | ||
774 | handler(this, args); | ||
775 | } | ||
776 | } | ||
777 | |||
778 | /// <summary> | ||
779 | /// Called when the engine has begun removing the registration for the location and visibility of the bundle. | ||
780 | /// </summary> | ||
781 | /// <param name="args">Additional arguments for this event.</param> | ||
782 | protected virtual void OnUnregisterBegin(UnregisterBeginEventArgs args) | ||
783 | { | ||
784 | EventHandler<UnregisterBeginEventArgs> handler = this.UnregisterBegin; | ||
785 | if (null != handler) | ||
786 | { | ||
787 | handler(this, args); | ||
788 | } | ||
789 | } | ||
790 | |||
791 | /// <summary> | ||
792 | /// Called when the engine has completed removing the registration for the location and visibility of the bundle. | ||
793 | /// </summary> | ||
794 | /// <param name="args">Additional arguments for this event.</param> | ||
795 | protected virtual void OnUnregisterComplete(UnregisterCompleteEventArgs args) | ||
796 | { | ||
797 | EventHandler<UnregisterCompleteEventArgs> handler = this.UnregisterComplete; | ||
798 | if (null != handler) | ||
799 | { | ||
800 | handler(this, args); | ||
801 | } | ||
802 | } | ||
803 | |||
804 | /// <summary> | ||
805 | /// Called when the engine begins to cache the installation sources. | ||
806 | /// </summary> | ||
807 | /// <param name="args"></param> | ||
808 | protected virtual void OnCacheBegin(CacheBeginEventArgs args) | ||
809 | { | ||
810 | EventHandler<CacheBeginEventArgs> handler = this.CacheBegin; | ||
811 | if (null != handler) | ||
812 | { | ||
813 | handler(this, args); | ||
814 | } | ||
815 | } | ||
816 | |||
817 | /// <summary> | ||
818 | /// Called by the engine when it begins to cache a specific package. | ||
819 | /// </summary> | ||
820 | /// <param name="args"></param> | ||
821 | protected virtual void OnCachePackageBegin(CachePackageBeginEventArgs args) | ||
822 | { | ||
823 | EventHandler<CachePackageBeginEventArgs> handler = this.CachePackageBegin; | ||
824 | if (null != handler) | ||
825 | { | ||
826 | handler(this, args); | ||
827 | } | ||
828 | } | ||
829 | |||
830 | /// <summary> | ||
831 | /// Called when the engine begins to cache the container or payload. | ||
832 | /// </summary> | ||
833 | /// <param name="args"></param> | ||
834 | protected virtual void OnCacheAcquireBegin(CacheAcquireBeginEventArgs args) | ||
835 | { | ||
836 | EventHandler<CacheAcquireBeginEventArgs> handler = this.CacheAcquireBegin; | ||
837 | if (null != handler) | ||
838 | { | ||
839 | handler(this, args); | ||
840 | } | ||
841 | } | ||
842 | |||
843 | /// <summary> | ||
844 | /// Called when the engine has progressed on caching the container or payload. | ||
845 | /// </summary> | ||
846 | /// <param name="args"></param> | ||
847 | protected virtual void OnCacheAcquireProgress(CacheAcquireProgressEventArgs args) | ||
848 | { | ||
849 | EventHandler<CacheAcquireProgressEventArgs> handler = this.CacheAcquireProgress; | ||
850 | if (null != handler) | ||
851 | { | ||
852 | handler(this, args); | ||
853 | } | ||
854 | } | ||
855 | |||
856 | /// <summary> | ||
857 | /// Called by the engine to allow the BA to change the source | ||
858 | /// using <see cref="M:Engine.SetLocalSource"/> or <see cref="M:Engine.SetDownloadSource"/>. | ||
859 | /// </summary> | ||
860 | /// <param name="args">Additional arguments for this event.</param> | ||
861 | protected virtual void OnResolveSource(ResolveSourceEventArgs args) | ||
862 | { | ||
863 | EventHandler<ResolveSourceEventArgs> handler = this.ResolveSource; | ||
864 | if (null != handler) | ||
865 | { | ||
866 | handler(this, args); | ||
867 | } | ||
868 | } | ||
869 | |||
870 | /// <summary> | ||
871 | /// Called when the engine completes caching of the container or payload. | ||
872 | /// </summary> | ||
873 | /// <param name="args"></param> | ||
874 | protected virtual void OnCacheAcquireComplete(CacheAcquireCompleteEventArgs args) | ||
875 | { | ||
876 | EventHandler<CacheAcquireCompleteEventArgs> handler = this.CacheAcquireComplete; | ||
877 | if (null != handler) | ||
878 | { | ||
879 | handler(this, args); | ||
880 | } | ||
881 | } | ||
882 | |||
883 | /// <summary> | ||
884 | /// Called when the engine has started verify the payload. | ||
885 | /// </summary> | ||
886 | /// <param name="args"></param> | ||
887 | protected virtual void OnCacheVerifyBegin(CacheVerifyBeginEventArgs args) | ||
888 | { | ||
889 | EventHandler<CacheVerifyBeginEventArgs> handler = this.CacheVerifyBegin; | ||
890 | if (null != handler) | ||
891 | { | ||
892 | handler(this, args); | ||
893 | } | ||
894 | } | ||
895 | |||
896 | /// <summary> | ||
897 | /// Called when the engine completes verification of the payload. | ||
898 | /// </summary> | ||
899 | /// <param name="args"></param> | ||
900 | protected virtual void OnCacheVerifyComplete(CacheVerifyCompleteEventArgs args) | ||
901 | { | ||
902 | EventHandler<CacheVerifyCompleteEventArgs> handler = this.CacheVerifyComplete; | ||
903 | if (null != handler) | ||
904 | { | ||
905 | handler(this, args); | ||
906 | } | ||
907 | } | ||
908 | |||
909 | /// <summary> | ||
910 | /// Called when the engine completes caching a specific package. | ||
911 | /// </summary> | ||
912 | /// <param name="args"></param> | ||
913 | protected virtual void OnCachePackageComplete(CachePackageCompleteEventArgs args) | ||
914 | { | ||
915 | EventHandler<CachePackageCompleteEventArgs> handler = this.CachePackageComplete; | ||
916 | if (null != handler) | ||
917 | { | ||
918 | handler(this, args); | ||
919 | } | ||
920 | } | ||
921 | |||
922 | /// <summary> | ||
923 | /// Called after the engine has cached the installation sources. | ||
924 | /// </summary> | ||
925 | /// <param name="args">Additional arguments for this event.</param> | ||
926 | protected virtual void OnCacheComplete(CacheCompleteEventArgs args) | ||
927 | { | ||
928 | EventHandler<CacheCompleteEventArgs> handler = this.CacheComplete; | ||
929 | if (null != handler) | ||
930 | { | ||
931 | handler(this, args); | ||
932 | } | ||
933 | } | ||
934 | |||
935 | /// <summary> | ||
936 | /// Called when the engine has begun installing packages. | ||
937 | /// </summary> | ||
938 | /// <param name="args">Additional arguments for this event.</param> | ||
939 | protected virtual void OnExecuteBegin(ExecuteBeginEventArgs args) | ||
940 | { | ||
941 | EventHandler<ExecuteBeginEventArgs> handler = this.ExecuteBegin; | ||
942 | if (null != handler) | ||
943 | { | ||
944 | handler(this, args); | ||
945 | } | ||
946 | } | ||
947 | |||
948 | /// <summary> | ||
949 | /// Called when the engine has begun installing a specific package. | ||
950 | /// </summary> | ||
951 | /// <param name="args">Additional arguments for this event.</param> | ||
952 | protected virtual void OnExecutePackageBegin(ExecutePackageBeginEventArgs args) | ||
953 | { | ||
954 | EventHandler<ExecutePackageBeginEventArgs> handler = this.ExecutePackageBegin; | ||
955 | if (null != handler) | ||
956 | { | ||
957 | handler(this, args); | ||
958 | } | ||
959 | } | ||
960 | |||
961 | /// <summary> | ||
962 | /// Called when the engine executes one or more patches targeting a product. | ||
963 | /// </summary> | ||
964 | /// <param name="args">Additional arguments for this event.</param> | ||
965 | protected virtual void OnExecutePatchTarget(ExecutePatchTargetEventArgs args) | ||
966 | { | ||
967 | EventHandler<ExecutePatchTargetEventArgs> handler = this.ExecutePatchTarget; | ||
968 | if (null != handler) | ||
969 | { | ||
970 | handler(this, args); | ||
971 | } | ||
972 | } | ||
973 | |||
974 | /// <summary> | ||
975 | /// Called when Windows Installer sends an installation message. | ||
976 | /// </summary> | ||
977 | /// <param name="args">Additional arguments for this event.</param> | ||
978 | protected virtual void OnExecuteMsiMessage(ExecuteMsiMessageEventArgs args) | ||
979 | { | ||
980 | EventHandler<ExecuteMsiMessageEventArgs> handler = this.ExecuteMsiMessage; | ||
981 | if (null != handler) | ||
982 | { | ||
983 | handler(this, args); | ||
984 | } | ||
985 | } | ||
986 | |||
987 | /// <summary> | ||
988 | /// Called when Windows Installer sends a file in use installation message. | ||
989 | /// </summary> | ||
990 | /// <param name="args">Additional arguments for this event.</param> | ||
991 | protected virtual void OnExecuteFilesInUse(ExecuteFilesInUseEventArgs args) | ||
992 | { | ||
993 | EventHandler<ExecuteFilesInUseEventArgs> handler = this.ExecuteFilesInUse; | ||
994 | if (null != handler) | ||
995 | { | ||
996 | handler(this, args); | ||
997 | } | ||
998 | } | ||
999 | |||
1000 | /// <summary> | ||
1001 | /// Called when the engine has completed installing a specific package. | ||
1002 | /// </summary> | ||
1003 | /// <param name="args">Additional arguments for this event.</param> | ||
1004 | protected virtual void OnExecutePackageComplete(ExecutePackageCompleteEventArgs args) | ||
1005 | { | ||
1006 | EventHandler<ExecutePackageCompleteEventArgs> handler = this.ExecutePackageComplete; | ||
1007 | if (null != handler) | ||
1008 | { | ||
1009 | handler(this, args); | ||
1010 | } | ||
1011 | } | ||
1012 | |||
1013 | /// <summary> | ||
1014 | /// Called when the engine has completed installing packages. | ||
1015 | /// </summary> | ||
1016 | /// <param name="args">Additional arguments for this event.</param> | ||
1017 | protected virtual void OnExecuteComplete(ExecuteCompleteEventArgs args) | ||
1018 | { | ||
1019 | EventHandler<ExecuteCompleteEventArgs> handler = this.ExecuteComplete; | ||
1020 | if (null != handler) | ||
1021 | { | ||
1022 | handler(this, args); | ||
1023 | } | ||
1024 | } | ||
1025 | |||
1026 | /// <summary> | ||
1027 | /// Called when the engine has completed installing the bundle. | ||
1028 | /// </summary> | ||
1029 | /// <param name="args">Additional arguments for this event.</param> | ||
1030 | protected virtual void OnApplyComplete(ApplyCompleteEventArgs args) | ||
1031 | { | ||
1032 | EventHandler<ApplyCompleteEventArgs> handler = this.ApplyComplete; | ||
1033 | if (null != handler) | ||
1034 | { | ||
1035 | handler(this, args); | ||
1036 | } | ||
1037 | } | ||
1038 | |||
1039 | /// <summary> | ||
1040 | /// Called by the engine while executing on payload. | ||
1041 | /// </summary> | ||
1042 | /// <param name="args">Additional arguments for this event.</param> | ||
1043 | protected virtual void OnExecuteProgress(ExecuteProgressEventArgs args) | ||
1044 | { | ||
1045 | EventHandler<ExecuteProgressEventArgs> handler = this.ExecuteProgress; | ||
1046 | if (null != handler) | ||
1047 | { | ||
1048 | handler(this, args); | ||
1049 | } | ||
1050 | } | ||
1051 | |||
1052 | /// <summary> | ||
1053 | /// Called by the engine before trying to launch the preapproved executable. | ||
1054 | /// </summary> | ||
1055 | /// <param name="args">Additional arguments for this event.</param> | ||
1056 | protected virtual void OnLaunchApprovedExeBegin(LaunchApprovedExeBeginArgs args) | ||
1057 | { | ||
1058 | EventHandler<LaunchApprovedExeBeginArgs> handler = this.LaunchApprovedExeBegin; | ||
1059 | if (null != handler) | ||
1060 | { | ||
1061 | handler(this, args); | ||
1062 | } | ||
1063 | } | ||
1064 | |||
1065 | /// <summary> | ||
1066 | /// Called by the engine after trying to launch the preapproved executable. | ||
1067 | /// </summary> | ||
1068 | /// <param name="args">Additional arguments for this event.</param> | ||
1069 | protected virtual void OnLaunchApprovedExeComplete(LaunchApprovedExeCompleteArgs args) | ||
1070 | { | ||
1071 | EventHandler<LaunchApprovedExeCompleteArgs> handler = this.LaunchApprovedExeComplete; | ||
1072 | if (null != handler) | ||
1073 | { | ||
1074 | handler(this, args); | ||
1075 | } | ||
1076 | } | ||
1077 | |||
1078 | #region IBootstrapperApplication Members | ||
1079 | |||
1080 | int IBootstrapperApplication.OnStartup() | ||
1081 | { | ||
1082 | StartupEventArgs args = new StartupEventArgs(); | ||
1083 | this.OnStartup(args); | ||
1084 | |||
1085 | return args.HResult; | ||
1086 | } | ||
1087 | |||
1088 | int IBootstrapperApplication.OnShutdown(ref BOOTSTRAPPER_SHUTDOWN_ACTION action) | ||
1089 | { | ||
1090 | ShutdownEventArgs args = new ShutdownEventArgs(action); | ||
1091 | this.OnShutdown(args); | ||
1092 | |||
1093 | action = args.Action; | ||
1094 | return args.HResult; | ||
1095 | } | ||
1096 | |||
1097 | int IBootstrapperApplication.OnSystemShutdown(EndSessionReasons dwEndSession, ref bool fCancel) | ||
1098 | { | ||
1099 | SystemShutdownEventArgs args = new SystemShutdownEventArgs(dwEndSession, fCancel); | ||
1100 | this.OnSystemShutdown(args); | ||
1101 | |||
1102 | fCancel = args.Cancel; | ||
1103 | return args.HResult; | ||
1104 | } | ||
1105 | |||
1106 | int IBootstrapperApplication.OnDetectBegin(bool fInstalled, int cPackages, ref bool fCancel) | ||
1107 | { | ||
1108 | DetectBeginEventArgs args = new DetectBeginEventArgs(fInstalled, cPackages, fCancel); | ||
1109 | this.OnDetectBegin(args); | ||
1110 | |||
1111 | fCancel = args.Cancel; | ||
1112 | return args.HResult; | ||
1113 | } | ||
1114 | |||
1115 | int IBootstrapperApplication.OnDetectForwardCompatibleBundle(string wzBundleId, RelationType relationType, string wzBundleTag, bool fPerMachine, long version, ref bool fCancel, ref bool fIgnoreBundle) | ||
1116 | { | ||
1117 | DetectForwardCompatibleBundleEventArgs args = new DetectForwardCompatibleBundleEventArgs(wzBundleId, relationType, wzBundleTag, fPerMachine, version, fCancel, fIgnoreBundle); | ||
1118 | this.OnDetectForwardCompatibleBundle(args); | ||
1119 | |||
1120 | fCancel = args.Cancel; | ||
1121 | fIgnoreBundle = args.IgnoreBundle; | ||
1122 | return args.HResult; | ||
1123 | } | ||
1124 | |||
1125 | int IBootstrapperApplication.OnDetectUpdateBegin(string wzUpdateLocation, ref bool fCancel, ref bool fSkip) | ||
1126 | { | ||
1127 | DetectUpdateBeginEventArgs args = new DetectUpdateBeginEventArgs(wzUpdateLocation, fCancel, fSkip); | ||
1128 | this.OnDetectUpdateBegin(args); | ||
1129 | |||
1130 | fCancel = args.Cancel; | ||
1131 | fSkip = args.Skip; | ||
1132 | return args.HResult; | ||
1133 | } | ||
1134 | |||
1135 | int IBootstrapperApplication.OnDetectUpdate(string wzUpdateLocation, long dw64Size, long dw64Version, string wzTitle, string wzSummary, string wzContentType, string wzContent, ref bool fCancel, ref bool fStopProcessingUpdates) | ||
1136 | { | ||
1137 | DetectUpdateEventArgs args = new DetectUpdateEventArgs(wzUpdateLocation, dw64Size, dw64Version, wzTitle, wzSummary, wzContentType, wzContent, fCancel, fStopProcessingUpdates); | ||
1138 | this.OnDetectUpdate(args); | ||
1139 | |||
1140 | fCancel = args.Cancel; | ||
1141 | fStopProcessingUpdates = args.StopProcessingUpdates; | ||
1142 | return args.HResult; | ||
1143 | } | ||
1144 | |||
1145 | int IBootstrapperApplication.OnDetectUpdateComplete(int hrStatus, ref bool fIgnoreError) | ||
1146 | { | ||
1147 | DetectUpdateCompleteEventArgs args = new DetectUpdateCompleteEventArgs(hrStatus, fIgnoreError); | ||
1148 | this.OnDetectUpdateComplete(args); | ||
1149 | |||
1150 | fIgnoreError = args.IgnoreError; | ||
1151 | return args.HResult; | ||
1152 | } | ||
1153 | |||
1154 | int IBootstrapperApplication.OnDetectRelatedBundle(string wzProductCode, RelationType relationType, string wzBundleTag, bool fPerMachine, long version, RelatedOperation operation, ref bool fCancel) | ||
1155 | { | ||
1156 | DetectRelatedBundleEventArgs args = new DetectRelatedBundleEventArgs(wzProductCode, relationType, wzBundleTag, fPerMachine, version, operation, fCancel); | ||
1157 | this.OnDetectRelatedBundle(args); | ||
1158 | |||
1159 | fCancel = args.Cancel; | ||
1160 | return args.HResult; | ||
1161 | } | ||
1162 | |||
1163 | int IBootstrapperApplication.OnDetectPackageBegin(string wzPackageId, ref bool fCancel) | ||
1164 | { | ||
1165 | DetectPackageBeginEventArgs args = new DetectPackageBeginEventArgs(wzPackageId, fCancel); | ||
1166 | this.OnDetectPackageBegin(args); | ||
1167 | |||
1168 | fCancel = args.Cancel; | ||
1169 | return args.HResult; | ||
1170 | } | ||
1171 | |||
1172 | int IBootstrapperApplication.OnDetectCompatibleMsiPackage(string wzPackageId, string wzCompatiblePackageId, long dw64CompatiblePackageVersion, ref bool fCancel) | ||
1173 | { | ||
1174 | DetectCompatibleMsiPackageEventArgs args = new DetectCompatibleMsiPackageEventArgs(wzPackageId, wzCompatiblePackageId, dw64CompatiblePackageVersion, fCancel); | ||
1175 | this.OnDetectCompatibleMsiPackage(args); | ||
1176 | |||
1177 | fCancel = args.Cancel; | ||
1178 | return args.HResult; | ||
1179 | } | ||
1180 | |||
1181 | int IBootstrapperApplication.OnDetectRelatedMsiPackage(string wzPackageId, string wzUpgradeCode, string wzProductCode, bool fPerMachine, long version, RelatedOperation operation, ref bool fCancel) | ||
1182 | { | ||
1183 | DetectRelatedMsiPackageEventArgs args = new DetectRelatedMsiPackageEventArgs(wzPackageId, wzUpgradeCode, wzProductCode, fPerMachine, version, operation, fCancel); | ||
1184 | this.OnDetectRelatedMsiPackage(args); | ||
1185 | |||
1186 | fCancel = args.Cancel; | ||
1187 | return args.HResult; | ||
1188 | } | ||
1189 | |||
1190 | int IBootstrapperApplication.OnDetectTargetMsiPackage(string wzPackageId, string wzProductCode, PackageState patchState, ref bool fCancel) | ||
1191 | { | ||
1192 | DetectTargetMsiPackageEventArgs args = new DetectTargetMsiPackageEventArgs(wzPackageId, wzProductCode, patchState, fCancel); | ||
1193 | this.OnDetectTargetMsiPackage(args); | ||
1194 | |||
1195 | fCancel = args.Cancel; | ||
1196 | return args.HResult; | ||
1197 | } | ||
1198 | |||
1199 | int IBootstrapperApplication.OnDetectMsiFeature(string wzPackageId, string wzFeatureId, FeatureState state, ref bool fCancel) | ||
1200 | { | ||
1201 | DetectMsiFeatureEventArgs args = new DetectMsiFeatureEventArgs(wzPackageId, wzFeatureId, state, fCancel); | ||
1202 | this.OnDetectMsiFeature(args); | ||
1203 | |||
1204 | fCancel = args.Cancel; | ||
1205 | return args.HResult; | ||
1206 | } | ||
1207 | |||
1208 | int IBootstrapperApplication.OnDetectPackageComplete(string wzPackageId, int hrStatus, PackageState state) | ||
1209 | { | ||
1210 | DetectPackageCompleteEventArgs args = new DetectPackageCompleteEventArgs(wzPackageId, hrStatus, state); | ||
1211 | this.OnDetectPackageComplete(args); | ||
1212 | |||
1213 | return args.HResult; | ||
1214 | } | ||
1215 | |||
1216 | int IBootstrapperApplication.OnDetectComplete(int hrStatus) | ||
1217 | { | ||
1218 | DetectCompleteEventArgs args = new DetectCompleteEventArgs(hrStatus); | ||
1219 | this.OnDetectComplete(args); | ||
1220 | |||
1221 | return args.HResult; | ||
1222 | } | ||
1223 | |||
1224 | int IBootstrapperApplication.OnPlanBegin(int cPackages, ref bool fCancel) | ||
1225 | { | ||
1226 | PlanBeginEventArgs args = new PlanBeginEventArgs(cPackages, fCancel); | ||
1227 | this.OnPlanBegin(args); | ||
1228 | |||
1229 | fCancel = args.Cancel; | ||
1230 | return args.HResult; | ||
1231 | } | ||
1232 | |||
1233 | int IBootstrapperApplication.OnPlanRelatedBundle(string wzBundleId, RequestState recommendedState, ref RequestState pRequestedState, ref bool fCancel) | ||
1234 | { | ||
1235 | PlanRelatedBundleEventArgs args = new PlanRelatedBundleEventArgs(wzBundleId, recommendedState, pRequestedState, fCancel); | ||
1236 | this.OnPlanRelatedBundle(args); | ||
1237 | |||
1238 | pRequestedState = args.State; | ||
1239 | fCancel = args.Cancel; | ||
1240 | return args.HResult; | ||
1241 | } | ||
1242 | |||
1243 | int IBootstrapperApplication.OnPlanPackageBegin(string wzPackageId, RequestState recommendedState, ref RequestState pRequestedState, ref bool fCancel) | ||
1244 | { | ||
1245 | PlanPackageBeginEventArgs args = new PlanPackageBeginEventArgs(wzPackageId, recommendedState, pRequestedState, fCancel); | ||
1246 | this.OnPlanPackageBegin(args); | ||
1247 | |||
1248 | pRequestedState = args.State; | ||
1249 | fCancel = args.Cancel; | ||
1250 | return args.HResult; | ||
1251 | } | ||
1252 | |||
1253 | int IBootstrapperApplication.OnPlanCompatibleMsiPackageBegin(string wzPackageId, string wzCompatiblePackageId, long dw64CompatiblePackageVersion, RequestState recommendedState, ref RequestState pRequestedState, ref bool fCancel) | ||
1254 | { | ||
1255 | PlanCompatibleMsiPackageBeginEventArgs args = new PlanCompatibleMsiPackageBeginEventArgs(wzPackageId, wzCompatiblePackageId, dw64CompatiblePackageVersion, recommendedState, pRequestedState, fCancel); | ||
1256 | this.OnPlanCompatibleMsiPackageBegin(args); | ||
1257 | |||
1258 | pRequestedState = args.State; | ||
1259 | fCancel = args.Cancel; | ||
1260 | return args.HResult; | ||
1261 | } | ||
1262 | |||
1263 | int IBootstrapperApplication.OnPlanCompatibleMsiPackageComplete(string wzPackageId, string wzCompatiblePackageId, int hrStatus, PackageState state, RequestState requested, ActionState execute, ActionState rollback) | ||
1264 | { | ||
1265 | PlanCompatibleMsiPackageCompleteEventArgs args = new PlanCompatibleMsiPackageCompleteEventArgs(wzPackageId, wzCompatiblePackageId, hrStatus, state, requested, execute, rollback); | ||
1266 | this.OnPlanCompatibleMsiPackageComplete(args); | ||
1267 | |||
1268 | return args.HResult; | ||
1269 | } | ||
1270 | |||
1271 | int IBootstrapperApplication.OnPlanTargetMsiPackage(string wzPackageId, string wzProductCode, RequestState recommendedState, ref RequestState pRequestedState, ref bool fCancel) | ||
1272 | { | ||
1273 | PlanTargetMsiPackageEventArgs args = new PlanTargetMsiPackageEventArgs(wzPackageId, wzProductCode, recommendedState, pRequestedState, fCancel); | ||
1274 | this.OnPlanTargetMsiPackage(args); | ||
1275 | |||
1276 | pRequestedState = args.State; | ||
1277 | fCancel = args.Cancel; | ||
1278 | return args.HResult; | ||
1279 | } | ||
1280 | |||
1281 | int IBootstrapperApplication.OnPlanMsiFeature(string wzPackageId, string wzFeatureId, FeatureState recommendedState, ref FeatureState pRequestedState, ref bool fCancel) | ||
1282 | { | ||
1283 | PlanMsiFeatureEventArgs args = new PlanMsiFeatureEventArgs(wzPackageId, wzFeatureId, recommendedState, pRequestedState, fCancel); | ||
1284 | this.OnPlanMsiFeature(args); | ||
1285 | |||
1286 | pRequestedState = args.State; | ||
1287 | fCancel = args.Cancel; | ||
1288 | return args.HResult; | ||
1289 | } | ||
1290 | |||
1291 | int IBootstrapperApplication.OnPlanPackageComplete(string wzPackageId, int hrStatus, PackageState state, RequestState requested, ActionState execute, ActionState rollback) | ||
1292 | { | ||
1293 | var args = new PlanPackageCompleteEventArgs(wzPackageId, hrStatus, state, requested, execute, rollback); | ||
1294 | this.OnPlanPackageComplete(args); | ||
1295 | |||
1296 | return args.HResult; | ||
1297 | } | ||
1298 | |||
1299 | int IBootstrapperApplication.OnPlanComplete(int hrStatus) | ||
1300 | { | ||
1301 | PlanCompleteEventArgs args = new PlanCompleteEventArgs(hrStatus); | ||
1302 | this.OnPlanComplete(args); | ||
1303 | |||
1304 | return args.HResult; | ||
1305 | } | ||
1306 | |||
1307 | int IBootstrapperApplication.OnApplyBegin(int dwPhaseCount, ref bool fCancel) | ||
1308 | { | ||
1309 | this.applying = true; | ||
1310 | |||
1311 | ApplyBeginEventArgs args = new ApplyBeginEventArgs(dwPhaseCount, fCancel); | ||
1312 | this.OnApplyBegin(args); | ||
1313 | |||
1314 | fCancel = args.Cancel; | ||
1315 | return args.HResult; | ||
1316 | } | ||
1317 | |||
1318 | int IBootstrapperApplication.OnElevateBegin(ref bool fCancel) | ||
1319 | { | ||
1320 | ElevateBeginEventArgs args = new ElevateBeginEventArgs(fCancel); | ||
1321 | this.OnElevateBegin(args); | ||
1322 | |||
1323 | fCancel = args.Cancel; | ||
1324 | return args.HResult; | ||
1325 | } | ||
1326 | |||
1327 | int IBootstrapperApplication.OnElevateComplete(int hrStatus) | ||
1328 | { | ||
1329 | ElevateCompleteEventArgs args = new ElevateCompleteEventArgs(hrStatus); | ||
1330 | this.OnElevateComplete(args); | ||
1331 | |||
1332 | return args.HResult; | ||
1333 | } | ||
1334 | |||
1335 | int IBootstrapperApplication.OnProgress(int dwProgressPercentage, int dwOverallPercentage, ref bool fCancel) | ||
1336 | { | ||
1337 | ProgressEventArgs args = new ProgressEventArgs(dwProgressPercentage, dwOverallPercentage, fCancel); | ||
1338 | this.OnProgress(args); | ||
1339 | |||
1340 | fCancel = args.Cancel; | ||
1341 | return args.HResult; | ||
1342 | } | ||
1343 | |||
1344 | int IBootstrapperApplication.OnError(ErrorType errorType, string wzPackageId, int dwCode, string wzError, int dwUIHint, int cData, string[] rgwzData, Result nRecommendation, ref Result pResult) | ||
1345 | { | ||
1346 | ErrorEventArgs args = new ErrorEventArgs(errorType, wzPackageId, dwCode, wzError, dwUIHint, rgwzData, nRecommendation, pResult); | ||
1347 | this.OnError(args); | ||
1348 | |||
1349 | pResult = args.Result; | ||
1350 | return args.HResult; | ||
1351 | } | ||
1352 | |||
1353 | int IBootstrapperApplication.OnRegisterBegin(ref bool fCancel) | ||
1354 | { | ||
1355 | RegisterBeginEventArgs args = new RegisterBeginEventArgs(fCancel); | ||
1356 | this.OnRegisterBegin(args); | ||
1357 | |||
1358 | fCancel = args.Cancel; | ||
1359 | return args.HResult; | ||
1360 | } | ||
1361 | |||
1362 | int IBootstrapperApplication.OnRegisterComplete(int hrStatus) | ||
1363 | { | ||
1364 | RegisterCompleteEventArgs args = new RegisterCompleteEventArgs(hrStatus); | ||
1365 | this.OnRegisterComplete(args); | ||
1366 | |||
1367 | return args.HResult; | ||
1368 | } | ||
1369 | |||
1370 | int IBootstrapperApplication.OnCacheBegin(ref bool fCancel) | ||
1371 | { | ||
1372 | CacheBeginEventArgs args = new CacheBeginEventArgs(fCancel); | ||
1373 | this.OnCacheBegin(args); | ||
1374 | |||
1375 | fCancel = args.Cancel; | ||
1376 | return args.HResult; | ||
1377 | } | ||
1378 | |||
1379 | int IBootstrapperApplication.OnCachePackageBegin(string wzPackageId, int cCachePayloads, long dw64PackageCacheSize, ref bool fCancel) | ||
1380 | { | ||
1381 | CachePackageBeginEventArgs args = new CachePackageBeginEventArgs(wzPackageId, cCachePayloads, dw64PackageCacheSize, fCancel); | ||
1382 | this.OnCachePackageBegin(args); | ||
1383 | |||
1384 | fCancel = args.Cancel; | ||
1385 | return args.HResult; | ||
1386 | } | ||
1387 | |||
1388 | int IBootstrapperApplication.OnCacheAcquireBegin(string wzPackageOrContainerId, string wzPayloadId, CacheOperation operation, string wzSource, ref bool fCancel) | ||
1389 | { | ||
1390 | CacheAcquireBeginEventArgs args = new CacheAcquireBeginEventArgs(wzPackageOrContainerId, wzPayloadId, operation, wzSource, fCancel); | ||
1391 | this.OnCacheAcquireBegin(args); | ||
1392 | |||
1393 | fCancel = args.Cancel; | ||
1394 | return args.HResult; | ||
1395 | } | ||
1396 | |||
1397 | int IBootstrapperApplication.OnCacheAcquireProgress(string wzPackageOrContainerId, string wzPayloadId, long dw64Progress, long dw64Total, int dwOverallPercentage, ref bool fCancel) | ||
1398 | { | ||
1399 | CacheAcquireProgressEventArgs args = new CacheAcquireProgressEventArgs(wzPackageOrContainerId, wzPayloadId, dw64Progress, dw64Total, dwOverallPercentage, fCancel); | ||
1400 | this.OnCacheAcquireProgress(args); | ||
1401 | |||
1402 | fCancel = args.Cancel; | ||
1403 | return args.HResult; | ||
1404 | } | ||
1405 | |||
1406 | int IBootstrapperApplication.OnResolveSource(string wzPackageOrContainerId, string wzPayloadId, string wzLocalSource, string wzDownloadSource, BOOTSTRAPPER_RESOLVESOURCE_ACTION recommendation, ref BOOTSTRAPPER_RESOLVESOURCE_ACTION action, ref bool fCancel) | ||
1407 | { | ||
1408 | ResolveSourceEventArgs args = new ResolveSourceEventArgs(wzPackageOrContainerId, wzPayloadId, wzLocalSource, wzDownloadSource, action, recommendation, fCancel); | ||
1409 | this.OnResolveSource(args); | ||
1410 | |||
1411 | action = args.Action; | ||
1412 | fCancel = args.Cancel; | ||
1413 | return args.HResult; | ||
1414 | } | ||
1415 | |||
1416 | int IBootstrapperApplication.OnCacheAcquireComplete(string wzPackageOrContainerId, string wzPayloadId, int hrStatus, BOOTSTRAPPER_CACHEACQUIRECOMPLETE_ACTION recommendation, ref BOOTSTRAPPER_CACHEACQUIRECOMPLETE_ACTION action) | ||
1417 | { | ||
1418 | CacheAcquireCompleteEventArgs args = new CacheAcquireCompleteEventArgs(wzPackageOrContainerId, wzPayloadId, hrStatus, recommendation, action); | ||
1419 | this.OnCacheAcquireComplete(args); | ||
1420 | |||
1421 | action = args.Action; | ||
1422 | return args.HResult; | ||
1423 | } | ||
1424 | |||
1425 | int IBootstrapperApplication.OnCacheVerifyBegin(string wzPackageId, string wzPayloadId, ref bool fCancel) | ||
1426 | { | ||
1427 | CacheVerifyBeginEventArgs args = new CacheVerifyBeginEventArgs(wzPackageId, wzPayloadId, fCancel); | ||
1428 | this.OnCacheVerifyBegin(args); | ||
1429 | |||
1430 | fCancel = args.Cancel; | ||
1431 | return args.HResult; | ||
1432 | } | ||
1433 | |||
1434 | int IBootstrapperApplication.OnCacheVerifyComplete(string wzPackageId, string wzPayloadId, int hrStatus, BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION recommendation, ref BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION action) | ||
1435 | { | ||
1436 | CacheVerifyCompleteEventArgs args = new CacheVerifyCompleteEventArgs(wzPackageId, wzPayloadId, hrStatus, recommendation, action); | ||
1437 | this.OnCacheVerifyComplete(args); | ||
1438 | |||
1439 | action = args.Action; | ||
1440 | return args.HResult; | ||
1441 | } | ||
1442 | |||
1443 | int IBootstrapperApplication.OnCachePackageComplete(string wzPackageId, int hrStatus, BOOTSTRAPPER_CACHEPACKAGECOMPLETE_ACTION recommendation, ref BOOTSTRAPPER_CACHEPACKAGECOMPLETE_ACTION action) | ||
1444 | { | ||
1445 | CachePackageCompleteEventArgs args = new CachePackageCompleteEventArgs(wzPackageId, hrStatus, recommendation, action); | ||
1446 | this.OnCachePackageComplete(args); | ||
1447 | |||
1448 | action = args.Action; | ||
1449 | return args.HResult; | ||
1450 | } | ||
1451 | |||
1452 | int IBootstrapperApplication.OnCacheComplete(int hrStatus) | ||
1453 | { | ||
1454 | CacheCompleteEventArgs args = new CacheCompleteEventArgs(hrStatus); | ||
1455 | this.OnCacheComplete(args); | ||
1456 | |||
1457 | return args.HResult; | ||
1458 | } | ||
1459 | |||
1460 | int IBootstrapperApplication.OnExecuteBegin(int cExecutingPackages, ref bool fCancel) | ||
1461 | { | ||
1462 | ExecuteBeginEventArgs args = new ExecuteBeginEventArgs(cExecutingPackages, fCancel); | ||
1463 | this.OnExecuteBegin(args); | ||
1464 | |||
1465 | args.Cancel = fCancel; | ||
1466 | return args.HResult; | ||
1467 | } | ||
1468 | |||
1469 | int IBootstrapperApplication.OnExecutePackageBegin(string wzPackageId, bool fExecute, ref bool fCancel) | ||
1470 | { | ||
1471 | ExecutePackageBeginEventArgs args = new ExecutePackageBeginEventArgs(wzPackageId, fExecute, fCancel); | ||
1472 | this.OnExecutePackageBegin(args); | ||
1473 | |||
1474 | fCancel = args.Cancel; | ||
1475 | return args.HResult; | ||
1476 | } | ||
1477 | |||
1478 | int IBootstrapperApplication.OnExecutePatchTarget(string wzPackageId, string wzTargetProductCode, ref bool fCancel) | ||
1479 | { | ||
1480 | ExecutePatchTargetEventArgs args = new ExecutePatchTargetEventArgs(wzPackageId, wzTargetProductCode, fCancel); | ||
1481 | this.OnExecutePatchTarget(args); | ||
1482 | |||
1483 | fCancel = args.Cancel; | ||
1484 | return args.HResult; | ||
1485 | } | ||
1486 | |||
1487 | int IBootstrapperApplication.OnExecuteProgress(string wzPackageId, int dwProgressPercentage, int dwOverallPercentage, ref bool fCancel) | ||
1488 | { | ||
1489 | ExecuteProgressEventArgs args = new ExecuteProgressEventArgs(wzPackageId, dwProgressPercentage, dwOverallPercentage, fCancel); | ||
1490 | this.OnExecuteProgress(args); | ||
1491 | |||
1492 | fCancel = args.Cancel; | ||
1493 | return args.HResult; | ||
1494 | } | ||
1495 | |||
1496 | int IBootstrapperApplication.OnExecuteMsiMessage(string wzPackageId, InstallMessage messageType, int dwUIHint, string wzMessage, int cData, string[] rgwzData, Result nRecommendation, ref Result pResult) | ||
1497 | { | ||
1498 | ExecuteMsiMessageEventArgs args = new ExecuteMsiMessageEventArgs(wzPackageId, messageType, dwUIHint, wzMessage, rgwzData, nRecommendation, pResult); | ||
1499 | this.OnExecuteMsiMessage(args); | ||
1500 | |||
1501 | pResult = args.Result; | ||
1502 | return args.HResult; | ||
1503 | } | ||
1504 | |||
1505 | int IBootstrapperApplication.OnExecuteFilesInUse(string wzPackageId, int cFiles, string[] rgwzFiles, Result nRecommendation, ref Result pResult) | ||
1506 | { | ||
1507 | ExecuteFilesInUseEventArgs args = new ExecuteFilesInUseEventArgs(wzPackageId, rgwzFiles, nRecommendation, pResult); | ||
1508 | this.OnExecuteFilesInUse(args); | ||
1509 | |||
1510 | pResult = args.Result; | ||
1511 | return args.HResult; | ||
1512 | } | ||
1513 | |||
1514 | int IBootstrapperApplication.OnExecutePackageComplete(string wzPackageId, int hrStatus, ApplyRestart restart, BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION recommendation, ref BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION pAction) | ||
1515 | { | ||
1516 | ExecutePackageCompleteEventArgs args = new ExecutePackageCompleteEventArgs(wzPackageId, hrStatus, restart, recommendation, pAction); | ||
1517 | this.OnExecutePackageComplete(args); | ||
1518 | |||
1519 | pAction = args.Action; | ||
1520 | return args.HResult; | ||
1521 | } | ||
1522 | |||
1523 | int IBootstrapperApplication.OnExecuteComplete(int hrStatus) | ||
1524 | { | ||
1525 | ExecuteCompleteEventArgs args = new ExecuteCompleteEventArgs(hrStatus); | ||
1526 | this.OnExecuteComplete(args); | ||
1527 | |||
1528 | return args.HResult; | ||
1529 | } | ||
1530 | |||
1531 | int IBootstrapperApplication.OnUnregisterBegin(ref bool fCancel) | ||
1532 | { | ||
1533 | UnregisterBeginEventArgs args = new UnregisterBeginEventArgs(fCancel); | ||
1534 | this.OnUnregisterBegin(args); | ||
1535 | |||
1536 | fCancel = args.Cancel; | ||
1537 | return args.HResult; | ||
1538 | } | ||
1539 | |||
1540 | int IBootstrapperApplication.OnUnregisterComplete(int hrStatus) | ||
1541 | { | ||
1542 | UnregisterCompleteEventArgs args = new UnregisterCompleteEventArgs(hrStatus); | ||
1543 | this.OnUnregisterComplete(args); | ||
1544 | |||
1545 | return args.HResult; | ||
1546 | } | ||
1547 | |||
1548 | int IBootstrapperApplication.OnApplyComplete(int hrStatus, ApplyRestart restart, BOOTSTRAPPER_APPLYCOMPLETE_ACTION recommendation, ref BOOTSTRAPPER_APPLYCOMPLETE_ACTION pAction) | ||
1549 | { | ||
1550 | ApplyCompleteEventArgs args = new ApplyCompleteEventArgs(hrStatus, restart, recommendation, pAction); | ||
1551 | this.OnApplyComplete(args); | ||
1552 | |||
1553 | this.applying = false; | ||
1554 | |||
1555 | pAction = args.Action; | ||
1556 | return args.HResult; | ||
1557 | } | ||
1558 | |||
1559 | int IBootstrapperApplication.OnLaunchApprovedExeBegin(ref bool fCancel) | ||
1560 | { | ||
1561 | LaunchApprovedExeBeginArgs args = new LaunchApprovedExeBeginArgs(fCancel); | ||
1562 | this.OnLaunchApprovedExeBegin(args); | ||
1563 | |||
1564 | fCancel = args.Cancel; | ||
1565 | return args.HResult; | ||
1566 | } | ||
1567 | |||
1568 | int IBootstrapperApplication.OnLaunchApprovedExeComplete(int hrStatus, int processId) | ||
1569 | { | ||
1570 | LaunchApprovedExeCompleteArgs args = new LaunchApprovedExeCompleteArgs(hrStatus, processId); | ||
1571 | this.OnLaunchApprovedExeComplete(args); | ||
1572 | |||
1573 | return args.HResult; | ||
1574 | } | ||
1575 | |||
1576 | int IBootstrapperApplication.BAProc(BOOTSTRAPPER_APPLICATION_MESSAGE message, IntPtr pvArgs, IntPtr pvResults, IntPtr pvContext) | ||
1577 | { | ||
1578 | switch (message) | ||
1579 | { | ||
1580 | default: | ||
1581 | return NativeMethods.E_NOTIMPL; | ||
1582 | } | ||
1583 | } | ||
1584 | |||
1585 | void IBootstrapperApplication.BAProcFallback(BOOTSTRAPPER_APPLICATION_MESSAGE message, IntPtr pvArgs, IntPtr pvResults, ref int phr, IntPtr pvContext) | ||
1586 | { | ||
1587 | } | ||
1588 | |||
1589 | #endregion | ||
1590 | } | ||
1591 | } | ||