aboutsummaryrefslogtreecommitdiff
path: root/src/api
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2022-11-10 22:47:39 -0600
committerSean Hall <r.sean.hall@gmail.com>2022-11-10 23:49:10 -0600
commit3f6a633769a9c732db765411ef9b810133ad3957 (patch)
tree043fd70f207060bd29933315b6221607e27fdd5c /src/api
parentfa393914f12f6d6bc88a73e4d5b009da765f6dd5 (diff)
downloadwix-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.cs8
-rw-r--r--src/api/burn/WixToolset.Mba.Core/Engine.cs20
-rw-r--r--src/api/burn/WixToolset.Mba.Core/IBootstrapperEngine.cs11
-rw-r--r--src/api/burn/WixToolset.Mba.Core/IEngine.cs7
-rw-r--r--src/api/burn/mbanative/mbanative.def1
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