summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-x[-rw-r--r--]desktop/source/app/sofficemain.cxx22
1 files changed, 20 insertions, 2 deletions
diff --git a/desktop/source/app/sofficemain.cxx b/desktop/source/app/sofficemain.cxx
index 93081b92d8f6..a0fba044922e 100644..100755
--- a/desktop/source/app/sofficemain.cxx
+++ b/desktop/source/app/sofficemain.cxx
@@ -26,6 +26,7 @@
*
************************************************************************/
+#include "sal/config.h"
#include "desktopdllapi.h"
@@ -37,14 +38,21 @@
#include <rtl/bootstrap.hxx>
#include <tools/extendapplicationenvironment.hxx>
+#if defined WNT
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#endif
+
int SVMain();
// -=-= main() -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
extern "C" int DESKTOP_DLLPUBLIC soffice_main()
{
-#if defined(ANDROID)
+#if defined ANDROID || defined WNT
try {
+#endif
+#if defined(ANDROID)
rtl::Bootstrap::setIniFilename(
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("file:///assets/program/lofficerc")));
#endif
@@ -75,10 +83,20 @@ extern "C" int DESKTOP_DLLPUBLIC soffice_main()
}
#endif
return SVMain();
-#ifdef ANDROID
+#if defined ANDROID || defined WNT
} catch (const ::com::sun::star::uno::Exception &e) {
+#if defined ANDROID
fprintf (stderr, "Not handled UNO exception at main: '%s'\n",
rtl::OUStringToOString(e.Message, RTL_TEXTENCODING_UTF8).getStr());
+#elif defined WNT
+ MessageBoxW(
+ 0,
+ reinterpret_cast< LPCWSTR >(
+ rtl::OUString("Unhandled exception:\n" + e.Message).getStr()),
+ reinterpret_cast< LPCWSTR >(rtl::OUString("Fatal Error").getStr()),
+ (MB_OK | MB_ICONERROR | MB_DEFBUTTON1 | MB_TASKMODAL
+ | MB_SETFOREGROUND | MB_TOPMOST));
+#endif
throw; // to get exception type printed
}
#endif