GetSharedDefaultFolder()引发错误MAPI_E_NOT_FOUND-赎回

本文关键字:NOT FOUND- 赎回 MAPI 错误 GetSharedDefaultFolder | 更新日期: 2023-09-27 17:57:25

我在windows应用程序中使用兑换。我在那里写了这个代码

try
{
     rFolder = rSession.GetSharedDefaultFolder(memberName, rdoDefaultFolders.olFolderCalendar);
     rItems = rFolder.Items;
}

但当它执行包含Session.GetSharedDefaultFolder()的行时,会抛出以下异常。

"IAddrBook.ResolveName:MAPI_E_NOT_FOUND中有错误"

我在网上搜索了这个问题,但没能直接找到什么。请给我建议。

GetSharedDefaultFolder()引发错误MAPI_E_NOT_FOUND-赎回

您将什么传递给GetSharedDefaultFolder?该名称是否可以在Outlook中的"要编辑"框中解析?

请记住,GetSharedDefaultFolder采用字符串或RDOAddressEntry对象。在后一种情况下,没有什么可解决的,因此,如果您已经有RDOAddressEntry对象的实例,那么传递它而不是字符串可能更可靠。

为什么需要使用Redemption?

相反,我建议使用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

请注意,您需要将Recipient类的实例(已解析)传递给方法,而不仅仅是成员名称。

运行上面列出的代码(当然,使用有效的名称)时,你会遇到任何错误吗?