Как получить выделение в теле mailItem, используя outlook addin 2007 и VSTO c # - PullRequest
4 голосов
/ 07 февраля 2012

Я хотел бы выделить текст в теле письма, а затем щелкнуть что-нибудь (кнопка на панели инструментов и т. Д.)

Outlook.Application myApplication = Globals.ThisAddIn.Application;
              Outlook.Explorer myActiveExplorer = (Outlook.Explorer)myApplication.ActiveExplorer();

              Outlook.Selection selection = myActiveExplorer.Selection;

              if (selection.Count == 1 && selection[1] is Outlook.MailItem)
              {
                    Outlook.MailItem mail = (Outlook.MailItem)selection[1];

                    mail.Copy(); // currently opened mail

                    Outlook.MailItem mailItem = (Outlook.MailItem)
                 myApplication.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem);

                    mailItem.Subject = mail.Subject;
                    mailItem.To = mail.To;

                    mailItem.Body = ?????         // copy only selected text/images of user 

                    mailItem.Importance = Outlook.OlImportance.olImportanceLow;
                    mailItem.Display(true);
              }

На mailITem.Body, я просто хочу вставитьвыделенный текст / изображения пользователя из выбранной почты (// открытая в данный момент почта).Как я могу это реализовать, я не могу найти метод вставки.Что такое выбранный элемент И он сохраняет в базе данных сервера sql

1 Ответ

4 голосов
/ 08 февраля 2012

Outlook не может получить выделенный текст в теле письма, поэтому преобразуйте Outlook в текстовый редактор, чтобы вы могли выполнить 3 шага

1. get the mail total body
2. use the word editor based on the **microsoft.office.Interop.word** dll
3.select the text and to store the any string 

код сначала добавить ссылку на dll

object oItem;
Outlook.Application oApp=new Outlook.Application();
 Outlook.Explorer oExp=oApp.ActiveExplorer();
 Outlook.Selection oSel= oExp.Selection;
 for (i = 1; i <= oSel.Count; i++)
                {
                    oItem = oSel[i];
        Outlook.MailItem oMail = (Outlook.MailItem)oItem;
Outlook.Inspector inspector = oMail.GetInspector;

            // Obtain the Word.Document object from the Inspector object
            Microsoft.Office.Interop.Word.Document document = (Microsoft.Office.Interop.Word.Document)inspector.WordEditor;
mailItem.Body = document.Application.Selection.Text;
}

Я думаю, что это полная помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...