Hallo zusammen,
ich verwende seit einigen Jahren in einem Projekt die Microsoft.Office.Interop.Outlook.dll.
Nun wurde die Hauptanwendung auf 64bit umgestellt.
Seit dem erhalte ich eine Fehlermeldung, sobald ich auf die Attachments einer Mail zugreifen möchte:> Fehlermeldung:
Die arithmetische Operation hat einen Überlauf verursacht.
Das ganze passiert in der 2. Zeile:
var dataObject = new OutlookDataObject(iDataObj);
filenames = (string[])dataObject.GetData("FileGroupDescriptorW");
filestreams = (MemoryStream[])dataObject.GetData("FileContents");
fileCount = filenames.Length;
StackTrace:> Fehlermeldung:
bei System.IntPtr.op_Explicit(IntPtr value)
bei MyDll.OutlookHelper.OutlookDataObject.GetData(String format, Boolean autoConvert)
Durch die Umstellung auf 64bit sind offenbar die Pointer nun vom Typ Int64.
Die Lösungen auf dem Netz "Stell doch auf 32 bit um" oder geht auf EWS, o.ä. sind beide nicht praktikabel.
Zum einen habe ich keinen Einfluss auf die Hauptanwendung und zum anderen brauche ich die Attachments einer aktuell in Outlook ausgewählten Mail.
Habe extra ein System mit 64bit Outlook aufgesetzt und mir die DLL gezogen (15.0.0.0), ohne Erfolg. Ansonsten konnte ich keine extra 64bit Version der Interop-Dll finden.
Wäre für Ideen oder Alternativen dankbar 😃
Hallo,
was ist denn MyDll.OutlookHelper.OutlookDataObject
?
Sieht aus als wäre das die Stelle, wo der Hase im Pfeffer liegt...
Gruß, MarsStein
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
Hi MarsStein,
Du hast natürlich vollkommen Recht! Dachte das wäre nur der Aufruf von der Interop-Funktion. Aber entgegen meiner Annahme, habe ich wirklich noch einen Wrapper in der DLL gefunden. Manchmal ist man eben blind...
Aus
IntPtr fileDescriptorPointer = (IntPtr)((int)fileGroupDescriptorAPointer + Marshal.SizeOf(fileGroupDescriptorAPointer));
mach
IntPtr fileDescriptorPointer = (IntPtr)((Int64)fileGroupDescriptorAPointer + Marshal.SizeOf(fileGroupDescriptorAPointer));
und schon geht´s.
Danke für den Schubs in die richtige Richtung!