diff options
Diffstat (limited to 'src/ext/Util/ca/OsInfo.cpp')
-rw-r--r-- | src/ext/Util/ca/OsInfo.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/ext/Util/ca/OsInfo.cpp b/src/ext/Util/ca/OsInfo.cpp index 4783673e..005407af 100644 --- a/src/ext/Util/ca/OsInfo.cpp +++ b/src/ext/Util/ca/OsInfo.cpp | |||
@@ -485,3 +485,34 @@ LExit: | |||
485 | } | 485 | } |
486 | return WcaFinalize(er); | 486 | return WcaFinalize(er); |
487 | } | 487 | } |
488 | |||
489 | /******************************************************************** | ||
490 | WixQueryNativeMachine - entry point for WixQueryNativeMachine custom action | ||
491 | |||
492 | Called as Type 1 custom action (DLL from the Binary table) from | ||
493 | Windows Installer to set properties that indicates the native machine architecture | ||
494 | ********************************************************************/ | ||
495 | extern "C" UINT __stdcall WixQueryNativeMachine( | ||
496 | __in MSIHANDLE hInstall | ||
497 | ) | ||
498 | { | ||
499 | HRESULT hr = S_OK; | ||
500 | USHORT usNativeMachine = IMAGE_FILE_MACHINE_UNKNOWN; | ||
501 | DWORD er = ERROR_SUCCESS; | ||
502 | |||
503 | hr = WcaInitialize(hInstall, "WixQueryNativeMachine"); | ||
504 | ExitOnFailure(hr, "WixQueryNativeMachine failed to initialize"); | ||
505 | |||
506 | hr = ProcNativeMachine(::GetCurrentProcess(), &usNativeMachine); | ||
507 | ExitOnFailure(hr, "Failed to get native machine value."); | ||
508 | |||
509 | if (S_FALSE != hr) | ||
510 | { | ||
511 | WcaSetIntProperty(L"WIX_NATIVE_MACHINE", usNativeMachine); | ||
512 | } | ||
513 | |||
514 | LExit: | ||
515 | if (FAILED(hr)) | ||
516 | er = ERROR_INSTALL_FAILURE; | ||
517 | return WcaFinalize(er); | ||
518 | } \ No newline at end of file | ||