IMAPIContainer::GetSearchCriteria
适用于:Outlook 2013 | Outlook 2016
获取容器的搜索条件。
HRESULT GetSearchCriteria(
ULONG ulFlags,
LPSRestriction FAR * lppRestriction,
LPENTRYLIST FAR * lppContainerList,
ULONG FAR * lpulSearchState
);
参数
ulFlags
[in]控制传入字符串类型的标志的位掩码。 可以设置以下标志:
MAPI_UNICODE
传入的字符串采用 Unicode 格式。 如果未设置MAPI_UNICODE标志,则字符串采用 ANSI 格式。
lppRestriction
[out]指向定义搜索条件 的 SRestriction 结构的指针的指针。 如果客户端应用程序在 lppRestriction 参数中传递 NULL, 则 GetSearchCriteria 不会返回 SRestriction 结构。
lppContainerList
[out]指向表示要包含在搜索中的容器的条目标识符数组的指针的指针。 如果客户端在 lppContainerList 参数中传递 NULL, 则 GetSearchCriteria 不会返回条目标识符数组。
lpulSearchState
[out]指向标志位掩码的指针,这些标志用于指示搜索的当前状态。 如果客户端在 lpulSearchState 参数中传递 NULL, 则 GetSearchCriteria 不返回任何标志。 可以设置以下标志:
SEARCH_FOREGROUND (0x1)
相对于其他搜索,搜索应以高优先级运行。 如果未设置此标志,则相对于其他搜索,搜索将按正常优先级运行。
SEARCH_REBUILD (0x2)
搜索处于其操作的 CPU 密集型模式,尝试查找符合条件的消息。 如果未设置此标志,搜索操作的 CPU 密集型部分将结束。 仅当搜索处于活动状态时,此标志才有意义, (也就是说,SEARCH_RUNNING标志设置为) 。
SEARCH_RECURSIVE (0x4)
搜索在指定的容器及其所有子容器中查找匹配条目。 如果未设置此标志,则只会搜索最后一次调用 IMAPIContainer::SetSearchCriteria 方法中显式包含的容器。
SEARCH_RUNNING (0x8)
搜索处于活动状态,并且正在更新容器的内容表,以反映消息存储或通讯簿中的更改。 如果未设置此标志,则搜索处于非活动状态,并且内容表是静态的。
SEARCH_COMPLETE (0x1000)
搜索结果已完成。
SEARCH_PARTIAL (0x2000)
仅包含邮件的某些部分。
SEARCH_STATIC (0x10000)
搜索是静态的。
SEARCH_MAYBE_STATIC (0x20000)
仍在评估搜索。
CI_TOTALLY (0x1000000)
搜索仅使用内容索引完成。
CI_WITH_TWIR_RESIDUAL (0x2000000)
TWIR_MOSTLY (0x4000000)
TWIR_TOTALLY (0x8000000)
搜索是在不使用内容索引的情况下完成的,并且仅使用具有限制的表。
返回值
S_OK
已成功获取搜索条件。
MAPI_E_BAD_CHARWIDTH
已设置MAPI_UNICODE标志且实现不支持 Unicode,或者未设置MAPI_UNICODE且实现仅支持 Unicode。
MAPI_E_NOT_INITIALIZED
从未为容器建立搜索条件。
备注
IMAPIContainer::GetSearchCriteria 方法获取支持搜索的容器(通常是搜索结果文件夹)的搜索条件。 通过调用容器的 IMAPIContainer::SetSearchCriteria 方法创建搜索条件。
针对实现者的说明
只有在通讯簿容器提供与 PR_SEARCH (PidTagSearch) 属性关联的高级搜索功能时,通讯簿容器才可能需要支持 GetSearchCriteria。 有关如何实现通讯簿容器的高级搜索功能的详细信息,请参阅 实现高级搜索。
给调用方的说明
完成 lppRestriction 和 lppContainerList 参数指向的数据结构后,请调用 MAPIFreeBuffer 一次,以便释放每个结构。
MFCMAPI 引用
有关 MFCMAPI 示例代码,请参阅下表。
文件 | 函数 | Comment |
---|---|---|
HierarchyTableDlg.cpp |
CHierarchyTableDlg::OnEditSearchCriteria |
MFCMAPI 使用 IMAPIContainer::GetSearchCriteria 方法从要显示的文件夹中获取搜索条件。 |