aboutsummaryrefslogtreecommitdiff
path: root/src/burn/engine/variable.cpp
diff options
context:
space:
mode:
authorBob Arnson <bob@firegiant.com>2023-02-09 17:17:58 -0500
committerBob Arnson <github@bobs.org>2023-02-09 20:45:37 -0500
commitcdb457d593cb09a88e73cdcd9538a66e62610cf1 (patch)
tree530f1f38c1b6c25826014c8c656fafc32fa1ff1a /src/burn/engine/variable.cpp
parent67994fcad0cc060ae750070ab58319991a9fd8a9 (diff)
downloadwix-cdb457d593cb09a88e73cdcd9538a66e62610cf1.tar.gz
wix-cdb457d593cb09a88e73cdcd9538a66e62610cf1.tar.bz2
wix-cdb457d593cb09a88e73cdcd9538a66e62610cf1.zip
Add `InstallerInformationalVersion`.
Gets "full" version (with commit id). Fixes https://github.com/wixtoolset/issues/issues/7200.
Diffstat (limited to 'src/burn/engine/variable.cpp')
-rw-r--r--src/burn/engine/variable.cpp30
1 files changed, 28 insertions, 2 deletions
diff --git a/src/burn/engine/variable.cpp b/src/burn/engine/variable.cpp
index 9b6fecaf..36dc92e0 100644
--- a/src/burn/engine/variable.cpp
+++ b/src/burn/engine/variable.cpp
@@ -193,6 +193,10 @@ static HRESULT InitializeVariableInstallerVersion(
193 __in DWORD_PTR dwpData, 193 __in DWORD_PTR dwpData,
194 __inout BURN_VARIANT* pValue 194 __inout BURN_VARIANT* pValue
195 ); 195 );
196static HRESULT InitializeVariableInstallerInformationalVersion(
197 __in DWORD_PTR dwpData,
198 __inout BURN_VARIANT* pValue
199);
196static HRESULT InitializeVariableVersion( 200static HRESULT InitializeVariableVersion(
197 __in DWORD_PTR dwpData, 201 __in DWORD_PTR dwpData,
198 __inout BURN_VARIANT* pValue 202 __inout BURN_VARIANT* pValue
@@ -244,6 +248,7 @@ extern "C" HRESULT VariableInitialize(
244 {L"FontsFolder", InitializeVariableCsidlFolder, CSIDL_FONTS}, 248 {L"FontsFolder", InitializeVariableCsidlFolder, CSIDL_FONTS},
245 {VARIABLE_INSTALLERNAME, InitializeVariableInstallerName, 0}, 249 {VARIABLE_INSTALLERNAME, InitializeVariableInstallerName, 0},
246 {VARIABLE_INSTALLERVERSION, InitializeVariableInstallerVersion, 0}, 250 {VARIABLE_INSTALLERVERSION, InitializeVariableInstallerVersion, 0},
251 {VARIABLE_INSTALLERINFORMATIONALVERSION, InitializeVariableInstallerInformationalVersion, 0},
247 {L"LocalAppDataFolder", InitializeVariableCsidlFolder, CSIDL_LOCAL_APPDATA}, 252 {L"LocalAppDataFolder", InitializeVariableCsidlFolder, CSIDL_LOCAL_APPDATA},
248 {VARIABLE_LOGONUSER, InitializeVariableLogonUser, 0}, 253 {VARIABLE_LOGONUSER, InitializeVariableLogonUser, 0},
249 {L"MyPicturesFolder", InitializeVariableCsidlFolder, CSIDL_MYPICTURES}, 254 {L"MyPicturesFolder", InitializeVariableCsidlFolder, CSIDL_MYPICTURES},
@@ -2309,7 +2314,7 @@ LExit:
2309#endif 2314#endif
2310 2315
2311static HRESULT InitializeVariable6432Folder( 2316static HRESULT InitializeVariable6432Folder(
2312 __in DWORD_PTR dwpData, 2317 __in DWORD_PTR dwpData,
2313 __inout BURN_VARIANT* pValue 2318 __inout BURN_VARIANT* pValue
2314 ) 2319 )
2315{ 2320{
@@ -2405,7 +2410,28 @@ static HRESULT InitializeVariableInstallerVersion(
2405 LPWSTR sczVersion = NULL; 2410 LPWSTR sczVersion = NULL;
2406 2411
2407 hr = StrAllocStringAnsi(&sczVersion, szVerMajorMinorBuild, 0, CP_ACP); 2412 hr = StrAllocStringAnsi(&sczVersion, szVerMajorMinorBuild, 0, CP_ACP);
2408 ExitOnFailure(hr, "Failed to copy the engine version."); 2413 ExitOnFailure(hr, "Failed to copy the engine version: %hs", szVerMajorMinorBuild);
2414
2415 // set value
2416 hr = BVariantSetString(pValue, sczVersion, 0, FALSE);
2417 ExitOnFailure(hr, "Failed to set variant value.");
2418
2419LExit:
2420 ReleaseStr(sczVersion);
2421
2422 return hr;
2423}
2424
2425static HRESULT InitializeVariableInstallerInformationalVersion(
2426 __in DWORD_PTR /*dwpData*/,
2427 __inout BURN_VARIANT* pValue
2428 )
2429{
2430 HRESULT hr = S_OK;
2431 LPWSTR sczVersion = NULL;
2432
2433 hr = StrAllocStringAnsi(&sczVersion, szInformationalVersion, 0, CP_ACP);
2434 ExitOnFailure(hr, "Failed to copy the engine informational version: %hs", szInformationalVersion);
2409 2435
2410 // set value 2436 // set value
2411 hr = BVariantSetString(pValue, sczVersion, 0, FALSE); 2437 hr = BVariantSetString(pValue, sczVersion, 0, FALSE);