Index: src/ch/ch.cpp
===================================================================
diff -u -rb2102d724fda96a2533b866dbf1efca9f499713b -r306fbe693c70290af9de9a5779084a697de22d75
--- src/ch/ch.cpp	(.../ch.cpp)	(revision b2102d724fda96a2533b866dbf1efca9f499713b)
+++ src/ch/ch.cpp	(.../ch.cpp)	(revision 306fbe693c70290af9de9a5779084a697de22d75)
@@ -475,6 +475,18 @@
 	SetAutorun(GetPropValue<PP_PRELOADAFTERRESTART>(rCfg));
 #endif
 
+	// ================================= Shell extension config =============================
+	LOG_INFO(m_spLog) << _T("Initializing shell extension configuration");
+	try
+	{
+		m_shellExtConfig = std::make_unique<TShellExtensionConfig>(m_spLog->GetLogFileData());
+		m_shellExtConfig->PrepareConfig();
+	}
+	catch(const std::exception& e)
+	{
+		LOG_ERROR(m_spLog) << L"Failed to initialize shell extension configuration. Shell extension will be inactive. Error: " << e.what();
+	}
+
 	// ================================= Main window ========================================
 	LOG_INFO(m_spLog) << _T("Creating main application window");
 	// create main window
@@ -610,6 +622,11 @@
 	return m_spEngineLoggerConfig;
 }
 
+TShellExtensionConfigPtr CCopyHandlerApp::GetShellExtensionConfig() const
+{
+	return m_shellExtConfig;
+}
+
 void CCopyHandlerApp::RegisterShellExtension() 
 {
 	CString strPath = CString(m_pathProcessor.GetProgramPath()) + _T("\\");