diff options
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 | *********************************************************************/ |