0

Visual Studio (C#) の Outlook 2010 アドイン。

エクスプローラーから取得した .AttachmentSelection (受信トレイでメールアイテムをプレビューするとき) とインスペクターから取得した .AttachmentSelection (ダブルクリックして実際に別のウィンドウでメールを開くとき) の違いを見分ける方法を見つけようとしています) 、Outlook で添付ファイル自体を右クリックしたとき

私は次のようなことをしようとしています:

public void ButtonClick(Office.IRibbonControl control)
{
    //right clicked attachment item -> context menu
    if (control.Context is Outlook.AttachmentSelection)
    {
        if (control.Context is Outlook.Inspector)
            MessageBox.Show("inspector");
        else if (control.Context is Outlook.Explorer)
            MessageBox.Show("explorer");
     }
}

しかし、最初の「if」が有効になると、内側のものは両方とも失敗します。コンテキストが Outlook Inspector でも Outlook Explorer でもないためです。Microsoft のサンプルと説明はあまり役に立ちませんでした。コード スニペットでは、添付ファイルの送信元 (explorer\inspector) をさらに詳しく確認せずに、単にメッセージ ボックスを作成するだけだったからです。

私が必要としているのは、ユーザーが添付ファイルを右クリックする Mailitem を取得し、添付ファイルを直接処理するのではなく、そこから情報を抽出することです。

何か案が ?誰でも ?

4

2 に答える 2

1

Application クラスのActiveWindowメソッドを使用して、添付ファイルが Explorer または Inspector ウィンドウから開かれたかどうかを判断できます。このメソッドは、デスクトップ上の現在の Microsoft Outlook ウィンドウを表すオブジェクト (Explorer または Inspector オブジェクト) を返します。Outlook エクスプローラーまたはインスペクターが開いていない場合は Nothing を返します。

また、Outlook アイテムのBeforeAttachmentPreviewイベントが役立つ場合もあります。親オブジェクトのインスタンスに関連付けられた添付ファイルがプレビューされる前に発生します。つまり、このイベントは、アクティブなエクスプローラーの閲覧ウィンドウの添付ファイル ストリップまたはアクティブなインスペクターから、添付ファイルがプレビューされる前に発生します。操作をキャンセルできることに注意してください。cancel パラメータを true に設定するだけです。

于 2015-02-06T14:10:21.147 に答える
0

どうですか?msdn から直接

Outlook.MailItem mailItem = Inspector.CurrentItem as Outlook.MailItem;
if (mailItem != null)
      {
          if (mailItem.EntryID == null)
          {
              mailItem.Subject = "This text was added by using code";
              mailItem.Body = "This text was added by using code";
          }

    }
于 2015-02-06T14:03:04.603 に答える