summaryrefslogtreecommitdiff
path: root/src/ext/Bal/wixstdfn/inc
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2024-03-07 01:44:51 -0800
committerRob Mensching <rob@firegiant.com>2024-03-07 10:55:57 -0800
commitdea25ba9bcfd65200b60339c2e4bc060cdf20723 (patch)
tree91dae5127a7eeb4f0e59252194fc7ec7153a2781 /src/ext/Bal/wixstdfn/inc
parent3d2d46f62fc01e2653d0251ad9703090574e7c41 (diff)
downloadwix-dea25ba9bcfd65200b60339c2e4bc060cdf20723.tar.gz
wix-dea25ba9bcfd65200b60339c2e4bc060cdf20723.tar.bz2
wix-dea25ba9bcfd65200b60339c2e4bc060cdf20723.zip
Move wixstdba functions to Bal.wixext build
Diffstat (limited to 'src/ext/Bal/wixstdfn/inc')
-rw-r--r--src/ext/Bal/wixstdfn/inc/BAFunctions.h243
-rw-r--r--src/ext/Bal/wixstdfn/inc/BalBaseBAFunctions.h1018
-rw-r--r--src/ext/Bal/wixstdfn/inc/BalBaseBAFunctionsProc.h15
-rw-r--r--src/ext/Bal/wixstdfn/inc/IBAFunctions.h75
4 files changed, 1351 insertions, 0 deletions
diff --git a/src/ext/Bal/wixstdfn/inc/BAFunctions.h b/src/ext/Bal/wixstdfn/inc/BAFunctions.h
new file mode 100644
index 00000000..7908a74c
--- /dev/null
+++ b/src/ext/Bal/wixstdfn/inc/BAFunctions.h
@@ -0,0 +1,243 @@
1#pragma once
2// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
3
4#include "IBootstrapperEngine.h"
5
6#ifdef __cplusplus
7extern "C" {
8#endif
9
10// The first 1024 messages are reserved so that the BA messages have the same value here.
11enum BA_FUNCTIONS_MESSAGE
12{
13 BA_FUNCTIONS_MESSAGE_ONCREATE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCREATE,
14 BA_FUNCTIONS_MESSAGE_ONDESTROY = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDESTROY,
15 BA_FUNCTIONS_MESSAGE_ONSTARTUP = BOOTSTRAPPER_APPLICATION_MESSAGE_ONSTARTUP,
16 BA_FUNCTIONS_MESSAGE_ONSHUTDOWN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONSHUTDOWN,
17 BA_FUNCTIONS_MESSAGE_ONDETECTBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTBEGIN,
18 BA_FUNCTIONS_MESSAGE_ONDETECTCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTCOMPLETE,
19 BA_FUNCTIONS_MESSAGE_ONPLANBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANBEGIN,
20 BA_FUNCTIONS_MESSAGE_ONPLANCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANCOMPLETE,
21 BA_FUNCTIONS_MESSAGE_ONDETECTFORWARDCOMPATIBLEBUNDLE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTFORWARDCOMPATIBLEBUNDLE,
22 BA_FUNCTIONS_MESSAGE_ONDETECTUPDATEBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTUPDATEBEGIN,
23 BA_FUNCTIONS_MESSAGE_ONDETECTUPDATE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTUPDATE,
24 BA_FUNCTIONS_MESSAGE_ONDETECTUPDATECOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTUPDATECOMPLETE,
25 BA_FUNCTIONS_MESSAGE_ONDETECTRELATEDBUNDLE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTRELATEDBUNDLE,
26 BA_FUNCTIONS_MESSAGE_ONDETECTPACKAGEBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTPACKAGEBEGIN,
27 BA_FUNCTIONS_MESSAGE_ONDETECTRELATEDMSIPACKAGE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTRELATEDMSIPACKAGE,
28 BA_FUNCTIONS_MESSAGE_ONDETECTPATCHTARGET = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTPATCHTARGET,
29 BA_FUNCTIONS_MESSAGE_ONDETECTMSIFEATURE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTMSIFEATURE,
30 BA_FUNCTIONS_MESSAGE_ONDETECTPACKAGECOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTPACKAGECOMPLETE,
31 BA_FUNCTIONS_MESSAGE_ONPLANRELATEDBUNDLE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANRELATEDBUNDLE,
32 BA_FUNCTIONS_MESSAGE_ONPLANPACKAGEBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANPACKAGEBEGIN,
33 BA_FUNCTIONS_MESSAGE_ONPLANPATCHTARGET = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANPATCHTARGET,
34 BA_FUNCTIONS_MESSAGE_ONPLANMSIFEATURE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANMSIFEATURE,
35 BA_FUNCTIONS_MESSAGE_ONPLANPACKAGECOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANPACKAGECOMPLETE,
36 BA_FUNCTIONS_MESSAGE_ONAPPLYBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONAPPLYBEGIN,
37 BA_FUNCTIONS_MESSAGE_ONELEVATEBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONELEVATEBEGIN,
38 BA_FUNCTIONS_MESSAGE_ONELEVATECOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONELEVATECOMPLETE,
39 BA_FUNCTIONS_MESSAGE_ONPROGRESS = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPROGRESS,
40 BA_FUNCTIONS_MESSAGE_ONERROR = BOOTSTRAPPER_APPLICATION_MESSAGE_ONERROR,
41 BA_FUNCTIONS_MESSAGE_ONREGISTERBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONREGISTERBEGIN,
42 BA_FUNCTIONS_MESSAGE_ONREGISTERCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONREGISTERCOMPLETE,
43 BA_FUNCTIONS_MESSAGE_ONCACHEBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEBEGIN,
44 BA_FUNCTIONS_MESSAGE_ONCACHEPACKAGEBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPACKAGEBEGIN,
45 BA_FUNCTIONS_MESSAGE_ONCACHEACQUIREBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEACQUIREBEGIN,
46 BA_FUNCTIONS_MESSAGE_ONCACHEACQUIREPROGRESS = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEACQUIREPROGRESS,
47 BA_FUNCTIONS_MESSAGE_ONCACHEACQUIRERESOLVING = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEACQUIRERESOLVING,
48 BA_FUNCTIONS_MESSAGE_ONCACHEACQUIRECOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEACQUIRECOMPLETE,
49 BA_FUNCTIONS_MESSAGE_ONCACHEVERIFYBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEVERIFYBEGIN,
50 BA_FUNCTIONS_MESSAGE_ONCACHEVERIFYCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEVERIFYCOMPLETE,
51 BA_FUNCTIONS_MESSAGE_ONCACHEPACKAGECOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPACKAGECOMPLETE,
52 BA_FUNCTIONS_MESSAGE_ONCACHECOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHECOMPLETE,
53 BA_FUNCTIONS_MESSAGE_ONEXECUTEBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEBEGIN,
54 BA_FUNCTIONS_MESSAGE_ONEXECUTEPACKAGEBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEPACKAGEBEGIN,
55 BA_FUNCTIONS_MESSAGE_ONEXECUTEPATCHTARGET = BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEPATCHTARGET,
56 BA_FUNCTIONS_MESSAGE_ONEXECUTEPROGRESS = BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEPROGRESS,
57 BA_FUNCTIONS_MESSAGE_ONEXECUTEMSIMESSAGE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEMSIMESSAGE,
58 BA_FUNCTIONS_MESSAGE_ONEXECUTEFILESINUSE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEFILESINUSE,
59 BA_FUNCTIONS_MESSAGE_ONEXECUTEPACKAGECOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEPACKAGECOMPLETE,
60 BA_FUNCTIONS_MESSAGE_ONEXECUTECOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTECOMPLETE,
61 BA_FUNCTIONS_MESSAGE_ONUNREGISTERBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONUNREGISTERBEGIN,
62 BA_FUNCTIONS_MESSAGE_ONUNREGISTERCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONUNREGISTERCOMPLETE,
63 BA_FUNCTIONS_MESSAGE_ONAPPLYCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONAPPLYCOMPLETE,
64 BA_FUNCTIONS_MESSAGE_ONLAUNCHAPPROVEDEXEBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONLAUNCHAPPROVEDEXEBEGIN,
65 BA_FUNCTIONS_MESSAGE_ONLAUNCHAPPROVEDEXECOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONLAUNCHAPPROVEDEXECOMPLETE,
66 BA_FUNCTIONS_MESSAGE_ONPLANMSIPACKAGE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANMSIPACKAGE,
67 BA_FUNCTIONS_MESSAGE_ONBEGINMSITRANSACTIONBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONBEGINMSITRANSACTIONBEGIN,
68 BA_FUNCTIONS_MESSAGE_ONBEGINMSITRANSACTIONCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONBEGINMSITRANSACTIONCOMPLETE,
69 BA_FUNCTIONS_MESSAGE_ONCOMMITMSITRANSACTIONBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCOMMITMSITRANSACTIONBEGIN,
70 BA_FUNCTIONS_MESSAGE_ONCOMMITMSITRANSACTIONCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCOMMITMSITRANSACTIONCOMPLETE,
71 BA_FUNCTIONS_MESSAGE_ONROLLBACKMSITRANSACTIONBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONROLLBACKMSITRANSACTIONBEGIN,
72 BA_FUNCTIONS_MESSAGE_ONROLLBACKMSITRANSACTIONCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONROLLBACKMSITRANSACTIONCOMPLETE,
73 BA_FUNCTIONS_MESSAGE_ONPAUSEAUTOMATICUPDATESBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPAUSEAUTOMATICUPDATESBEGIN,
74 BA_FUNCTIONS_MESSAGE_ONPAUSEAUTOMATICUPDATESCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPAUSEAUTOMATICUPDATESCOMPLETE,
75 BA_FUNCTIONS_MESSAGE_ONSYSTEMRESTOREPOINTBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONSYSTEMRESTOREPOINTBEGIN,
76 BA_FUNCTIONS_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE,
77 BA_FUNCTIONS_MESSAGE_ONPLANNEDPACKAGE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANNEDPACKAGE,
78 BA_FUNCTIONS_MESSAGE_ONPLANFORWARDCOMPATIBLEBUNDLE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANFORWARDCOMPATIBLEBUNDLE,
79 BA_FUNCTIONS_MESSAGE_ONCACHEVERIFYPROGRESS = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEVERIFYPROGRESS,
80 BA_FUNCTIONS_MESSAGE_ONCACHECONTAINERORPAYLOADVERIFYBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHECONTAINERORPAYLOADVERIFYBEGIN,
81 BA_FUNCTIONS_MESSAGE_ONCACHECONTAINERORPAYLOADVERIFYCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHECONTAINERORPAYLOADVERIFYCOMPLETE,
82 BA_FUNCTIONS_MESSAGE_ONCACHECONTAINERORPAYLOADVERIFYPROGRESS = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHECONTAINERORPAYLOADVERIFYPROGRESS,
83 BA_FUNCTIONS_MESSAGE_ONCACHEPAYLOADEXTRACTBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTBEGIN,
84 BA_FUNCTIONS_MESSAGE_ONCACHEPAYLOADEXTRACTCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTCOMPLETE,
85 BA_FUNCTIONS_MESSAGE_ONCACHEPAYLOADEXTRACTPROGRESS = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTPROGRESS,
86 BA_FUNCTIONS_MESSAGE_ONPLANROLLBACKBOUNDARY = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANROLLBACKBOUNDARY,
87 BA_FUNCTIONS_MESSAGE_ONDETECTCOMPATIBLEMSIPACKAGE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTCOMPATIBLEMSIPACKAGE,
88 BA_FUNCTIONS_MESSAGE_ONPLANCOMPATIBLEMSIPACKAGEBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANCOMPATIBLEMSIPACKAGEBEGIN,
89 BA_FUNCTIONS_MESSAGE_ONPLANCOMPATIBLEMSIPACKAGECOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANCOMPATIBLEMSIPACKAGECOMPLETE,
90 BA_FUNCTIONS_MESSAGE_ONPLANNEDCOMPATIBLEPACKAGE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANNEDCOMPATIBLEPACKAGE,
91 BA_FUNCTIONS_MESSAGE_ONPLANRESTORERELATEDBUNDLE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANRESTORERELATEDBUNDLE,
92 BA_FUNCTIONS_MESSAGE_ONPLANRELATEDBUNDLETYPE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANRELATEDBUNDLETYPE,
93 BA_FUNCTIONS_MESSAGE_ONAPPLYDOWNGRADE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONAPPLYDOWNGRADE,
94 BA_FUNCTIONS_MESSAGE_ONEXECUTEPROCESSCANCEL = BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEPROCESSCANCEL,
95 BA_FUNCTIONS_MESSAGE_ONDETECTRELATEDBUNDLEPACKAGE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTRELATEDBUNDLEPACKAGE,
96 BA_FUNCTIONS_MESSAGE_ONCACHEPACKAGENONVITALVALIDATIONFAILURE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPACKAGENONVITALVALIDATIONFAILURE,
97
98 BA_FUNCTIONS_MESSAGE_ONTHEMELOADED = 1024,
99 BA_FUNCTIONS_MESSAGE_WNDPROC,
100 BA_FUNCTIONS_MESSAGE_ONTHEMECONTROLLOADING,
101 BA_FUNCTIONS_MESSAGE_ONTHEMECONTROLWMCOMMAND,
102 BA_FUNCTIONS_MESSAGE_ONTHEMECONTROLWMNOTIFY,
103 BA_FUNCTIONS_MESSAGE_ONTHEMECONTROLLOADED,
104};
105
106typedef HRESULT(WINAPI *PFN_BA_FUNCTIONS_PROC)(
107 __in BA_FUNCTIONS_MESSAGE message,
108 __in const LPVOID pvArgs,
109 __inout LPVOID pvResults,
110 __in_opt LPVOID pvContext
111 );
112
113// Should be the same as THEME_FIRST_ASSIGN_CONTROL_ID.
114// BAFunctions must only assign ids in the range [BAFUNCTIONS_FIRST_ASSIGN_CONTROL_ID, 0x8000) to avoid collisions.
115const WORD BAFUNCTIONS_FIRST_ASSIGN_CONTROL_ID = 0x4000;
116
117struct BA_FUNCTIONS_CREATE_ARGS
118{
119 DWORD cbSize;
120 DWORD64 qwBAFunctionsAPIVersion;
121 IBootstrapperEngine* pEngine;
122 BOOTSTRAPPER_COMMAND* pCommand;
123};
124
125struct BA_FUNCTIONS_CREATE_RESULTS
126{
127 DWORD cbSize;
128 PFN_BA_FUNCTIONS_PROC pfnBAFunctionsProc;
129 LPVOID pvBAFunctionsProcContext;
130};
131
132struct BA_FUNCTIONS_DESTROY_ARGS
133{
134 DWORD cbSize;
135 BOOL fReload;
136};
137
138struct BA_FUNCTIONS_DESTROY_RESULTS
139{
140 DWORD cbSize;
141 BOOL fDisableUnloading; // indicates the BAFunctions dll must not be unloaded after BAFunctionsDestroy.
142};
143
144struct BA_FUNCTIONS_ONTHEMECONTROLLOADED_ARGS
145{
146 DWORD cbSize;
147 LPCWSTR wzName;
148 WORD wId;
149 HWND hWnd;
150};
151
152struct BA_FUNCTIONS_ONTHEMECONTROLLOADED_RESULTS
153{
154 DWORD cbSize;
155 BOOL fProcessed;
156};
157
158struct BA_FUNCTIONS_ONTHEMECONTROLLOADING_ARGS
159{
160 DWORD cbSize;
161 LPCWSTR wzName;
162};
163
164struct BA_FUNCTIONS_ONTHEMECONTROLLOADING_RESULTS
165{
166 DWORD cbSize;
167 BOOL fProcessed;
168 WORD wId;
169 DWORD dwAutomaticBehaviorType;
170};
171
172struct BA_FUNCTIONS_ONTHEMECONTROLWMCOMMAND_ARGS
173{
174 DWORD cbSize;
175 WPARAM wParam;
176 LPCWSTR wzName;
177 WORD wId;
178 HWND hWnd;
179};
180
181struct BA_FUNCTIONS_ONTHEMECONTROLWMCOMMAND_RESULTS
182{
183 DWORD cbSize;
184 BOOL fProcessed;
185 LRESULT lResult;
186};
187
188struct BA_FUNCTIONS_ONTHEMECONTROLWMNOTIFY_ARGS
189{
190 DWORD cbSize;
191 LPNMHDR lParam;
192 LPCWSTR wzName;
193 WORD wId;
194 HWND hWnd;
195};
196
197struct BA_FUNCTIONS_ONTHEMECONTROLWMNOTIFY_RESULTS
198{
199 DWORD cbSize;
200 BOOL fProcessed;
201 LRESULT lResult;
202};
203
204struct BA_FUNCTIONS_ONTHEMELOADED_ARGS
205{
206 DWORD cbSize;
207 HWND hWnd;
208};
209
210struct BA_FUNCTIONS_ONTHEMELOADED_RESULTS
211{
212 DWORD cbSize;
213};
214
215struct BA_FUNCTIONS_WNDPROC_ARGS
216{
217 DWORD cbSize;
218 HWND hWnd;
219 UINT uMsg;
220 WPARAM wParam;
221 LPARAM lParam;
222};
223
224struct BA_FUNCTIONS_WNDPROC_RESULTS
225{
226 DWORD cbSize;
227 BOOL fProcessed;
228 LRESULT lResult;
229};
230
231typedef HRESULT(WINAPI *PFN_BA_FUNCTIONS_CREATE)(
232 __in const BA_FUNCTIONS_CREATE_ARGS* pArgs,
233 __inout BA_FUNCTIONS_CREATE_RESULTS* pResults
234 );
235
236typedef void (WINAPI *PFN_BA_FUNCTIONS_DESTROY)(
237 __in const BA_FUNCTIONS_DESTROY_ARGS* pArgs,
238 __inout BA_FUNCTIONS_DESTROY_RESULTS* pResults
239 );
240
241#ifdef __cplusplus
242}
243#endif
diff --git a/src/ext/Bal/wixstdfn/inc/BalBaseBAFunctions.h b/src/ext/Bal/wixstdfn/inc/BalBaseBAFunctions.h
new file mode 100644
index 00000000..fd284d9c
--- /dev/null
+++ b/src/ext/Bal/wixstdfn/inc/BalBaseBAFunctions.h
@@ -0,0 +1,1018 @@
1#pragma once
2// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
3
4#include <windows.h>
5#include <msiquery.h>
6
7#include <IBAFunctions.h>
8
9class CBalBaseBAFunctions : public IBAFunctions
10{
11public: // IUnknown
12 virtual STDMETHODIMP QueryInterface(
13 __in REFIID riid,
14 __out LPVOID *ppvObject
15 )
16 {
17 if (!ppvObject)
18 {
19 return E_INVALIDARG;
20 }
21
22 *ppvObject = NULL;
23
24 if (::IsEqualIID(__uuidof(IBAFunctions), riid))
25 {
26 *ppvObject = static_cast<IBAFunctions*>(this);
27 }
28 else if (::IsEqualIID(__uuidof(IBootstrapperApplication), riid))
29 {
30 *ppvObject = static_cast<IBootstrapperApplication*>(this);
31 }
32 else if (::IsEqualIID(IID_IUnknown, riid))
33 {
34 *ppvObject = static_cast<IUnknown*>(this);
35 }
36 else // no interface for requested iid
37 {
38 return E_NOINTERFACE;
39 }
40
41 AddRef();
42 return S_OK;
43 }
44
45 virtual STDMETHODIMP_(ULONG) AddRef()
46 {
47 return ::InterlockedIncrement(&this->m_cReferences);
48 }
49
50 virtual STDMETHODIMP_(ULONG) Release()
51 {
52 long l = ::InterlockedDecrement(&this->m_cReferences);
53 if (0 < l)
54 {
55 return l;
56 }
57
58 delete this;
59 return 0;
60 }
61
62public: // IBootstrapperApplication
63 virtual STDMETHODIMP_(HRESULT) BAProc(
64 __in BOOTSTRAPPER_APPLICATION_MESSAGE /*message*/,
65 __in const LPVOID /*pvArgs*/,
66 __inout LPVOID /*pvResults*/
67 )
68 {
69 return E_NOTIMPL;
70 }
71
72 virtual STDMETHODIMP_(void) BAProcFallback(
73 __in BOOTSTRAPPER_APPLICATION_MESSAGE /*message*/,
74 __in const LPVOID /*pvArgs*/,
75 __inout LPVOID /*pvResults*/,
76 __inout HRESULT* /*phr*/
77 )
78 {
79 }
80
81 virtual STDMETHODIMP OnCreate(
82 __in IBootstrapperEngine* pEngine,
83 __in BOOTSTRAPPER_COMMAND* /*pCommand*/
84 )
85 {
86 HRESULT hr = S_OK;
87
88 pEngine->AddRef();
89 m_pEngine = pEngine;
90
91 return hr;
92 }
93
94 virtual STDMETHODIMP OnDestroy(
95 __in BOOL /*fReload*/
96 )
97 {
98 return S_OK;
99 }
100
101 virtual STDMETHODIMP OnStartup()
102 {
103 return S_OK;
104 }
105
106 virtual STDMETHODIMP OnShutdown(
107 __inout BOOTSTRAPPER_SHUTDOWN_ACTION* /*pAction*/
108 )
109 {
110 return S_OK;
111 }
112
113 virtual STDMETHODIMP OnDetectBegin(
114 __in BOOL /*fCached*/,
115 __in BOOTSTRAPPER_REGISTRATION_TYPE /*registrationType*/,
116 __in DWORD /*cPackages*/,
117 __inout BOOL* /*pfCancel*/
118 )
119 {
120 return S_OK;
121 }
122
123 virtual STDMETHODIMP OnDetectForwardCompatibleBundle(
124 __in_z LPCWSTR /*wzBundleId*/,
125 __in BOOTSTRAPPER_RELATION_TYPE /*relationType*/,
126 __in_z LPCWSTR /*wzBundleTag*/,
127 __in BOOL /*fPerMachine*/,
128 __in LPCWSTR /*wzVersion*/,
129 __in BOOL /*fMissingFromCache*/,
130 __inout BOOL* /*pfCancel*/
131 )
132 {
133 return S_OK;
134 }
135
136 virtual STDMETHODIMP OnDetectUpdateBegin(
137 __in_z LPCWSTR /*wzUpdateLocation*/,
138 __inout BOOL* /*pfCancel*/,
139 __inout BOOL* /*pfSkip*/
140 )
141 {
142 return S_OK;
143 }
144
145 virtual STDMETHODIMP OnDetectUpdate(
146 __in_z LPCWSTR /*wzUpdateLocation*/,
147 __in DWORD64 /*dw64Size*/,
148 __in_z_opt LPCWSTR /*wzHash*/,
149 __in BOOTSTRAPPER_UPDATE_HASH_TYPE /*hashAlgorithm*/,
150 __in LPCWSTR /*wzVersion*/,
151 __in_z LPCWSTR /*wzTitle*/,
152 __in_z LPCWSTR /*wzSummary*/,
153 __in_z LPCWSTR /*wzContentType*/,
154 __in_z LPCWSTR /*wzContent*/,
155 __inout BOOL* /*pfCancel*/,
156 __inout BOOL* /*pfStopProcessingUpdates*/
157 )
158 {
159 return S_OK;
160 }
161
162 virtual STDMETHODIMP OnDetectUpdateComplete(
163 __in HRESULT /*hrStatus*/,
164 __inout BOOL* /*pfIgnoreError*/
165 )
166 {
167 return S_OK;
168 }
169
170 virtual STDMETHODIMP OnDetectRelatedBundle(
171 __in_z LPCWSTR /*wzBundleId*/,
172 __in BOOTSTRAPPER_RELATION_TYPE /*relationType*/,
173 __in_z LPCWSTR /*wzBundleTag*/,
174 __in BOOL /*fPerMachine*/,
175 __in LPCWSTR /*wzVersion*/,
176 __in BOOL /*fMissingFromCache*/,
177 __inout BOOL* /*pfCancel*/
178 )
179 {
180 return S_OK;
181 }
182
183 virtual STDMETHODIMP OnDetectPackageBegin(
184 __in_z LPCWSTR /*wzPackageId*/,
185 __inout BOOL* /*pfCancel*/
186 )
187 {
188 return S_OK;
189 }
190
191 virtual STDMETHODIMP OnDetectCompatibleMsiPackage(
192 __in_z LPCWSTR /*wzPackageId*/,
193 __in_z LPCWSTR /*wzCompatiblePackageId*/,
194 __in LPCWSTR /*wzCompatiblePackageVersion*/,
195 __inout BOOL* /*pfCancel*/
196 )
197 {
198 return S_OK;
199 }
200
201 virtual STDMETHODIMP OnDetectRelatedMsiPackage(
202 __in_z LPCWSTR /*wzPackageId*/,
203 __in_z LPCWSTR /*wzUpgradeCode*/,
204 __in_z LPCWSTR /*wzProductCode*/,
205 __in BOOL /*fPerMachine*/,
206 __in LPCWSTR /*wzVersion*/,
207 __in BOOTSTRAPPER_RELATED_OPERATION /*operation*/,
208 __inout BOOL* /*pfCancel*/
209 )
210 {
211 return S_OK;
212 }
213
214 virtual STDMETHODIMP OnDetectPatchTarget(
215 __in_z LPCWSTR /*wzPackageId*/,
216 __in_z LPCWSTR /*wzProductCode*/,
217 __in BOOTSTRAPPER_PACKAGE_STATE /*patchState*/,
218 __inout BOOL* /*pfCancel*/
219 )
220 {
221 return S_OK;
222 }
223
224 virtual STDMETHODIMP OnDetectMsiFeature(
225 __in_z LPCWSTR /*wzPackageId*/,
226 __in_z LPCWSTR /*wzFeatureId*/,
227 __in BOOTSTRAPPER_FEATURE_STATE /*state*/,
228 __inout BOOL* /*pfCancel*/
229 )
230 {
231 return S_OK;
232 }
233
234 virtual STDMETHODIMP OnDetectPackageComplete(
235 __in_z LPCWSTR /*wzPackageId*/,
236 __in HRESULT /*hrStatus*/,
237 __in BOOTSTRAPPER_PACKAGE_STATE /*state*/,
238 __in BOOL /*fCached*/
239 )
240 {
241 return S_OK;
242 }
243
244 virtual STDMETHODIMP OnDetectComplete(
245 __in HRESULT /*hrStatus*/,
246 __in BOOL /*fEligibleForCleanup*/
247 )
248 {
249 return S_OK;
250 }
251
252 virtual STDMETHODIMP OnPlanBegin(
253 __in DWORD /*cPackages*/,
254 __inout BOOL* /*pfCancel*/
255 )
256 {
257 return S_OK;
258 }
259
260 virtual STDMETHODIMP OnPlanRelatedBundle(
261 __in_z LPCWSTR /*wzBundleId*/,
262 __in BOOTSTRAPPER_REQUEST_STATE /*recommendedState*/,
263 __inout BOOTSTRAPPER_REQUEST_STATE* /*pRequestedState*/,
264 __inout BOOL* /*pfCancel*/
265 )
266 {
267 return S_OK;
268 }
269
270 virtual STDMETHODIMP OnPlanRollbackBoundary(
271 __in_z LPCWSTR /*wzRollbackBoundaryId*/,
272 __in BOOL /*fRecommendedTransaction*/,
273 __inout BOOL* /*pfTransaction*/,
274 __inout BOOL* /*pfCancel*/
275 )
276 {
277 return S_OK;
278 }
279
280 virtual STDMETHODIMP OnPlanPackageBegin(
281 __in_z LPCWSTR /*wzPackageId*/,
282 __in BOOTSTRAPPER_PACKAGE_STATE /*state*/,
283 __in BOOL /*fCached*/,
284 __in BOOTSTRAPPER_PACKAGE_CONDITION_RESULT /*installCondition*/,
285 __in BOOTSTRAPPER_PACKAGE_CONDITION_RESULT /*repairCondition*/,
286 __in BOOTSTRAPPER_REQUEST_STATE /*recommendedState*/,
287 __in BOOTSTRAPPER_CACHE_TYPE /*recommendedCacheType*/,
288 __inout BOOTSTRAPPER_REQUEST_STATE* /*pRequestState*/,
289 __inout BOOTSTRAPPER_CACHE_TYPE* /*pRequestedCacheType*/,
290 __inout BOOL* /*pfCancel*/
291 )
292 {
293 return S_OK;
294 }
295
296 virtual STDMETHODIMP OnPlanCompatibleMsiPackageBegin(
297 __in_z LPCWSTR /*wzPackageId*/,
298 __in_z LPCWSTR /*wzCompatiblePackageId*/,
299 __in LPCWSTR /*wzCompatiblePackageVersion*/,
300 __in BOOL /*fRecommendedRemove*/,
301 __inout BOOL* /*pfRequestRemove*/,
302 __inout BOOL* /*pfCancel*/
303 )
304 {
305 return S_OK;
306 }
307
308 virtual STDMETHODIMP OnPlanCompatibleMsiPackageComplete(
309 __in_z LPCWSTR /*wzPackageId*/,
310 __in_z LPCWSTR /*wzCompatiblePackageId*/,
311 __in HRESULT /*hrStatus*/,
312 __in BOOL /*fRequestedRemove*/
313 )
314 {
315 return S_OK;
316 }
317
318 virtual STDMETHODIMP OnPlanPatchTarget(
319 __in_z LPCWSTR /*wzPackageId*/,
320 __in_z LPCWSTR /*wzProductCode*/,
321 __in BOOTSTRAPPER_REQUEST_STATE /*recommendedState*/,
322 __inout BOOTSTRAPPER_REQUEST_STATE* /*pRequestedState*/,
323 __inout BOOL* /*pfCancel*/
324 )
325 {
326 return S_OK;
327 }
328
329 virtual STDMETHODIMP OnPlanMsiFeature(
330 __in_z LPCWSTR /*wzPackageId*/,
331 __in_z LPCWSTR /*wzFeatureId*/,
332 __in BOOTSTRAPPER_FEATURE_STATE /*recommendedState*/,
333 __inout BOOTSTRAPPER_FEATURE_STATE* /*pRequestedState*/,
334 __inout BOOL* /*pfCancel*/
335 )
336 {
337 return S_OK;
338 }
339
340 virtual STDMETHODIMP OnPlanMsiPackage(
341 __in_z LPCWSTR /*wzPackageId*/,
342 __in BOOL /*fExecute*/,
343 __in BOOTSTRAPPER_ACTION_STATE /*action*/,
344 __in BOOTSTRAPPER_MSI_FILE_VERSIONING /*recommendedFileVersioning*/,
345 __inout BOOL* /*pfCancel*/,
346 __inout BURN_MSI_PROPERTY* /*pActionMsiProperty*/,
347 __inout INSTALLUILEVEL* /*pUiLevel*/,
348 __inout BOOL* /*pfDisableExternalUiHandler*/,
349 __inout BOOTSTRAPPER_MSI_FILE_VERSIONING* /*pFileVersioning*/
350 )
351 {
352 return S_OK;
353 }
354
355 virtual STDMETHODIMP OnPlanPackageComplete(
356 __in_z LPCWSTR /*wzPackageId*/,
357 __in HRESULT /*hrStatus*/,
358 __in BOOTSTRAPPER_REQUEST_STATE /*requested*/
359 )
360 {
361 return S_OK;
362 }
363
364 virtual STDMETHODIMP OnPlannedCompatiblePackage(
365 __in_z LPCWSTR /*wzPackageId*/,
366 __in_z LPCWSTR /*wzCompatiblePackageId*/,
367 __in BOOL /*fRemove*/
368 )
369 {
370 return S_OK;
371 }
372
373 virtual STDMETHODIMP OnPlannedPackage(
374 __in_z LPCWSTR /*wzPackageId*/,
375 __in BOOTSTRAPPER_ACTION_STATE /*execute*/,
376 __in BOOTSTRAPPER_ACTION_STATE /*rollback*/,
377 __in BOOL /*fPlannedCache*/,
378 __in BOOL /*fPlannedUncache*/
379 )
380 {
381 return S_OK;
382 }
383
384 virtual STDMETHODIMP OnPlanComplete(
385 __in HRESULT /*hrStatus*/
386 )
387 {
388 return S_OK;
389 }
390
391 virtual STDMETHODIMP OnApplyBegin(
392 __in DWORD /*dwPhaseCount*/,
393 __inout BOOL* /*pfCancel*/
394 )
395 {
396 return S_OK;
397 }
398
399 virtual STDMETHODIMP OnElevateBegin(
400 __inout BOOL* /*pfCancel*/
401 )
402 {
403 return S_OK;
404 }
405
406 virtual STDMETHODIMP OnElevateComplete(
407 __in HRESULT /*hrStatus*/
408 )
409 {
410 return S_OK;
411 }
412
413 virtual STDMETHODIMP OnProgress(
414 __in DWORD /*dwProgressPercentage*/,
415 __in DWORD /*dwOverallProgressPercentage*/,
416 __inout BOOL* /*pfCancel*/
417 )
418 {
419 return IDNOACTION;
420 }
421
422 virtual STDMETHODIMP OnError(
423 __in BOOTSTRAPPER_ERROR_TYPE /*errorType*/,
424 __in_z LPCWSTR /*wzPackageId*/,
425 __in DWORD /*dwCode*/,
426 __in_z LPCWSTR /*wzError*/,
427 __in DWORD /*dwUIHint*/,
428 __in DWORD /*cData*/,
429 __in_ecount_z_opt(cData) LPCWSTR* /*rgwzData*/,
430 __in int /*nRecommendation*/,
431 __inout int* /*pResult*/
432 )
433 {
434 return S_OK;
435 }
436
437 virtual STDMETHODIMP OnRegisterBegin(
438 __in BOOTSTRAPPER_REGISTRATION_TYPE /*recommendedRegistrationType*/,
439 __inout BOOL* /*pfCancel*/,
440 __inout BOOTSTRAPPER_REGISTRATION_TYPE* /*pRegistrationType*/
441 )
442 {
443 return S_OK;
444 }
445
446 virtual STDMETHODIMP OnRegisterComplete(
447 __in HRESULT /*hrStatus*/
448 )
449 {
450 return S_OK;
451 }
452
453 virtual STDMETHODIMP OnCacheBegin(
454 __inout BOOL* /*pfCancel*/
455 )
456 {
457 return S_OK;
458 }
459
460 virtual STDMETHODIMP OnCachePackageBegin(
461 __in_z LPCWSTR /*wzPackageId*/,
462 __in DWORD /*cCachePayloads*/,
463 __in DWORD64 /*dw64PackageCacheSize*/,
464 __in BOOL /*fVital*/,
465 __inout BOOL* /*pfCancel*/
466 )
467 {
468 return S_OK;
469 }
470
471 virtual STDMETHODIMP OnCacheAcquireBegin(
472 __in_z LPCWSTR /*wzPackageOrContainerId*/,
473 __in_z_opt LPCWSTR /*wzPayloadId*/,
474 __in_z LPCWSTR /*wzSource*/,
475 __in_z_opt LPCWSTR /*wzDownloadUrl*/,
476 __in_z_opt LPCWSTR /*wzPayloadContainerId*/,
477 __in BOOTSTRAPPER_CACHE_OPERATION /*recommendation*/,
478 __inout BOOTSTRAPPER_CACHE_OPERATION* /*pAction*/,
479 __inout BOOL* /*pfCancel*/
480 )
481 {
482 return S_OK;
483 }
484
485 virtual STDMETHODIMP OnCacheAcquireProgress(
486 __in_z LPCWSTR /*wzPackageOrContainerId*/,
487 __in_z_opt LPCWSTR /*wzPayloadId*/,
488 __in DWORD64 /*dw64Progress*/,
489 __in DWORD64 /*dw64Total*/,
490 __in DWORD /*dwOverallPercentage*/,
491 __inout BOOL* /*pfCancel*/
492 )
493 {
494 return S_OK;
495 }
496
497 virtual STDMETHODIMP OnCacheAcquireResolving(
498 __in_z_opt LPCWSTR /*wzPackageOrContainerId*/,
499 __in_z_opt LPCWSTR /*wzPayloadId*/,
500 __in_z LPCWSTR* /*rgSearchPaths*/,
501 __in DWORD /*cSearchPaths*/,
502 __in BOOL /*fFoundLocal*/,
503 __in DWORD /*dwRecommendedSearchPath*/,
504 __in_z_opt LPCWSTR /*wzDownloadUrl*/,
505 __in_z_opt LPCWSTR /*wzPayloadContainerId*/,
506 __in BOOTSTRAPPER_CACHE_RESOLVE_OPERATION /*recommendation*/,
507 __inout DWORD* /*pdwChosenSearchPath*/,
508 __inout BOOTSTRAPPER_CACHE_RESOLVE_OPERATION* /*pAction*/,
509 __inout BOOL* /*pfCancel*/
510 )
511 {
512 return S_OK;
513 }
514
515 virtual STDMETHODIMP OnCacheAcquireComplete(
516 __in_z LPCWSTR /*wzPackageOrContainerId*/,
517 __in_z_opt LPCWSTR /*wzPayloadId*/,
518 __in HRESULT /*hrStatus*/,
519 __in BOOTSTRAPPER_CACHEACQUIRECOMPLETE_ACTION /*recommendation*/,
520 __inout BOOTSTRAPPER_CACHEACQUIRECOMPLETE_ACTION* /*pAction*/
521 )
522 {
523 return S_OK;
524 }
525
526 virtual STDMETHODIMP OnCacheVerifyBegin(
527 __in_z LPCWSTR /*wzPackageOrContainerId*/,
528 __in_z LPCWSTR /*wzPayloadId*/,
529 __inout BOOL* /*pfCancel*/
530 )
531 {
532 return S_OK;
533 }
534
535 virtual STDMETHODIMP OnCacheVerifyProgress(
536 __in_z_opt LPCWSTR /*wzPackageOrContainerId*/,
537 __in_z_opt LPCWSTR /*wzPayloadId*/,
538 __in DWORD64 /*dw64Progress*/,
539 __in DWORD64 /*dw64Total*/,
540 __in DWORD /*dwOverallPercentage*/,
541 __in BOOTSTRAPPER_CACHE_VERIFY_STEP /*verifyStep*/,
542 __inout BOOL* /*pfCancel*/
543 )
544 {
545 return S_OK;
546 }
547
548 virtual STDMETHODIMP OnCacheVerifyComplete(
549 __in_z LPCWSTR /*wzPackageOrContainerId*/,
550 __in_z LPCWSTR /*wzPayloadId*/,
551 __in HRESULT /*hrStatus*/,
552 __in BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION /*recommendation*/,
553 __inout BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION* /*pAction*/
554 )
555 {
556 return S_OK;
557 }
558
559 virtual STDMETHODIMP OnCachePackageComplete(
560 __in_z LPCWSTR /*wzPackageId*/,
561 __in HRESULT /*hrStatus*/,
562 __in BOOTSTRAPPER_CACHEPACKAGECOMPLETE_ACTION /*recommendation*/,
563 __inout BOOTSTRAPPER_CACHEPACKAGECOMPLETE_ACTION* /*pAction*/
564 )
565 {
566 return S_OK;
567 }
568
569 virtual STDMETHODIMP OnCacheComplete(
570 __in HRESULT /*hrStatus*/
571 )
572 {
573 return S_OK;
574 }
575
576 virtual STDMETHODIMP OnExecuteBegin(
577 __in DWORD /*cExecutingPackages*/,
578 __inout BOOL* /*pfCancel*/
579 )
580 {
581 return S_OK;
582 }
583
584 virtual STDMETHODIMP OnExecutePackageBegin(
585 __in_z LPCWSTR /*wzPackageId*/,
586 __in BOOL /*fExecute*/,
587 __in BOOTSTRAPPER_ACTION_STATE /*action*/,
588 __in INSTALLUILEVEL /*uiLevel*/,
589 __in BOOL /*fDisableExternalUiHandler*/,
590 __inout BOOL* /*pfCancel*/
591 )
592 {
593 return S_OK;
594 }
595
596 virtual STDMETHODIMP OnExecutePatchTarget(
597 __in_z LPCWSTR /*wzPackageId*/,
598 __in_z LPCWSTR /*wzTargetProductCode*/,
599 __inout BOOL* /*pfCancel*/
600 )
601 {
602 return S_OK;
603 }
604
605 virtual STDMETHODIMP OnExecuteProgress(
606 __in_z LPCWSTR /*wzPackageId*/,
607 __in DWORD /*dwProgressPercentage*/,
608 __in DWORD /*dwOverallProgressPercentage*/,
609 __inout BOOL* /*pfCancel*/
610 )
611 {
612 return S_OK;
613 }
614
615 virtual STDMETHODIMP OnExecuteMsiMessage(
616 __in_z LPCWSTR /*wzPackageId*/,
617 __in INSTALLMESSAGE /*messageType*/,
618 __in DWORD /*dwUIHint*/,
619 __in_z LPCWSTR /*wzMessage*/,
620 __in DWORD /*cData*/,
621 __in_ecount_z_opt(cData) LPCWSTR* /*rgwzData*/,
622 __in int /*nRecommendation*/,
623 __inout int* /*pResult*/
624 )
625 {
626 return S_OK;
627 }
628
629 virtual STDMETHODIMP OnExecuteFilesInUse(
630 __in_z LPCWSTR /*wzPackageId*/,
631 __in DWORD /*cFiles*/,
632 __in_ecount_z(cFiles) LPCWSTR* /*rgwzFiles*/,
633 __in int /*nRecommendation*/,
634 __in BOOTSTRAPPER_FILES_IN_USE_TYPE /*source*/,
635 __inout int* /*pResult*/
636 )
637 {
638 return S_OK;
639 }
640
641 virtual STDMETHODIMP OnExecutePackageComplete(
642 __in_z LPCWSTR /*wzPackageId*/,
643 __in HRESULT /*hrStatus*/,
644 __in BOOTSTRAPPER_APPLY_RESTART /*restart*/,
645 __in BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION /*recommendation*/,
646 __inout BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION* /*pAction*/
647 )
648 {
649 return S_OK;
650 }
651
652 virtual STDMETHODIMP OnExecuteComplete(
653 __in HRESULT /*hrStatus*/
654 )
655 {
656 return S_OK;
657 }
658
659 virtual STDMETHODIMP OnUnregisterBegin(
660 __in BOOTSTRAPPER_REGISTRATION_TYPE /*recommendedRegistrationType*/,
661 __inout BOOTSTRAPPER_REGISTRATION_TYPE* /*pRegistrationType*/
662 )
663 {
664 return S_OK;
665 }
666
667 virtual STDMETHODIMP OnUnregisterComplete(
668 __in HRESULT /*hrStatus*/
669 )
670 {
671 return S_OK;
672 }
673
674 virtual STDMETHODIMP OnApplyComplete(
675 __in HRESULT /*hrStatus*/,
676 __in BOOTSTRAPPER_APPLY_RESTART /*restart*/,
677 __in BOOTSTRAPPER_APPLYCOMPLETE_ACTION /*recommendation*/,
678 __inout BOOTSTRAPPER_APPLYCOMPLETE_ACTION* /*pAction*/
679 )
680 {
681 return S_OK;
682 }
683
684 virtual STDMETHODIMP OnLaunchApprovedExeBegin(
685 __inout BOOL* /*pfCancel*/
686 )
687 {
688 return S_OK;
689 }
690
691 virtual STDMETHODIMP OnLaunchApprovedExeComplete(
692 __in HRESULT /*hrStatus*/,
693 __in DWORD /*dwProcessId*/
694 )
695 {
696 return S_OK;
697 }
698
699 virtual STDMETHODIMP OnBeginMsiTransactionBegin(
700 __in_z LPCWSTR /*wzTransactionId*/,
701 __inout BOOL* /*pfCancel*/
702 )
703 {
704 return S_OK;
705 }
706
707 virtual STDMETHODIMP OnBeginMsiTransactionComplete(
708 __in_z LPCWSTR /*wzTransactionId*/,
709 __in HRESULT /*hrStatus*/
710 )
711 {
712 return S_OK;
713 }
714
715 virtual STDMETHODIMP OnCommitMsiTransactionBegin(
716 __in_z LPCWSTR /*wzTransactionId*/,
717 __inout BOOL* /*pfCancel*/
718 )
719 {
720 return S_OK;
721 }
722
723 virtual STDMETHODIMP OnCommitMsiTransactionComplete(
724 __in_z LPCWSTR /*wzTransactionId*/,
725 __in HRESULT /*hrStatus*/,
726 __in BOOTSTRAPPER_APPLY_RESTART /*restart*/,
727 __in BOOTSTRAPPER_EXECUTEMSITRANSACTIONCOMPLETE_ACTION /*recommendation*/,
728 __inout BOOTSTRAPPER_EXECUTEMSITRANSACTIONCOMPLETE_ACTION* /*pAction*/
729 )
730 {
731 return S_OK;
732 }
733
734 virtual STDMETHODIMP OnRollbackMsiTransactionBegin(
735 __in_z LPCWSTR /*wzTransactionId*/
736 )
737 {
738 return S_OK;
739 }
740
741 virtual STDMETHODIMP OnRollbackMsiTransactionComplete(
742 __in_z LPCWSTR /*wzTransactionId*/,
743 __in HRESULT /*hrStatus*/,
744 __in BOOTSTRAPPER_APPLY_RESTART /*restart*/,
745 __in BOOTSTRAPPER_EXECUTEMSITRANSACTIONCOMPLETE_ACTION /*recommendation*/,
746 __inout BOOTSTRAPPER_EXECUTEMSITRANSACTIONCOMPLETE_ACTION* /*pAction*/
747 )
748 {
749 return S_OK;
750 }
751
752 virtual STDMETHODIMP OnPauseAutomaticUpdatesBegin(
753 )
754 {
755 return S_OK;
756 }
757
758 virtual STDMETHODIMP OnPauseAutomaticUpdatesComplete(
759 __in HRESULT /*hrStatus*/
760 )
761 {
762 return S_OK;
763 }
764
765 virtual STDMETHODIMP OnSystemRestorePointBegin(
766 )
767 {
768 return S_OK;
769 }
770
771 virtual STDMETHODIMP OnSystemRestorePointComplete(
772 __in HRESULT /*hrStatus*/
773 )
774 {
775 return S_OK;
776 }
777
778 virtual STDMETHODIMP OnPlanForwardCompatibleBundle(
779 __in_z LPCWSTR /*wzBundleId*/,
780 __in BOOTSTRAPPER_RELATION_TYPE /*relationType*/,
781 __in_z LPCWSTR /*wzBundleTag*/,
782 __in BOOL /*fPerMachine*/,
783 __in LPCWSTR /*wzVersion*/,
784 __in BOOL /*fRecommendedIgnoreBundle*/,
785 __inout BOOL* /*pfCancel*/,
786 __inout BOOL* /*pfIgnoreBundle*/
787 )
788 {
789 return S_OK;
790 }
791
792 virtual STDMETHODIMP OnCacheContainerOrPayloadVerifyBegin(
793 __in_z_opt LPCWSTR /*wzPackageOrContainerId*/,
794 __in_z_opt LPCWSTR /*wzPayloadId*/,
795 __inout BOOL* /*pfCancel*/
796 )
797 {
798 return S_OK;
799 }
800
801 virtual STDMETHODIMP OnCacheContainerOrPayloadVerifyProgress(
802 __in_z_opt LPCWSTR /*wzPackageOrContainerId*/,
803 __in_z_opt LPCWSTR /*wzPayloadId*/,
804 __in DWORD64 /*dw64Progress*/,
805 __in DWORD64 /*dw64Total*/,
806 __in DWORD /*dwOverallPercentage*/,
807 __inout BOOL* /*pfCancel*/
808 )
809 {
810 return S_OK;
811 }
812
813 virtual STDMETHODIMP OnCacheContainerOrPayloadVerifyComplete(
814 __in_z_opt LPCWSTR /*wzPackageOrContainerId*/,
815 __in_z_opt LPCWSTR /*wzPayloadId*/,
816 __in HRESULT /*hrStatus*/
817 )
818 {
819 return S_OK;
820 }
821
822 virtual STDMETHODIMP OnCachePayloadExtractBegin(
823 __in_z_opt LPCWSTR /*wzPackageOrContainerId*/,
824 __in_z_opt LPCWSTR /*wzPayloadId*/,
825 __inout BOOL* /*pfCancel*/
826 )
827 {
828 return S_OK;
829 }
830
831 virtual STDMETHODIMP OnCachePayloadExtractProgress(
832 __in_z_opt LPCWSTR /*wzPackageOrContainerId*/,
833 __in_z_opt LPCWSTR /*wzPayloadId*/,
834 __in DWORD64 /*dw64Progress*/,
835 __in DWORD64 /*dw64Total*/,
836 __in DWORD /*dwOverallPercentage*/,
837 __inout BOOL* /*pfCancel*/
838 )
839 {
840 return S_OK;
841 }
842
843 virtual STDMETHODIMP OnCachePayloadExtractComplete(
844 __in_z_opt LPCWSTR /*wzPackageOrContainerId*/,
845 __in_z_opt LPCWSTR /*wzPayloadId*/,
846 __in HRESULT /*hrStatus*/
847 )
848 {
849 return S_OK;
850 }
851
852 virtual STDMETHODIMP OnPlanRestoreRelatedBundle(
853 __in_z LPCWSTR /*wzBundleId*/,
854 __in BOOTSTRAPPER_REQUEST_STATE /*recommendedState*/,
855 __inout BOOTSTRAPPER_REQUEST_STATE* /*pRequestedState*/,
856 __inout BOOL* /*pfCancel*/
857 )
858 {
859 return S_OK;
860 }
861
862 virtual STDMETHODIMP OnPlanRelatedBundleType(
863 __in_z LPCWSTR /*wzBundleId*/,
864 __in BOOTSTRAPPER_RELATED_BUNDLE_PLAN_TYPE /*recommendedType*/,
865 __inout BOOTSTRAPPER_RELATED_BUNDLE_PLAN_TYPE* /*pRequestedType*/,
866 __inout BOOL* /*pfCancel*/
867 )
868 {
869 return S_OK;
870 }
871
872 virtual STDMETHODIMP OnApplyDowngrade(
873 __in HRESULT /*hrRecommended*/,
874 __in HRESULT* /*phrStatus*/
875 )
876 {
877 return S_OK;
878 }
879
880 virtual STDMETHODIMP OnExecuteProcessCancel(
881 __in_z LPCWSTR /*wzPackageId*/,
882 __in DWORD /*dwProcessId*/,
883 __in BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION /*recommendation*/,
884 __inout BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION* /*pAction*/
885 )
886 {
887 return S_OK;
888 }
889
890 virtual STDMETHODIMP OnDetectRelatedBundlePackage(
891 __in_z LPCWSTR /*wzPackageId*/,
892 __in_z LPCWSTR /*wzBundleId*/,
893 __in BOOTSTRAPPER_RELATION_TYPE /*relationType*/,
894 __in BOOL /*fPerMachine*/,
895 __in LPCWSTR /*wzVersion*/,
896 __inout BOOL* /*pfCancel*/
897 )
898 {
899 return S_OK;
900 }
901
902 virtual STDMETHODIMP OnCachePackageNonVitalValidationFailure(
903 __in_z LPCWSTR /*wzPackageId*/,
904 __in HRESULT /*hrStatus*/,
905 __in BOOTSTRAPPER_CACHEPACKAGENONVITALVALIDATIONFAILURE_ACTION /*recommendation*/,
906 __inout BOOTSTRAPPER_CACHEPACKAGENONVITALVALIDATIONFAILURE_ACTION* /*pAction*/
907 )
908 {
909 return S_OK;
910 }
911
912public: // IBAFunctions
913 virtual STDMETHODIMP OnPlan(
914 )
915 {
916 return S_OK;
917 }
918
919 virtual STDMETHODIMP OnThemeLoaded(
920 __in HWND hWnd
921 )
922 {
923 HRESULT hr = S_OK;
924
925 m_hwndParent = hWnd;
926
927 return hr;
928 }
929
930 virtual STDMETHODIMP WndProc(
931 __in HWND /*hWnd*/,
932 __in UINT /*uMsg*/,
933 __in WPARAM /*wParam*/,
934 __in LPARAM /*lParam*/,
935 __inout BOOL* /*pfProcessed*/,
936 __inout LRESULT* /*plResult*/
937 )
938 {
939 return S_OK;
940 }
941
942 virtual STDMETHODIMP BAFunctionsProc(
943 __in BA_FUNCTIONS_MESSAGE /*message*/,
944 __in const LPVOID /*pvArgs*/,
945 __inout LPVOID /*pvResults*/,
946 __in_opt LPVOID /*pvContext*/
947 )
948 {
949 return E_NOTIMPL;
950 }
951
952 virtual STDMETHODIMP OnThemeControlLoading(
953 __in LPCWSTR /*wzName*/,
954 __inout BOOL* /*pfProcessed*/,
955 __inout WORD* /*pwId*/,
956 __inout DWORD* /*pdwAutomaticBehaviorType*/
957 )
958 {
959 return S_OK;
960 }
961
962 virtual STDMETHODIMP OnThemeControlWmCommand(
963 __in WPARAM /*wParam*/,
964 __in LPCWSTR /*wzName*/,
965 __in WORD /*wId*/,
966 __in HWND /*hWnd*/,
967 __inout BOOL* /*pfProcessed*/,
968 __inout LRESULT* /*plResult*/
969 )
970 {
971 return S_OK;
972 }
973
974 virtual STDMETHODIMP OnThemeControlWmNotify(
975 __in LPNMHDR /*lParam*/,
976 __in LPCWSTR /*wzName*/,
977 __in WORD /*wId*/,
978 __in HWND /*hWnd*/,
979 __inout BOOL* /*pfProcessed*/,
980 __inout LRESULT* /*plResult*/
981 )
982 {
983 return S_OK;
984 }
985
986 virtual STDMETHODIMP OnThemeControlLoaded(
987 __in LPCWSTR /*wzName*/,
988 __in WORD /*wId*/,
989 __in HWND /*hWnd*/,
990 __inout BOOL* /*pfProcessed*/
991 )
992 {
993 return S_OK;
994 }
995
996protected:
997 CBalBaseBAFunctions(HMODULE hModule)
998 {
999 m_cReferences = 1;
1000 m_hModule = hModule;
1001
1002 m_hwndParent = NULL;
1003 m_pEngine = NULL;
1004 }
1005
1006 virtual ~CBalBaseBAFunctions()
1007 {
1008 ReleaseNullObject(m_pEngine);
1009 }
1010
1011private:
1012 long m_cReferences;
1013
1014protected:
1015 IBootstrapperEngine* m_pEngine;
1016 HMODULE m_hModule;
1017 HWND m_hwndParent;
1018};
diff --git a/src/ext/Bal/wixstdfn/inc/BalBaseBAFunctionsProc.h b/src/ext/Bal/wixstdfn/inc/BalBaseBAFunctionsProc.h
new file mode 100644
index 00000000..65eeb0b4
--- /dev/null
+++ b/src/ext/Bal/wixstdfn/inc/BalBaseBAFunctionsProc.h
@@ -0,0 +1,15 @@
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/*******************************************************************
5BalBaseBAFunctionsProc - requires pvContext to be of type IBAFunctions.
6Provides a default mapping between the message based BAFunctions interface and
7the COM-based BAFunctions interface.
8
9*******************************************************************/
10HRESULT WINAPI BalBaseBAFunctionsProc(
11 __in BA_FUNCTIONS_MESSAGE message,
12 __in const LPVOID pvArgs,
13 __inout LPVOID pvResults,
14 __in_opt LPVOID pvContext
15 );
diff --git a/src/ext/Bal/wixstdfn/inc/IBAFunctions.h b/src/ext/Bal/wixstdfn/inc/IBAFunctions.h
new file mode 100644
index 00000000..f54ae339
--- /dev/null
+++ b/src/ext/Bal/wixstdfn/inc/IBAFunctions.h
@@ -0,0 +1,75 @@
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 <IBootstrapperApplication.h>
6#include <BAFunctions.h>
7
8DECLARE_INTERFACE_IID_(IBAFunctions, IBootstrapperApplication, "0FB445ED-17BD-49C7-BE19-479776F8AE96")
9{
10 // OnThemeLoaded - Called after the BA finished loading all the controls for the theme.
11 //
12 STDMETHOD(OnThemeLoaded)(
13 __in HWND hWnd
14 ) = 0;
15
16 // WndProc - Called if the BA hasn't handled the message.
17 //
18 STDMETHOD(WndProc)(
19 __in HWND hWnd,
20 __in UINT uMsg,
21 __in WPARAM wParam,
22 __in LPARAM lParam,
23 __inout BOOL* pfProcessed,
24 __inout LRESULT* plResult
25 ) = 0;
26
27 // BAFunctionsProc - The PFN_BA_FUNCTIONS_PROC can call this method to give the BAFunctions raw access to the callback from WixStdBA.
28 // This might be used to help the BAFunctions support more than one version of the engine/WixStdBA.
29 STDMETHOD(BAFunctionsProc)(
30 __in BA_FUNCTIONS_MESSAGE message,
31 __in const LPVOID pvArgs,
32 __inout LPVOID pvResults,
33 __in_opt LPVOID pvContext
34 ) = 0;
35
36 // OnThemeControlLoading - Called while creating a control for the theme.
37 //
38 STDMETHOD(OnThemeControlLoading)(
39 __in LPCWSTR wzName,
40 __inout BOOL* pfProcessed,
41 __inout WORD* pwId,
42 __inout DWORD* pdwAutomaticBehaviorType
43 ) = 0;
44
45 // OnThemeControlWmCommand - Called when WM_COMMAND is received for a control.
46 //
47 STDMETHOD(OnThemeControlWmCommand)(
48 __in WPARAM wParam,
49 __in LPCWSTR wzName,
50 __in WORD wId,
51 __in HWND hWnd,
52 __inout BOOL* pfProcessed,
53 __inout LRESULT* plResult
54 ) = 0;
55
56 // OnThemeControlWmNotify - Called when WM_NOTIFY is received for a control.
57 //
58 STDMETHOD(OnThemeControlWmNotify)(
59 __in LPNMHDR lParam,
60 __in LPCWSTR wzName,
61 __in WORD wId,
62 __in HWND hWnd,
63 __inout BOOL* pfProcessed,
64 __inout LRESULT* plResult
65 ) = 0;
66
67 // OnThemeControlLoaded - Called after a control was created for the theme.
68 //
69 STDMETHOD(OnThemeControlLoaded)(
70 __in LPCWSTR wzName,
71 __in WORD wId,
72 __in HWND hWnd,
73 __inout BOOL* pfProcessed
74 ) = 0;
75};