1

在我的 Outlook 加载项中,我打开 SelectNamesDialog 来选择 GAL 上的联系人集。我想执行高级查找以查找特定公司联系人的示例(请参阅屏幕截图)。你知道这是否真的可行吗?有没有我失踪的界面?您可以查看我的代码,其中包含一些不成功的关联。

在此处输入图像描述

Outlook.SelectNamesDialog snd = Globals.ThisAddIn.Application.Session.GetSelectNamesDialog();

Outlook.AddressList contactsAddrList = null;
Outlook.AddressList gal = Globals.ThisAddIn.Application.Session.GetGlobalAddressList();

String company = "My Company";

// Try to look > Dead code not working
//Outlook.MAPIFolder galFolder = Globals.ThisAddIn.Application.GetNamespace("MAPI").GetDefaultFolder(Outlook.OlDefaultFolders.);
//String sScope = "SCOPE ('shallow traversal of " + (char)34 +  + (char)34 + "')";
//String sFilter = (char)34 + "urn:content-classes:person" + (char)34 + " LIKE 'RE:%'";
//Outlook.Search search = Globals.ThisAddIn.Application.AdvancedSearch(sScope, sFilter, false, company);
//contactsAddrList = search.Save(company).;

// Set InitialAddressList to Contacts folder AddressList.
snd.SetDefaultDisplayMode(Outlook.OlDefaultSelectNamesDisplayMode.olDefaultSingleName);
snd.InitialAddressList = contactsAddrList;
snd.AllowMultipleSelection = false;
snd.ForceResolution = true;
snd.ShowOnlyInitialAddressList = true;
snd.Display();
4

1 回答 1

0

没有办法调用这个 Outlook 对象模型甚至赎回。
您可以在扩展 MAPI 级别(C++ 或 Delphi)上执行此操作 - 将 PR_SEARCH 属性打开为 IMAPIContainer,设置各种属性(PR_DISPLAY_NAME、PR_ACCOUNT 等),然后调用 IMAPIContainer::GetContentsTable。

于 2013-01-28T21:24:27.513 回答