aboutsummaryrefslogtreecommitdiff
path: root/src/libs/dutil/WixToolset.DUtil/regutil.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/dutil/WixToolset.DUtil/regutil.cpp')
-rw-r--r--src/libs/dutil/WixToolset.DUtil/regutil.cpp47
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*********************************************************************/
679extern "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
700LExit:
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*********************************************************************/
920extern "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
931LExit:
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*********************************************************************/