diff options
Diffstat (limited to 'setup_native/source/win32/customactions/reg4msdoc/userregistrar.cxx')
-rw-r--r-- | setup_native/source/win32/customactions/reg4msdoc/userregistrar.cxx | 139 |
1 files changed, 0 insertions, 139 deletions
diff --git a/setup_native/source/win32/customactions/reg4msdoc/userregistrar.cxx b/setup_native/source/win32/customactions/reg4msdoc/userregistrar.cxx deleted file mode 100644 index 03a19523d..000000000 --- a/setup_native/source/win32/customactions/reg4msdoc/userregistrar.cxx +++ /dev/null @@ -1,139 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -// UserRegistrar.cpp: Implementierung der Klasse UserRegistrar. -// -////////////////////////////////////////////////////////////////////// - -#include "userregistrar.hxx" -#include "registryvalueimpl.hxx" -#include "windowsregistry.hxx" -#include "registryexception.hxx" - -#ifdef _MSC_VER -#pragma warning(disable : 4350) -#endif - -//-------------------------------------- -/** -*/ -UserRegistrar::UserRegistrar(const RegistrationContextInformation& RegContext) : - Registrar(RegContext) -{ - RegistryKey RegKey = WindowsRegistry().GetCurrentUserKey(); - m_RootKey = RegKey->OpenSubKey(L"Software\\Classes"); -} - -//################################### -// Command -//################################### - -//-------------------------------------- -/** -*/ -void UserRegistrar::UnregisterAsHtmlEditorForInternetExplorer() const -{ - Registrar::UnregisterAsHtmlEditorForInternetExplorer(); - - DeleteHtmFileAssociationKeys(); - - try - { - RegistryKey RegKey = m_RootKey->OpenSubKey(L"Applications"); - if ((0 == RegKey->GetSubValueCount()) && (0 == RegKey->GetSubKeyCount())) - { - RegKey->Close(); - m_RootKey->DeleteSubKey(L"Applications"); - } - } - catch(RegistryKeyNotFoundException&) - { - } -} - -//-------------------------------------- -/** -*/ -void UserRegistrar::RegisterAsDefaultShellHtmlEditor() const -{ - RegistryKey LocalHtmKey = m_RootKey->CreateSubKey(L".htm"); - - if (!LocalHtmKey->HasValue(DEFAULT_VALUE_NAME)) - { - RegistryKey HKCRKey = WindowsRegistry().GetClassesRootKey(); - - if (HKCRKey->HasSubKey(L".htm")) - { - RegistryKey RootHtmKey = HKCRKey->OpenSubKey(L".htm", false); - - if (RootHtmKey->HasValue(DEFAULT_VALUE_NAME)) - { - RegistryValue RegVal = RootHtmKey->GetValue(DEFAULT_VALUE_NAME); - - std::wstring RootHtmFwdKey = RegVal->GetDataAsUniString(); - - if (HKCRKey->HasSubKey(RootHtmFwdKey)) - { - m_RootKey->CreateSubKey(RootHtmFwdKey); - LocalHtmKey->CopyValue(RootHtmKey, DEFAULT_VALUE_NAME); - } - } - } - } - - // calling base class method - Registrar::RegisterAsDefaultShellHtmlEditor(); -} - -//-------------------------------------- -/** -*/ -void UserRegistrar::UnregisterAsDefaultShellHtmlEditor() const -{ - // calling base class method - Registrar::UnregisterAsDefaultShellHtmlEditor(); - DeleteHtmFileAssociationKeys(); -} - -//-------------------------------------- -/** -*/ -void UserRegistrar::UnregisterForMsOfficeApplication( - const std::wstring& FileExtension) const -{ - /// calling base class method - Registrar::UnregisterForMsOfficeApplication(FileExtension); - - if (m_RootKey->HasSubKey(FileExtension)) - { - RegistryKey RegKey = m_RootKey->OpenSubKey(FileExtension); - - if ((0 == RegKey->GetSubKeyCount()) && (0 == RegKey->GetSubValueCount())) - { - RegKey->Close(); - m_RootKey->DeleteSubKey(FileExtension); - } - } -} - -//-------------------------------------- -/** -*/ -RegistryKey UserRegistrar::GetRootKeyForDefHtmlEditorForIERegistration() const -{ - return WindowsRegistry().GetCurrentUserKey(); -} - -//-------------------------------------- -/** -*/ -void UserRegistrar::DeleteHtmFileAssociationKeys() const -{ - // Later delete the created keys if they are empty and have not changed meanwhile. - // Remeber: if we create a new registry key in the user part of the - // registry, changes to that key via the merged key HKEY_CLASSES_ROOT - // go into the user branch HKEY_CURRENT_USER and are not visible for other users. - // so we must carefully detect if the keys have not changed in order to prevent accidentally - // deleting a key and so destroying existing associations - // See MSDN: "Merged View of HKEY_CLASSES_ROOT" -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |