diff options
| author | Sean Hall <r.sean.hall@gmail.com> | 2021-04-19 17:35:44 -0500 |
|---|---|---|
| committer | Sean Hall <r.sean.hall@gmail.com> | 2021-04-19 23:23:39 -0500 |
| commit | 11fe2c881d182f9caff28bd9ff08c2e4fe513989 (patch) | |
| tree | a2f1769b78e9b1eb4708678fe6b5374eec209c6a /src/WixToolset.Mba.Core/BootstrapperApplication.cs | |
| parent | 62b32cd6f21292c73dae8d5cfcd3a1cb13a1fd7d (diff) | |
| download | wix-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.cs | 195 |
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 |
