Index: src/regchext/TExtensionDetector.cpp =================================================================== diff -u -N -re2054db3fa2be3652ca376a318d49dbaba8539ed -rb556d023b748dfea230575959b6513acf29fd7b3 --- src/regchext/TExtensionDetector.cpp (.../TExtensionDetector.cpp) (revision e2054db3fa2be3652ca376a318d49dbaba8539ed) +++ src/regchext/TExtensionDetector.cpp (.../TExtensionDetector.cpp) (revision b556d023b748dfea230575959b6513acf29fd7b3) @@ -32,6 +32,19 @@ DetectPaths(); } + +bool TExtensionDetector::HasNativePath() const +{ + return !m_strNativeBasePath.empty() && !m_strNativeExtension.empty(); +} + +#ifdef _WIN64 +bool TExtensionDetector::Has32bitPath() const +{ + return !m_str32bitBasePath.empty() && !m_str32bitExtension.empty(); +} +#endif + void TExtensionDetector::DetectPaths() { // get path of this file @@ -52,19 +65,25 @@ // find chext.dll/chext64.dll m_strNativeExtension = wstrThisPath + DLL_NATIVE; m_strNativeBasePath = wstrThisPath; - if(!PathFileExists(m_strNativeExtension.c_str())) - throw std::runtime_error("Native extension does not exist"); + if (!PathFileExists(m_strNativeExtension.c_str())) + { + m_strNativeExtension.clear(); + m_strNativeBasePath.clear(); + } #ifdef _WIN64 m_str32bitExtension = wstrThisPath + DLL_32BIT; m_str32bitBasePath = wstrThisPath; - if(!PathFileExists(m_strNativeExtension.c_str())) + if(!PathFileExists(m_str32bitExtension.c_str())) { m_str32bitExtension = wstrThisPath + L"ShellExt32\\" + DLL_32BIT; m_str32bitBasePath = wstrThisPath + L"ShellExt32\\"; - if(!PathFileExists(m_strNativeExtension.c_str())) - throw std::runtime_error("32bit extension does not exist"); + if(!PathFileExists(m_str32bitExtension.c_str())) + { + m_str32bitExtension.clear(); + m_str32bitBasePath.clear(); + } } #endif }