blob: f0ddcc1f1b47c1fb1a16e31f1e414856443fd1f0 [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
// 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