aboutsummaryrefslogtreecommitdiff
path: root/src/api
diff options
context:
space:
mode:
authorNir Bar <nir.bar@panel-sw.co.il>2021-08-11 15:37:34 -0500
committerSean Hall <r.sean.hall@gmail.com>2021-08-12 14:50:55 -0500
commit0042e3d4554a0d92e1da6141854b0f1aafa07d5b (patch)
tree7dcd25456993d6a9d68b9afd21fd1d1f77bd2a5e /src/api
parentc6b138ed166e30c750e499919b858dc6913937b6 (diff)
downloadwix-0042e3d4554a0d92e1da6141854b0f1aafa07d5b.tar.gz
wix-0042e3d4554a0d92e1da6141854b0f1aafa07d5b.tar.bz2
wix-0042e3d4554a0d92e1da6141854b0f1aafa07d5b.zip
Allow BA to opt out of MSI transaction.
Diffstat (limited to 'src/api')
-rw-r--r--src/api/burn/WixToolset.BootstrapperCore.Native/inc/BootstrapperApplication.h15
-rw-r--r--src/api/burn/WixToolset.Mba.Core/BootstrapperApplication.cs25
-rw-r--r--src/api/burn/WixToolset.Mba.Core/EventArgs.cs33
-rw-r--r--src/api/burn/WixToolset.Mba.Core/IBootstrapperApplication.cs12
-rw-r--r--src/api/burn/WixToolset.Mba.Core/IDefaultBootstrapperApplication.cs5
-rw-r--r--src/api/burn/balutil/inc/BAFunctions.h1
-rw-r--r--src/api/burn/balutil/inc/BalBaseBAFunctions.h10
-rw-r--r--src/api/burn/balutil/inc/BalBaseBAFunctionsProc.h8
-rw-r--r--src/api/burn/balutil/inc/BalBaseBootstrapperApplication.h11
-rw-r--r--src/api/burn/balutil/inc/BalBaseBootstrapperApplicationProc.h12
-rw-r--r--src/api/burn/balutil/inc/IBootstrapperApplication.h8
11 files changed, 140 insertions, 0 deletions
diff --git a/src/api/burn/WixToolset.BootstrapperCore.Native/inc/BootstrapperApplication.h b/src/api/burn/WixToolset.BootstrapperCore.Native/inc/BootstrapperApplication.h
index 8301d45f..b7dc17c2 100644
--- a/src/api/burn/WixToolset.BootstrapperCore.Native/inc/BootstrapperApplication.h
+++ b/src/api/burn/WixToolset.BootstrapperCore.Native/inc/BootstrapperApplication.h
@@ -189,6 +189,7 @@ enum BOOTSTRAPPER_APPLICATION_MESSAGE
189 BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTBEGIN, 189 BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTBEGIN,
190 BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTCOMPLETE, 190 BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTCOMPLETE,
191 BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTPROGRESS, 191 BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTPROGRESS,
192 BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANROLLBACKBOUNDARY,
192}; 193};
193 194
194enum BOOTSTRAPPER_APPLYCOMPLETE_ACTION 195enum BOOTSTRAPPER_APPLYCOMPLETE_ACTION
@@ -1129,6 +1130,20 @@ struct BA_ONPLANRELATEDBUNDLE_RESULTS
1129 BOOTSTRAPPER_REQUEST_STATE requestedState; 1130 BOOTSTRAPPER_REQUEST_STATE requestedState;
1130}; 1131};
1131 1132
1133struct BA_ONPLANROLLBACKBOUNDARY_ARGS
1134{
1135 DWORD cbSize;
1136 LPCWSTR wzRollbackBoundaryId;
1137 BOOL fRecommendedTransaction;
1138};
1139
1140struct BA_ONPLANROLLBACKBOUNDARY_RESULTS
1141{
1142 DWORD cbSize;
1143 BOOL fTransaction;
1144 BOOL fCancel;
1145};
1146
1132struct BA_ONPLANPATCHTARGET_ARGS 1147struct BA_ONPLANPATCHTARGET_ARGS
1133{ 1148{
1134 DWORD cbSize; 1149 DWORD cbSize;
diff --git a/src/api/burn/WixToolset.Mba.Core/BootstrapperApplication.cs b/src/api/burn/WixToolset.Mba.Core/BootstrapperApplication.cs
index d7dbf04c..b6fdca1e 100644
--- a/src/api/burn/WixToolset.Mba.Core/BootstrapperApplication.cs
+++ b/src/api/burn/WixToolset.Mba.Core/BootstrapperApplication.cs
@@ -86,6 +86,9 @@ namespace WixToolset.Mba.Core
86 public event EventHandler<PlanRelatedBundleEventArgs> PlanRelatedBundle; 86 public event EventHandler<PlanRelatedBundleEventArgs> PlanRelatedBundle;
87 87
88 /// <inheritdoc/> 88 /// <inheritdoc/>
89 public event EventHandler<PlanRollbackBoundaryEventArgs> PlanRollbackBoundary;
90
91 /// <inheritdoc/>
89 public event EventHandler<PlanPackageBeginEventArgs> PlanPackageBegin; 92 public event EventHandler<PlanPackageBeginEventArgs> PlanPackageBegin;
90 93
91 /// <inheritdoc/> 94 /// <inheritdoc/>
@@ -497,6 +500,18 @@ namespace WixToolset.Mba.Core
497 } 500 }
498 501
499 /// <summary> 502 /// <summary>
503 /// Called by the engine, raises the <see cref="PlanRollbackBoundary"/> event.
504 /// </summary>
505 protected virtual void OnPlanRollbackBoundary(PlanRollbackBoundaryEventArgs args)
506 {
507 EventHandler<PlanRollbackBoundaryEventArgs> handler = this.PlanRollbackBoundary;
508 if (null != handler)
509 {
510 handler(this, args);
511 }
512 }
513
514 /// <summary>
500 /// Called by the engine, raises the <see cref="PlanPackageBegin"/> event. 515 /// Called by the engine, raises the <see cref="PlanPackageBegin"/> event.
501 /// </summary> 516 /// </summary>
502 /// <param name="args">Additional arguments for this event.</param> 517 /// <param name="args">Additional arguments for this event.</param>
@@ -1378,6 +1393,16 @@ namespace WixToolset.Mba.Core
1378 return args.HResult; 1393 return args.HResult;
1379 } 1394 }
1380 1395
1396 int IBootstrapperApplication.OnPlanRollbackBoundary(string wzRollbackBoundaryId, bool fRecommendedTransaction, ref bool fTransaction, ref bool fCancel)
1397 {
1398 PlanRollbackBoundaryEventArgs args = new PlanRollbackBoundaryEventArgs(wzRollbackBoundaryId, fRecommendedTransaction, fTransaction, fCancel);
1399 this.OnPlanRollbackBoundary(args);
1400
1401 fTransaction = args.Transaction;
1402 fCancel = args.Cancel;
1403 return args.HResult;
1404 }
1405
1381 int IBootstrapperApplication.OnPlanPackageBegin(string wzPackageId, PackageState state, bool fCached, BOOTSTRAPPER_PACKAGE_CONDITION_RESULT installCondition, RequestState recommendedState, BOOTSTRAPPER_CACHE_TYPE recommendedCacheType, ref RequestState pRequestedState, ref BOOTSTRAPPER_CACHE_TYPE pRequestedCacheType, ref bool fCancel) 1406 int IBootstrapperApplication.OnPlanPackageBegin(string wzPackageId, PackageState state, bool fCached, BOOTSTRAPPER_PACKAGE_CONDITION_RESULT installCondition, RequestState recommendedState, BOOTSTRAPPER_CACHE_TYPE recommendedCacheType, ref RequestState pRequestedState, ref BOOTSTRAPPER_CACHE_TYPE pRequestedCacheType, ref bool fCancel)
1382 { 1407 {
1383 PlanPackageBeginEventArgs args = new PlanPackageBeginEventArgs(wzPackageId, state, fCached, installCondition, recommendedState, recommendedCacheType, pRequestedState, pRequestedCacheType, fCancel); 1408 PlanPackageBeginEventArgs args = new PlanPackageBeginEventArgs(wzPackageId, state, fCached, installCondition, recommendedState, recommendedCacheType, pRequestedState, pRequestedCacheType, fCancel);
diff --git a/src/api/burn/WixToolset.Mba.Core/EventArgs.cs b/src/api/burn/WixToolset.Mba.Core/EventArgs.cs
index 00d90c83..04e7b579 100644
--- a/src/api/burn/WixToolset.Mba.Core/EventArgs.cs
+++ b/src/api/burn/WixToolset.Mba.Core/EventArgs.cs
@@ -782,6 +782,39 @@ namespace WixToolset.Mba.Core
782 } 782 }
783 783
784 /// <summary> 784 /// <summary>
785 /// Event arguments for <see cref="IDefaultBootstrapperApplication.PlanRollbackBoundary"/>
786 /// </summary>
787 [Serializable]
788 public class PlanRollbackBoundaryEventArgs : CancellableHResultEventArgs
789 {
790 /// <summary />
791 public PlanRollbackBoundaryEventArgs(string rollbackBoundaryId, bool recommendedTransaction, bool transaction, bool cancelRecommendation)
792 : base(cancelRecommendation)
793 {
794 this.RollbackBoundaryId = rollbackBoundaryId;
795 this.RecommendedTransaction = recommendedTransaction;
796 this.Transaction = transaction;
797 }
798
799 /// <summary>
800 /// Gets the identity of the rollback boundary to plan for.
801 /// </summary>
802 public string RollbackBoundaryId { get; private set; }
803
804 /// <summary>
805 /// Whether or not the rollback boundary was authored to use an MSI transaction.
806 /// </summary>
807 public bool RecommendedTransaction { get; private set; }
808
809 /// <summary>
810 /// Whether or not an MSI transaction will be used in the rollback boundary.
811 /// If <see cref="RecommendedTransaction"/> is false, setting the value to true has no effect.
812 /// If <see cref="RecommendedTransaction"/> is true, setting the value to false will cause the packages inside this rollback boundary to be executed without a wrapping MSI transaction.
813 /// </summary>
814 public bool Transaction { get; set; }
815 }
816
817 /// <summary>
785 /// Event arguments for <see cref="IDefaultBootstrapperApplication.PlanPatchTarget"/> 818 /// Event arguments for <see cref="IDefaultBootstrapperApplication.PlanPatchTarget"/>
786 /// </summary> 819 /// </summary>
787 [Serializable] 820 [Serializable]
diff --git a/src/api/burn/WixToolset.Mba.Core/IBootstrapperApplication.cs b/src/api/burn/WixToolset.Mba.Core/IBootstrapperApplication.cs
index e6e03906..07c1a23b 100644
--- a/src/api/burn/WixToolset.Mba.Core/IBootstrapperApplication.cs
+++ b/src/api/burn/WixToolset.Mba.Core/IBootstrapperApplication.cs
@@ -304,6 +304,18 @@ namespace WixToolset.Mba.Core
304 ); 304 );
305 305
306 /// <summary> 306 /// <summary>
307 /// See <see cref="IDefaultBootstrapperApplication.PlanRollbackBoundary"/>.
308 /// </summary>
309 [PreserveSig]
310 [return: MarshalAs(UnmanagedType.I4)]
311 int OnPlanRollbackBoundary(
312 [MarshalAs(UnmanagedType.LPWStr)] string wzRollbackBoundaryId,
313 [MarshalAs(UnmanagedType.Bool)] bool fRecommendedTransaction,
314 [MarshalAs(UnmanagedType.Bool)] ref bool fTransaction,
315 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
316 );
317
318 /// <summary>
307 /// See <see cref="IDefaultBootstrapperApplication.PlanPackageBegin"/>. 319 /// See <see cref="IDefaultBootstrapperApplication.PlanPackageBegin"/>.
308 /// </summary> 320 /// </summary>
309 [PreserveSig] 321 [PreserveSig]
diff --git a/src/api/burn/WixToolset.Mba.Core/IDefaultBootstrapperApplication.cs b/src/api/burn/WixToolset.Mba.Core/IDefaultBootstrapperApplication.cs
index a295f6c0..20ce9f88 100644
--- a/src/api/burn/WixToolset.Mba.Core/IDefaultBootstrapperApplication.cs
+++ b/src/api/burn/WixToolset.Mba.Core/IDefaultBootstrapperApplication.cs
@@ -314,6 +314,11 @@ namespace WixToolset.Mba.Core
314 event EventHandler<PlanRelatedBundleEventArgs> PlanRelatedBundle; 314 event EventHandler<PlanRelatedBundleEventArgs> PlanRelatedBundle;
315 315
316 /// <summary> 316 /// <summary>
317 /// Fired when the engine is planning a rollback boundary.
318 /// </summary>
319 event EventHandler<PlanRollbackBoundaryEventArgs> PlanRollbackBoundary;
320
321 /// <summary>
317 /// Fired when the engine has changed progress for the bundle installation. 322 /// Fired when the engine has changed progress for the bundle installation.
318 /// </summary> 323 /// </summary>
319 event EventHandler<ProgressEventArgs> Progress; 324 event EventHandler<ProgressEventArgs> Progress;
diff --git a/src/api/burn/balutil/inc/BAFunctions.h b/src/api/burn/balutil/inc/BAFunctions.h
index 2970478f..43786701 100644
--- a/src/api/burn/balutil/inc/BAFunctions.h
+++ b/src/api/burn/balutil/inc/BAFunctions.h
@@ -81,6 +81,7 @@ enum BA_FUNCTIONS_MESSAGE
81 BA_FUNCTIONS_MESSAGE_ONCACHEPAYLOADEXTRACTBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTBEGIN, 81 BA_FUNCTIONS_MESSAGE_ONCACHEPAYLOADEXTRACTBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTBEGIN,
82 BA_FUNCTIONS_MESSAGE_ONCACHEPAYLOADEXTRACTCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTCOMPLETE, 82 BA_FUNCTIONS_MESSAGE_ONCACHEPAYLOADEXTRACTCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTCOMPLETE,
83 BA_FUNCTIONS_MESSAGE_ONCACHEPAYLOADEXTRACTPROGRESS = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTPROGRESS, 83 BA_FUNCTIONS_MESSAGE_ONCACHEPAYLOADEXTRACTPROGRESS = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTPROGRESS,
84 BA_FUNCTIONS_MESSAGE_ONPLANROLLBACKBOUNDARY = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANROLLBACKBOUNDARY,
84 85
85 BA_FUNCTIONS_MESSAGE_ONTHEMELOADED = 1024, 86 BA_FUNCTIONS_MESSAGE_ONTHEMELOADED = 1024,
86 BA_FUNCTIONS_MESSAGE_WNDPROC, 87 BA_FUNCTIONS_MESSAGE_WNDPROC,
diff --git a/src/api/burn/balutil/inc/BalBaseBAFunctions.h b/src/api/burn/balutil/inc/BalBaseBAFunctions.h
index c5771efc..a3054709 100644
--- a/src/api/burn/balutil/inc/BalBaseBAFunctions.h
+++ b/src/api/burn/balutil/inc/BalBaseBAFunctions.h
@@ -255,6 +255,16 @@ public: // IBootstrapperApplication
255 return S_OK; 255 return S_OK;
256 } 256 }
257 257
258 virtual STDMETHODIMP OnPlanRollbackBoundary(
259 __in_z LPCWSTR /*wzRollbackBoundaryId*/,
260 __in BOOL /*fRecommendedTransaction*/,
261 __inout BOOL* /*pfTransaction*/,
262 __inout BOOL* /*pfCancel*/
263 )
264 {
265 return S_OK;
266 }
267
258 virtual STDMETHODIMP OnPlanPackageBegin( 268 virtual STDMETHODIMP OnPlanPackageBegin(
259 __in_z LPCWSTR /*wzPackageId*/, 269 __in_z LPCWSTR /*wzPackageId*/,
260 __in BOOTSTRAPPER_PACKAGE_STATE /*state*/, 270 __in BOOTSTRAPPER_PACKAGE_STATE /*state*/,
diff --git a/src/api/burn/balutil/inc/BalBaseBAFunctionsProc.h b/src/api/burn/balutil/inc/BalBaseBAFunctionsProc.h
index 7e89fe83..8d1227fc 100644
--- a/src/api/burn/balutil/inc/BalBaseBAFunctionsProc.h
+++ b/src/api/burn/balutil/inc/BalBaseBAFunctionsProc.h
@@ -109,6 +109,14 @@ static HRESULT WINAPI BalBaseBAFunctionsProc(
109 case BA_FUNCTIONS_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE: 109 case BA_FUNCTIONS_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE:
110 case BA_FUNCTIONS_MESSAGE_ONPLANNEDPACKAGE: 110 case BA_FUNCTIONS_MESSAGE_ONPLANNEDPACKAGE:
111 case BA_FUNCTIONS_MESSAGE_ONPLANFORWARDCOMPATIBLEBUNDLE: 111 case BA_FUNCTIONS_MESSAGE_ONPLANFORWARDCOMPATIBLEBUNDLE:
112 case BA_FUNCTIONS_MESSAGE_ONCACHEVERIFYPROGRESS:
113 case BA_FUNCTIONS_MESSAGE_ONCACHECONTAINERORPAYLOADVERIFYBEGIN:
114 case BA_FUNCTIONS_MESSAGE_ONCACHECONTAINERORPAYLOADVERIFYCOMPLETE:
115 case BA_FUNCTIONS_MESSAGE_ONCACHECONTAINERORPAYLOADVERIFYPROGRESS:
116 case BA_FUNCTIONS_MESSAGE_ONCACHEPAYLOADEXTRACTBEGIN:
117 case BA_FUNCTIONS_MESSAGE_ONCACHEPAYLOADEXTRACTCOMPLETE:
118 case BA_FUNCTIONS_MESSAGE_ONCACHEPAYLOADEXTRACTPROGRESS:
119 case BA_FUNCTIONS_MESSAGE_ONPLANROLLBACKBOUNDARY:
112 hr = BalBaseBootstrapperApplicationProc((BOOTSTRAPPER_APPLICATION_MESSAGE)message, pvArgs, pvResults, pvContext); 120 hr = BalBaseBootstrapperApplicationProc((BOOTSTRAPPER_APPLICATION_MESSAGE)message, pvArgs, pvResults, pvContext);
113 break; 121 break;
114 case BA_FUNCTIONS_MESSAGE_ONTHEMELOADED: 122 case BA_FUNCTIONS_MESSAGE_ONTHEMELOADED:
diff --git a/src/api/burn/balutil/inc/BalBaseBootstrapperApplication.h b/src/api/burn/balutil/inc/BalBaseBootstrapperApplication.h
index 53fa369b..4c07ba89 100644
--- a/src/api/burn/balutil/inc/BalBaseBootstrapperApplication.h
+++ b/src/api/burn/balutil/inc/BalBaseBootstrapperApplication.h
@@ -264,6 +264,17 @@ public: // IBootstrapperApplication
264 return S_OK; 264 return S_OK;
265 } 265 }
266 266
267 virtual STDMETHODIMP OnPlanRollbackBoundary(
268 __in_z LPCWSTR /*wzRollbackBoundaryId*/,
269 __in BOOL /*fRecommendedTransaction*/,
270 __inout BOOL* /*pfTransaction*/,
271 __inout BOOL* pfCancel
272 )
273 {
274 *pfCancel |= CheckCanceled();
275 return S_OK;
276 }
277
267 virtual STDMETHODIMP OnPlanPackageBegin( 278 virtual STDMETHODIMP OnPlanPackageBegin(
268 __in_z LPCWSTR /*wzPackageId*/, 279 __in_z LPCWSTR /*wzPackageId*/,
269 __in BOOTSTRAPPER_PACKAGE_STATE /*state*/, 280 __in BOOTSTRAPPER_PACKAGE_STATE /*state*/,
diff --git a/src/api/burn/balutil/inc/BalBaseBootstrapperApplicationProc.h b/src/api/burn/balutil/inc/BalBaseBootstrapperApplicationProc.h
index 69031d62..d536729f 100644
--- a/src/api/burn/balutil/inc/BalBaseBootstrapperApplicationProc.h
+++ b/src/api/burn/balutil/inc/BalBaseBootstrapperApplicationProc.h
@@ -171,6 +171,15 @@ static HRESULT BalBaseBAProcOnPlanRelatedBundle(
171 return pBA->OnPlanRelatedBundle(pArgs->wzBundleId, pArgs->recommendedState, &pResults->requestedState, &pResults->fCancel); 171 return pBA->OnPlanRelatedBundle(pArgs->wzBundleId, pArgs->recommendedState, &pResults->requestedState, &pResults->fCancel);
172} 172}
173 173
174static HRESULT BalBaseBAProcOnPlanRollbackBoundary(
175 __in IBootstrapperApplication* pBA,
176 __in BA_ONPLANROLLBACKBOUNDARY_ARGS* pArgs,
177 __inout BA_ONPLANROLLBACKBOUNDARY_RESULTS* pResults
178 )
179{
180 return pBA->OnPlanRollbackBoundary(pArgs->wzRollbackBoundaryId, pArgs->fRecommendedTransaction, &pResults->fTransaction, &pResults->fCancel);
181}
182
174static HRESULT BalBaseBAProcOnPlanPackageBegin( 183static HRESULT BalBaseBAProcOnPlanPackageBegin(
175 __in IBootstrapperApplication* pBA, 184 __in IBootstrapperApplication* pBA,
176 __in BA_ONPLANPACKAGEBEGIN_ARGS* pArgs, 185 __in BA_ONPLANPACKAGEBEGIN_ARGS* pArgs,
@@ -892,6 +901,9 @@ static HRESULT WINAPI BalBaseBootstrapperApplicationProc(
892 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTCOMPLETE: 901 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTCOMPLETE:
893 hr = BalBaseBAProcOnCachePayloadExtractComplete(pBA, reinterpret_cast<BA_ONCACHEPAYLOADEXTRACTCOMPLETE_ARGS*>(pvArgs), reinterpret_cast<BA_ONCACHEPAYLOADEXTRACTCOMPLETE_RESULTS*>(pvResults)); 902 hr = BalBaseBAProcOnCachePayloadExtractComplete(pBA, reinterpret_cast<BA_ONCACHEPAYLOADEXTRACTCOMPLETE_ARGS*>(pvArgs), reinterpret_cast<BA_ONCACHEPAYLOADEXTRACTCOMPLETE_RESULTS*>(pvResults));
894 break; 903 break;
904 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANROLLBACKBOUNDARY:
905 hr = BalBaseBAProcOnPlanRollbackBoundary(pBA, reinterpret_cast<BA_ONPLANROLLBACKBOUNDARY_ARGS*>(pvArgs), reinterpret_cast<BA_ONPLANROLLBACKBOUNDARY_RESULTS*>(pvResults));
906 break;
895 } 907 }
896 } 908 }
897 909
diff --git a/src/api/burn/balutil/inc/IBootstrapperApplication.h b/src/api/burn/balutil/inc/IBootstrapperApplication.h
index 98b88f44..51f58ec7 100644
--- a/src/api/burn/balutil/inc/IBootstrapperApplication.h
+++ b/src/api/burn/balutil/inc/IBootstrapperApplication.h
@@ -160,6 +160,14 @@ DECLARE_INTERFACE_IID_(IBootstrapperApplication, IUnknown, "53C31D56-49C0-426B-A
160 __inout BOOL* pfCancel 160 __inout BOOL* pfCancel
161 ) = 0; 161 ) = 0;
162 162
163 // OnPlanRollbackBoundary - called when the engine is planning a rollback boundary.
164 STDMETHOD(OnPlanRollbackBoundary)(
165 __in_z LPCWSTR wzRollbackBoundaryId,
166 __in BOOL fRecommendedTransaction,
167 __inout BOOL* pfTransaction,
168 __inout BOOL* pfCancel
169 ) = 0;
170
163 // OnPlanPackageBegin - called when the engine has begun getting the BA's input 171 // OnPlanPackageBegin - called when the engine has begun getting the BA's input
164 // for planning a package. 172 // for planning a package.
165 STDMETHOD(OnPlanPackageBegin)( 173 STDMETHOD(OnPlanPackageBegin)(