diff options
author | Eric StJohn <ericstj@microsoft.com> | 2021-08-30 15:26:42 -0700 |
---|---|---|
committer | Eric StJohn <ericstj@microsoft.com> | 2021-08-30 15:26:42 -0700 |
commit | 495370ff9311d406da9c043cd208ce836a0303ff (patch) | |
tree | ac5aa19b393dce498ad1938a0ce7410eceff93ba /src/burn | |
parent | a4dc574fa13d828614058906c4e99fcb45965fe5 (diff) | |
download | wix-495370ff9311d406da9c043cd208ce836a0303ff.tar.gz wix-495370ff9311d406da9c043cd208ce836a0303ff.tar.bz2 wix-495370ff9311d406da9c043cd208ce836a0303ff.zip |
Add NativeMachine to Burn and WIX_NATIVE_MACHINE to UtilExtension
Diffstat (limited to 'src/burn')
-rw-r--r-- | src/burn/engine/variable.cpp | 25 | ||||
-rw-r--r-- | src/burn/test/BurnUnitTest/VariableTest.cpp | 1 |
2 files changed, 26 insertions, 0 deletions
diff --git a/src/burn/engine/variable.cpp b/src/burn/engine/variable.cpp index e7391a9f..e81704ce 100644 --- a/src/burn/engine/variable.cpp +++ b/src/burn/engine/variable.cpp | |||
@@ -97,6 +97,10 @@ static HRESULT InitializeVariableVersionNT( | |||
97 | __in DWORD_PTR dwpData, | 97 | __in DWORD_PTR dwpData, |
98 | __inout BURN_VARIANT* pValue | 98 | __inout BURN_VARIANT* pValue |
99 | ); | 99 | ); |
100 | static HRESULT InitializeVariableNativeMachine( | ||
101 | __in DWORD_PTR dwpData, | ||
102 | __inout BURN_VARIANT* pValue | ||
103 | ); | ||
100 | static HRESULT InitializeVariableOsInfo( | 104 | static HRESULT InitializeVariableOsInfo( |
101 | __in DWORD_PTR dwpData, | 105 | __in DWORD_PTR dwpData, |
102 | __inout BURN_VARIANT* pValue | 106 | __inout BURN_VARIANT* pValue |
@@ -223,6 +227,7 @@ extern "C" HRESULT VariableInitialize( | |||
223 | {L"LocalAppDataFolder", InitializeVariableCsidlFolder, CSIDL_LOCAL_APPDATA}, | 227 | {L"LocalAppDataFolder", InitializeVariableCsidlFolder, CSIDL_LOCAL_APPDATA}, |
224 | {VARIABLE_LOGONUSER, InitializeVariableLogonUser, 0}, | 228 | {VARIABLE_LOGONUSER, InitializeVariableLogonUser, 0}, |
225 | {L"MyPicturesFolder", InitializeVariableCsidlFolder, CSIDL_MYPICTURES}, | 229 | {L"MyPicturesFolder", InitializeVariableCsidlFolder, CSIDL_MYPICTURES}, |
230 | {L"NativeMachine", InitializeVariableNativeMachine, 0}, | ||
226 | {L"NTProductType", InitializeVariableOsInfo, OS_INFO_VARIABLE_NTProductType}, | 231 | {L"NTProductType", InitializeVariableOsInfo, OS_INFO_VARIABLE_NTProductType}, |
227 | {L"NTSuiteBackOffice", InitializeVariableOsInfo, OS_INFO_VARIABLE_NTSuiteBackOffice}, | 232 | {L"NTSuiteBackOffice", InitializeVariableOsInfo, OS_INFO_VARIABLE_NTSuiteBackOffice}, |
228 | {L"NTSuiteDataCenter", InitializeVariableOsInfo, OS_INFO_VARIABLE_NTSuiteDataCenter}, | 233 | {L"NTSuiteDataCenter", InitializeVariableOsInfo, OS_INFO_VARIABLE_NTSuiteDataCenter}, |
@@ -1827,6 +1832,26 @@ LExit: | |||
1827 | return hr; | 1832 | return hr; |
1828 | } | 1833 | } |
1829 | 1834 | ||
1835 | static HRESULT InitializeVariableNativeMachine( | ||
1836 | __in DWORD_PTR dwpData, | ||
1837 | __inout BURN_VARIANT* pValue | ||
1838 | ) | ||
1839 | { | ||
1840 | UNREFERENCED_PARAMETER(dwpData); | ||
1841 | |||
1842 | HRESULT hr = S_OK; | ||
1843 | USHORT usNativeMachine = IMAGE_FILE_MACHINE_UNKNOWN; | ||
1844 | |||
1845 | hr = ProcNativeMachine(::GetCurrentProcess(), &usNativeMachine); | ||
1846 | ExitOnFailure(hr, "Failed to get native machine value."); | ||
1847 | |||
1848 | hr = BVariantSetNumeric(pValue, usNativeMachine); | ||
1849 | ExitOnFailure(hr, "Failed to set variant value."); | ||
1850 | |||
1851 | LExit: | ||
1852 | return hr; | ||
1853 | } | ||
1854 | |||
1830 | static HRESULT InitializeVariableComputerName( | 1855 | static HRESULT InitializeVariableComputerName( |
1831 | __in DWORD_PTR dwpData, | 1856 | __in DWORD_PTR dwpData, |
1832 | __inout BURN_VARIANT* pValue | 1857 | __inout BURN_VARIANT* pValue |
diff --git a/src/burn/test/BurnUnitTest/VariableTest.cpp b/src/burn/test/BurnUnitTest/VariableTest.cpp index 259fb468..2ae829dc 100644 --- a/src/burn/test/BurnUnitTest/VariableTest.cpp +++ b/src/burn/test/BurnUnitTest/VariableTest.cpp | |||
@@ -477,6 +477,7 @@ namespace Bootstrapper | |||
477 | Assert::Equal(E_INVALIDARG, hr); | 477 | Assert::Equal(E_INVALIDARG, hr); |
478 | Assert::False(EvaluateConditionHelper(&variables, L"VersionNT = \"VAL\"")); | 478 | Assert::False(EvaluateConditionHelper(&variables, L"VersionNT = \"VAL\"")); |
479 | 479 | ||
480 | VariableGetNumericHelper(&variables, L"NativeMachine"); | ||
480 | VariableGetNumericHelper(&variables, L"NTProductType"); | 481 | VariableGetNumericHelper(&variables, L"NTProductType"); |
481 | VariableGetNumericHelper(&variables, L"NTSuiteBackOffice"); | 482 | VariableGetNumericHelper(&variables, L"NTSuiteBackOffice"); |
482 | VariableGetNumericHelper(&variables, L"NTSuiteDataCenter"); | 483 | VariableGetNumericHelper(&variables, L"NTSuiteDataCenter"); |