aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2020-12-02 22:38:23 -0600
committerSean Hall <r.sean.hall@gmail.com>2020-12-03 10:58:32 -0600
commitca5d60d267051b4b75e22763ad8eda06f0501451 (patch)
treeba125ede0d1e756b8afbddeb4dc75d7ffa82b59c
parentfa97c540035df80723a60e870f90bbeeab02bb3b (diff)
downloadwix-ca5d60d267051b4b75e22763ad8eda06f0501451.tar.gz
wix-ca5d60d267051b4b75e22763ad8eda06f0501451.tar.bz2
wix-ca5d60d267051b4b75e22763ad8eda06f0501451.zip
WIXFEAT:4626,5386 - Add more BA events.
OnBeginMsiTransactionBegin, OnBeginMsiTransactionComplete, OnCommitMsiTransactionBegin, OnCommitMsiTransactionComplete, OnRollbackMsiTransactionBegin, OnRollbackMsiTransactionComplete, OnPauseAutomaticUpdatesBegin, OnPauseAutomaticUpdatesComplete, OnSystemRestorePointBegin, OnSystemRestorePointComplete
-rw-r--r--src/WixToolset.Mba.Core/BootstrapperApplication.cs278
-rw-r--r--src/WixToolset.Mba.Core/EventArgs.cs191
-rw-r--r--src/WixToolset.Mba.Core/IBootstrapperApplication.cs64
-rw-r--r--src/WixToolset.Mba.Core/IDefaultBootstrapperApplication.cs15
-rw-r--r--src/balutil/balutil.vcxproj8
-rw-r--r--src/balutil/inc/BAFunctions.h10
-rw-r--r--src/balutil/inc/BalBaseBAFunctions.h73
-rw-r--r--src/balutil/inc/BalBaseBAFunctionsProc.h10
-rw-r--r--src/balutil/inc/BalBaseBootstrapperApplication.h75
-rw-r--r--src/balutil/inc/BalBaseBootstrapperApplicationProc.h119
-rw-r--r--src/balutil/inc/IBootstrapperApplication.h43
-rw-r--r--src/balutil/packages.config4
-rw-r--r--src/bextutil/bextutil.vcxproj8
-rw-r--r--src/bextutil/packages.config4
-rw-r--r--src/mbanative/mbanative.vcxproj8
-rw-r--r--src/mbanative/packages.config4
-rw-r--r--src/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj8
-rw-r--r--src/test/BalUtilUnitTest/packages.config4
-rw-r--r--src/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj8
-rw-r--r--src/test/BextUtilUnitTest/packages.config4
20 files changed, 893 insertions, 45 deletions
diff --git a/src/WixToolset.Mba.Core/BootstrapperApplication.cs b/src/WixToolset.Mba.Core/BootstrapperApplication.cs
index 472c553a..2d527427 100644
--- a/src/WixToolset.Mba.Core/BootstrapperApplication.cs
+++ b/src/WixToolset.Mba.Core/BootstrapperApplication.cs
@@ -320,12 +320,62 @@ namespace WixToolset.Mba.Core
320 /// <summary> 320 /// <summary>
321 /// Fired when the engine is about to launch the preapproved executable. 321 /// Fired when the engine is about to launch the preapproved executable.
322 /// </summary> 322 /// </summary>
323 public event EventHandler<LaunchApprovedExeBeginArgs> LaunchApprovedExeBegin; 323 public event EventHandler<LaunchApprovedExeBeginEventArgs> LaunchApprovedExeBegin;
324 324
325 /// <summary> 325 /// <summary>
326 /// Fired when the engine has completed launching the preapproved executable. 326 /// Fired when the engine has completed launching the preapproved executable.
327 /// </summary> 327 /// </summary>
328 public event EventHandler<LaunchApprovedExeCompleteArgs> LaunchApprovedExeComplete; 328 public event EventHandler<LaunchApprovedExeCompleteEventArgs> LaunchApprovedExeComplete;
329
330 /// <summary>
331 /// Fired when the engine is about to begin an MSI transaction.
332 /// </summary>
333 public event EventHandler<BeginMsiTransactionBeginEventArgs> BeginMsiTransactionBegin;
334
335 /// <summary>
336 /// Fired when the engine has completed beginning an MSI transaction.
337 /// </summary>
338 public event EventHandler<BeginMsiTransactionCompleteEventArgs> BeginMsiTransactionComplete;
339
340 /// <summary>
341 /// Fired when the engine is about to commit an MSI transaction.
342 /// </summary>
343 public event EventHandler<CommitMsiTransactionBeginEventArgs> CommitMsiTransactionBegin;
344
345 /// <summary>
346 /// Fired when the engine has completed comitting an MSI transaction.
347 /// </summary>
348 public event EventHandler<CommitMsiTransactionCompleteEventArgs> CommitMsiTransactionComplete;
349
350 /// <summary>
351 /// Fired when the engine is about to rollback an MSI transaction.
352 /// </summary>
353 public event EventHandler<RollbackMsiTransactionBeginEventArgs> RollbackMsiTransactionBegin;
354
355 /// <summary>
356 /// Fired when the engine has completed rolling back an MSI transaction.
357 /// </summary>
358 public event EventHandler<RollbackMsiTransactionCompleteEventArgs> RollbackMsiTransactionComplete;
359
360 /// <summary>
361 /// Fired when the engine is about to pause Windows automatic updates.
362 /// </summary>
363 public event EventHandler<PauseAutomaticUpdatesBeginEventArgs> PauseAutomaticUpdatesBegin;
364
365 /// <summary>
366 /// Fired when the engine has completed pausing Windows automatic updates.
367 /// </summary>
368 public event EventHandler<PauseAutomaticUpdatesCompleteEventArgs> PauseAutomaticUpdatesComplete;
369
370 /// <summary>
371 /// Fired when the engine is about to take a system restore point.
372 /// </summary>
373 public event EventHandler<SystemRestorePointBeginEventArgs> SystemRestorePointBegin;
374
375 /// <summary>
376 /// Fired when the engine has completed taking a system restore point.
377 /// </summary>
378 public event EventHandler<SystemRestorePointCompleteEventArgs> SystemRestorePointComplete;
329 379
330 /// <summary> 380 /// <summary>
331 /// Entry point that is called when the bootstrapper application is ready to run. 381 /// Entry point that is called when the bootstrapper application is ready to run.
@@ -1071,9 +1121,9 @@ namespace WixToolset.Mba.Core
1071 /// Called by the engine before trying to launch the preapproved executable. 1121 /// Called by the engine before trying to launch the preapproved executable.
1072 /// </summary> 1122 /// </summary>
1073 /// <param name="args">Additional arguments for this event.</param> 1123 /// <param name="args">Additional arguments for this event.</param>
1074 protected virtual void OnLaunchApprovedExeBegin(LaunchApprovedExeBeginArgs args) 1124 protected virtual void OnLaunchApprovedExeBegin(LaunchApprovedExeBeginEventArgs args)
1075 { 1125 {
1076 EventHandler<LaunchApprovedExeBeginArgs> handler = this.LaunchApprovedExeBegin; 1126 EventHandler<LaunchApprovedExeBeginEventArgs> handler = this.LaunchApprovedExeBegin;
1077 if (null != handler) 1127 if (null != handler)
1078 { 1128 {
1079 handler(this, args); 1129 handler(this, args);
@@ -1084,9 +1134,139 @@ namespace WixToolset.Mba.Core
1084 /// Called by the engine after trying to launch the preapproved executable. 1134 /// Called by the engine after trying to launch the preapproved executable.
1085 /// </summary> 1135 /// </summary>
1086 /// <param name="args">Additional arguments for this event.</param> 1136 /// <param name="args">Additional arguments for this event.</param>
1087 protected virtual void OnLaunchApprovedExeComplete(LaunchApprovedExeCompleteArgs args) 1137 protected virtual void OnLaunchApprovedExeComplete(LaunchApprovedExeCompleteEventArgs args)
1138 {
1139 EventHandler<LaunchApprovedExeCompleteEventArgs> handler = this.LaunchApprovedExeComplete;
1140 if (null != handler)
1141 {
1142 handler(this, args);
1143 }
1144 }
1145
1146 /// <summary>
1147 /// Called by the engine before beginning an MSI transaction.
1148 /// </summary>
1149 /// <param name="args">Additional arguments for this event.</param>
1150 protected virtual void OnBeginMsiTransactionBegin(BeginMsiTransactionBeginEventArgs args)
1151 {
1152 EventHandler<BeginMsiTransactionBeginEventArgs> handler = this.BeginMsiTransactionBegin;
1153 if (null != handler)
1154 {
1155 handler(this, args);
1156 }
1157 }
1158
1159 /// <summary>
1160 /// Called by the engine after beginning an MSI transaction.
1161 /// </summary>
1162 /// <param name="args">Additional arguments for this event.</param>
1163 protected virtual void OnBeginMsiTransactionComplete(BeginMsiTransactionCompleteEventArgs args)
1164 {
1165 EventHandler<BeginMsiTransactionCompleteEventArgs> handler = this.BeginMsiTransactionComplete;
1166 if (null != handler)
1167 {
1168 handler(this, args);
1169 }
1170 }
1171
1172 /// <summary>
1173 /// Called by the engine before committing an MSI transaction.
1174 /// </summary>
1175 /// <param name="args">Additional arguments for this event.</param>
1176 protected virtual void OnCommitMsiTransactionBegin(CommitMsiTransactionBeginEventArgs args)
1177 {
1178 EventHandler<CommitMsiTransactionBeginEventArgs> handler = this.CommitMsiTransactionBegin;
1179 if (null != handler)
1180 {
1181 handler(this, args);
1182 }
1183 }
1184
1185 /// <summary>
1186 /// Called by the engine after committing an MSI transaction.
1187 /// </summary>
1188 /// <param name="args">Additional arguments for this event.</param>
1189 protected virtual void OnCommitMsiTransactionComplete(CommitMsiTransactionCompleteEventArgs args)
1190 {
1191 EventHandler<CommitMsiTransactionCompleteEventArgs> handler = this.CommitMsiTransactionComplete;
1192 if (null != handler)
1193 {
1194 handler(this, args);
1195 }
1196 }
1197
1198 /// <summary>
1199 /// Called by the engine before rolling back an MSI transaction.
1200 /// </summary>
1201 /// <param name="args">Additional arguments for this event.</param>
1202 protected virtual void OnRollbackMsiTransactionBegin(RollbackMsiTransactionBeginEventArgs args)
1203 {
1204 EventHandler<RollbackMsiTransactionBeginEventArgs> handler = this.RollbackMsiTransactionBegin;
1205 if (null != handler)
1206 {
1207 handler(this, args);
1208 }
1209 }
1210
1211 /// <summary>
1212 /// Called by the engine after rolling back an MSI transaction.
1213 /// </summary>
1214 /// <param name="args">Additional arguments for this event.</param>
1215 protected virtual void OnRollbackMsiTransactionComplete(RollbackMsiTransactionCompleteEventArgs args)
1216 {
1217 EventHandler<RollbackMsiTransactionCompleteEventArgs> handler = this.RollbackMsiTransactionComplete;
1218 if (null != handler)
1219 {
1220 handler(this, args);
1221 }
1222 }
1223
1224 /// <summary>
1225 /// Called by the engine before pausing Windows automatic updates.
1226 /// </summary>
1227 /// <param name="args">Additional arguments for this event.</param>
1228 protected virtual void OnPauseAutomaticUpdatesBegin(PauseAutomaticUpdatesBeginEventArgs args)
1229 {
1230 EventHandler<PauseAutomaticUpdatesBeginEventArgs> handler = this.PauseAutomaticUpdatesBegin;
1231 if (null != handler)
1232 {
1233 handler(this, args);
1234 }
1235 }
1236
1237 /// <summary>
1238 /// Called by the engine after pausing Windows automatic updates.
1239 /// </summary>
1240 /// <param name="args">Additional arguments for this event.</param>
1241 protected virtual void OnPauseAutomaticUpdatesComplete(PauseAutomaticUpdatesCompleteEventArgs args)
1242 {
1243 EventHandler<PauseAutomaticUpdatesCompleteEventArgs> handler = this.PauseAutomaticUpdatesComplete;
1244 if (null != handler)
1245 {
1246 handler(this, args);
1247 }
1248 }
1249
1250 /// <summary>
1251 /// Called by the engine before taking a system restore point.
1252 /// </summary>
1253 /// <param name="args">Additional arguments for this event.</param>
1254 protected virtual void OnSystemRestorePointBegin(SystemRestorePointBeginEventArgs args)
1088 { 1255 {
1089 EventHandler<LaunchApprovedExeCompleteArgs> handler = this.LaunchApprovedExeComplete; 1256 EventHandler<SystemRestorePointBeginEventArgs> handler = this.SystemRestorePointBegin;
1257 if (null != handler)
1258 {
1259 handler(this, args);
1260 }
1261 }
1262
1263 /// <summary>
1264 /// Called by the engine after taking a system restore point.
1265 /// </summary>
1266 /// <param name="args">Additional arguments for this event.</param>
1267 protected virtual void OnSystemRestorePointComplete(SystemRestorePointCompleteEventArgs args)
1268 {
1269 EventHandler<SystemRestorePointCompleteEventArgs> handler = this.SystemRestorePointComplete;
1090 if (null != handler) 1270 if (null != handler)
1091 { 1271 {
1092 handler(this, args); 1272 handler(this, args);
@@ -1588,7 +1768,7 @@ namespace WixToolset.Mba.Core
1588 1768
1589 int IBootstrapperApplication.OnLaunchApprovedExeBegin(ref bool fCancel) 1769 int IBootstrapperApplication.OnLaunchApprovedExeBegin(ref bool fCancel)
1590 { 1770 {
1591 LaunchApprovedExeBeginArgs args = new LaunchApprovedExeBeginArgs(fCancel); 1771 LaunchApprovedExeBeginEventArgs args = new LaunchApprovedExeBeginEventArgs(fCancel);
1592 this.OnLaunchApprovedExeBegin(args); 1772 this.OnLaunchApprovedExeBegin(args);
1593 1773
1594 fCancel = args.Cancel; 1774 fCancel = args.Cancel;
@@ -1597,12 +1777,94 @@ namespace WixToolset.Mba.Core
1597 1777
1598 int IBootstrapperApplication.OnLaunchApprovedExeComplete(int hrStatus, int processId) 1778 int IBootstrapperApplication.OnLaunchApprovedExeComplete(int hrStatus, int processId)
1599 { 1779 {
1600 LaunchApprovedExeCompleteArgs args = new LaunchApprovedExeCompleteArgs(hrStatus, processId); 1780 LaunchApprovedExeCompleteEventArgs args = new LaunchApprovedExeCompleteEventArgs(hrStatus, processId);
1601 this.OnLaunchApprovedExeComplete(args); 1781 this.OnLaunchApprovedExeComplete(args);
1602 1782
1603 return args.HResult; 1783 return args.HResult;
1604 } 1784 }
1605 1785
1786 int IBootstrapperApplication.OnBeginMsiTransactionBegin(string transactionId, ref bool fCancel)
1787 {
1788 BeginMsiTransactionBeginEventArgs args = new BeginMsiTransactionBeginEventArgs(transactionId, fCancel);
1789 this.OnBeginMsiTransactionBegin(args);
1790
1791 fCancel = args.Cancel;
1792 return args.HResult;
1793 }
1794
1795 int IBootstrapperApplication.OnBeginMsiTransactionComplete(string transactionId, int hrStatus)
1796 {
1797 BeginMsiTransactionCompleteEventArgs args = new BeginMsiTransactionCompleteEventArgs(transactionId, hrStatus);
1798 this.OnBeginMsiTransactionComplete(args);
1799
1800 return args.HResult;
1801 }
1802
1803 int IBootstrapperApplication.OnCommitMsiTransactionBegin(string transactionId, ref bool fCancel)
1804 {
1805 CommitMsiTransactionBeginEventArgs args = new CommitMsiTransactionBeginEventArgs(transactionId, fCancel);
1806 this.OnCommitMsiTransactionBegin(args);
1807
1808 fCancel = args.Cancel;
1809 return args.HResult;
1810 }
1811
1812 int IBootstrapperApplication.OnCommitMsiTransactionComplete(string transactionId, int hrStatus)
1813 {
1814 CommitMsiTransactionCompleteEventArgs args = new CommitMsiTransactionCompleteEventArgs(transactionId, hrStatus);
1815 this.OnCommitMsiTransactionComplete(args);
1816
1817 return args.HResult;
1818 }
1819
1820 int IBootstrapperApplication.OnRollbackMsiTransactionBegin(string transactionId)
1821 {
1822 RollbackMsiTransactionBeginEventArgs args = new RollbackMsiTransactionBeginEventArgs(transactionId);
1823 this.OnRollbackMsiTransactionBegin(args);
1824
1825 return args.HResult;
1826 }
1827
1828 int IBootstrapperApplication.OnRollbackMsiTransactionComplete(string transactionId, int hrStatus)
1829 {
1830 RollbackMsiTransactionCompleteEventArgs args = new RollbackMsiTransactionCompleteEventArgs(transactionId, hrStatus);
1831 this.OnRollbackMsiTransactionComplete(args);
1832
1833 return args.HResult;
1834 }
1835
1836 int IBootstrapperApplication.OnPauseAutomaticUpdatesBegin()
1837 {
1838 PauseAutomaticUpdatesBeginEventArgs args = new PauseAutomaticUpdatesBeginEventArgs();
1839 this.OnPauseAutomaticUpdatesBegin(args);
1840
1841 return args.HResult;
1842 }
1843
1844 int IBootstrapperApplication.OnPauseAutomaticUpdatesComplete(int hrStatus)
1845 {
1846 PauseAutomaticUpdatesCompleteEventArgs args = new PauseAutomaticUpdatesCompleteEventArgs(hrStatus);
1847 this.OnPauseAutomaticUpdatesComplete(args);
1848
1849 return args.HResult;
1850 }
1851
1852 int IBootstrapperApplication.OnSystemRestorePointBegin()
1853 {
1854 SystemRestorePointBeginEventArgs args = new SystemRestorePointBeginEventArgs();
1855 this.OnSystemRestorePointBegin(args);
1856
1857 return args.HResult;
1858 }
1859
1860 int IBootstrapperApplication.OnSystemRestorePointComplete(int hrStatus)
1861 {
1862 SystemRestorePointCompleteEventArgs args = new SystemRestorePointCompleteEventArgs(hrStatus);
1863 this.OnSystemRestorePointComplete(args);
1864
1865 return args.HResult;
1866 }
1867
1606 int IBootstrapperApplication.BAProc(int message, IntPtr pvArgs, IntPtr pvResults, IntPtr pvContext) 1868 int IBootstrapperApplication.BAProc(int message, IntPtr pvArgs, IntPtr pvResults, IntPtr pvContext)
1607 { 1869 {
1608 switch (message) 1870 switch (message)
diff --git a/src/WixToolset.Mba.Core/EventArgs.cs b/src/WixToolset.Mba.Core/EventArgs.cs
index 71bd15e1..b52b893a 100644
--- a/src/WixToolset.Mba.Core/EventArgs.cs
+++ b/src/WixToolset.Mba.Core/EventArgs.cs
@@ -1948,9 +1948,9 @@ namespace WixToolset.Mba.Core
1948 /// Additional arguments passed by the engine before it tries to launch the preapproved executable. 1948 /// Additional arguments passed by the engine before it tries to launch the preapproved executable.
1949 /// </summary> 1949 /// </summary>
1950 [Serializable] 1950 [Serializable]
1951 public class LaunchApprovedExeBeginArgs : CancellableHResultEventArgs 1951 public class LaunchApprovedExeBeginEventArgs : CancellableHResultEventArgs
1952 { 1952 {
1953 public LaunchApprovedExeBeginArgs(bool cancelRecommendation) 1953 public LaunchApprovedExeBeginEventArgs(bool cancelRecommendation)
1954 : base(cancelRecommendation) 1954 : base(cancelRecommendation)
1955 { 1955 {
1956 } 1956 }
@@ -1960,11 +1960,11 @@ namespace WixToolset.Mba.Core
1960 /// Additional arguments passed by the engine after it finished trying to launch the preapproved executable. 1960 /// Additional arguments passed by the engine after it finished trying to launch the preapproved executable.
1961 /// </summary> 1961 /// </summary>
1962 [Serializable] 1962 [Serializable]
1963 public class LaunchApprovedExeCompleteArgs : StatusEventArgs 1963 public class LaunchApprovedExeCompleteEventArgs : StatusEventArgs
1964 { 1964 {
1965 private int processId; 1965 private int processId;
1966 1966
1967 public LaunchApprovedExeCompleteArgs(int hrStatus, int processId) 1967 public LaunchApprovedExeCompleteEventArgs(int hrStatus, int processId)
1968 : base(hrStatus) 1968 : base(hrStatus)
1969 { 1969 {
1970 this.processId = processId; 1970 this.processId = processId;
@@ -1979,4 +1979,187 @@ namespace WixToolset.Mba.Core
1979 get { return this.processId; } 1979 get { return this.processId; }
1980 } 1980 }
1981 } 1981 }
1982
1983 /// <summary>
1984 /// Additional arguments passed by the engine before beginning an MSI transaction.
1985 /// </summary>
1986 [Serializable]
1987 public class BeginMsiTransactionBeginEventArgs : CancellableHResultEventArgs
1988 {
1989 private string transactionId;
1990
1991 public BeginMsiTransactionBeginEventArgs(string transactionId, bool cancelRecommendation)
1992 : base(cancelRecommendation)
1993 {
1994 this.transactionId = transactionId;
1995 }
1996
1997 /// <summary>
1998 /// Gets the MSI transaction Id.
1999 /// </summary>
2000 public string TransactionId
2001 {
2002 get { return this.transactionId; }
2003 }
2004 }
2005
2006 /// <summary>
2007 /// Additional arguments passed by the engine after beginning an MSI transaction.
2008 /// </summary>
2009 [Serializable]
2010 public class BeginMsiTransactionCompleteEventArgs : StatusEventArgs
2011 {
2012 private string transactionId;
2013
2014 public BeginMsiTransactionCompleteEventArgs(string transactionId, int hrStatus)
2015 : base(hrStatus)
2016 {
2017 this.transactionId = transactionId;
2018 }
2019
2020 /// <summary>
2021 /// Gets the MSI transaction Id.
2022 /// </summary>
2023 public string TransactionId
2024 {
2025 get { return this.transactionId; }
2026 }
2027 }
2028
2029 /// <summary>
2030 /// Additional arguments passed by the engine before committing an MSI transaction.
2031 /// </summary>
2032 [Serializable]
2033 public class CommitMsiTransactionBeginEventArgs : CancellableHResultEventArgs
2034 {
2035 private string transactionId;
2036
2037 public CommitMsiTransactionBeginEventArgs(string transactionId, bool cancelRecommendation)
2038 : base(cancelRecommendation)
2039 {
2040 this.transactionId = transactionId;
2041 }
2042
2043 /// <summary>
2044 /// Gets the MSI transaction Id.
2045 /// </summary>
2046 public string TransactionId
2047 {
2048 get { return this.transactionId; }
2049 }
2050 }
2051
2052 /// <summary>
2053 /// Additional arguments passed by the engine after committing an MSI transaction.
2054 /// </summary>
2055 [Serializable]
2056 public class CommitMsiTransactionCompleteEventArgs : StatusEventArgs
2057 {
2058 private string transactionId;
2059
2060 public CommitMsiTransactionCompleteEventArgs(string transactionId, int hrStatus)
2061 : base(hrStatus)
2062 {
2063 this.transactionId = transactionId;
2064 }
2065
2066 /// <summary>
2067 /// Gets the MSI transaction Id.
2068 /// </summary>
2069 public string TransactionId
2070 {
2071 get { return this.transactionId; }
2072 }
2073 }
2074
2075 /// <summary>
2076 /// Additional arguments passed by the engine before rolling back an MSI transaction.
2077 /// </summary>
2078 [Serializable]
2079 public class RollbackMsiTransactionBeginEventArgs : HResultEventArgs
2080 {
2081 private string transactionId;
2082
2083 public RollbackMsiTransactionBeginEventArgs(string transactionId)
2084 {
2085 this.transactionId = transactionId;
2086 }
2087
2088 /// <summary>
2089 /// Gets the MSI transaction Id.
2090 /// </summary>
2091 public string TransactionId
2092 {
2093 get { return this.transactionId; }
2094 }
2095 }
2096
2097 /// <summary>
2098 /// Additional arguments passed by the engine after rolling back an MSI transaction.
2099 /// </summary>
2100 [Serializable]
2101 public class RollbackMsiTransactionCompleteEventArgs : StatusEventArgs
2102 {
2103 private string transactionId;
2104
2105 public RollbackMsiTransactionCompleteEventArgs(string transactionId, int hrStatus)
2106 : base(hrStatus)
2107 {
2108 this.transactionId = transactionId;
2109 }
2110
2111 /// <summary>
2112 /// Gets the MSI transaction Id.
2113 /// </summary>
2114 public string TransactionId
2115 {
2116 get { return this.transactionId; }
2117 }
2118 }
2119
2120 /// <summary>
2121 /// Additional arguments passed by the engine before pausing Windows automatic updates.
2122 /// </summary>
2123 [Serializable]
2124 public class PauseAutomaticUpdatesBeginEventArgs : HResultEventArgs
2125 {
2126 public PauseAutomaticUpdatesBeginEventArgs()
2127 {
2128 }
2129 }
2130
2131 /// <summary>
2132 /// Additional arguments passed by the engine after pausing Windows automatic updates.
2133 /// </summary>
2134 [Serializable]
2135 public class PauseAutomaticUpdatesCompleteEventArgs : StatusEventArgs
2136 {
2137 public PauseAutomaticUpdatesCompleteEventArgs(int hrStatus)
2138 : base(hrStatus)
2139 {
2140 }
2141 }
2142
2143 /// <summary>
2144 /// Additional arguments passed by the engine before taking a system restore point.
2145 /// </summary>
2146 [Serializable]
2147 public class SystemRestorePointBeginEventArgs : HResultEventArgs
2148 {
2149 public SystemRestorePointBeginEventArgs()
2150 {
2151 }
2152 }
2153
2154 /// <summary>
2155 /// Additional arguments passed by the engine after taking a system restore point.
2156 /// </summary>
2157 [Serializable]
2158 public class SystemRestorePointCompleteEventArgs : StatusEventArgs
2159 {
2160 public SystemRestorePointCompleteEventArgs(int hrStatus)
2161 : base(hrStatus)
2162 {
2163 }
2164 }
1982} 2165}
diff --git a/src/WixToolset.Mba.Core/IBootstrapperApplication.cs b/src/WixToolset.Mba.Core/IBootstrapperApplication.cs
index 0d79122d..f1a631a3 100644
--- a/src/WixToolset.Mba.Core/IBootstrapperApplication.cs
+++ b/src/WixToolset.Mba.Core/IBootstrapperApplication.cs
@@ -12,7 +12,6 @@ namespace WixToolset.Mba.Core
12 [ComImport] 12 [ComImport]
13 [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] 13 [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
14 [Guid("53C31D56-49C0-426B-AB06-099D717C67FE")] 14 [Guid("53C31D56-49C0-426B-AB06-099D717C67FE")]
15 [GeneratedCodeAttribute("WixToolset.Bootstrapper.InteropCodeGenerator", "1.0.0.0")]
16 public interface IBootstrapperApplication 15 public interface IBootstrapperApplication
17 { 16 {
18 [PreserveSig] 17 [PreserveSig]
@@ -502,6 +501,69 @@ namespace WixToolset.Mba.Core
502 501
503 [PreserveSig] 502 [PreserveSig]
504 [return: MarshalAs(UnmanagedType.I4)] 503 [return: MarshalAs(UnmanagedType.I4)]
504 int OnBeginMsiTransactionBegin(
505 [MarshalAs(UnmanagedType.LPWStr)] string wzTransactionId,
506 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
507 );
508
509 [PreserveSig]
510 [return: MarshalAs(UnmanagedType.I4)]
511 int OnBeginMsiTransactionComplete(
512 [MarshalAs(UnmanagedType.LPWStr)] string wzTransactionId,
513 int hrStatus
514 );
515
516 [PreserveSig]
517 [return: MarshalAs(UnmanagedType.I4)]
518 int OnCommitMsiTransactionBegin(
519 [MarshalAs(UnmanagedType.LPWStr)] string wzTransactionId,
520 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
521 );
522
523 [PreserveSig]
524 [return: MarshalAs(UnmanagedType.I4)]
525 int OnCommitMsiTransactionComplete(
526 [MarshalAs(UnmanagedType.LPWStr)] string wzTransactionId,
527 int hrStatus
528 );
529
530 [PreserveSig]
531 [return: MarshalAs(UnmanagedType.I4)]
532 int OnRollbackMsiTransactionBegin(
533 [MarshalAs(UnmanagedType.LPWStr)] string wzTransactionId
534 );
535
536 [PreserveSig]
537 [return: MarshalAs(UnmanagedType.I4)]
538 int OnRollbackMsiTransactionComplete(
539 [MarshalAs(UnmanagedType.LPWStr)] string wzTransactionId,
540 int hrStatus
541 );
542
543 [PreserveSig]
544 [return: MarshalAs(UnmanagedType.I4)]
545 int OnPauseAutomaticUpdatesBegin(
546 );
547
548 [PreserveSig]
549 [return: MarshalAs(UnmanagedType.I4)]
550 int OnPauseAutomaticUpdatesComplete(
551 int hrStatus
552 );
553
554 [PreserveSig]
555 [return: MarshalAs(UnmanagedType.I4)]
556 int OnSystemRestorePointBegin(
557 );
558
559 [PreserveSig]
560 [return: MarshalAs(UnmanagedType.I4)]
561 int OnSystemRestorePointComplete(
562 int hrStatus
563 );
564
565 [PreserveSig]
566 [return: MarshalAs(UnmanagedType.I4)]
505 int BAProc( 567 int BAProc(
506 int message, 568 int message,
507 IntPtr pvArgs, 569 IntPtr pvArgs,
diff --git a/src/WixToolset.Mba.Core/IDefaultBootstrapperApplication.cs b/src/WixToolset.Mba.Core/IDefaultBootstrapperApplication.cs
index 9bea6418..4a30da7e 100644
--- a/src/WixToolset.Mba.Core/IDefaultBootstrapperApplication.cs
+++ b/src/WixToolset.Mba.Core/IDefaultBootstrapperApplication.cs
@@ -8,6 +8,8 @@ namespace WixToolset.Mba.Core
8 { 8 {
9 event EventHandler<ApplyBeginEventArgs> ApplyBegin; 9 event EventHandler<ApplyBeginEventArgs> ApplyBegin;
10 event EventHandler<ApplyCompleteEventArgs> ApplyComplete; 10 event EventHandler<ApplyCompleteEventArgs> ApplyComplete;
11 event EventHandler<BeginMsiTransactionBeginEventArgs> BeginMsiTransactionBegin;
12 event EventHandler<BeginMsiTransactionCompleteEventArgs> BeginMsiTransactionComplete;
11 event EventHandler<CacheAcquireBeginEventArgs> CacheAcquireBegin; 13 event EventHandler<CacheAcquireBeginEventArgs> CacheAcquireBegin;
12 event EventHandler<CacheAcquireCompleteEventArgs> CacheAcquireComplete; 14 event EventHandler<CacheAcquireCompleteEventArgs> CacheAcquireComplete;
13 event EventHandler<CacheAcquireProgressEventArgs> CacheAcquireProgress; 15 event EventHandler<CacheAcquireProgressEventArgs> CacheAcquireProgress;
@@ -17,6 +19,8 @@ namespace WixToolset.Mba.Core
17 event EventHandler<CachePackageCompleteEventArgs> CachePackageComplete; 19 event EventHandler<CachePackageCompleteEventArgs> CachePackageComplete;
18 event EventHandler<CacheVerifyBeginEventArgs> CacheVerifyBegin; 20 event EventHandler<CacheVerifyBeginEventArgs> CacheVerifyBegin;
19 event EventHandler<CacheVerifyCompleteEventArgs> CacheVerifyComplete; 21 event EventHandler<CacheVerifyCompleteEventArgs> CacheVerifyComplete;
22 event EventHandler<CommitMsiTransactionBeginEventArgs> CommitMsiTransactionBegin;
23 event EventHandler<CommitMsiTransactionCompleteEventArgs> CommitMsiTransactionComplete;
20 event EventHandler<DetectBeginEventArgs> DetectBegin; 24 event EventHandler<DetectBeginEventArgs> DetectBegin;
21 event EventHandler<DetectCompatibleMsiPackageEventArgs> DetectCompatibleMsiPackage; 25 event EventHandler<DetectCompatibleMsiPackageEventArgs> DetectCompatibleMsiPackage;
22 event EventHandler<DetectCompleteEventArgs> DetectComplete; 26 event EventHandler<DetectCompleteEventArgs> DetectComplete;
@@ -41,13 +45,16 @@ namespace WixToolset.Mba.Core
41 event EventHandler<ExecutePackageCompleteEventArgs> ExecutePackageComplete; 45 event EventHandler<ExecutePackageCompleteEventArgs> ExecutePackageComplete;
42 event EventHandler<ExecutePatchTargetEventArgs> ExecutePatchTarget; 46 event EventHandler<ExecutePatchTargetEventArgs> ExecutePatchTarget;
43 event EventHandler<ExecuteProgressEventArgs> ExecuteProgress; 47 event EventHandler<ExecuteProgressEventArgs> ExecuteProgress;
44 event EventHandler<LaunchApprovedExeBeginArgs> LaunchApprovedExeBegin; 48 event EventHandler<LaunchApprovedExeBeginEventArgs> LaunchApprovedExeBegin;
45 event EventHandler<LaunchApprovedExeCompleteArgs> LaunchApprovedExeComplete; 49 event EventHandler<LaunchApprovedExeCompleteEventArgs> LaunchApprovedExeComplete;
50 event EventHandler<PauseAutomaticUpdatesBeginEventArgs> PauseAutomaticUpdatesBegin;
51 event EventHandler<PauseAutomaticUpdatesCompleteEventArgs> PauseAutomaticUpdatesComplete;
46 event EventHandler<PlanBeginEventArgs> PlanBegin; 52 event EventHandler<PlanBeginEventArgs> PlanBegin;
47 event EventHandler<PlanCompatibleMsiPackageBeginEventArgs> PlanCompatibleMsiPackageBegin; 53 event EventHandler<PlanCompatibleMsiPackageBeginEventArgs> PlanCompatibleMsiPackageBegin;
48 event EventHandler<PlanCompatibleMsiPackageCompleteEventArgs> PlanCompatibleMsiPackageComplete; 54 event EventHandler<PlanCompatibleMsiPackageCompleteEventArgs> PlanCompatibleMsiPackageComplete;
49 event EventHandler<PlanCompleteEventArgs> PlanComplete; 55 event EventHandler<PlanCompleteEventArgs> PlanComplete;
50 event EventHandler<PlanMsiFeatureEventArgs> PlanMsiFeature; 56 event EventHandler<PlanMsiFeatureEventArgs> PlanMsiFeature;
57 event EventHandler<PlanMsiPackageEventArgs> PlanMsiPackage;
51 event EventHandler<PlanPackageBeginEventArgs> PlanPackageBegin; 58 event EventHandler<PlanPackageBeginEventArgs> PlanPackageBegin;
52 event EventHandler<PlanPackageCompleteEventArgs> PlanPackageComplete; 59 event EventHandler<PlanPackageCompleteEventArgs> PlanPackageComplete;
53 event EventHandler<PlanRelatedBundleEventArgs> PlanRelatedBundle; 60 event EventHandler<PlanRelatedBundleEventArgs> PlanRelatedBundle;
@@ -56,8 +63,12 @@ namespace WixToolset.Mba.Core
56 event EventHandler<RegisterBeginEventArgs> RegisterBegin; 63 event EventHandler<RegisterBeginEventArgs> RegisterBegin;
57 event EventHandler<RegisterCompleteEventArgs> RegisterComplete; 64 event EventHandler<RegisterCompleteEventArgs> RegisterComplete;
58 event EventHandler<ResolveSourceEventArgs> ResolveSource; 65 event EventHandler<ResolveSourceEventArgs> ResolveSource;
66 event EventHandler<RollbackMsiTransactionBeginEventArgs> RollbackMsiTransactionBegin;
67 event EventHandler<RollbackMsiTransactionCompleteEventArgs> RollbackMsiTransactionComplete;
59 event EventHandler<ShutdownEventArgs> Shutdown; 68 event EventHandler<ShutdownEventArgs> Shutdown;
60 event EventHandler<StartupEventArgs> Startup; 69 event EventHandler<StartupEventArgs> Startup;
70 event EventHandler<SystemRestorePointBeginEventArgs> SystemRestorePointBegin;
71 event EventHandler<SystemRestorePointCompleteEventArgs> SystemRestorePointComplete;
61 event EventHandler<SystemShutdownEventArgs> SystemShutdown; 72 event EventHandler<SystemShutdownEventArgs> SystemShutdown;
62 event EventHandler<UnregisterBeginEventArgs> UnregisterBegin; 73 event EventHandler<UnregisterBeginEventArgs> UnregisterBegin;
63 event EventHandler<UnregisterCompleteEventArgs> UnregisterComplete; 74 event EventHandler<UnregisterCompleteEventArgs> UnregisterComplete;
diff --git a/src/balutil/balutil.vcxproj b/src/balutil/balutil.vcxproj
index d35a7a77..4793770a 100644
--- a/src/balutil/balutil.vcxproj
+++ b/src/balutil/balutil.vcxproj
@@ -2,8 +2,8 @@
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. --> 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 3
4<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 4<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5 <Import Project="..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props')" /> 5 <Import Project="..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props')" />
6 <Import Project="..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props')" /> 6 <Import Project="..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props')" />
7 7
8 <ItemGroup Label="ProjectConfigurations"> 8 <ItemGroup Label="ProjectConfigurations">
9 <ProjectConfiguration Include="Debug|ARM64"> 9 <ProjectConfiguration Include="Debug|ARM64">
@@ -98,8 +98,8 @@
98 <PropertyGroup> 98 <PropertyGroup>
99 <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> 99 <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
100 </PropertyGroup> 100 </PropertyGroup>
101 <Error Condition="!Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props'))" /> 101 <Error Condition="!Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props'))" />
102 <Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props'))" /> 102 <Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props'))" />
103 <Error Condition="!Exists('..\..\packages\Nerdbank.GitVersioning.3.3.37\build\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Nerdbank.GitVersioning.3.3.37\build\Nerdbank.GitVersioning.targets'))" /> 103 <Error Condition="!Exists('..\..\packages\Nerdbank.GitVersioning.3.3.37\build\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Nerdbank.GitVersioning.3.3.37\build\Nerdbank.GitVersioning.targets'))" />
104 </Target> 104 </Target>
105</Project> 105</Project>
diff --git a/src/balutil/inc/BAFunctions.h b/src/balutil/inc/BAFunctions.h
index 8101afdb..a95b7a03 100644
--- a/src/balutil/inc/BAFunctions.h
+++ b/src/balutil/inc/BAFunctions.h
@@ -65,6 +65,16 @@ enum BA_FUNCTIONS_MESSAGE
65 BA_FUNCTIONS_MESSAGE_ONLAUNCHAPPROVEDEXEBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONLAUNCHAPPROVEDEXEBEGIN, 65 BA_FUNCTIONS_MESSAGE_ONLAUNCHAPPROVEDEXEBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONLAUNCHAPPROVEDEXEBEGIN,
66 BA_FUNCTIONS_MESSAGE_ONLAUNCHAPPROVEDEXECOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONLAUNCHAPPROVEDEXECOMPLETE, 66 BA_FUNCTIONS_MESSAGE_ONLAUNCHAPPROVEDEXECOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONLAUNCHAPPROVEDEXECOMPLETE,
67 BA_FUNCTIONS_MESSAGE_ONPLANMSIPACKAGE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANMSIPACKAGE, 67 BA_FUNCTIONS_MESSAGE_ONPLANMSIPACKAGE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANMSIPACKAGE,
68 BA_FUNCTIONS_MESSAGE_ONBEGINMSITRANSACTIONBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONBEGINMSITRANSACTIONBEGIN,
69 BA_FUNCTIONS_MESSAGE_ONBEGINMSITRANSACTIONCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONBEGINMSITRANSACTIONCOMPLETE,
70 BA_FUNCTIONS_MESSAGE_ONCOMMITMSITRANSACTIONBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCOMMITMSITRANSACTIONBEGIN,
71 BA_FUNCTIONS_MESSAGE_ONCOMMITMSITRANSACTIONCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCOMMITMSITRANSACTIONCOMPLETE,
72 BA_FUNCTIONS_MESSAGE_ONROLLBACKMSITRANSACTIONBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONROLLBACKMSITRANSACTIONBEGIN,
73 BA_FUNCTIONS_MESSAGE_ONROLLBACKMSITRANSACTIONCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONROLLBACKMSITRANSACTIONCOMPLETE,
74 BA_FUNCTIONS_MESSAGE_ONPAUSEAUTOMATICUPDATESBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPAUSEAUTOMATICUPDATESBEGIN,
75 BA_FUNCTIONS_MESSAGE_ONPAUSEAUTOMATICUPDATESCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPAUSEAUTOMATICUPDATESCOMPLETE,
76 BA_FUNCTIONS_MESSAGE_ONSYSTEMRESTOREPOINTBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONSYSTEMRESTOREPOINTBEGIN,
77 BA_FUNCTIONS_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE,
68 78
69 BA_FUNCTIONS_MESSAGE_ONTHEMELOADED = 1024, 79 BA_FUNCTIONS_MESSAGE_ONTHEMELOADED = 1024,
70 BA_FUNCTIONS_MESSAGE_WNDPROC, 80 BA_FUNCTIONS_MESSAGE_WNDPROC,
diff --git a/src/balutil/inc/BalBaseBAFunctions.h b/src/balutil/inc/BalBaseBAFunctions.h
index 72edadd5..39934128 100644
--- a/src/balutil/inc/BalBaseBAFunctions.h
+++ b/src/balutil/inc/BalBaseBAFunctions.h
@@ -612,6 +612,79 @@ public: // IBootstrapperApplication
612 return S_OK; 612 return S_OK;
613 } 613 }
614 614
615 virtual STDMETHODIMP OnBeginMsiTransactionBegin(
616 __in_z LPCWSTR /*wzTransactionId*/,
617 __inout BOOL* /*pfCancel*/
618 )
619 {
620 return S_OK;
621 }
622
623 virtual STDMETHODIMP OnBeginMsiTransactionComplete(
624 __in_z LPCWSTR /*wzTransactionId*/,
625 __in HRESULT /*hrStatus*/
626 )
627 {
628 return S_OK;
629 }
630
631 virtual STDMETHODIMP OnCommitMsiTransactionBegin(
632 __in_z LPCWSTR /*wzTransactionId*/,
633 __inout BOOL* /*pfCancel*/
634 )
635 {
636 return S_OK;
637 }
638
639 virtual STDMETHODIMP OnCommitMsiTransactionComplete(
640 __in_z LPCWSTR /*wzTransactionId*/,
641 __in HRESULT /*hrStatus*/
642 )
643 {
644 return S_OK;
645 }
646
647 virtual STDMETHODIMP OnRollbackMsiTransactionBegin(
648 __in_z LPCWSTR /*wzTransactionId*/
649 )
650 {
651 return S_OK;
652 }
653
654 virtual STDMETHODIMP OnRollbackMsiTransactionComplete(
655 __in_z LPCWSTR /*wzTransactionId*/,
656 __in HRESULT /*hrStatus*/
657 )
658 {
659 return S_OK;
660 }
661
662 virtual STDMETHODIMP OnPauseAutomaticUpdatesBegin(
663 )
664 {
665 return S_OK;
666 }
667
668 virtual STDMETHODIMP OnPauseAutomaticUpdatesComplete(
669 __in HRESULT /*hrStatus*/
670 )
671 {
672 return S_OK;
673 }
674
675 virtual STDMETHODIMP OnSystemRestorePointBegin(
676 )
677 {
678 return S_OK;
679 }
680
681 virtual STDMETHODIMP OnSystemRestorePointComplete(
682 __in HRESULT /*hrStatus*/
683 )
684 {
685 return S_OK;
686 }
687
615 virtual STDMETHODIMP_(HRESULT) BAProc( 688 virtual STDMETHODIMP_(HRESULT) BAProc(
616 __in BOOTSTRAPPER_APPLICATION_MESSAGE /*message*/, 689 __in BOOTSTRAPPER_APPLICATION_MESSAGE /*message*/,
617 __in const LPVOID /*pvArgs*/, 690 __in const LPVOID /*pvArgs*/,
diff --git a/src/balutil/inc/BalBaseBAFunctionsProc.h b/src/balutil/inc/BalBaseBAFunctionsProc.h
index f6ebd9f6..69843301 100644
--- a/src/balutil/inc/BalBaseBAFunctionsProc.h
+++ b/src/balutil/inc/BalBaseBAFunctionsProc.h
@@ -100,6 +100,16 @@ static HRESULT WINAPI BalBaseBAFunctionsProc(
100 case BA_FUNCTIONS_MESSAGE_ONLAUNCHAPPROVEDEXEBEGIN: 100 case BA_FUNCTIONS_MESSAGE_ONLAUNCHAPPROVEDEXEBEGIN:
101 case BA_FUNCTIONS_MESSAGE_ONLAUNCHAPPROVEDEXECOMPLETE: 101 case BA_FUNCTIONS_MESSAGE_ONLAUNCHAPPROVEDEXECOMPLETE:
102 case BA_FUNCTIONS_MESSAGE_ONPLANMSIPACKAGE: 102 case BA_FUNCTIONS_MESSAGE_ONPLANMSIPACKAGE:
103 case BA_FUNCTIONS_MESSAGE_ONBEGINMSITRANSACTIONBEGIN:
104 case BA_FUNCTIONS_MESSAGE_ONBEGINMSITRANSACTIONCOMPLETE:
105 case BA_FUNCTIONS_MESSAGE_ONCOMMITMSITRANSACTIONBEGIN:
106 case BA_FUNCTIONS_MESSAGE_ONCOMMITMSITRANSACTIONCOMPLETE:
107 case BA_FUNCTIONS_MESSAGE_ONROLLBACKMSITRANSACTIONBEGIN:
108 case BA_FUNCTIONS_MESSAGE_ONROLLBACKMSITRANSACTIONCOMPLETE:
109 case BA_FUNCTIONS_MESSAGE_ONPAUSEAUTOMATICUPDATESBEGIN:
110 case BA_FUNCTIONS_MESSAGE_ONPAUSEAUTOMATICUPDATESCOMPLETE:
111 case BA_FUNCTIONS_MESSAGE_ONSYSTEMRESTOREPOINTBEGIN:
112 case BA_FUNCTIONS_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE:
103 hr = BalBaseBootstrapperApplicationProc((BOOTSTRAPPER_APPLICATION_MESSAGE)message, pvArgs, pvResults, pvContext); 113 hr = BalBaseBootstrapperApplicationProc((BOOTSTRAPPER_APPLICATION_MESSAGE)message, pvArgs, pvResults, pvContext);
104 break; 114 break;
105 case BA_FUNCTIONS_MESSAGE_ONTHEMELOADED: 115 case BA_FUNCTIONS_MESSAGE_ONTHEMELOADED:
diff --git a/src/balutil/inc/BalBaseBootstrapperApplication.h b/src/balutil/inc/BalBaseBootstrapperApplication.h
index 612faf54..ad0c60e5 100644
--- a/src/balutil/inc/BalBaseBootstrapperApplication.h
+++ b/src/balutil/inc/BalBaseBootstrapperApplication.h
@@ -798,6 +798,81 @@ public: // IBootstrapperApplication
798 return S_OK; 798 return S_OK;
799 } 799 }
800 800
801 virtual STDMETHODIMP OnBeginMsiTransactionBegin(
802 __in_z LPCWSTR /*wzTransactionId*/,
803 __inout BOOL* pfCancel
804 )
805 {
806 *pfCancel |= CheckCanceled();
807 return S_OK;
808 }
809
810 virtual STDMETHODIMP OnBeginMsiTransactionComplete(
811 __in_z LPCWSTR /*wzTransactionId*/,
812 __in HRESULT /*hrStatus*/
813 )
814 {
815 return S_OK;
816 }
817
818 virtual STDMETHODIMP OnCommitMsiTransactionBegin(
819 __in_z LPCWSTR /*wzTransactionId*/,
820 __inout BOOL* pfCancel
821 )
822 {
823 *pfCancel |= CheckCanceled();
824 return S_OK;
825 }
826
827 virtual STDMETHODIMP OnCommitMsiTransactionComplete(
828 __in_z LPCWSTR /*wzTransactionId*/,
829 __in HRESULT /*hrStatus*/
830 )
831 {
832 return S_OK;
833 }
834
835 virtual STDMETHODIMP OnRollbackMsiTransactionBegin(
836 __in_z LPCWSTR /*wzTransactionId*/
837 )
838 {
839 return S_OK;
840 }
841
842 virtual STDMETHODIMP OnRollbackMsiTransactionComplete(
843 __in_z LPCWSTR /*wzTransactionId*/,
844 __in HRESULT /*hrStatus*/
845 )
846 {
847 return S_OK;
848 }
849
850 virtual STDMETHODIMP OnPauseAutomaticUpdatesBegin(
851 )
852 {
853 return S_OK;
854 }
855
856 virtual STDMETHODIMP OnPauseAutomaticUpdatesComplete(
857 __in HRESULT /*hrStatus*/
858 )
859 {
860 return S_OK;
861 }
862
863 virtual STDMETHODIMP OnSystemRestorePointBegin(
864 )
865 {
866 return S_OK;
867 }
868
869 virtual STDMETHODIMP OnSystemRestorePointComplete(
870 __in HRESULT /*hrStatus*/
871 )
872 {
873 return S_OK;
874 }
875
801 virtual STDMETHODIMP_(HRESULT) BAProc( 876 virtual STDMETHODIMP_(HRESULT) BAProc(
802 __in BOOTSTRAPPER_APPLICATION_MESSAGE /*message*/, 877 __in BOOTSTRAPPER_APPLICATION_MESSAGE /*message*/,
803 __in const LPVOID /*pvArgs*/, 878 __in const LPVOID /*pvArgs*/,
diff --git a/src/balutil/inc/BalBaseBootstrapperApplicationProc.h b/src/balutil/inc/BalBaseBootstrapperApplicationProc.h
index 7d5de8e4..648252b5 100644
--- a/src/balutil/inc/BalBaseBootstrapperApplicationProc.h
+++ b/src/balutil/inc/BalBaseBootstrapperApplicationProc.h
@@ -513,6 +513,96 @@ static HRESULT BalBaseBAProcOnPlanMsiPackage(
513 return pBA->OnPlanMsiPackage(pArgs->wzPackageId, pArgs->fExecute, pArgs->action, &pResults->fCancel, &pResults->actionMsiProperty, &pResults->uiLevel, &pResults->fDisableExternalUiHandler); 513 return pBA->OnPlanMsiPackage(pArgs->wzPackageId, pArgs->fExecute, pArgs->action, &pResults->fCancel, &pResults->actionMsiProperty, &pResults->uiLevel, &pResults->fDisableExternalUiHandler);
514} 514}
515 515
516static HRESULT BalBaseBAProcOnBeginMsiTransactionBegin(
517 __in IBootstrapperApplication* pBA,
518 __in BA_ONBEGINMSITRANSACTIONBEGIN_ARGS* pArgs,
519 __inout BA_ONBEGINMSITRANSACTIONBEGIN_RESULTS* pResults
520 )
521{
522 return pBA->OnBeginMsiTransactionBegin(pArgs->wzTransactionId, &pResults->fCancel);
523}
524
525static HRESULT BalBaseBAProcOnBeginMsiTransactionComplete(
526 __in IBootstrapperApplication* pBA,
527 __in BA_ONBEGINMSITRANSACTIONCOMPLETE_ARGS* pArgs,
528 __inout BA_ONBEGINMSITRANSACTIONCOMPLETE_RESULTS* /*pResults*/
529 )
530{
531 return pBA->OnBeginMsiTransactionComplete(pArgs->wzTransactionId, pArgs->hrStatus);
532}
533
534static HRESULT BalBaseBAProcOnCommitMsiTransactionBegin(
535 __in IBootstrapperApplication* pBA,
536 __in BA_ONCOMMITMSITRANSACTIONBEGIN_ARGS* pArgs,
537 __inout BA_ONCOMMITMSITRANSACTIONBEGIN_RESULTS* pResults
538 )
539{
540 return pBA->OnCommitMsiTransactionBegin(pArgs->wzTransactionId, &pResults->fCancel);
541}
542
543static HRESULT BalBaseBAProcOnCommitMsiTransactionComplete(
544 __in IBootstrapperApplication* pBA,
545 __in BA_ONCOMMITMSITRANSACTIONCOMPLETE_ARGS* pArgs,
546 __inout BA_ONCOMMITMSITRANSACTIONCOMPLETE_RESULTS* /*pResults*/
547 )
548{
549 return pBA->OnCommitMsiTransactionComplete(pArgs->wzTransactionId, pArgs->hrStatus);
550}
551
552static HRESULT BalBaseBAProcOnRollbackMsiTransactionBegin(
553 __in IBootstrapperApplication* pBA,
554 __in BA_ONROLLBACKMSITRANSACTIONBEGIN_ARGS* pArgs,
555 __inout BA_ONROLLBACKMSITRANSACTIONBEGIN_RESULTS* /*pResults*/
556 )
557{
558 return pBA->OnRollbackMsiTransactionBegin(pArgs->wzTransactionId);
559}
560
561static HRESULT BalBaseBAProcOnRollbackMsiTransactionComplete(
562 __in IBootstrapperApplication* pBA,
563 __in BA_ONROLLBACKMSITRANSACTIONCOMPLETE_ARGS* pArgs,
564 __inout BA_ONROLLBACKMSITRANSACTIONCOMPLETE_RESULTS* /*pResults*/
565 )
566{
567 return pBA->OnRollbackMsiTransactionComplete(pArgs->wzTransactionId, pArgs->hrStatus);
568}
569
570static HRESULT BalBaseBAProcOnPauseAutomaticUpdatesBegin(
571 __in IBootstrapperApplication* pBA,
572 __in BA_ONPAUSEAUTOMATICUPDATESBEGIN_ARGS* /*pArgs*/,
573 __inout BA_ONPAUSEAUTOMATICUPDATESBEGIN_RESULTS* /*pResults*/
574 )
575{
576 return pBA->OnPauseAutomaticUpdatesBegin();
577}
578
579static HRESULT BalBaseBAProcOnPauseAutomaticUpdatesComplete(
580 __in IBootstrapperApplication* pBA,
581 __in BA_ONPAUSEAUTOMATICUPDATESCOMPLETE_ARGS* pArgs,
582 __inout BA_ONPAUSEAUTOMATICUPDATESCOMPLETE_RESULTS* /*pResults*/
583 )
584{
585 return pBA->OnPauseAutomaticUpdatesComplete(pArgs->hrStatus);
586}
587
588static HRESULT BalBaseBAProcOnSystemRestorePointBegin(
589 __in IBootstrapperApplication* pBA,
590 __in BA_ONSYSTEMRESTOREPOINTBEGIN_ARGS* /*pArgs*/,
591 __inout BA_ONSYSTEMRESTOREPOINTBEGIN_RESULTS* /*pResults*/
592 )
593{
594 return pBA->OnSystemRestorePointBegin();
595}
596
597static HRESULT BalBaseBAProcOnSystemRestorePointComplete(
598 __in IBootstrapperApplication* pBA,
599 __in BA_ONSYSTEMRESTOREPOINTCOMPLETE_ARGS* pArgs,
600 __inout BA_ONSYSTEMRESTOREPOINTCOMPLETE_RESULTS* /*pResults*/
601 )
602{
603 return pBA->OnSystemRestorePointComplete(pArgs->hrStatus);
604}
605
516/******************************************************************* 606/*******************************************************************
517BalBaseBootstrapperApplicationProc - requires pvContext to be of type IBootstrapperApplication. 607BalBaseBootstrapperApplicationProc - requires pvContext to be of type IBootstrapperApplication.
518 Provides a default mapping between the new message based BA interface and 608 Provides a default mapping between the new message based BA interface and
@@ -701,6 +791,35 @@ static HRESULT WINAPI BalBaseBootstrapperApplicationProc(
701 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANMSIPACKAGE: 791 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANMSIPACKAGE:
702 hr = BalBaseBAProcOnPlanMsiPackage(pBA, reinterpret_cast<BA_ONPLANMSIPACKAGE_ARGS*>(pvArgs), reinterpret_cast<BA_ONPLANMSIPACKAGE_RESULTS*>(pvResults)); 792 hr = BalBaseBAProcOnPlanMsiPackage(pBA, reinterpret_cast<BA_ONPLANMSIPACKAGE_ARGS*>(pvArgs), reinterpret_cast<BA_ONPLANMSIPACKAGE_RESULTS*>(pvResults));
703 break; 793 break;
794 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONBEGINMSITRANSACTIONBEGIN:
795 hr = BalBaseBAProcOnBeginMsiTransactionBegin(pBA, reinterpret_cast<BA_ONBEGINMSITRANSACTIONBEGIN_ARGS*>(pvArgs), reinterpret_cast<BA_ONBEGINMSITRANSACTIONBEGIN_RESULTS*>(pvResults));
796 break;
797 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONBEGINMSITRANSACTIONCOMPLETE:
798 hr = BalBaseBAProcOnBeginMsiTransactionComplete(pBA, reinterpret_cast<BA_ONBEGINMSITRANSACTIONCOMPLETE_ARGS*>(pvArgs), reinterpret_cast<BA_ONBEGINMSITRANSACTIONCOMPLETE_RESULTS*>(pvResults));
799 break;
800 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONCOMMITMSITRANSACTIONBEGIN:
801 hr = BalBaseBAProcOnCommitMsiTransactionBegin(pBA, reinterpret_cast<BA_ONCOMMITMSITRANSACTIONBEGIN_ARGS*>(pvArgs), reinterpret_cast<BA_ONCOMMITMSITRANSACTIONBEGIN_RESULTS*>(pvResults));
802 break;
803 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONCOMMITMSITRANSACTIONCOMPLETE:
804 hr = BalBaseBAProcOnCommitMsiTransactionComplete(pBA, reinterpret_cast<BA_ONCOMMITMSITRANSACTIONCOMPLETE_ARGS*>(pvArgs), reinterpret_cast<BA_ONCOMMITMSITRANSACTIONCOMPLETE_RESULTS*>(pvResults));
805 break;
806 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONROLLBACKMSITRANSACTIONBEGIN:
807 hr = BalBaseBAProcOnRollbackMsiTransactionBegin(pBA, reinterpret_cast<BA_ONROLLBACKMSITRANSACTIONBEGIN_ARGS*>(pvArgs), reinterpret_cast<BA_ONROLLBACKMSITRANSACTIONBEGIN_RESULTS*>(pvResults));
808 break;
809 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONROLLBACKMSITRANSACTIONCOMPLETE:
810 hr = BalBaseBAProcOnRollbackMsiTransactionComplete(pBA, reinterpret_cast<BA_ONROLLBACKMSITRANSACTIONCOMPLETE_ARGS*>(pvArgs), reinterpret_cast<BA_ONROLLBACKMSITRANSACTIONCOMPLETE_RESULTS*>(pvResults));
811 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONPAUSEAUTOMATICUPDATESBEGIN:
812 hr = BalBaseBAProcOnPauseAutomaticUpdatesBegin(pBA, reinterpret_cast<BA_ONPAUSEAUTOMATICUPDATESBEGIN_ARGS*>(pvArgs), reinterpret_cast<BA_ONPAUSEAUTOMATICUPDATESBEGIN_RESULTS*>(pvResults));
813 break;
814 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONPAUSEAUTOMATICUPDATESCOMPLETE:
815 hr = BalBaseBAProcOnPauseAutomaticUpdatesComplete(pBA, reinterpret_cast<BA_ONPAUSEAUTOMATICUPDATESCOMPLETE_ARGS*>(pvArgs), reinterpret_cast<BA_ONPAUSEAUTOMATICUPDATESCOMPLETE_RESULTS*>(pvResults));
816 break;
817 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONSYSTEMRESTOREPOINTBEGIN:
818 hr = BalBaseBAProcOnSystemRestorePointBegin(pBA, reinterpret_cast<BA_ONSYSTEMRESTOREPOINTBEGIN_ARGS*>(pvArgs), reinterpret_cast<BA_ONSYSTEMRESTOREPOINTBEGIN_RESULTS*>(pvResults));
819 break;
820 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE:
821 hr = BalBaseBAProcOnSystemRestorePointComplete(pBA, reinterpret_cast<BA_ONSYSTEMRESTOREPOINTCOMPLETE_ARGS*>(pvArgs), reinterpret_cast<BA_ONSYSTEMRESTOREPOINTCOMPLETE_RESULTS*>(pvResults));
822 break;
704 } 823 }
705 } 824 }
706 825
diff --git a/src/balutil/inc/IBootstrapperApplication.h b/src/balutil/inc/IBootstrapperApplication.h
index 75ea7bc9..dd8f8024 100644
--- a/src/balutil/inc/IBootstrapperApplication.h
+++ b/src/balutil/inc/IBootstrapperApplication.h
@@ -518,6 +518,49 @@ DECLARE_INTERFACE_IID_(IBootstrapperApplication, IUnknown, "53C31D56-49C0-426B-A
518 __in DWORD dwProcessId 518 __in DWORD dwProcessId
519 ) = 0; 519 ) = 0;
520 520
521 STDMETHOD(OnBeginMsiTransactionBegin)(
522 __in_z LPCWSTR wzTransactionId,
523 __inout BOOL* pfCancel
524 ) = 0;
525
526 STDMETHOD(OnBeginMsiTransactionComplete)(
527 __in_z LPCWSTR wzTransactionId,
528 __in HRESULT hrStatus
529 ) = 0;
530
531 STDMETHOD(OnCommitMsiTransactionBegin)(
532 __in_z LPCWSTR wzTransactionId,
533 __inout BOOL* pfCancel
534 ) = 0;
535
536 STDMETHOD(OnCommitMsiTransactionComplete)(
537 __in_z LPCWSTR wzTransactionId,
538 __in HRESULT hrStatus
539 ) = 0;
540
541 STDMETHOD(OnRollbackMsiTransactionBegin)(
542 __in_z LPCWSTR wzTransactionId
543 ) = 0;
544
545 STDMETHOD(OnRollbackMsiTransactionComplete)(
546 __in_z LPCWSTR wzTransactionId,
547 __in HRESULT hrStatus
548 ) = 0;
549
550 STDMETHOD(OnPauseAutomaticUpdatesBegin)(
551 ) = 0;
552
553 STDMETHOD(OnPauseAutomaticUpdatesComplete)(
554 __in HRESULT hrStatus
555 ) = 0;
556
557 STDMETHOD(OnSystemRestorePointBegin)(
558 ) = 0;
559
560 STDMETHOD(OnSystemRestorePointComplete)(
561 __in HRESULT hrStatus
562 ) = 0;
563
521 // BAProc - The PFN_BOOTSTRAPPER_APPLICATION_PROC can call this method to give the BA raw access to the callback from the engine. 564 // BAProc - The PFN_BOOTSTRAPPER_APPLICATION_PROC can call this method to give the BA raw access to the callback from the engine.
522 // This might be used to help the BA support more than one version of the engine. 565 // This might be used to help the BA support more than one version of the engine.
523 STDMETHOD(BAProc)( 566 STDMETHOD(BAProc)(
diff --git a/src/balutil/packages.config b/src/balutil/packages.config
index dbc4eb18..e6716363 100644
--- a/src/balutil/packages.config
+++ b/src/balutil/packages.config
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<packages> 2<packages>
3 <package id="Nerdbank.GitVersioning" version="3.3.37" targetFramework="native" developmentDependency="true" /> 3 <package id="Nerdbank.GitVersioning" version="3.3.37" targetFramework="native" developmentDependency="true" />
4 <package id="WixToolset.BootstrapperCore.Native" version="4.0.38" targetFramework="native" /> 4 <package id="WixToolset.BootstrapperCore.Native" version="4.0.54" targetFramework="native" />
5 <package id="WixToolset.DUtil" version="4.0.55" targetFramework="native" /> 5 <package id="WixToolset.DUtil" version="4.0.56" targetFramework="native" />
6</packages> \ No newline at end of file 6</packages> \ No newline at end of file
diff --git a/src/bextutil/bextutil.vcxproj b/src/bextutil/bextutil.vcxproj
index def0dd59..2e248d2c 100644
--- a/src/bextutil/bextutil.vcxproj
+++ b/src/bextutil/bextutil.vcxproj
@@ -2,8 +2,8 @@
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. --> 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 3
4<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 4<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5 <Import Project="..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props')" /> 5 <Import Project="..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props')" />
6 <Import Project="..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props')" /> 6 <Import Project="..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props')" />
7 7
8 <ItemGroup Label="ProjectConfigurations"> 8 <ItemGroup Label="ProjectConfigurations">
9 <ProjectConfiguration Include="Debug|ARM64"> 9 <ProjectConfiguration Include="Debug|ARM64">
@@ -87,8 +87,8 @@
87 <PropertyGroup> 87 <PropertyGroup>
88 <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> 88 <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
89 </PropertyGroup> 89 </PropertyGroup>
90 <Error Condition="!Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props'))" /> 90 <Error Condition="!Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props'))" />
91 <Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props'))" /> 91 <Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props'))" />
92 <Error Condition="!Exists('..\..\packages\Nerdbank.GitVersioning.3.3.37\build\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Nerdbank.GitVersioning.3.3.37\build\Nerdbank.GitVersioning.targets'))" /> 92 <Error Condition="!Exists('..\..\packages\Nerdbank.GitVersioning.3.3.37\build\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Nerdbank.GitVersioning.3.3.37\build\Nerdbank.GitVersioning.targets'))" />
93 </Target> 93 </Target>
94</Project> 94</Project>
diff --git a/src/bextutil/packages.config b/src/bextutil/packages.config
index dbc4eb18..e6716363 100644
--- a/src/bextutil/packages.config
+++ b/src/bextutil/packages.config
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<packages> 2<packages>
3 <package id="Nerdbank.GitVersioning" version="3.3.37" targetFramework="native" developmentDependency="true" /> 3 <package id="Nerdbank.GitVersioning" version="3.3.37" targetFramework="native" developmentDependency="true" />
4 <package id="WixToolset.BootstrapperCore.Native" version="4.0.38" targetFramework="native" /> 4 <package id="WixToolset.BootstrapperCore.Native" version="4.0.54" targetFramework="native" />
5 <package id="WixToolset.DUtil" version="4.0.55" targetFramework="native" /> 5 <package id="WixToolset.DUtil" version="4.0.56" targetFramework="native" />
6</packages> \ No newline at end of file 6</packages> \ No newline at end of file
diff --git a/src/mbanative/mbanative.vcxproj b/src/mbanative/mbanative.vcxproj
index 69309f8a..be60f3a9 100644
--- a/src/mbanative/mbanative.vcxproj
+++ b/src/mbanative/mbanative.vcxproj
@@ -5,8 +5,8 @@
5 <Import Project="..\..\packages\Microsoft.SourceLink.GitHub.1.0.0\build\Microsoft.SourceLink.GitHub.props" Condition="Exists('..\..\packages\Microsoft.SourceLink.GitHub.1.0.0\build\Microsoft.SourceLink.GitHub.props')" /> 5 <Import Project="..\..\packages\Microsoft.SourceLink.GitHub.1.0.0\build\Microsoft.SourceLink.GitHub.props" Condition="Exists('..\..\packages\Microsoft.SourceLink.GitHub.1.0.0\build\Microsoft.SourceLink.GitHub.props')" />
6 <Import Project="..\..\packages\Microsoft.SourceLink.Common.1.0.0\build\Microsoft.SourceLink.Common.props" Condition="Exists('..\..\packages\Microsoft.SourceLink.Common.1.0.0\build\Microsoft.SourceLink.Common.props')" /> 6 <Import Project="..\..\packages\Microsoft.SourceLink.Common.1.0.0\build\Microsoft.SourceLink.Common.props" Condition="Exists('..\..\packages\Microsoft.SourceLink.Common.1.0.0\build\Microsoft.SourceLink.Common.props')" />
7 <Import Project="..\..\packages\Microsoft.Build.Tasks.Git.1.0.0\build\Microsoft.Build.Tasks.Git.props" Condition="Exists('..\..\packages\Microsoft.Build.Tasks.Git.1.0.0\build\Microsoft.Build.Tasks.Git.props')" /> 7 <Import Project="..\..\packages\Microsoft.Build.Tasks.Git.1.0.0\build\Microsoft.Build.Tasks.Git.props" Condition="Exists('..\..\packages\Microsoft.Build.Tasks.Git.1.0.0\build\Microsoft.Build.Tasks.Git.props')" />
8 <Import Project="..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props')" /> 8 <Import Project="..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props')" />
9 <Import Project="..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props')" /> 9 <Import Project="..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props')" />
10 10
11 <ItemGroup Label="ProjectConfigurations"> 11 <ItemGroup Label="ProjectConfigurations">
12 <ProjectConfiguration Include="Debug|ARM64"> 12 <ProjectConfiguration Include="Debug|ARM64">
@@ -94,7 +94,7 @@
94 <Error Condition="!Exists('..\..\packages\Microsoft.SourceLink.GitHub.1.0.0\build\Microsoft.SourceLink.GitHub.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.SourceLink.GitHub.1.0.0\build\Microsoft.SourceLink.GitHub.props'))" /> 94 <Error Condition="!Exists('..\..\packages\Microsoft.SourceLink.GitHub.1.0.0\build\Microsoft.SourceLink.GitHub.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.SourceLink.GitHub.1.0.0\build\Microsoft.SourceLink.GitHub.props'))" />
95 <Error Condition="!Exists('..\..\packages\Microsoft.SourceLink.GitHub.1.0.0\build\Microsoft.SourceLink.GitHub.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.SourceLink.GitHub.1.0.0\build\Microsoft.SourceLink.GitHub.targets'))" /> 95 <Error Condition="!Exists('..\..\packages\Microsoft.SourceLink.GitHub.1.0.0\build\Microsoft.SourceLink.GitHub.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.SourceLink.GitHub.1.0.0\build\Microsoft.SourceLink.GitHub.targets'))" />
96 <Error Condition="!Exists('..\..\packages\Nerdbank.GitVersioning.3.3.37\build\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Nerdbank.GitVersioning.3.3.37\build\Nerdbank.GitVersioning.targets'))" /> 96 <Error Condition="!Exists('..\..\packages\Nerdbank.GitVersioning.3.3.37\build\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Nerdbank.GitVersioning.3.3.37\build\Nerdbank.GitVersioning.targets'))" />
97 <Error Condition="!Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props'))" /> 97 <Error Condition="!Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props'))" />
98 <Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props'))" /> 98 <Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props'))" />
99 </Target> 99 </Target>
100</Project> \ No newline at end of file 100</Project> \ No newline at end of file
diff --git a/src/mbanative/packages.config b/src/mbanative/packages.config
index 20047373..46972411 100644
--- a/src/mbanative/packages.config
+++ b/src/mbanative/packages.config
@@ -4,6 +4,6 @@
4 <package id="Microsoft.SourceLink.Common" version="1.0.0" targetFramework="native" developmentDependency="true" /> 4 <package id="Microsoft.SourceLink.Common" version="1.0.0" targetFramework="native" developmentDependency="true" />
5 <package id="Microsoft.SourceLink.GitHub" version="1.0.0" targetFramework="native" developmentDependency="true" /> 5 <package id="Microsoft.SourceLink.GitHub" version="1.0.0" targetFramework="native" developmentDependency="true" />
6 <package id="Nerdbank.GitVersioning" version="3.3.37" targetFramework="native" developmentDependency="true" /> 6 <package id="Nerdbank.GitVersioning" version="3.3.37" targetFramework="native" developmentDependency="true" />
7 <package id="WixToolset.BootstrapperCore.Native" version="4.0.38" targetFramework="native" /> 7 <package id="WixToolset.BootstrapperCore.Native" version="4.0.54" targetFramework="native" />
8 <package id="WixToolset.DUtil" version="4.0.55" targetFramework="native" /> 8 <package id="WixToolset.DUtil" version="4.0.56" targetFramework="native" />
9</packages> \ No newline at end of file 9</packages> \ No newline at end of file
diff --git a/src/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj b/src/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj
index 53d14cd7..a57c6f01 100644
--- a/src/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj
+++ b/src/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj
@@ -4,8 +4,8 @@
4 4
5<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 5<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
6 <Import Project="..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.props" Condition="Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.props')" /> 6 <Import Project="..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.props" Condition="Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.props')" />
7 <Import Project="..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props')" /> 7 <Import Project="..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props')" />
8 <Import Project="..\..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props" Condition="Exists('..\..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props')" /> 8 <Import Project="..\..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props" Condition="Exists('..\..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props')" />
9 <ItemGroup Label="ProjectConfigurations"> 9 <ItemGroup Label="ProjectConfigurations">
10 <ProjectConfiguration Include="Debug|Win32"> 10 <ProjectConfiguration Include="Debug|Win32">
11 <Configuration>Debug</Configuration> 11 <Configuration>Debug</Configuration>
@@ -67,7 +67,7 @@
67 </PropertyGroup> 67 </PropertyGroup>
68 <Error Condition="!Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.props'))" /> 68 <Error Condition="!Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.props'))" />
69 <Error Condition="!Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.targets'))" /> 69 <Error Condition="!Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.targets'))" />
70 <Error Condition="!Exists('..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props'))" /> 70 <Error Condition="!Exists('..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props'))" />
71 <Error Condition="!Exists('..\..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props'))" /> 71 <Error Condition="!Exists('..\..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props'))" />
72 </Target> 72 </Target>
73</Project> 73</Project>
diff --git a/src/test/BalUtilUnitTest/packages.config b/src/test/BalUtilUnitTest/packages.config
index b8423837..e3b144e6 100644
--- a/src/test/BalUtilUnitTest/packages.config
+++ b/src/test/BalUtilUnitTest/packages.config
@@ -10,6 +10,6 @@
10 <package id="xunit.runner.visualstudio" version="2.4.1" /> 10 <package id="xunit.runner.visualstudio" version="2.4.1" />
11 <package id="WixBuildTools.TestSupport" version="4.0.47" /> 11 <package id="WixBuildTools.TestSupport" version="4.0.47" />
12 <package id="WixBuildTools.TestSupport.Native" version="4.0.47" /> 12 <package id="WixBuildTools.TestSupport.Native" version="4.0.47" />
13 <package id="WixToolset.BootstrapperCore.Native" version="4.0.38" targetFramework="native" /> 13 <package id="WixToolset.BootstrapperCore.Native" version="4.0.54" targetFramework="native" />
14 <package id="WixToolset.DUtil" version="4.0.55" targetFramework="native" /> 14 <package id="WixToolset.DUtil" version="4.0.56" targetFramework="native" />
15</packages> \ No newline at end of file 15</packages> \ No newline at end of file
diff --git a/src/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj b/src/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj
index 15a1f51d..c1cf107c 100644
--- a/src/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj
+++ b/src/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj
@@ -4,8 +4,8 @@
4 4
5<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 5<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
6 <Import Project="..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.props" Condition="Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.props')" /> 6 <Import Project="..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.props" Condition="Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.props')" />
7 <Import Project="..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props')" /> 7 <Import Project="..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props')" />
8 <Import Project="..\..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props" Condition="Exists('..\..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props')" /> 8 <Import Project="..\..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props" Condition="Exists('..\..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props')" />
9 <ItemGroup Label="ProjectConfigurations"> 9 <ItemGroup Label="ProjectConfigurations">
10 <ProjectConfiguration Include="Debug|Win32"> 10 <ProjectConfiguration Include="Debug|Win32">
11 <Configuration>Debug</Configuration> 11 <Configuration>Debug</Configuration>
@@ -66,7 +66,7 @@
66 </PropertyGroup> 66 </PropertyGroup>
67 <Error Condition="!Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.props'))" /> 67 <Error Condition="!Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.props'))" />
68 <Error Condition="!Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.targets'))" /> 68 <Error Condition="!Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.targets'))" />
69 <Error Condition="!Exists('..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props'))" /> 69 <Error Condition="!Exists('..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props'))" />
70 <Error Condition="!Exists('..\..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props'))" /> 70 <Error Condition="!Exists('..\..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props'))" />
71 </Target> 71 </Target>
72</Project> 72</Project>
diff --git a/src/test/BextUtilUnitTest/packages.config b/src/test/BextUtilUnitTest/packages.config
index b8423837..e3b144e6 100644
--- a/src/test/BextUtilUnitTest/packages.config
+++ b/src/test/BextUtilUnitTest/packages.config
@@ -10,6 +10,6 @@
10 <package id="xunit.runner.visualstudio" version="2.4.1" /> 10 <package id="xunit.runner.visualstudio" version="2.4.1" />
11 <package id="WixBuildTools.TestSupport" version="4.0.47" /> 11 <package id="WixBuildTools.TestSupport" version="4.0.47" />
12 <package id="WixBuildTools.TestSupport.Native" version="4.0.47" /> 12 <package id="WixBuildTools.TestSupport.Native" version="4.0.47" />
13 <package id="WixToolset.BootstrapperCore.Native" version="4.0.38" targetFramework="native" /> 13 <package id="WixToolset.BootstrapperCore.Native" version="4.0.54" targetFramework="native" />
14 <package id="WixToolset.DUtil" version="4.0.55" targetFramework="native" /> 14 <package id="WixToolset.DUtil" version="4.0.56" targetFramework="native" />
15</packages> \ No newline at end of file 15</packages> \ No newline at end of file