使用以下代码块,您可以选择在 Outlook 中设置的公用文件夹:
const
olPublicContactsFolder = $00000012; //constant for the public folder
begin
Outlook := CreateOleObject('Outlook.Application');
// Get name space
NameSpace := Outlook.GetNameSpace('MAPI');
// Get root public folder
ContactsRoot := NameSpace.GetDefaultFolder(olPublicContactsFolder); //<-- Error
Contacts:= Contactsroot;
如果 Outlook 中没有公用文件夹(Outlook 中没有设置公用文件夹,没有 Exchange Server),则标记行上会出现错误。
问题是如何通过预先检测是否设置了公用文件夹来避免该错误。
使用 try...finally/except 块捕获错误不起作用,因为异常是由 Microsoft API (EOleException) 从外部引起的。
我想不出另一种方法来检测文件夹是否存在,因为导致错误的行对于选择公用文件夹并因此获取它的属性至关重要。
问候