From 3b0337ec2c607602d92d65e7cc753188b6d992ae Mon Sep 17 00:00:00 2001 From: Perry Rapp Date: Wed, 22 Oct 2003 23:28:02 +0000 Subject: [PATCH] Fix MakeResDll to not create keys not found. --- Src/readme.txt | 2 ++ Tools/MakeResDll/MakeResDll.cpp | 19 +++++++++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/Src/readme.txt b/Src/readme.txt index ce3471a1f..ceccdd6ff 100644 --- a/Src/readme.txt +++ b/Src/readme.txt @@ -9,6 +9,8 @@ MakeResDll: MakeResDll.cpp MakeResDll.rc Add readme.txt to MakeResDll. MakeResDll: MakeResDll.dsp readme.txt + Fix MakeResDll to not create keys not found. + MakeResDll: MakeResDll.cpp 2003-10-22 WinMerge experimental release 2.1.3.4 (cvs) diff --git a/Tools/MakeResDll/MakeResDll.cpp b/Tools/MakeResDll/MakeResDll.cpp index c3aaef04f..11b0304fe 100755 --- a/Tools/MakeResDll/MakeResDll.cpp +++ b/Tools/MakeResDll/MakeResDll.cpp @@ -399,17 +399,24 @@ void Status(UINT idstrText, LPCTSTR szText1 /*= NULL*/, LPCTSTR szText2 /*= NULL } +// Find locations of RC compiler and linker void InitModulePaths() { - // read RC compiler locations - CRegKeyEx reg; + // Initialize module variables gsRCExe = _T(""); gsLinkExe = _T(""); gsVcBaseFolder = _T(""); gsIncludes = _T(""); gsLibs = _T(""); + + // All our work is looking for entries in the registry + CRegKeyEx reg; + + // Strategy is that we keep looking until gsVcBaseFolder has a value + + // Check for user-configured overrides LPCTSTR settings = _T("Software\\Thingamahoochie\\MakeResDll\\Settings"); - if (reg.Open(HKEY_CURRENT_USER, settings) == ERROR_SUCCESS) + if (reg.OpenNoCreateWithAccess(HKEY_CURRENT_USER, settings, KEY_QUERY_VALUE) == ERROR_SUCCESS) { gsVcBaseFolder = reg.ReadString(_T("VcBaseFolder"), _T("")); gsRCExe = reg.ReadString(_T("RCExe"), _T("")); @@ -438,7 +445,7 @@ void InitModulePaths() // check for devstudio 6 LPCTSTR dirs6 = _T("Software\\Microsoft\\DevStudio\\6.0\\Directories"); if (gsVcBaseFolder.IsEmpty() - && reg.Open(HKEY_CURRENT_USER, dirs6) == ERROR_SUCCESS) + && reg.OpenNoCreateWithAccess(HKEY_CURRENT_USER, dirs6, KEY_QUERY_VALUE) == ERROR_SUCCESS) { gsVcBaseFolder = reg.ReadString(_T("Install Dirs"), _T("")); reg.Close(); @@ -460,7 +467,7 @@ void InitModulePaths() // check for devstudio 5 LPCTSTR dirs5 = _T("Software\\Microsoft\\DevStudio\\5.0\\Directories"); if (gsVcBaseFolder.IsEmpty() - && reg.Open(HKEY_CURRENT_USER, dirs5) == ERROR_SUCCESS) + && reg.OpenNoCreateWithAccess(HKEY_CURRENT_USER, dirs5, KEY_QUERY_VALUE) == ERROR_SUCCESS) { gsVcBaseFolder = reg.ReadString(_T("ProductDir"), _T("")); reg.Close(); @@ -475,7 +482,7 @@ void InitModulePaths() LPCTSTR moredirs5 = _T("Software\\Microsoft\\DevStudio\\5.0\\Build System\\Components\\Platforms\\Win32 (x86)\\Directories"); - if (reg.Open(HKEY_CURRENT_USER, moredirs5) == ERROR_SUCCESS) + if (reg.OpenNoCreateWithAccess(HKEY_CURRENT_USER, moredirs5, KEY_QUERY_VALUE) == ERROR_SUCCESS) { gsIncludes = reg.ReadString(_T("Include Dirs"), _T("")); gsLibs = reg.ReadString(_T("Library Dirs"), _T("")); -- 2.11.0