Outlook 2013中未启动Outlook自动搜索

时间:2014-05-21 21:59:10

标签: outlook outlook-addin office-automation outlook-2013

我遇到了一个" quirk"在Outlook 2013中尝试让Outlook打开一个新的搜索窗口(当我的Outlook加载项中单击一个按钮时)。搜索没有启动;搜索字词显示在框中,但仅显示收件箱内容(尽管如果与收件箱项目相关,则突出显示我的搜索字词)。如果我随后在搜索框中更改了任何内容(例如添加然后删除引号),它就会正确启动(即将输出过滤到我的搜索中)。

我无法在Outlook 2010中重现此问题,也无法通过独立的EXE调用相同的代码。此外,如果我将搜索启动到现有的资源管理器窗口,它也能正常工作。

这是我的代码(简化):

OutlookApp  := GetActiveOleObject(OUTLOOK_APPLICATION_CLASS);
OLNameSpace := OutlookApp.GetNameSpace(MAPI_NAMESPACE);
OLNameSpace.Logon;
objFolder := OLNameSpace.GetDefaultFolder(olFolderInbox);
objExplorer := OutlookApp.Explorers.Add(objFolder, olFolderDisplayNoNavigation);
objExplorer.Search(sSearchText, olSearchScopeAllFolders);
objExplorer.Activate;
...

调试时,我尝试过:

  • 更改新资源管理器窗口的显示选项(olFolderDisplayNormal)
  • 搜索前调用ClearSearch
  • 预先执行替代搜索
  • 即使在来电之间睡觉:-o

我想听听有关变通办法的任何建议,或者我错过的任何建议......

由于

1 个答案:

答案 0 :(得分:0)

通过延迟objExplorer.Search()(通过创建一个新的资源管理器并向窗口发布消息然后执行objExplorer.Search)来解决。丑陋,但有效: - (