diff options
| author | Jacob Hoover <jacob.hoover@greenheck.com> | 2021-06-11 17:05:06 -0500 |
|---|---|---|
| committer | Sean Hall <r.sean.hall@gmail.com> | 2021-07-18 14:41:21 -0500 |
| commit | f3c96bcab560cb09355e9366eac3f4195479d95d (patch) | |
| tree | 1585c1f2af7e3582e14663c29c033702e910d12f /src/libs/dutil/WixToolset.DUtil/regutil.cpp | |
| parent | 5b2b06c9bffb4e6f17409cec41bc0b4b8dab4c90 (diff) | |
| download | wix-f3c96bcab560cb09355e9366eac3f4195479d95d.tar.gz wix-f3c96bcab560cb09355e9366eac3f4195479d95d.tar.bz2 wix-f3c96bcab560cb09355e9366eac3f4195479d95d.zip | |
Allow access to persisted variables from related bundles.
Implements #3704
Diffstat (limited to 'src/libs/dutil/WixToolset.DUtil/regutil.cpp')
| -rw-r--r-- | src/libs/dutil/WixToolset.DUtil/regutil.cpp | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/libs/dutil/WixToolset.DUtil/regutil.cpp b/src/libs/dutil/WixToolset.DUtil/regutil.cpp index cb617932..458d8586 100644 --- a/src/libs/dutil/WixToolset.DUtil/regutil.cpp +++ b/src/libs/dutil/WixToolset.DUtil/regutil.cpp | |||
| @@ -672,6 +672,34 @@ LExit: | |||
| 672 | return hr; | 672 | return hr; |
| 673 | } | 673 | } |
| 674 | 674 | ||
| 675 | /******************************************************************** | ||
| 676 | RegReadNone - reads a NONE registry key value. | ||
| 677 | |||
| 678 | *********************************************************************/ | ||
| 679 | extern "C" HRESULT DAPI RegReadNone( | ||
| 680 | __in HKEY hk, | ||
| 681 | __in_z_opt LPCWSTR wzName) | ||
| 682 | { | ||
| 683 | HRESULT hr = S_OK; | ||
| 684 | DWORD er = ERROR_SUCCESS; | ||
| 685 | DWORD dwType = 0; | ||
| 686 | |||
| 687 | er = vpfnRegQueryValueExW(hk, wzName, NULL, &dwType, NULL, NULL); | ||
| 688 | if (E_FILENOTFOUND == HRESULT_FROM_WIN32(er)) | ||
| 689 | { | ||
| 690 | ExitFunction1(hr = E_FILENOTFOUND); | ||
| 691 | } | ||
| 692 | RegExitOnWin32Error(er, hr, "Failed to query registry key value."); | ||
| 693 | |||
| 694 | if (REG_NONE != dwType) | ||
| 695 | { | ||
| 696 | hr = HRESULT_FROM_WIN32(ERROR_INVALID_DATATYPE); | ||
| 697 | RegExitOnRootFailure(hr, "Error reading version registry value due to unexpected data type: %u", dwType); | ||
| 698 | } | ||
| 699 | |||
| 700 | LExit: | ||
| 701 | return hr; | ||
| 702 | } | ||
| 675 | 703 | ||
| 676 | /******************************************************************** | 704 | /******************************************************************** |
| 677 | RegReadNumber - reads a DWORD registry key value as a number. | 705 | RegReadNumber - reads a DWORD registry key value as a number. |
| @@ -886,6 +914,25 @@ LExit: | |||
| 886 | } | 914 | } |
| 887 | 915 | ||
| 888 | /******************************************************************** | 916 | /******************************************************************** |
| 917 | RegWriteNone - writes a registry key value as none. | ||
| 918 | |||
| 919 | *********************************************************************/ | ||
| 920 | extern "C" HRESULT DAPI RegWriteNone( | ||
| 921 | __in HKEY hk, | ||
| 922 | __in_z_opt LPCWSTR wzName | ||
| 923 | ) | ||
| 924 | { | ||
| 925 | HRESULT hr = S_OK; | ||
| 926 | DWORD er = ERROR_SUCCESS; | ||
| 927 | |||
| 928 | er = vpfnRegSetValueExW(hk, wzName, 0, REG_NONE, NULL, NULL); | ||
| 929 | RegExitOnWin32Error(er, hr, "Failed to set %ls value.", wzName); | ||
| 930 | |||
| 931 | LExit: | ||
| 932 | return hr; | ||
| 933 | } | ||
| 934 | |||
| 935 | /******************************************************************** | ||
| 889 | RegWriteNumber - writes a registry key value as a number. | 936 | RegWriteNumber - writes a registry key value as a number. |
| 890 | 937 | ||
| 891 | *********************************************************************/ | 938 | *********************************************************************/ |
