2017-04-03 42 views
0

mailItemへの添付ファイルの前にoutlookプラグインで添付ファイルを取得しようとしました。添付ファイルの追加イベントOutlook AddIn

private void Inspectors_NewInspector(Outlook.Inspector Inspector) 
     { 

      if (Inspector.CurrentItem is Outlook.MailItem) 
      { 

    Outlook.MailItem mail = (Outlook.MailItem)Inspector.CurrentItem; 
        Inspector.AttachmentSelectionChange += Inspector_AttachmentSelectionChange; 
        Application.AttachmentContextMenuDisplay += Application_AttachmentContextMenuDisplay; 
        mail.BeforeAttachmentAdd += Mail_BeforeAttachmentAdd; 
        mail.AttachmentAdd += Mail_AttachmentAdd; 
        mail.BeforeAttachmentWriteToTempFile += Mail_BeforeAttachmentWriteToTempFile; 
        mail.BeforeAttachmentSave += Mail_BeforeAttachmentSave; 
}} 

私は見通しの新しいメールを作成し、この方法によるPASSE私のコードが、私は私の電子メールに添付ファイルを追加すると、イベントが解雇されることはありません。

+1

答えはこちらになります。[イベントハンドラが追加されていません新しいメールアイテム](http://stackoverflow.com/questions/24576890/event-handler-not-being-added-to-new-mail-items) –

+0

うわー...あなたの権利!ありがとう非常に –

+0

喜んでそれが助け;) –

答えて

1

あなたは、たとえば、ガベージコレクタによってdwipingからそれを防ぐために、クラスレベル(グローバルスコープ)でソースオブジェクトを宣言する必要があります。

Outlook.MailItem mail = null; 
    Outlook.Inspector inspector = null; 

    private void Inspectors_NewInspector(Outlook.Inspector Inspector) 
    { 
     inspector = Inspector; 
     object oMail = inspector.CurrentItem; 
     if (oMail is Outlook.MailItem) 
     { 

       mail = (Outlook.MailItem)oMail.CurrentItem;    
       inspector.AttachmentSelectionChange += Inspector_AttachmentSelectionChange; 
       Application.AttachmentContextMenuDisplay += Application_AttachmentContextMenuDisplay; 
       mail.BeforeAttachmentAdd += Mail_BeforeAttachmentAdd; 
       mail.AttachmentAdd += Mail_AttachmentAdd; 
       mail.BeforeAttachmentWriteToTempFile += Mail_BeforeAttachmentWriteToTempFile; 
       mail.BeforeAttachmentSave += Mail_BeforeAttachmentSave; 
     } 
    } 
関連する問題