Поделиться через


Метод 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, можно передать пустой указатель.

[out, retval] ppcResolved

Тип: ICondition**

Получает указатель на новый ICondition , в котором все поля времени были разрешены, чтобы иметь значения типа VT_FILETIME. Это новое дерево условий является разрешенной версией компьютера.

Возвращаемое значение

Тип: HRESULT

Если этот метод завершается успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .

Комментарии

В дереве условий, созданном методом Parse и возвращаемом GetQuery, листья объединяют свойства с ограничениями на эти свойства, что приводит к частичному завершению дерева условий. Метод IConditionFactory::Resolve завершает такое дерево условий процессом, известным как разрешение. Дерево условий ввода не изменяется ни в коем случае. Дерево условий вывода может совместно использовать части условия ввода, которые не содержали конечных узлов с неразрешенными значениями даты и времени.

Примечание Разрешение конечного узла часто приводит к получению неконечного узла.
 
Например, структурированный запрос поддерживает относительные выражения даты и времени, которые остаются неразрешенными до тех пор, пока они не будут применены к некоторому ссылочным времени. В конечном узле с семантического типа System.StructuredQueryType.DateTime значением может быть VT_FILETIME или VT_LPWSTR. VT_FILETIME является абсолютной датой и временем, поэтому оно уже разрешено. VT_LPWSTR является строковым представлением относительного выражения даты и времени. Указанное время ссылки должно быть местным временем, но разрешенное время в результирующем выражении запроса будет находиться в формате UTC.

В файле StructuredQuerySample показано, как считывать строки из консоли, анализировать их с помощью системной схемы и отображать результирующее дерево условий.

Требования

Требование Значение
Минимальная версия клиента Windows XP с пакетом обновления 2 (SP2), Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2003 с пакетом обновления 1 (SP1) [только классические приложения]
Целевая платформа Windows
Header structuredquery.h
Распространяемые компоненты Windows Desktop Search (WDS) 3.0

См. также раздел

CONDITION_OPERATION

CONDITION_TYPE

ICondition

ICondition2

IConditionFactory

IConditionFactory2

Справочные материалы