2012-06-06 13 views
5

Mam aplikację, w której pliki z systemu plików, wiadomości e-mail z programu Outlook lub załączniki z programu Outlook są przeciągane i upuszczane, a kod następnie zapisuje je w foldery systemu plików do przesłania do SharePoint w późniejszym czasie.Pobieranie zawartości DragDrop EventArgs dla osadzonego załącznika MSG z programu Outlook jest przeciągane na formant

To wszystko jest w porządku z wyjątkiem, gdy trzeba określić zawartość załącznik która jest e (polegającą na e-maila na wiadomość email - osadzony MSG) gdy FileContents są puste. Czy istnieje sposób, w jaki mogę uzyskać dostęp do zawartości wiadomości e-mail w celu zapisania jej jako pliku .msg?

Poniższy fragment kodu tworzy MemoryStream poprawnie załączników, które nie są e-maile, ale ma wartość null dla typów e-mail:

void DoDrop(object sender, DragEventArgs e) 
{ 
    var memoryStream = (MemoryStream) eventArgs.Data.GetData("FileContents", true); 
} 

Odpowiedz

0

nie jestem w stanie odtworzyć to zachowanie. Użyłem powyższego przykładowego kodu i działa on doskonale przeciągając osadzone MSG z okienka podglądu Eksploratora lub okna Inspektora. Musi być coś, czego nie dzielisz się z nami w sprawie osadzonego MSG. What is the attachment type?

Proponuję także review the CodeProject sample for Outlook Drag-n-Drop. Twój przykładowy kod nie jest brany pod uwagę, gdy do aplikacji zostanie upuszczonych wiele elementów - zajmie to tylko pierwszy element, jeśli użytkownik wybierze (2) załączniki, (3) e-maile, (5) pliki itp.

+0

Powracam teraz do tego kodu, ponieważ problem znów podniósł głowę. Przykładowy kod powyżej był częścią prototypu. Rzeczywisty kod dotyczy wielu plików. Dzieje się tak, gdy utworzę przykładowy e-mail i załączę go do e-maila, więc nie jestem pewien, jakie są różnice. Zbadam typ załącznika. – Catherine

0

Mam rozszerzony kontroler listbox i vb.net, który obsługuje operacje przeciągania i upuszczania, w tym wiadomości e-mail z Outlooka. Mam taki sam problem, jak wskazałeś w oryginalnym wpisie. Podczas upuszczania załączników, które składają się z osadzonych plików .msg, funkcja GetData zwraca wartość składnika FileContents, która ma wartość null. Na razie po prostu wyświetlaję komunikat do użytkownika, wskazując, że powinien najpierw upuścić załącznik na pulpicie, a następnie przeciągnąć go do aplikacji. Wydaje się to działać, ponieważ system operacyjny Windows zajmuje się wyodrębnianiem danych i przechowywaniem ich jako pliku .msg (który sam z siebie sam się przeciąga i upuszcza).

Znalazłem również kilka przykładów C#, jak to zrobić, ale nie udało się ponownie utworzyć ich w vb.net. Najbardziej przydatny był na codeproject.com i został nazwany "Outlook Przeciągnij i upuść w C#" przez Davida Ewen, 28 lipca 2008 roku. Zajmuje się zarówno wieloma załącznikami i załącznikami, które są wiadomościami programu Outlook. Ponieważ jest napisany w języku C#, być może znajdziesz go w jakimś celu.

Wiem, że łamam zasady, pytając, ale jeśli znalazłeś lepszą rozdzielczość niż to, co oferuję, byłbym zainteresowany.

+0

Jeśli masz własne pytania, jest ono całkowicie poprawne, aby je opublikować. W przeciwnym razie rozważ gwiazdę tego pytania i kontynuuj później. Możesz również zamieścić "prośbę o aktualizację" jako commont na samym pytaniu. Witamy na stronie! –

Powiązane problemy