aboutsummaryrefslogtreecommitdiff
path: root/src/burn
diff options
context:
space:
mode:
authorEric StJohn <ericstj@microsoft.com>2021-08-30 15:26:42 -0700
committerEric StJohn <ericstj@microsoft.com>2021-08-30 15:26:42 -0700
commit495370ff9311d406da9c043cd208ce836a0303ff (patch)
treeac5aa19b393dce498ad1938a0ce7410eceff93ba /src/burn
parenta4dc574fa13d828614058906c4e99fcb45965fe5 (diff)
downloadwix-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.cpp25
-rw-r--r--src/burn/test/BurnUnitTest/VariableTest.cpp1
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 );
100static HRESULT InitializeVariableNativeMachine(
101 __in DWORD_PTR dwpData,
102 __inout BURN_VARIANT* pValue
103 );
100static HRESULT InitializeVariableOsInfo( 104static 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
1835static 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
1851LExit:
1852 return hr;
1853}
1854
1830static HRESULT InitializeVariableComputerName( 1855static 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");