2013-02-11 18 views
5

Chcę uzyskać wszystkie zaznaczone wiadomości e-mail w moim dodatku Outlook 2010. Znalazłem ten MSDN tutorial, ale jestem początkujący w C#, a ja nie bardzo rozumiem tę linię kodu: Object selObject = this.Application.ActiveExplorer().Selection[3];Dodatek C# do programu Outlook otrzymują wybrane wiadomości e-mail

wierzę Selection[] jest coś takiego jak operator zastąpionej, indeksowania w C#. Ale czy jest jakiś sposób, aby zobaczyć jego wdrożenie? Jeśli przejdę przez ten kod, widzę tylko interfejsy, ale nie implementacje. Tak więc nie znam struktury obiektu Selection. Co naprawdę kryje się za operator [].

Co więcej, dlaczego wybrane pozycje zaczynają się od indeksu 1, a nie od 0?

Odpowiedz

4

Te linie pobierają trzecią wybraną wiadomość.
Wybór [] jest równoważny Selection.Item() - Funkcja pozycji jest oznaczona jako indeksowany atrybut właściwości.
Nie widać implementacji - wszystko to znajduje się w Modelu obiektowym programu Outlook.
Wszystkie kolekcje Outlooka zaczynają się od 1, a nie 0. Tak właśnie było w VB, więc model obiektowy Outlooka używa tej samej konwencji.

1

Wiem, że trochę się spóźniło, ale to pytanie znajduje się wysoko w wyszukiwarkach. Oto rozwiązanie, którego używam, aby uzyskać wybrane wiadomości e-mail w programie Outlook Interop:

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

Nigdy nie za późno, teraz pracuję z VSTO i to mi pomogło. +1 – Rafael

Powiązane problemy