aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Mba.Core/BootstrapperApplication.cs
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2021-04-19 17:35:44 -0500
committerSean Hall <r.sean.hall@gmail.com>2021-04-19 23:23:39 -0500
commit11fe2c881d182f9caff28bd9ff08c2e4fe513989 (patch)
treea2f1769b78e9b1eb4708678fe6b5374eec209c6a /src/WixToolset.Mba.Core/BootstrapperApplication.cs
parent62b32cd6f21292c73dae8d5cfcd3a1cb13a1fd7d (diff)
downloadwix-11fe2c881d182f9caff28bd9ff08c2e4fe513989.tar.gz
wix-11fe2c881d182f9caff28bd9ff08c2e4fe513989.tar.bz2
wix-11fe2c881d182f9caff28bd9ff08c2e4fe513989.zip
Add new caching BA events.
#3640
Diffstat (limited to 'src/WixToolset.Mba.Core/BootstrapperApplication.cs')
-rw-r--r--src/WixToolset.Mba.Core/BootstrapperApplication.cs195
1 files changed, 184 insertions, 11 deletions
diff --git a/src/WixToolset.Mba.Core/BootstrapperApplication.cs b/src/WixToolset.Mba.Core/BootstrapperApplication.cs
index 79cbfa86..0a8f3af8 100644
--- a/src/WixToolset.Mba.Core/BootstrapperApplication.cs
+++ b/src/WixToolset.Mba.Core/BootstrapperApplication.cs
@@ -155,6 +155,9 @@ namespace WixToolset.Mba.Core
155 public event EventHandler<CacheVerifyBeginEventArgs> CacheVerifyBegin; 155 public event EventHandler<CacheVerifyBeginEventArgs> CacheVerifyBegin;
156 156
157 /// <inheritdoc/> 157 /// <inheritdoc/>
158 public event EventHandler<CacheVerifyProgressEventArgs> CacheVerifyProgress;
159
160 /// <inheritdoc/>
158 public event EventHandler<CacheVerifyCompleteEventArgs> CacheVerifyComplete; 161 public event EventHandler<CacheVerifyCompleteEventArgs> CacheVerifyComplete;
159 162
160 /// <inheritdoc/> 163 /// <inheritdoc/>
@@ -229,6 +232,24 @@ namespace WixToolset.Mba.Core
229 /// <inheritdoc/> 232 /// <inheritdoc/>
230 public event EventHandler<PlanForwardCompatibleBundleEventArgs> PlanForwardCompatibleBundle; 233 public event EventHandler<PlanForwardCompatibleBundleEventArgs> PlanForwardCompatibleBundle;
231 234
235 /// <inheritdoc/>
236 public event EventHandler<CacheContainerOrPayloadVerifyBeginEventArgs> CacheContainerOrPayloadVerifyBegin;
237
238 /// <inheritdoc/>
239 public event EventHandler<CacheContainerOrPayloadVerifyProgressEventArgs> CacheContainerOrPayloadVerifyProgress;
240
241 /// <inheritdoc/>
242 public event EventHandler<CacheContainerOrPayloadVerifyCompleteEventArgs> CacheContainerOrPayloadVerifyComplete;
243
244 /// <inheritdoc/>
245 public event EventHandler<CachePayloadExtractBeginEventArgs> CachePayloadExtractBegin;
246
247 /// <inheritdoc/>
248 public event EventHandler<CachePayloadExtractProgressEventArgs> CachePayloadExtractProgress;
249
250 /// <inheritdoc/>
251 public event EventHandler<CachePayloadExtractCompleteEventArgs> CachePayloadExtractComplete;
252
232 /// <summary> 253 /// <summary>
233 /// Entry point that is called when the bootstrapper application is ready to run. 254 /// Entry point that is called when the bootstrapper application is ready to run.
234 /// </summary> 255 /// </summary>
@@ -775,6 +796,19 @@ namespace WixToolset.Mba.Core
775 } 796 }
776 797
777 /// <summary> 798 /// <summary>
799 /// Called by the engine, raises the <see cref="CacheVerifyProgress"/> event.
800 /// </summary>
801 /// <param name="args"></param>
802 protected virtual void OnCacheVerifyProgress(CacheVerifyProgressEventArgs args)
803 {
804 EventHandler<CacheVerifyProgressEventArgs> handler = this.CacheVerifyProgress;
805 if (null != handler)
806 {
807 handler(this, args);
808 }
809 }
810
811 /// <summary>
778 /// Called by the engine, raises the <see cref="CacheVerifyComplete"/> event. 812 /// Called by the engine, raises the <see cref="CacheVerifyComplete"/> event.
779 /// </summary> 813 /// </summary>
780 /// <param name="args"></param> 814 /// <param name="args"></param>
@@ -1098,8 +1132,99 @@ namespace WixToolset.Mba.Core
1098 } 1132 }
1099 } 1133 }
1100 1134
1135 /// <summary>
1136 /// Called by the engine, raises the <see cref="CacheContainerOrPayloadVerifyBegin"/> event.
1137 /// </summary>
1138 /// <param name="args"></param>
1139 protected virtual void OnCacheContainerOrPayloadVerifyBegin(CacheContainerOrPayloadVerifyBeginEventArgs args)
1140 {
1141 EventHandler<CacheContainerOrPayloadVerifyBeginEventArgs> handler = this.CacheContainerOrPayloadVerifyBegin;
1142 if (null != handler)
1143 {
1144 handler(this, args);
1145 }
1146 }
1147
1148 /// <summary>
1149 /// Called by the engine, raises the <see cref="CacheContainerOrPayloadVerifyProgress"/> event.
1150 /// </summary>
1151 /// <param name="args"></param>
1152 protected virtual void OnCacheContainerOrPayloadVerifyProgress(CacheContainerOrPayloadVerifyProgressEventArgs args)
1153 {
1154 EventHandler<CacheContainerOrPayloadVerifyProgressEventArgs> handler = this.CacheContainerOrPayloadVerifyProgress;
1155 if (null != handler)
1156 {
1157 handler(this, args);
1158 }
1159 }
1160
1161 /// <summary>
1162 /// Called by the engine, raises the <see cref="CacheContainerOrPayloadVerifyComplete"/> event.
1163 /// </summary>
1164 /// <param name="args"></param>
1165 protected virtual void OnCacheContainerOrPayloadVerifyComplete(CacheContainerOrPayloadVerifyCompleteEventArgs args)
1166 {
1167 EventHandler<CacheContainerOrPayloadVerifyCompleteEventArgs> handler = this.CacheContainerOrPayloadVerifyComplete;
1168 if (null != handler)
1169 {
1170 handler(this, args);
1171 }
1172 }
1173
1174 /// <summary>
1175 /// Called by the engine, raises the <see cref="CachePayloadExtractBegin"/> event.
1176 /// </summary>
1177 /// <param name="args"></param>
1178 protected virtual void OnCachePayloadExtractBegin(CachePayloadExtractBeginEventArgs args)
1179 {
1180 EventHandler<CachePayloadExtractBeginEventArgs> handler = this.CachePayloadExtractBegin;
1181 if (null != handler)
1182 {
1183 handler(this, args);
1184 }
1185 }
1186
1187 /// <summary>
1188 /// Called by the engine, raises the <see cref="CachePayloadExtractProgress"/> event.
1189 /// </summary>
1190 /// <param name="args"></param>
1191 protected virtual void OnCachePayloadExtractProgress(CachePayloadExtractProgressEventArgs args)
1192 {
1193 EventHandler<CachePayloadExtractProgressEventArgs> handler = this.CachePayloadExtractProgress;
1194 if (null != handler)
1195 {
1196 handler(this, args);
1197 }
1198 }
1199
1200 /// <summary>
1201 /// Called by the engine, raises the <see cref="CachePayloadExtractComplete"/> event.
1202 /// </summary>
1203 /// <param name="args"></param>
1204 protected virtual void OnCachePayloadExtractComplete(CachePayloadExtractCompleteEventArgs args)
1205 {
1206 EventHandler<CachePayloadExtractCompleteEventArgs> handler = this.CachePayloadExtractComplete;
1207 if (null != handler)
1208 {
1209 handler(this, args);
1210 }
1211 }
1212
1101 #region IBootstrapperApplication Members 1213 #region IBootstrapperApplication Members
1102 1214
1215 int IBootstrapperApplication.BAProc(int message, IntPtr pvArgs, IntPtr pvResults, IntPtr pvContext)
1216 {
1217 switch (message)
1218 {
1219 default:
1220 return NativeMethods.E_NOTIMPL;
1221 }
1222 }
1223
1224 void IBootstrapperApplication.BAProcFallback(int message, IntPtr pvArgs, IntPtr pvResults, ref int phr, IntPtr pvContext)
1225 {
1226 }
1227
1103 int IBootstrapperApplication.OnStartup() 1228 int IBootstrapperApplication.OnStartup()
1104 { 1229 {
1105 StartupEventArgs args = new StartupEventArgs(); 1230 StartupEventArgs args = new StartupEventArgs();
@@ -1439,18 +1564,27 @@ namespace WixToolset.Mba.Core
1439 return args.HResult; 1564 return args.HResult;
1440 } 1565 }
1441 1566
1442 int IBootstrapperApplication.OnCacheVerifyBegin(string wzPackageId, string wzPayloadId, ref bool fCancel) 1567 int IBootstrapperApplication.OnCacheVerifyBegin(string wzPackageOrContainerId, string wzPayloadId, ref bool fCancel)
1443 { 1568 {
1444 CacheVerifyBeginEventArgs args = new CacheVerifyBeginEventArgs(wzPackageId, wzPayloadId, fCancel); 1569 CacheVerifyBeginEventArgs args = new CacheVerifyBeginEventArgs(wzPackageOrContainerId, wzPayloadId, fCancel);
1445 this.OnCacheVerifyBegin(args); 1570 this.OnCacheVerifyBegin(args);
1446 1571
1447 fCancel = args.Cancel; 1572 fCancel = args.Cancel;
1448 return args.HResult; 1573 return args.HResult;
1449 } 1574 }
1450 1575
1451 int IBootstrapperApplication.OnCacheVerifyComplete(string wzPackageId, string wzPayloadId, int hrStatus, BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION recommendation, ref BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION action) 1576 int IBootstrapperApplication.OnCacheVerifyProgress(string wzPackageOrContainerId, string wzPayloadId, long dw64Progress, long dw64Total, int dwOverallPercentage, CacheVerifyStep verifyStep, ref bool fCancel)
1577 {
1578 CacheVerifyProgressEventArgs args = new CacheVerifyProgressEventArgs(wzPackageOrContainerId, wzPayloadId, dw64Progress, dw64Total, dwOverallPercentage, verifyStep, fCancel);
1579 this.OnCacheVerifyProgress(args);
1580
1581 fCancel = args.Cancel;
1582 return args.HResult;
1583 }
1584
1585 int IBootstrapperApplication.OnCacheVerifyComplete(string wzPackageOrContainerId, string wzPayloadId, int hrStatus, BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION recommendation, ref BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION action)
1452 { 1586 {
1453 CacheVerifyCompleteEventArgs args = new CacheVerifyCompleteEventArgs(wzPackageId, wzPayloadId, hrStatus, recommendation, action); 1587 CacheVerifyCompleteEventArgs args = new CacheVerifyCompleteEventArgs(wzPackageOrContainerId, wzPayloadId, hrStatus, recommendation, action);
1454 this.OnCacheVerifyComplete(args); 1588 this.OnCacheVerifyComplete(args);
1455 1589
1456 action = args.Action; 1590 action = args.Action;
@@ -1682,17 +1816,56 @@ namespace WixToolset.Mba.Core
1682 return args.HResult; 1816 return args.HResult;
1683 } 1817 }
1684 1818
1685 int IBootstrapperApplication.BAProc(int message, IntPtr pvArgs, IntPtr pvResults, IntPtr pvContext) 1819 int IBootstrapperApplication.OnCacheContainerOrPayloadVerifyBegin(string wzPackageOrContainerId, string wzPayloadId, ref bool fCancel)
1686 { 1820 {
1687 switch (message) 1821 CacheContainerOrPayloadVerifyBeginEventArgs args = new CacheContainerOrPayloadVerifyBeginEventArgs(wzPackageOrContainerId, wzPayloadId, fCancel);
1688 { 1822 this.OnCacheContainerOrPayloadVerifyBegin(args);
1689 default: 1823
1690 return NativeMethods.E_NOTIMPL; 1824 fCancel = args.Cancel;
1691 } 1825 return args.HResult;
1692 } 1826 }
1693 1827
1694 void IBootstrapperApplication.BAProcFallback(int message, IntPtr pvArgs, IntPtr pvResults, ref int phr, IntPtr pvContext) 1828 int IBootstrapperApplication.OnCacheContainerOrPayloadVerifyProgress(string wzPackageOrContainerId, string wzPayloadId, long dw64Progress, long dw64Total, int dwOverallPercentage, ref bool fCancel)
1829 {
1830 CacheContainerOrPayloadVerifyProgressEventArgs args = new CacheContainerOrPayloadVerifyProgressEventArgs(wzPackageOrContainerId, wzPayloadId, dw64Progress, dw64Total, dwOverallPercentage, fCancel);
1831 this.OnCacheContainerOrPayloadVerifyProgress(args);
1832
1833 fCancel = args.Cancel;
1834 return args.HResult;
1835 }
1836
1837 int IBootstrapperApplication.OnCacheContainerOrPayloadVerifyComplete(string wzPackageOrContainerId, string wzPayloadId, int hrStatus)
1838 {
1839 CacheContainerOrPayloadVerifyCompleteEventArgs args = new CacheContainerOrPayloadVerifyCompleteEventArgs(wzPackageOrContainerId, wzPayloadId, hrStatus);
1840 this.OnCacheContainerOrPayloadVerifyComplete(args);
1841
1842 return args.HResult;
1843 }
1844
1845 int IBootstrapperApplication.OnCachePayloadExtractBegin(string wzContainerId, string wzPayloadId, ref bool fCancel)
1846 {
1847 CachePayloadExtractBeginEventArgs args = new CachePayloadExtractBeginEventArgs(wzContainerId, wzPayloadId, fCancel);
1848 this.OnCachePayloadExtractBegin(args);
1849
1850 fCancel = args.Cancel;
1851 return args.HResult;
1852 }
1853
1854 int IBootstrapperApplication.OnCachePayloadExtractProgress(string wzContainerId, string wzPayloadId, long dw64Progress, long dw64Total, int dwOverallPercentage, ref bool fCancel)
1695 { 1855 {
1856 CachePayloadExtractProgressEventArgs args = new CachePayloadExtractProgressEventArgs(wzContainerId, wzPayloadId, dw64Progress, dw64Total, dwOverallPercentage, fCancel);
1857 this.OnCachePayloadExtractProgress(args);
1858
1859 fCancel = args.Cancel;
1860 return args.HResult;
1861 }
1862
1863 int IBootstrapperApplication.OnCachePayloadExtractComplete(string wzContainerId, string wzPayloadId, int hrStatus)
1864 {
1865 CachePayloadExtractCompleteEventArgs args = new CachePayloadExtractCompleteEventArgs(wzContainerId, wzPayloadId, hrStatus);
1866 this.OnCachePayloadExtractComplete(args);
1867
1868 return args.HResult;
1696 } 1869 }
1697 1870
1698 #endregion 1871 #endregion