diff options
Diffstat (limited to 'setup_native/source/win32/customactions/reg4msdoc/registrar.hxx')
-rw-r--r-- | setup_native/source/win32/customactions/reg4msdoc/registrar.hxx | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/setup_native/source/win32/customactions/reg4msdoc/registrar.hxx b/setup_native/source/win32/customactions/reg4msdoc/registrar.hxx new file mode 100644 index 000000000000..529a39d5c9c8 --- /dev/null +++ b/setup_native/source/win32/customactions/reg4msdoc/registrar.hxx @@ -0,0 +1,103 @@ +// Registrar.h: Schnittstelle f�r die Klasse Registrar. +// +////////////////////////////////////////////////////////////////////// + +#ifndef _REGISTRAR_HXX_ +#define _REGISTRAR_HXX_ + +#include "registry.hxx" +#include "registrationcontextinformation.hxx" + +#ifndef _CONSTANTS_HXX_ +#include "constants.hxx" +#endif + +class Registrar +{ +public: + + Registrar(const RegistrationContextInformation& RegContext); + + virtual ~Registrar(); + + bool IsRegisteredFor(int State) const; + + virtual void RegisterForMsWord() const; + virtual void UnregisterForMsWord() const; + virtual bool QueryPreselectMsWordRegistration() const; + + virtual void RegisterForMsExcel() const; + virtual void UnregisterForMsExcel() const; + virtual bool QueryPreselectMsExcelRegistration() const; + + virtual void RegisterForMsPowerPoint() const; + virtual void UnregisterForMsPowerPoint() const; + virtual bool QueryPreselectMsPowerPointRegistration() const; + + virtual void RegisterAsHtmlEditorForInternetExplorer() const; + virtual void UnregisterAsHtmlEditorForInternetExplorer() const; + + virtual void RegisterAsDefaultHtmlEditorForInternetExplorer() const; + virtual void UnregisterAsDefaultHtmlEditorForInternetExplorer() const; + + virtual void RegisterAsDefaultShellHtmlEditor() const; + virtual void UnregisterAsDefaultShellHtmlEditor() const; + + /** Restore the last registration state (necessary for + Setup repair) + */ + virtual void RepairRegistrationState() const; + + /** Unregisters all and delete all Registry keys we have written + */ + virtual void UnregisterAllAndCleanUpRegistry() const; + +protected: + + virtual void RegisterForMsOfficeApplication( + const std::wstring& FileExtension, + const std::wstring& DocumentDisplayName, + const std::wstring& DefaultIconEntry, + const std::wstring& DefaultShellCommand, + const std::wstring& ShellNewCommandDisplayName, + const RegistrationContextInformation::OFFICE_APPLICATION eOfficeApp) const; + + virtual void UnregisterForMsOfficeApplication( + const std::wstring& FileExtension) const; + + virtual RegistryKey GetRootKeyForDefHtmlEditorForIERegistration() const; + + void SaveRegisteredFor(int State) const; + void SaveNotRegisteredFor(int State) const; + + int GetRegisterState() const; + void SetRegisterState(int NewState) const; + + virtual bool QueryPreselectForMsApplication(const std::wstring& file_extension) const; + + /** A helper function (for readability) returns true if OpenOffice is already + registered for a MS application + + @param DocumentExtensionDefValue + The default value of the appropriate document extension Registry key + */ + bool IsOpenOfficeRegisteredForMsApplication(const std::wstring& DocumentExtensionDefValue) const; + +protected: + const RegistrationContextInformation& m_ContextInformation; + + const std::wstring FORWARD_KEY_PREFIX; + const std::wstring DEFAULT_VALUE_NAME; + const std::wstring BACKUP_VALUE_NAME; + const std::wstring PRIVATE_BACKUP_KEY_NAME; + const std::wstring REGISTRATION_STATE; + + RegistryKey m_RootKey; + +// prevent copy/assignment +private: + Registrar(const Registrar&); + Registrar& operator=(const Registrar&); +}; + +#endif |