我遇到了一个" 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;
...
调试时,我尝试过:
我想听听有关变通办法的任何建议,或者我错过的任何建议......
由于
答案 0 :(得分:0)
通过延迟objExplorer.Search()(通过创建一个新的资源管理器并向窗口发布消息然后执行objExplorer.Search)来解决。丑陋,但有效: - (