C# – Outlook VSTO – переместить календарь в другую группуC#

Место общения программистов C#
Ответить
Anonymous
 C# – Outlook VSTO – переместить календарь в другую группу

Сообщение Anonymous »

Я создаю плагин для Outlook, используя C# VSTO. И я пытаюсь перенести календарь со всеми данными из одной группы в другую. Вот код

Код: Выделить всё

Outlook.NameSpace mapiNamespace = Application.GetNamespace("MAPI");
Outlook.CalendarModule calendarModule = (Outlook.CalendarModule)mapiNamespace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar).GetExplorer().NavigationPane.Modules.GetNavigationModule(Outlook.OlNavigationModuleType.olModuleCalendar);
Outlook.NavigationGroups navGroups = calendarModule.NavigationGroups;
Outlook.NavigationGroup source = null;
Outlook.NavigationGroup dest = null;
foreach (Outlook.NavigationGroup navGroup in navGroups)
{
if (navGroup.Name == "My calendars")
source = navGroup;
else if(navGroup.Name == "Shared calendars")
dest = navGroup;
}
foreach (Outlook.NavigationFolder group in source.NavigationFolders)
{
dest.NavigationFolders.Add(group);
}
Но я получаю сообщение об ошибке

Код: Выделить всё

"Argument 1: cannot convert from 'Microsoft.Office.Interop.Outlook.NavigationFolder' to 'Microsoft.Office.Interop.Outlook.MAPIFolder'".
Если я изменю строку вот так,

Код: Выделить всё

dest.NavigationFolders.Add((MAPIFolder)group);
Я получаю сообщение об ошибке

Код: Выделить всё

"System.InvalidCastException: 'Unable to cast a COM object of type "System.__ComObject" to interface type "Microsoft.Office.Interop.Outlook.Outlook.Outlook.MAPIFolder"'". The operation failed because calling QueryInterface of the COM component for the interface with IID "{00063006-0000-...-0000-C000-000000000046}" returned the following error: 'Interface not supported (HRESULT Exception: 0x80004002 (E_NOINTERFACE)).'"
Как я могу исправить свой код? Или предложите другой способ переместить календарь со всеми данными из одной группы в другую.

Подробнее здесь: https://stackoverflow.com/questions/782 ... ther-group
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»