IConditionFactory::Resolve 方法 (structuredquery.h)

对条件树执行各种转换,包括以下内容:将具有相对日期/时间表达式的条件解析为具有绝对日期/时间 (作为VT_FILETIME) 的条件;将其他已识别的命名实体转换为具有实际值的条件树;简化条件树;将虚拟或复合属性替换为其他属性的 OR 树;删除由具有未应用条件的属性关键字的查询生成的条件树。

语法

HRESULT Resolve(
  [in]          ICondition                      *pc,
  [in]          STRUCTURED_QUERY_RESOLVE_OPTION sqro,
  [in]          const SYSTEMTIME                *pstReferenceTime,
  [out, retval] ICondition                      **ppcResolved
);

参数

[in] pc

类型: ICondition*

指向要解析 的 ICondition 对象的指针。

[in] sqro

类型: STRUCTURED_QUERY_RESOLVE_OPTION

指定零个或多个 STRUCTURED_QUERY_RESOLVE_OPTION 标志。 对于 Windows 7 及更高版本,SQRO_ADD_VALUE_TYPE_FOR_PLAIN_VALUES 标志会自动添加到 sqro

[in] pstReferenceTime

类型: SYSTEMTIME const*

指向要用作引用日期和时间的 SYSTEMTIME 值的指针。 如果将 sqro 设置为 SQRO_DONT_RESOLVE_DATETIME,则可以传递 null 指针。

[out, retval] ppcResolved

类型: ICondition**

接收指向新 ICondition 的指针,在该新 ICondition 中,所有时间字段都已解析为具有 VT_FILETIME 类型的值。 此新条件树是 pc 的已解析版本。

返回值

类型: HRESULT

如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。

注解

由 Parse 方法生成并由 GetQuery 返回的条件树中, 保留对这些属性的限制配对属性,并生成部分完成的条件树。 IConditionFactory::Resolve 方法通过名为 resolution 的进程完成此类条件树。 不会以任何方式修改输入条件树。 输出条件树可以共享输入条件的各个部分,这些条件不包含具有未解析日期/时间值的叶节点。

注意 解析叶节点通常生成非叶节点。
 
例如,结构化查询支持相对日期/时间表达式,这些表达式在应用于某个引用时间之前仍无法解析。 在语义类型为 System.StructuredQueryType.DateTime 的叶节点中,该值可以是VT_FILETIME或VT_LPWSTR。 VT_FILETIME是绝对日期/时间,因此已解决。 VT_LPWSTR是相对日期/时间表达式的字符串表示形式。 指定的引用时间应为本地时间,但生成的查询表达式中的解析时间将为协调世界时 (UTC) 。

StructuredQuerySample 演示如何从控制台读取行、使用系统架构分析行,以及显示生成的条件树。

要求

要求
最低受支持的客户端 Windows XP SP2、Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 SP1 [仅限桌面应用]
目标平台 Windows
标头 structuredquery.h
可再发行组件 Windows 桌面搜索 (WDS) 3.0

另请参阅

CONDITION_OPERATION

CONDITION_TYPE

ICondition

ICondition2

IConditionFactory

IConditionFactory2

引用