Gelöst.
Unten im Spoiler der Ursprungs Thread.
Das Event wurde nicht falsch gewrapped, sondern gar nicht.
Problem war die IsConnectedToExchange() Funktion, welche beim start des AddIns False geworfen hat
und dadurch der Code verlassen wurde bevor das Event überhaupt gesetzt wurde.
Ich habe nun Funktion an einer anderen und sinnvolleren stelle implementiert und nun geht alles...
Spoiler anzeigen
Unten im Spoiler der Ursprungs Thread.
Das Event wurde nicht falsch gewrapped, sondern gar nicht.
Problem war die IsConnectedToExchange() Funktion, welche beim start des AddIns False geworfen hat
und dadurch der Code verlassen wurde bevor das Event überhaupt gesetzt wurde.
Ich habe nun Funktion an einer anderen und sinnvolleren stelle implementiert und nun geht alles...
Hallo Leute,
ich möchte in meinem C# Outlook AddIn einkommende Mails auf bestimmte Daten prüfen.
Dafür habe ich für die Inbox Items einen EventHandler geschrieben.
Der triggert allerdings nie und verliert meiner schätzung nach den Scope bzw. der Handler wird nicht richtig gewrapped von mir.
Kann mir hier jemand helfen?
Innerhalb der ThisAddIn Klasse, erhalten die Inbox Items einen itemAdd EventHandler
(items_ItemAdd)
Spoiler anzeigen
Diesen lasse ich von einer unter prozedur zuweisen
(AddHandler)
Der Aufruf der AddHandler Methode passiert während dem ThisAddIn_StartUp Events
(ThisAddIn_StartUp)
Spoiler anzeigen
Und der Namespace, die Inbox und die Items sind als Member deklariert.
ich möchte in meinem C# Outlook AddIn einkommende Mails auf bestimmte Daten prüfen.
Dafür habe ich für die Inbox Items einen EventHandler geschrieben.
Der triggert allerdings nie und verliert meiner schätzung nach den Scope bzw. der Handler wird nicht richtig gewrapped von mir.
Kann mir hier jemand helfen?
Innerhalb der ThisAddIn Klasse, erhalten die Inbox Items einen itemAdd EventHandler
(items_ItemAdd)
C#-Quellcode
- private void items_ItemsAdd(object item)
- {
- try {
- if ( !( item is OutlookCOM.MailItem ) ) { return; } // go out if item is no mailitem
- var mailresponse = new MailResponse( Globals.ThisAddIn.Application ); // create MailResponse
- var itm = ( OutlookCOM.MailItem )item; // Cast the Inbox Item to a MailItem
- mailresponse.HandleVotingResponse( itm ); // Handle as VotingResult
- }
- catch (System.Runtime.InteropServices.COMException comEx) {
- System.Windows.Forms.MessageBox.Show(
- "Unknown Error occured while handling a received E-Mail.\r\n"
- + comEx.Message.ToString() );
- }
- catch (System.Exception ex) {
- System.Windows.Forms.MessageBox.Show(
- "Unknown Error occurend while handling a received E-Mail.\r\n"
- + ex.Message.ToString() );
- }
- }
Diesen lasse ich von einer unter prozedur zuweisen
(AddHandler)
Der Aufruf der AddHandler Methode passiert während dem ThisAddIn_StartUp Events
(ThisAddIn_StartUp)
C#-Quellcode
- private void ThisAddIn_Startup(object sender, System.EventArgs e)
- {
- var outlookmanager = new OutlookManager( Globals.ThisAddIn.Application ); // Check the Exchange Connection
- if ( !outlookmanager.IsConnectedToExchange() ) { return; } // If there is no Exchange connection go out
- try
- {
- _olNameSpace = Application.GetNamespace( "MAPI" ); // Get MAPI Namespace
- _inbox = _olNameSpace.GetDefaultFolder(
- OutlookCOM.OlDefaultFolders.olFolderInbox ); // Set _inbox Object for ItemAdd EventHandler
- AddHandler();
- }
- catch (System.Runtime.InteropServices.COMException comEx)
- { System.Windows.Forms.MessageBox.Show( comEx.Message.ToString() ); }
- catch (System.Exception ex)
- { System.Windows.Forms.MessageBox.Show( ex.Message.ToString() ); }
- }
Und der Namespace, die Inbox und die Items sind als Member deklariert.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Petersilie“ ()