将日历移至另一组

问题描述 投票:0回答:2

我正在使用 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))” .'"

如何将包含所有数据的日历从一组移动到另一组?

c# vsto outlook-addin
2个回答
0
投票

换线

dest.NavigationFolders.Add(group);

dest.NavigationFolders.Add(group.Folder);

0
投票

enter image description here

不确定我做错了什么?任何帮助将不胜感激

© www.soinside.com 2019 - 2024. All rights reserved.