aboutsummaryrefslogtreecommitdiff
path: root/src/balutil/inc/BalBaseBAFunctions.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/balutil/inc/BalBaseBAFunctions.h700
1 files changed, 700 insertions, 0 deletions
diff --git a/src/balutil/inc/BalBaseBAFunctions.h b/src/balutil/inc/BalBaseBAFunctions.h
new file mode 100644
index 00000000..dd190ee9
--- /dev/null
+++ b/src/balutil/inc/BalBaseBAFunctions.h
@@ -0,0 +1,700 @@
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#include <windows.h>
6#include <msiquery.h>
7
8#include "dutil.h"
9#include "locutil.h"
10#include "thmutil.h"
11#include "BAFunctions.h"
12#include "IBAFunctions.h"
13#include "BootstrapperEngine.h"
14#include "BootstrapperApplication.h"
15#include "IBootstrapperEngine.h"
16#include "IBootstrapperApplication.h"
17
18class CBalBaseBAFunctions : public IBAFunctions
19{
20public: // IUnknown
21 virtual STDMETHODIMP QueryInterface(
22 __in REFIID riid,
23 __out LPVOID *ppvObject
24 )
25 {
26 if (!ppvObject)
27 {
28 return E_INVALIDARG;
29 }
30
31 *ppvObject = NULL;
32
33 if (::IsEqualIID(__uuidof(IBAFunctions), riid))
34 {
35 *ppvObject = static_cast<IBAFunctions*>(this);
36 }
37 else if (::IsEqualIID(__uuidof(IBootstrapperApplication), riid))
38 {
39 *ppvObject = static_cast<IBootstrapperApplication*>(this);
40 }
41 else if (::IsEqualIID(IID_IUnknown, riid))
42 {
43 *ppvObject = static_cast<IUnknown*>(this);
44 }
45 else // no interface for requested iid
46 {
47 return E_NOINTERFACE;
48 }
49
50 AddRef();
51 return S_OK;
52 }
53
54 virtual STDMETHODIMP_(ULONG) AddRef()
55 {
56 return ::InterlockedIncrement(&this->m_cReferences);
57 }
58
59 virtual STDMETHODIMP_(ULONG) Release()
60 {
61 long l = ::InterlockedDecrement(&this->m_cReferences);
62 if (0 < l)
63 {
64 return l;
65 }
66
67 delete this;
68 return 0;
69 }
70
71public: // IBootstrapperApplication
72 virtual STDMETHODIMP OnStartup()
73 {
74 return S_OK;
75 }
76
77 virtual STDMETHODIMP OnShutdown(
78 __inout BOOTSTRAPPER_SHUTDOWN_ACTION* /*pAction*/
79 )
80 {
81 return S_OK;
82 }
83
84 virtual STDMETHODIMP OnSystemShutdown(
85 __in DWORD /*dwEndSession*/,
86 __inout BOOL* /*pfCancel*/
87 )
88 {
89 return S_OK;
90 }
91
92 virtual STDMETHODIMP OnDetectBegin(
93 __in BOOL /*fInstalled*/,
94 __in DWORD /*cPackages*/,
95 __inout BOOL* /*pfCancel*/
96 )
97 {
98 return S_OK;
99 }
100
101 virtual STDMETHODIMP OnDetectForwardCompatibleBundle(
102 __in_z LPCWSTR /*wzBundleId*/,
103 __in BOOTSTRAPPER_RELATION_TYPE /*relationType*/,
104 __in_z LPCWSTR /*wzBundleTag*/,
105 __in BOOL /*fPerMachine*/,
106 __in DWORD64 /*dw64Version*/,
107 __inout BOOL* /*pfCancel*/,
108 __inout BOOL* /*pfIgnoreBundle*/
109 )
110 {
111 return S_OK;
112 }
113
114 virtual STDMETHODIMP OnDetectUpdateBegin(
115 __in_z LPCWSTR /*wzUpdateLocation*/,
116 __inout BOOL* /*pfCancel*/,
117 __inout BOOL* /*pfSkip*/
118 )
119 {
120 return S_OK;
121 }
122
123 virtual STDMETHODIMP OnDetectUpdate(
124 __in_z LPCWSTR /*wzUpdateLocation*/,
125 __in DWORD64 /*dw64Size*/,
126 __in DWORD64 /*dw64Version*/,
127 __in_z LPCWSTR /*wzTitle*/,
128 __in_z LPCWSTR /*wzSummary*/,
129 __in_z LPCWSTR /*wzContentType*/,
130 __in_z LPCWSTR /*wzContent*/,
131 __inout BOOL* /*pfCancel*/,
132 __inout BOOL* /*pfStopProcessingUpdates*/
133 )
134 {
135 return S_OK;
136 }
137
138 virtual STDMETHODIMP OnDetectUpdateComplete(
139 __in HRESULT /*hrStatus*/,
140 __inout BOOL* /*pfIgnoreError*/
141 )
142 {
143 return S_OK;
144 }
145
146 virtual STDMETHODIMP OnDetectRelatedBundle(
147 __in_z LPCWSTR /*wzBundleId*/,
148 __in BOOTSTRAPPER_RELATION_TYPE /*relationType*/,
149 __in_z LPCWSTR /*wzBundleTag*/,
150 __in BOOL /*fPerMachine*/,
151 __in DWORD64 /*dw64Version*/,
152 __in BOOTSTRAPPER_RELATED_OPERATION /*operation*/,
153 __inout BOOL* /*pfCancel*/
154 )
155 {
156 return S_OK;
157 }
158
159 virtual STDMETHODIMP OnDetectPackageBegin(
160 __in_z LPCWSTR /*wzPackageId*/,
161 __inout BOOL* /*pfCancel*/
162 )
163 {
164 return S_OK;
165 }
166
167 virtual STDMETHODIMP OnDetectCompatibleMsiPackage(
168 __in_z LPCWSTR /*wzPackageId*/,
169 __in_z LPCWSTR /*wzCompatiblePackageId*/,
170 __in DWORD64 /*dw64CompatiblePackageVersion*/,
171 __inout BOOL* /*pfCancel*/
172 )
173 {
174 return S_OK;
175 }
176
177 virtual STDMETHODIMP OnDetectRelatedMsiPackage(
178 __in_z LPCWSTR /*wzPackageId*/,
179 __in_z LPCWSTR /*wzUpgradeCode*/,
180 __in_z LPCWSTR /*wzProductCode*/,
181 __in BOOL /*fPerMachine*/,
182 __in DWORD64 /*dw64Version*/,
183 __in BOOTSTRAPPER_RELATED_OPERATION /*operation*/,
184 __inout BOOL* /*pfCancel*/
185 )
186 {
187 return S_OK;
188 }
189
190 virtual STDMETHODIMP OnDetectTargetMsiPackage(
191 __in_z LPCWSTR /*wzPackageId*/,
192 __in_z LPCWSTR /*wzProductCode*/,
193 __in BOOTSTRAPPER_PACKAGE_STATE /*patchState*/,
194 __inout BOOL* /*pfCancel*/
195 )
196 {
197 return S_OK;
198 }
199
200 virtual STDMETHODIMP OnDetectMsiFeature(
201 __in_z LPCWSTR /*wzPackageId*/,
202 __in_z LPCWSTR /*wzFeatureId*/,
203 __in BOOTSTRAPPER_FEATURE_STATE /*state*/,
204 __inout BOOL* /*pfCancel*/
205 )
206 {
207 return S_OK;
208 }
209
210 virtual STDMETHODIMP OnDetectPackageComplete(
211 __in_z LPCWSTR /*wzPackageId*/,
212 __in HRESULT /*hrStatus*/,
213 __in BOOTSTRAPPER_PACKAGE_STATE /*state*/
214 )
215 {
216 return S_OK;
217 }
218
219 virtual STDMETHODIMP OnDetectComplete(
220 __in HRESULT /*hrStatus*/
221 )
222 {
223 return S_OK;
224 }
225
226 virtual STDMETHODIMP OnPlanBegin(
227 __in DWORD /*cPackages*/,
228 __inout BOOL* /*pfCancel*/
229 )
230 {
231 return S_OK;
232 }
233
234 virtual STDMETHODIMP OnPlanRelatedBundle(
235 __in_z LPCWSTR /*wzBundleId*/,
236 __in BOOTSTRAPPER_REQUEST_STATE /*recommendedState*/,
237 __inout BOOTSTRAPPER_REQUEST_STATE* /*pRequestedState*/,
238 __inout BOOL* /*pfCancel*/
239 )
240 {
241 return S_OK;
242 }
243
244 virtual STDMETHODIMP OnPlanPackageBegin(
245 __in_z LPCWSTR /*wzPackageId*/,
246 __in BOOTSTRAPPER_REQUEST_STATE /*recommendedState*/,
247 __inout BOOTSTRAPPER_REQUEST_STATE* /*pRequestState*/,
248 __inout BOOL* /*pfCancel*/
249 )
250 {
251 return S_OK;
252 }
253
254 virtual STDMETHODIMP OnPlanCompatibleMsiPackageBegin(
255 __in_z LPCWSTR /*wzPackageId*/,
256 __in_z LPCWSTR /*wzCompatiblePackageId*/,
257 __in DWORD64 /*dw64CompatiblePackageVersion*/,
258 __in BOOTSTRAPPER_REQUEST_STATE /*recommendedState*/,
259 __inout BOOTSTRAPPER_REQUEST_STATE* /*pRequestedState*/,
260 __inout BOOL* /*pfCancel*/
261 )
262 {
263 return S_OK;
264 }
265
266 virtual STDMETHODIMP OnPlanCompatibleMsiPackageComplete(
267 __in_z LPCWSTR /*wzPackageId*/,
268 __in_z LPCWSTR /*wzCompatiblePackageId*/,
269 __in HRESULT /*hrStatus*/,
270 __in BOOTSTRAPPER_PACKAGE_STATE /*state*/,
271 __in BOOTSTRAPPER_REQUEST_STATE /*requested*/,
272 __in BOOTSTRAPPER_ACTION_STATE /*execute*/,
273 __in BOOTSTRAPPER_ACTION_STATE /*rollback*/
274 )
275 {
276 return S_OK;
277 }
278
279 virtual STDMETHODIMP OnPlanTargetMsiPackage(
280 __in_z LPCWSTR /*wzPackageId*/,
281 __in_z LPCWSTR /*wzProductCode*/,
282 __in BOOTSTRAPPER_REQUEST_STATE /*recommendedState*/,
283 __inout BOOTSTRAPPER_REQUEST_STATE* /*pRequestedState*/,
284 __inout BOOL* /*pfCancel*/
285 )
286 {
287 return S_OK;
288 }
289
290 virtual STDMETHODIMP OnPlanMsiFeature(
291 __in_z LPCWSTR /*wzPackageId*/,
292 __in_z LPCWSTR /*wzFeatureId*/,
293 __in BOOTSTRAPPER_FEATURE_STATE /*recommendedState*/,
294 __inout BOOTSTRAPPER_FEATURE_STATE* /*pRequestedState*/,
295 __inout BOOL* /*pfCancel*/
296 )
297 {
298 return S_OK;
299 }
300
301 virtual STDMETHODIMP OnPlanPackageComplete(
302 __in_z LPCWSTR /*wzPackageId*/,
303 __in HRESULT /*hrStatus*/,
304 __in BOOTSTRAPPER_PACKAGE_STATE /*state*/,
305 __in BOOTSTRAPPER_REQUEST_STATE /*requested*/,
306 __in BOOTSTRAPPER_ACTION_STATE /*execute*/,
307 __in BOOTSTRAPPER_ACTION_STATE /*rollback*/
308 )
309 {
310 return S_OK;
311 }
312
313 virtual STDMETHODIMP OnPlanComplete(
314 __in HRESULT /*hrStatus*/
315 )
316 {
317 return S_OK;
318 }
319
320 virtual STDMETHODIMP OnApplyBegin(
321 __in DWORD /*dwPhaseCount*/,
322 __inout BOOL* /*pfCancel*/
323 )
324 {
325 return S_OK;
326 }
327
328 virtual STDMETHODIMP OnElevateBegin(
329 __inout BOOL* /*pfCancel*/
330 )
331 {
332 return S_OK;
333 }
334
335 virtual STDMETHODIMP OnElevateComplete(
336 __in HRESULT /*hrStatus*/
337 )
338 {
339 return S_OK;
340 }
341
342 virtual STDMETHODIMP OnProgress(
343 __in DWORD /*dwProgressPercentage*/,
344 __in DWORD /*dwOverallProgressPercentage*/,
345 __inout BOOL* /*pfCancel*/
346 )
347 {
348 return IDNOACTION;
349 }
350
351 virtual STDMETHODIMP OnError(
352 __in BOOTSTRAPPER_ERROR_TYPE /*errorType*/,
353 __in_z LPCWSTR /*wzPackageId*/,
354 __in DWORD /*dwCode*/,
355 __in_z LPCWSTR /*wzError*/,
356 __in DWORD /*dwUIHint*/,
357 __in DWORD /*cData*/,
358 __in_ecount_z_opt(cData) LPCWSTR* /*rgwzData*/,
359 __in int /*nRecommendation*/,
360 __inout int* /*pResult*/
361 )
362 {
363 return S_OK;
364 }
365
366 virtual STDMETHODIMP OnRegisterBegin(
367 __inout BOOL* /*pfCancel*/
368 )
369 {
370 return S_OK;
371 }
372
373 virtual STDMETHODIMP OnRegisterComplete(
374 __in HRESULT /*hrStatus*/
375 )
376 {
377 return S_OK;
378 }
379
380 virtual STDMETHODIMP OnCacheBegin(
381 __inout BOOL* /*pfCancel*/
382 )
383 {
384 return S_OK;
385 }
386
387 virtual STDMETHODIMP OnCachePackageBegin(
388 __in_z LPCWSTR /*wzPackageId*/,
389 __in DWORD /*cCachePayloads*/,
390 __in DWORD64 /*dw64PackageCacheSize*/,
391 __inout BOOL* /*pfCancel*/
392 )
393 {
394 return S_OK;
395 }
396
397 virtual STDMETHODIMP OnCacheAcquireBegin(
398 __in_z LPCWSTR /*wzPackageOrContainerId*/,
399 __in_z_opt LPCWSTR /*wzPayloadId*/,
400 __in BOOTSTRAPPER_CACHE_OPERATION /*operation*/,
401 __in_z LPCWSTR /*wzSource*/,
402 __inout BOOL* /*pfCancel*/
403 )
404 {
405 return S_OK;
406 }
407
408 virtual STDMETHODIMP OnCacheAcquireProgress(
409 __in_z LPCWSTR /*wzPackageOrContainerId*/,
410 __in_z_opt LPCWSTR /*wzPayloadId*/,
411 __in DWORD64 /*dw64Progress*/,
412 __in DWORD64 /*dw64Total*/,
413 __in DWORD /*dwOverallPercentage*/,
414 __inout BOOL* /*pfCancel*/
415 )
416 {
417 return S_OK;
418 }
419
420 virtual STDMETHODIMP OnResolveSource(
421 __in_z LPCWSTR /*wzPackageOrContainerId*/,
422 __in_z_opt LPCWSTR /*wzPayloadId*/,
423 __in_z LPCWSTR /*wzLocalSource*/,
424 __in_z_opt LPCWSTR /*wzDownloadSource*/,
425 __in BOOTSTRAPPER_RESOLVESOURCE_ACTION /*recommendation*/,
426 __inout BOOTSTRAPPER_RESOLVESOURCE_ACTION* /*pAction*/,
427 __inout BOOL* /*pfCancel*/
428 )
429 {
430 return S_OK;
431 }
432
433 virtual STDMETHODIMP OnCacheAcquireComplete(
434 __in_z LPCWSTR /*wzPackageOrContainerId*/,
435 __in_z_opt LPCWSTR /*wzPayloadId*/,
436 __in HRESULT /*hrStatus*/,
437 __in BOOTSTRAPPER_CACHEACQUIRECOMPLETE_ACTION /*recommendation*/,
438 __inout BOOTSTRAPPER_CACHEACQUIRECOMPLETE_ACTION* /*pAction*/
439 )
440 {
441 return S_OK;
442 }
443
444 virtual STDMETHODIMP OnCacheVerifyBegin(
445 __in_z LPCWSTR /*wzPackageId*/,
446 __in_z LPCWSTR /*wzPayloadId*/,
447 __inout BOOL* /*pfCancel*/
448 )
449 {
450 return S_OK;
451 }
452
453 virtual STDMETHODIMP OnCacheVerifyComplete(
454 __in_z LPCWSTR /*wzPackageId*/,
455 __in_z LPCWSTR /*wzPayloadId*/,
456 __in HRESULT /*hrStatus*/,
457 __in BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION /*recommendation*/,
458 __inout BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION* /*pAction*/
459 )
460 {
461 return S_OK;
462 }
463
464 virtual STDMETHODIMP OnCachePackageComplete(
465 __in_z LPCWSTR /*wzPackageId*/,
466 __in HRESULT /*hrStatus*/,
467 __in BOOTSTRAPPER_CACHEPACKAGECOMPLETE_ACTION /*recommendation*/,
468 __inout BOOTSTRAPPER_CACHEPACKAGECOMPLETE_ACTION* /*pAction*/
469 )
470 {
471 return S_OK;
472 }
473
474 virtual STDMETHODIMP OnCacheComplete(
475 __in HRESULT /*hrStatus*/
476 )
477 {
478 return S_OK;
479 }
480
481 virtual STDMETHODIMP OnExecuteBegin(
482 __in DWORD /*cExecutingPackages*/,
483 __inout BOOL* /*pfCancel*/
484 )
485 {
486 return S_OK;
487 }
488
489 virtual STDMETHODIMP OnExecutePackageBegin(
490 __in_z LPCWSTR /*wzPackageId*/,
491 __in BOOL /*fExecute*/,
492 __inout BOOL* /*pfCancel*/
493 )
494 {
495 return S_OK;
496 }
497
498 virtual STDMETHODIMP OnExecutePatchTarget(
499 __in_z LPCWSTR /*wzPackageId*/,
500 __in_z LPCWSTR /*wzTargetProductCode*/,
501 __inout BOOL* /*pfCancel*/
502 )
503 {
504 return S_OK;
505 }
506
507 virtual STDMETHODIMP OnExecuteProgress(
508 __in_z LPCWSTR /*wzPackageId*/,
509 __in DWORD /*dwProgressPercentage*/,
510 __in DWORD /*dwOverallProgressPercentage*/,
511 __inout BOOL* /*pfCancel*/
512 )
513 {
514 return S_OK;
515 }
516
517 virtual STDMETHODIMP OnExecuteMsiMessage(
518 __in_z LPCWSTR /*wzPackageId*/,
519 __in INSTALLMESSAGE /*messageType*/,
520 __in DWORD /*dwUIHint*/,
521 __in_z LPCWSTR /*wzMessage*/,
522 __in DWORD /*cData*/,
523 __in_ecount_z_opt(cData) LPCWSTR* /*rgwzData*/,
524 __in int /*nRecommendation*/,
525 __inout int* /*pResult*/
526 )
527 {
528 return S_OK;
529 }
530
531 virtual STDMETHODIMP OnExecuteFilesInUse(
532 __in_z LPCWSTR /*wzPackageId*/,
533 __in DWORD /*cFiles*/,
534 __in_ecount_z(cFiles) LPCWSTR* /*rgwzFiles*/,
535 __in int /*nRecommendation*/,
536 __inout int* /*pResult*/
537 )
538 {
539 return S_OK;
540 }
541
542 virtual STDMETHODIMP OnExecutePackageComplete(
543 __in_z LPCWSTR /*wzPackageId*/,
544 __in HRESULT /*hrStatus*/,
545 __in BOOTSTRAPPER_APPLY_RESTART /*restart*/,
546 __in BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION /*recommendation*/,
547 __inout BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION* /*pAction*/
548 )
549 {
550 return S_OK;
551 }
552
553 virtual STDMETHODIMP OnExecuteComplete(
554 __in HRESULT /*hrStatus*/
555 )
556 {
557 return S_OK;
558 }
559
560 virtual STDMETHODIMP OnUnregisterBegin(
561 __inout BOOL* /*pfCancel*/
562 )
563 {
564 return S_OK;
565 }
566
567 virtual STDMETHODIMP OnUnregisterComplete(
568 __in HRESULT /*hrStatus*/
569 )
570 {
571 return S_OK;
572 }
573
574 virtual STDMETHODIMP OnApplyComplete(
575 __in HRESULT /*hrStatus*/,
576 __in BOOTSTRAPPER_APPLY_RESTART /*restart*/,
577 __in BOOTSTRAPPER_APPLYCOMPLETE_ACTION /*recommendation*/,
578 __inout BOOTSTRAPPER_APPLYCOMPLETE_ACTION* /*pAction*/
579 )
580 {
581 return S_OK;
582 }
583
584 virtual STDMETHODIMP OnLaunchApprovedExeBegin(
585 __inout BOOL* /*pfCancel*/
586 )
587 {
588 return S_OK;
589 }
590
591 virtual STDMETHODIMP OnLaunchApprovedExeComplete(
592 __in HRESULT /*hrStatus*/,
593 __in DWORD /*dwProcessId*/
594 )
595 {
596 return S_OK;
597 }
598
599 virtual STDMETHODIMP_(HRESULT) BAProc(
600 __in BOOTSTRAPPER_APPLICATION_MESSAGE /*message*/,
601 __in const LPVOID /*pvArgs*/,
602 __inout LPVOID /*pvResults*/,
603 __in_opt LPVOID /*pvContext*/
604 )
605 {
606 return E_NOTIMPL;
607 }
608
609 virtual STDMETHODIMP_(void) BAProcFallback(
610 __in BOOTSTRAPPER_APPLICATION_MESSAGE /*message*/,
611 __in const LPVOID /*pvArgs*/,
612 __inout LPVOID /*pvResults*/,
613 __inout HRESULT* /*phr*/,
614 __in_opt LPVOID /*pvContext*/
615 )
616 {
617 }
618
619public: // IBAFunctions
620 virtual STDMETHODIMP OnPlan(
621 )
622 {
623 return S_OK;
624 }
625
626 virtual STDMETHODIMP OnThemeLoaded(
627 THEME* pTheme,
628 WIX_LOCALIZATION* pWixLoc
629 )
630 {
631 HRESULT hr = S_OK;
632
633 m_pTheme = pTheme;
634 m_pWixLoc = pWixLoc;
635
636 return hr;
637 }
638
639 virtual STDMETHODIMP WndProc(
640 __in THEME* pTheme,
641 __in HWND hWnd,
642 __in UINT uMsg,
643 __in WPARAM wParam,
644 __in LPARAM lParam,
645 __inout LRESULT* plRes
646 )
647 {
648 HRESULT hr = S_OK;
649
650 *plRes = ThemeDefWindowProc(pTheme, hWnd, uMsg, wParam, lParam);
651
652 return hr;
653 }
654
655 virtual STDMETHODIMP BAFunctionsProc(
656 __in BA_FUNCTIONS_MESSAGE /*message*/,
657 __in const LPVOID /*pvArgs*/,
658 __inout LPVOID /*pvResults*/,
659 __in_opt LPVOID /*pvContext*/
660 )
661 {
662 return E_NOTIMPL;
663 }
664
665protected:
666 CBalBaseBAFunctions(
667 __in HMODULE hModule,
668 __in IBootstrapperEngine* pEngine,
669 __in const BA_FUNCTIONS_CREATE_ARGS* pArgs
670 )
671 {
672 m_cReferences = 1;
673 m_hModule = hModule;
674 pEngine->AddRef();
675 m_pEngine = pEngine;
676
677 memcpy_s(&m_command, sizeof(m_command), pArgs->pBootstrapperCreateArgs->pCommand, sizeof(BOOTSTRAPPER_COMMAND));
678 memcpy_s(&m_baCreateArgs, sizeof(m_baCreateArgs), pArgs->pBootstrapperCreateArgs, sizeof(BOOTSTRAPPER_CREATE_ARGS));
679 memcpy_s(&m_bafCreateArgs, sizeof(m_bafCreateArgs), pArgs, sizeof(BA_FUNCTIONS_CREATE_ARGS));
680 m_baCreateArgs.pCommand = &m_command;
681 m_bafCreateArgs.pBootstrapperCreateArgs = &m_baCreateArgs;
682 }
683
684 virtual ~CBalBaseBAFunctions()
685 {
686 ReleaseNullObject(m_pEngine);
687 }
688
689private:
690 long m_cReferences;
691
692protected:
693 IBootstrapperEngine* m_pEngine;
694 HMODULE m_hModule;
695 BA_FUNCTIONS_CREATE_ARGS m_bafCreateArgs;
696 BOOTSTRAPPER_CREATE_ARGS m_baCreateArgs;
697 BOOTSTRAPPER_COMMAND m_command;
698 THEME* m_pTheme;
699 WIX_LOCALIZATION* m_pWixLoc;
700};