2013-02-11 19 views
5

Outlook 2010アドインですべての選択したメールを取得したいとします。私はこのMSDN tutorialを見つけましたが、私は、C#で初心者です、と私はかなりのコード行を理解していない:Object selObject = this.Application.ActiveExplorer().Selection[3];C#Outlookアドインで選択したメールを取得

私はSelection[]がオーバーライドされたオペレータ、C#ではインデクサーのようなものであると信じています。しかし、それを実現する方法はありますか?コードを調べると、インターフェイスだけが表示されますが、実装は表示されません。だから私はSelectionオブジェクトの構造を知らない。実際にはoperator []の後ろに何がありますか。

また、選択項目はインデックス1から始まり、0で始まらないのはなぜですか?

答えて

4

この行は、選択された3番目のメッセージを取得します。
Selection []はSelection.Item()に相当します。アイテム関数は、インデックス付きのアクセサアクセサとしてマークされています。
実装は表示されません。すべてがOutlookオブジェクトモデルにあります。
すべてのOutlookコレクションは0ではなく1で始まります。これは以前はVBで使用されていたため、Outlook Object Modelでは同じ規則が使用されています。

1

私はそれが少し遅れていることは知っていますが、この質問は検索エンジンで高く評価されています。

internal static IEnumerable<MailItem> GetSelectedEmails() 
     { 
      foreach (MailItem email in new Microsoft.Office.Interop.Outlook.Application().ActiveExplorer().Selection) 
      { 
       yield return email; 
      } 
     } 
+0

私は今VSTOで作業しています。これは私にとって助けになりました。これは私がOutlook Interopで選択した電子メールを取得するために使用するソリューションです。 +1 – Rafael

関連する問題