Método IConditionFactory::Resolve (structuredquery.h)

Executa uma variedade de transformações em uma árvore de condições, incluindo o seguinte: resolve condições com expressões relativas de data/hora para condições com data/hora absoluta (como VT_FILETIME); transforma outras entidades nomeadas reconhecidas em árvores condicionais com valores reais; simplifica as árvores condicionais; substitui propriedades virtuais ou compostas por árvores OR de outras propriedades; remove árvores condicionais resultantes de consultas com palavras-chave de propriedade que não tinham nenhuma condição aplicada.

Sintaxe

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

Parâmetros

[in] pc

Tipo: ICondition*

Um ponteiro para um objeto ICondition a ser resolvido.

[in] sqro

Tipo: STRUCTURED_QUERY_RESOLVE_OPTION

Especifica zero ou mais dos sinalizadores de STRUCTURED_QUERY_RESOLVE_OPTION . Para o Windows 7 e posterior, o sinalizador SQRO_ADD_VALUE_TYPE_FOR_PLAIN_VALUES é adicionado automaticamente ao sqro.

[in] pstReferenceTime

Tipo: SYSTEMTIME const*

Um ponteiro para um valor SYSTEMTIME a ser usado como a data e hora de referência. Um ponteiro nulo poderá ser passado se sqro estiver definido como SQRO_DONT_RESOLVE_DATETIME.

[out, retval] ppcResolved

Tipo: ICondition**

Recebe um ponteiro para a nova ICondition na qual todos os campos de tempo foram resolvidos para ter valores do tipo VT_FILETIME. Essa nova árvore de condição é a versão resolvida do computador.

Retornar valor

Tipo: HRESULT

Se o método for bem-sucedido, ele retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT.

Comentários

Em uma árvore de condição produzida pelo método Parse e retornada por GetQuery, as folhas emparelham as propriedades com restrições nessas propriedades e resultam em uma árvore de condição parcialmente concluída. O método IConditionFactory::Resolve conclui essa árvore de condição por um processo conhecido como resolução. A árvore de condição de entrada não é modificada de forma alguma. A árvore de condição de saída pode compartilhar partes da condição de entrada que não continham nós folha com valores de data/hora não resolvidos.

Nota Resolver um nó folha geralmente produz um nó não folha.
 
Por exemplo, a Consulta Estruturada dá suporte a expressões relativas de data/hora, que permanecem não resolvidas até que sejam aplicadas a algum tempo de referência. Em um nó folha com o tipo semântico System.StructuredQueryType.DateTime, o valor pode ser um VT_FILETIME ou um VT_LPWSTR. VT_FILETIME é uma data/hora absoluta, portanto, ela já está resolvida. VT_LPWSTR é uma representação de cadeia de caracteres de uma expressão relativa de data/hora. A hora de referência especificada deve ser uma hora local, mas os horários resolvidos na expressão de consulta resultante estarão em UTC (Tempo Universal Coordenado).

O StructuredQuerySample demonstra como ler linhas do console, analisá-las usando o esquema do sistema e exibir as árvores de condição resultantes.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP com SP2, Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 com SP1 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho structuredquery.h
Redistribuível Pesquisa da Área de Trabalho do Windows (WDS) 3.0

Confira também

CONDITION_OPERATION

CONDITION_TYPE

ICondition

ICondition2

IConditionFactory

IConditionFactory2

Referência