IEventSystem::Query 方法 (eventsys.h)
从事件数据存储中检索订阅或事件对象的集合。
语法
HRESULT Query(
[in] BSTR progID,
[in] BSTR queryCriteria,
[out] int *errorIndex,
[out, retval] IUnknown **ppInterface
);
参数
[in] progID
要查询的对象类的 ProgID。 这必须是有效的事件对象类标识符。 此参数可能是以下值之一:
- PROGID_EventClass
- PROGID_EventClassCollection
- PROGID_EventSubscription
- PROGID_EventSubscriptionCollection
[in] queryCriteria
查询条件。 有关为此参数形成有效表达式的详细信息,请参阅下面的“备注”部分。
[out] errorIndex
queryCriteria 参数中错误的位置(以偏移量表示)。
[out, retval] ppInterface
指向作为查询结果获取的 对象的指针的地址。 此参数不能为 NULL。 根据 progID 参数指定的对象,这是指向以下接口之一的指针:
返回值
此方法可以返回标准返回值E_INVALIDARG、E_POINTER、E_OUTOFMEMORY、E_UNEXPECTED和E_FAIL,以及以下值。
返回代码 | 说明 |
---|---|
|
该方法已成功完成。 |
|
尝试计算查询字符串时出现语法错误。 |
|
在查询字符串中使用了无效的字段名称。 |
注解
调用方负责释放通过 ppInterface 参数分配的内存。
queryCriteria 参数指定的查询条件可以是“ALL”,用于指定对所有订阅对象的请求,也可以是一个布尔表达式,指示订阅对象必须满足一个或多个条件才能包含在查询结果中。 有效表达式采用以下形式:
[NOT] propertynamerelationalOperator值。 有效的关系运算符如下所示:
==、=、!=、 <>、~=。 有效值为“string”、“string”、“{GUID}”、“ TRUE”、“ FALSE”、“ NULL”。
单个布尔表达式可与 AND 或 OR 联接。 表达式可以嵌套在括号中,以强制实施特定的计算顺序。
下面是有效查询条件的一些示例:
“EventClassID == {F89859D1-6565-11D1-88C8-0080C7D771BF}”
“EventClassID == {F89859D1-6565-11D1-88C8-0080C7D771BF} AND MethodName = 'StockPriceChange'”
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | eventsys.h |