GeckoFx60 messing with Outlook decimals

96 Views Asked by At

I'm implementing GeckoFx60 in an Outlook VSTO solution. As soon as I call the Xpcom.Initialize() method, all the decimals in Outlook change.

For example, the reminder dialog suggests postponing a meeting reminder for 5,00000000000 minutes. Also, the weather forecast changes from 17 degrees Celcius to 17,00000000000 degrees Celcius.

With GeckoFX45 everything is fine, but I need GeckoFx 60.

Example:
Example

It is fairly easy to reproduce the issue:

  • Open Visual studio 2013
  • New project
  • Visual C# > Office/Sharepoint > Outlook 2013 add-in
  • Edit csproj file and Change DebugInfoExeName from Office\15.0\Outlook\InstallRoot to Office\16.0\Outlook\InstallRoot
  • Change the projects targeted framework to .NET Framework 4.5
  • Nuget package manager > install geckofx-60 Windows 32bit
  • Change the ThisAddIn_Startup
        [STAThread]
        private void ThisAddIn_Startup(object sender, System.EventArgs e)
        {
            Xpcom.Initialize("Firefox");
        }

If you launch Outlook, the decimals are changed. Thread.CurrentThread.CurrentCulture and Thread.CurrentThread.CurrentUICulture are still the same before and after Initialize is called.

Even threaded, the same isses exists:

        private void ThisAddIn_Startup(object sender, System.EventArgs e)
        {
            Thread thread = new Thread(init);
            thread.TrySetApartmentState(ApartmentState.STA);
            thread.Start();
        }

        private void init()
        {
            Xpcom.Initialize("Firefox");

        }
1

There are 1 best solutions below