C# und Lotus Notes

gremgiz

Grünschnabel
Hallo,

ich möchte aus C# heraus eine E-Mail an Lotus Notes übergeben (an eine spezielle Datenbank). Diese soll in Notes berabeitet werden können. Wie muss ich das anstellen? Irgendwie tappe ich im dunkeln....

Danke
Gremgiz
 
Schade keine Hinweise. Dann popste ich mal selber was dazu...

Ein Suche hat folgende wunderbare Seite ausgespuckt, die das ganze sehr gut erklärt

http://www-10.lotus.com/ldd/nd6foru...eec5ab3fe7e76515852571250005b618?OpenDocument

ich habe den Code bei mir entsprechend angepasst und es läft auch schon ganz gut. Ein paar Probleme bestehen noch.

Hier erstmal die Übersetzung der Zeilen nach C#

VBA: session=CreateObject("Notes.NotesSession)

In C# sieht das ganze dann so aus:
Type NotesSessionType = Type.GetTypeFromProgID("Notes.NotesSession");
object NotesSession = Activator.CreateInstance(NotesSessionType);

Danach kann man dann mit InvokeMember auf die Elemete zugreifen und alles machen. Es ist zwar nicht so übersichtlich wie in VBA tut aber wunderbar.

Nun kurz zu meinem Problem:
Ein Aufruf heißt wie folgt:
object[] Mime_Settings = { (Object)false };

try
{
object Mime = NotesSessionType.InvokeMember("ConvertMIME", BindingFlags.SetProperty, null, NotesSession, Mime_Settings);
}
catch (TargetInvocationException ex)
{
MessageBox.Show(ex.InnerException.Source.ToString());
}

Leider kommt da immer ne Fehlermeldung 0x8000FFFF E_UNEXPECTED. Kann sich das jemand erklären?
 
Hi,

Ich habe ien wenig gespielt und herausgefunden, dass:

Type NotesSessionType = Type.GetTypeFromProgID("Notes.NotesSession");
object NotesSession = Activator.CreateInstance(NotesSessionType);

bool obj = (bool)NotesSessionType.InvokeMember("ConvertMIME", BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic |
BindingFlags.Instance | BindingFlags.GetProperty, null, NotesSession, null);

Wunderbar funktioniert. Nur wenn ich danach aufrufe:

NotesSessionType.InvokeMember("ConvertMIME", BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.SetProperty, null, NotesSession, new object[] {false});

Knallt es mit „TargetInvocationException“. HRESULT: 0x8000FFFF (E_UNEXPECTED). Kann mir irgendjemand sagen was ich da falsch mache?
 
Hallo,

scheinbar beißen sich da mehrere Leute die Zähne dran aus. Ich möchte mich erst einmal bei allen bedanken, die sich darüber den Kopf zerbrochen haben. Ich für meinen Teil habe es jetzt so gelöst, dass ich in VB eine DLL geschrieben habe, die ich über C# einbinde. Manchmal ist VB doch die bessere Alternative

Falls noch Ideen bestehen, bitte posten.

Gruß
Gremgiz
 
Zurück