diff options
author | Sean Hall <r.sean.hall@gmail.com> | 2022-11-10 22:47:39 -0600 |
---|---|---|
committer | Sean Hall <r.sean.hall@gmail.com> | 2022-11-10 23:49:10 -0600 |
commit | 3f6a633769a9c732db765411ef9b810133ad3957 (patch) | |
tree | 043fd70f207060bd29933315b6221607e27fdd5c /src/api | |
parent | fa393914f12f6d6bc88a73e4d5b009da765f6dd5 (diff) | |
download | wix-3f6a633769a9c732db765411ef9b810133ad3957.tar.gz wix-3f6a633769a9c732db765411ef9b810133ad3957.tar.bz2 wix-3f6a633769a9c732db765411ef9b810133ad3957.zip |
Add GetRelatedBundleVariable to managed IBootstrapperEngine.
Diffstat (limited to 'src/api')
-rw-r--r-- | src/api/burn/WixToolset.Mba.Core/BalUtil.cs | 8 | ||||
-rw-r--r-- | src/api/burn/WixToolset.Mba.Core/Engine.cs | 20 | ||||
-rw-r--r-- | src/api/burn/WixToolset.Mba.Core/IBootstrapperEngine.cs | 11 | ||||
-rw-r--r-- | src/api/burn/WixToolset.Mba.Core/IEngine.cs | 7 | ||||
-rw-r--r-- | src/api/burn/mbanative/mbanative.def | 1 |
5 files changed, 47 insertions, 0 deletions
diff --git a/src/api/burn/WixToolset.Mba.Core/BalUtil.cs b/src/api/burn/WixToolset.Mba.Core/BalUtil.cs index 4c949a5a..e8b0b7c0 100644 --- a/src/api/burn/WixToolset.Mba.Core/BalUtil.cs +++ b/src/api/burn/WixToolset.Mba.Core/BalUtil.cs | |||
@@ -36,6 +36,14 @@ namespace WixToolset.Mba.Core | |||
36 | ); | 36 | ); |
37 | 37 | ||
38 | [DllImport("mbanative.dll", ExactSpelling = true)] | 38 | [DllImport("mbanative.dll", ExactSpelling = true)] |
39 | internal static extern int BalGetRelatedBundleVariableFromEngine( | ||
40 | [MarshalAs(UnmanagedType.Interface)] IBootstrapperEngine pEngine, | ||
41 | [MarshalAs(UnmanagedType.LPWStr)] string wzBundleId, | ||
42 | [MarshalAs(UnmanagedType.LPWStr)] string wzVariable, | ||
43 | ref StrUtil.StrHandle psczOut | ||
44 | ); | ||
45 | |||
46 | [DllImport("mbanative.dll", ExactSpelling = true)] | ||
39 | [return: MarshalAs(UnmanagedType.Bool)] | 47 | [return: MarshalAs(UnmanagedType.Bool)] |
40 | internal static extern bool BalVariableExistsFromEngine( | 48 | internal static extern bool BalVariableExistsFromEngine( |
41 | [MarshalAs(UnmanagedType.Interface)] IBootstrapperEngine pEngine, | 49 | [MarshalAs(UnmanagedType.Interface)] IBootstrapperEngine pEngine, |
diff --git a/src/api/burn/WixToolset.Mba.Core/Engine.cs b/src/api/burn/WixToolset.Mba.Core/Engine.cs index e7ab533b..3ff693c0 100644 --- a/src/api/burn/WixToolset.Mba.Core/Engine.cs +++ b/src/api/burn/WixToolset.Mba.Core/Engine.cs | |||
@@ -216,6 +216,26 @@ namespace WixToolset.Mba.Core | |||
216 | } | 216 | } |
217 | 217 | ||
218 | /// <inheritdoc/> | 218 | /// <inheritdoc/> |
219 | public string GetRelatedBundleVariable(string bundleId, string name) | ||
220 | { | ||
221 | StrUtil.StrHandle handle = new StrUtil.StrHandle(); | ||
222 | try | ||
223 | { | ||
224 | int ret = BalUtil.BalGetRelatedBundleVariableFromEngine(this.engine, bundleId, name, ref handle); | ||
225 | if (ret != NativeMethods.S_OK) | ||
226 | { | ||
227 | throw new Win32Exception(ret); | ||
228 | } | ||
229 | |||
230 | return handle.ToUniString(); | ||
231 | } | ||
232 | finally | ||
233 | { | ||
234 | handle.Dispose(); | ||
235 | } | ||
236 | } | ||
237 | |||
238 | /// <inheritdoc/> | ||
219 | public void LaunchApprovedExe(IntPtr hwndParent, string approvedExeForElevationId, string arguments) | 239 | public void LaunchApprovedExe(IntPtr hwndParent, string approvedExeForElevationId, string arguments) |
220 | { | 240 | { |
221 | this.LaunchApprovedExe(hwndParent, approvedExeForElevationId, arguments, 0); | 241 | this.LaunchApprovedExe(hwndParent, approvedExeForElevationId, arguments, 0); |
diff --git a/src/api/burn/WixToolset.Mba.Core/IBootstrapperEngine.cs b/src/api/burn/WixToolset.Mba.Core/IBootstrapperEngine.cs index 408c9955..eca8dda1 100644 --- a/src/api/burn/WixToolset.Mba.Core/IBootstrapperEngine.cs +++ b/src/api/burn/WixToolset.Mba.Core/IBootstrapperEngine.cs | |||
@@ -278,6 +278,17 @@ namespace WixToolset.Mba.Core | |||
278 | [MarshalAs(UnmanagedType.LPWStr)] string wzVersion2, | 278 | [MarshalAs(UnmanagedType.LPWStr)] string wzVersion2, |
279 | [MarshalAs(UnmanagedType.I4)] out int pnResult | 279 | [MarshalAs(UnmanagedType.I4)] out int pnResult |
280 | ); | 280 | ); |
281 | |||
282 | /// <summary> | ||
283 | /// See <see cref="IEngine.GetRelatedBundleVariable(string, string)"/>. | ||
284 | /// </summary> | ||
285 | [PreserveSig] | ||
286 | int GetRelatedBundleVariable( | ||
287 | [MarshalAs(UnmanagedType.LPWStr)] string wzBundleId, | ||
288 | [MarshalAs(UnmanagedType.LPWStr)] string wzVariable, | ||
289 | IntPtr wzValue, | ||
290 | ref IntPtr pcchValue | ||
291 | ); | ||
281 | } | 292 | } |
282 | 293 | ||
283 | /// <summary> | 294 | /// <summary> |
diff --git a/src/api/burn/WixToolset.Mba.Core/IEngine.cs b/src/api/burn/WixToolset.Mba.Core/IEngine.cs index 2b9a90e0..7ffa80d7 100644 --- a/src/api/burn/WixToolset.Mba.Core/IEngine.cs +++ b/src/api/burn/WixToolset.Mba.Core/IEngine.cs | |||
@@ -105,6 +105,13 @@ namespace WixToolset.Mba.Core | |||
105 | string GetVariableVersion(string name); | 105 | string GetVariableVersion(string name); |
106 | 106 | ||
107 | /// <summary> | 107 | /// <summary> |
108 | /// Gets persisted variables from a related bundle. | ||
109 | /// </summary> | ||
110 | /// <param name="bundleId">The BundleId of the related bundle.</param> | ||
111 | /// <param name="name">The name of the variable.</param> | ||
112 | string GetRelatedBundleVariable(string bundleId, string name); | ||
113 | |||
114 | /// <summary> | ||
108 | /// Launches a preapproved executable elevated. As long as the engine already elevated, there will be no UAC prompt. | 115 | /// Launches a preapproved executable elevated. As long as the engine already elevated, there will be no UAC prompt. |
109 | /// </summary> | 116 | /// </summary> |
110 | /// <param name="hwndParent">The parent window of the elevation dialog (if the engine hasn't elevated yet).</param> | 117 | /// <param name="hwndParent">The parent window of the elevation dialog (if the engine hasn't elevated yet).</param> |
diff --git a/src/api/burn/mbanative/mbanative.def b/src/api/burn/mbanative/mbanative.def index 4bad14d0..b7a858df 100644 --- a/src/api/burn/mbanative/mbanative.def +++ b/src/api/burn/mbanative/mbanative.def | |||
@@ -6,6 +6,7 @@ EXPORTS | |||
6 | BalFormatStringFromEngine | 6 | BalFormatStringFromEngine |
7 | BalGetStringVariableFromEngine | 7 | BalGetStringVariableFromEngine |
8 | BalGetVersionVariableFromEngine | 8 | BalGetVersionVariableFromEngine |
9 | BalGetRelatedBundleVariableFromEngine | ||
9 | BalVariableExistsFromEngine | 10 | BalVariableExistsFromEngine |
10 | InitializeFromCreateArgs | 11 | InitializeFromCreateArgs |
11 | StoreBAInCreateResults | 12 | StoreBAInCreateResults |