问题描述
我想在共享日历的联系人文件夹上使用 GetCalendarExporter()。
我已经编写了我认为只会提供默认日历文件夹(即所有者的日历文件夹)的代码。我想要共享(委托)日历文件夹对象/指针。知道怎么做吗?
截至目前,我的代码如下:
CComPtr<Olk::_NameSpace> spNameSpace = spApplication->GetNamespace(L"MAPI");
Olk::MAPIFolderPtr spCalFolder = spNameSpace->GetDefaultFolder(Olk::olFolderCalendar);
spCalFolder->GetCalendarExporter();
解决方法
您需要使用 NameSpace.GetSharedDefaultFolder 方法返回一个 Folder
对象,该对象代表指定用户的指定默认文件夹。此方法用于委派方案,其中一个用户已将其一个或多个默认文件夹(例如,其共享日历文件夹)的访问权限委派给另一用户。
Sub ResolveName()
Dim myNamespace As Outlook.NameSpace
Dim myRecipient As Outlook.Recipient
Dim CalendarFolder As Outlook.Folder
Set myNamespace = Application.GetNamespace("MAPI")
Set myRecipient = myNamespace.CreateRecipient("Eugene Astafiev")
myRecipient.Resolve
If myRecipient.Resolved Then
Call ShowCalendar(myNamespace,myRecipient)
End If
End Sub
Sub ShowCalendar(myNamespace,myRecipient)
Dim CalendarFolder As Outlook.Folder
Set CalendarFolder = myNamespace.GetSharedDefaultFolder(myRecipient,olFolderCalendar)
CalendarFolder.Display
End Sub