Я пытаюсь ввести некоторый предопределенный текст в новое электронное письмо в Outlook 365, используя VSTO C#. Я написал этот базовый c код:
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
inspectors = this.Application.Inspectors;
inspectors.NewInspector +=
new Outlook.InspectorsEvents_NewInspectorEventHandler(Inspectors_NewInspector);
}
void Inspectors_NewInspector(Microsoft.Office.Interop.Outlook.Inspector Inspector)
{
try
{
if (this.Application.ActiveExplorer().Selection.Count > 0)
{
if (Inspector.CurrentItem is Outlook.MailItem)
{
Word.Document wordDocument = Inspector.WordEditor as Word.Document;
Word.Range wordRange = wordDocument.Range(0, 0);
wordRange.Text = "Text";
}
}
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}
}
Во время отладки, в строке: Word.Document wordDocument = Inspector.WordEditor as Word.Document; Я получаю сообщение об ошибке «Операция не удалась».
![Exception details](https://i.stack.imgur.com/nwiYE.png)
Я проверил Inspector.WordEditor, используя шпион Outlook, и он также содержит данные.
![Outlook Spy data](https://i.stack.imgur.com/dO3ir.png)
То же выражение работает правильно, когда я создаю mailitem самостоятельно, используя:
Outlook.MailItem mailItem = (new Outlook.Application()).CreateItem(Outlook.OlItemType.olMailItem);
Я много раз искал по inte rnet, но ничего не нашло чего-то подходящего для моего случая.
Я хочу знать, почему это происходит, и как я могу это решить. Кто-нибудь может мне помочь?