summaryrefslogtreecommitdiff
path: root/setup_native/source/win32/customactions/reg4msdoc/registrationcontextinformation.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'setup_native/source/win32/customactions/reg4msdoc/registrationcontextinformation.hxx')
-rw-r--r--setup_native/source/win32/customactions/reg4msdoc/registrationcontextinformation.hxx158
1 files changed, 158 insertions, 0 deletions
diff --git a/setup_native/source/win32/customactions/reg4msdoc/registrationcontextinformation.hxx b/setup_native/source/win32/customactions/reg4msdoc/registrationcontextinformation.hxx
new file mode 100644
index 000000000000..aeb6c86c2c3c
--- /dev/null
+++ b/setup_native/source/win32/customactions/reg4msdoc/registrationcontextinformation.hxx
@@ -0,0 +1,158 @@
+// MsOfficeDocumentInformation.h: Schnittstelle f�r die Klasse MsOfficeDocumentInformation.
+//
+//////////////////////////////////////////////////////////////////////
+
+#ifndef _REGISTRATIONCONTEXTINFORMATION_HXX_
+#define _REGISTRATIONCONTEXTINFORMATION_HXX_
+
+#ifdef _MSC_VER
+#pragma warning(push, 1) /* disable warnings within system headers */
+#endif
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#include <msi.h>
+#ifdef _MSC_VER
+#pragma warning(pop)
+#endif
+
+#include <string>
+
+/** A simple implementation class that returns the
+ appropriate display names for the Microsoft
+ Office document types.
+ Under Windows 9x this class checks if the
+ document display name is convertable to an ANSI
+ string and if not returns an english default.
+ So we avoid garbage if soemone for instance
+ installs an japanese StarOffice/OpenOffice
+ under a German Windows 98 for instance.
+*/
+class RegistrationContextInformation
+{
+public:
+
+ enum SHELL_COMMAND {New, Open, Print, Printto};
+ enum OFFICE_APPLICATION {Office, Writer, Calc, Impress};
+
+ RegistrationContextInformation(MSIHANDLE hMsi, const std::wstring& OpenOfficeExecutablePath);
+
+ /** Word document information
+ The icon index is the index of the icon
+ in soffice.exe to be associated with
+ word document files
+ */
+ std::wstring GetWordDocumentDisplayName() const;
+ std::wstring GetWordDocumentFileExtension() const;
+ std::wstring GetWordDocumentDefaultIconEntry() const;
+ std::wstring GetWordDocumentDefaultShellCommand() const;
+
+ /** Word template information
+ The icon index is the index of the icon
+ in soffice.exe to be associated with
+ word template files
+ */
+ std::wstring GetWordTemplateDisplayName() const;
+ std::wstring GetWordTemplateFileExtension() const;
+ std::wstring GetWordTemplateDefaultIconEntry() const;
+ std::wstring GetWordTemplateDefaultShellCommand() const;
+
+ /** Rtf document information
+ The icon index is the index of the icon
+ in soffice.exe to be associated with
+ rtf document files
+ */
+ std::wstring GetRtfDocumentDisplayName() const;
+ std::wstring GetRtfDocumentFileExtension() const;
+ std::wstring GetRtfDocumentDefaultIconEntry() const;
+ std::wstring GetRtfDocumentDefaultShellCommand() const;
+
+ /** Excel sheet information
+ The icon index is the index of the icon
+ in soffice.exe to be associated with
+ Excel sheets
+ */
+ std::wstring GetExcelSheetDisplayName() const;
+ std::wstring GetExcelSheetFileExtension() const;
+ std::wstring GetExcelSheetDefaultIconEntry() const;
+ std::wstring GetExcelSheetDefaultShellCommand() const;
+
+ /** Excel template information
+ The icon index is the index of the icon
+ in soffice.exe to be associated with
+ Excel template files
+ */
+ std::wstring GetExcelTemplateDisplayName() const;
+ std::wstring GetExcelTemplateFileExtension() const;
+ std::wstring GetExcelTemplateDefaultIconEntry() const;
+ std::wstring GetExcelTemplateDefaultShellCommand() const;
+
+ /** PowerPoint document information
+ The icon index is the index of the icon
+ in soffice.exe to be associated with
+ PowerPoint document files
+ */
+ std::wstring GetPowerPointDocumentDisplayName() const;
+ std::wstring GetPowerPointDocumentFileExtension() const;
+ std::wstring GetPowerPointDocumentDefaultIconEntry() const;
+ std::wstring GetPowerPointDocumentDefaultShellCommand() const;
+
+ /** PowerPoint template information
+ The icon index is the index of the icon
+ in soffice.exe to be associated with
+ PowerPoint template files
+ */
+ std::wstring GetPowerPointTemplateDisplayName() const;
+ std::wstring GetPowerPointTemplateFileExtension() const;
+ std::wstring GetPowerPointTemplateDefaultIconEntry() const;
+ std::wstring GetPowerPointTemplateDefaultShellCommand() const;
+
+ /** PowerPoint Show information
+ */
+ std::wstring GetPowerPointShowDisplayName() const;
+ std::wstring GetPowerPointShowFileExtension() const;
+ std::wstring GetPowerPointShowDefaultIconEntry() const;
+ std::wstring GetPowerPointShowDefaultShellCommand() const;
+
+ /** The string for the "New" command that should appear
+ in the Explorer context menu when someone right
+ clicks a Microsoft document
+ */
+ std::wstring ShellNewCommandDisplayName() const;
+
+ /** The string for the "Edit" command that should
+ appear in the Explorer context menu when someone
+ right clicks a document
+ */
+ std::wstring ShellEditCommandDisplayName() const;
+
+ /** A friendly name for the application
+ */
+ std::wstring GetOpenOfficeFriendlyAppName() const;
+
+ /** The path to the StarOffice/OpenOffice executable
+ */
+ std::wstring GetOpenOfficeExecutablePath() const;
+
+ /** The name of the executable (currently "soffice.exe"
+ but may change in the future, who knows)
+ */
+ std::wstring GetOpenOfficeExecutableName() const;
+
+ /** A command line for the specified shell command
+ */
+ std::wstring GetOpenOfficeCommandline(SHELL_COMMAND ShellCommand,
+ OFFICE_APPLICATION OfficeApp) const;
+
+private:
+ bool IsConvertableToAnsi(const std::wstring& String) const;
+
+ void ExtractOpenOfficeExecNameFromPath();
+
+private:
+ MSIHANDLE msihandle_;
+ bool m_IsWin9x;
+ std::wstring m_OOExecPath;
+ std::wstring m_OOExecName;
+};
+
+#endif