我正在使用 C# VSTO 创建 Outlook 插件。
我正在尝试将包含所有数据的日历从一组传输到另一组。
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);
}
我收到错误
“参数 1:无法从 'Microsoft.Office.Interop.Outlook.NavigationFolder' 'Microsoft.Office.Interop.Outlook.MAPIFolder' 转换”。
如果我像这样改变线路,
dest.NavigationFolders.Add((MAPIFolder)group);
我收到错误
“System.InvalidCastException:'无法将类型为“System.__ComObject”的 COM 对象转换为接口类型“Microsoft.Office.Interop.Outlook.Outlook.Outlook.MAPIFolder”'”。操作失败,因为对 IID 为“{00063006-0000-...-0000-C000-000000000046}”的接口调用 COM 组件的 QueryInterface 返回以下错误:“接口不支持(HRESULT 异常:0x80004002 (E_NOINTERFACE))” .'"
如何将包含所有数据的日历从一组移动到另一组?