Как получить выделенный текст из объекта WordEditor (в Outlook2010) и скопировать его в другую форму? - PullRequest
2 голосов
/ 18 января 2012

Я хочу скопировать выбранный текст из WordEditor (основной текст электронной почты Outlook) в другую форму, когда я искал, я нашел эту часть кода для копирования в новый документ Word с помощью Microsoft.Office.Interop.Word.Document

Outlook.MailItem mailItem;
Outlook.Inspector inspector = mailItem.GetInspector;

// Obtain the Word.Document object from the Inspector object
Word.Document document = (Word.Document)inspector.WordEditor;

// Copy the selected objects
document.Application.Selection.Copy();

я всегда получаю сообщение об ошибке с частью mailItem.GetInspector (для объекта не задан экземпляр объекта)

Ответы [ 3 ]

3 голосов
/ 18 января 2012

Вам необходимо запросить активного инспектора у объекта Application.Globals.ThisAddIn.Application.ActiveInspector() предоставит вам текущую активную ссылку инспектора, которую вы затем можете запросить CurrentItem и преобразовать в ссылку MailItem, если элемент типа MailItem( также может быть CalendarItem, TaskItem, NoteItem и т. Д. ).

2 голосов
/ 18 января 2012

для начинающих вы не используете OutLook.MailItem должным образом .. используйте что-то вроде этого в качестве теста, используйте его и внесите изменения по своему усмотрению, чтобы соответствовать вашему UseCase

public void ShowEmail(string To, string Subject, string Body)
{
    Outlook.Application myOutlook = new Outlook.Application();
    Outlook.NameSpace myNamespace = myOutlook.GetNamespace("MAPI");
    myNamespace.Logon(null, null, null, null);
    Outlook.MAPIFolder outbox = myNamespace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderOutbox);
    Outlook.MailItem mail = (Outlook.MailItem)outbox.Items.Add(Outlook.OlItemType.olMailItem);

    mail.Recipients.Add(To);
    mail.Subject = Subject;
    mail.Body = Body;

    mail.GetInspector.Activate();
}

Go ahead and test it, create a button on your form and in the Click event handler:

private void button1_Click(object sender, EventArgs e)
{
    ShowEmail("youremailOutlookAddress.com", "Hello!", "Hey here's a test Email!");
}

OutLookMailItem как использовать Outlook

0 голосов
/ 22 февраля 2012

Установите для объекта MailItem значение "objExplorer.Selection [1] as Microsoft.Office.Interop.Outlook.MailItem;"где objExplorer = AddIn name.Globals.ThisAddIn.Application.ActiveExplorer ();

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