IDebugExpression2::EvaluateAsync
Esse método avalia a expressão de forma assíncrona.
Sintaxe
Parâmetros
dwFlags
[em] Uma combinação de sinalizadores da enumeração EVALFLAGS que controlam a avaliação da expressão.
pExprCallback
[em] Esse parâmetro é sempre um valor nulo.
Valor de retorno
Se tiver êxito, retornará S_OK
. Caso contrário, retornará um código de erro. Um código de erro típico é:
Erro | Descrição |
---|---|
E_EVALUATE_BUSY_WITH_EVALUATION | Outra expressão está sendo avaliada no momento, e a avaliação simultânea da expressão não é suportada. |
Comentários
Esse método deve retornar imediatamente após o início da avaliação da expressão. Quando a expressão é avaliada com êxito, um IDebugExpressionEvaluationCompleteEvent2 deve ser enviado para o retorno de chamada de evento IDebugEventCallback2, conforme fornecido por meio de Attach ou Attach.
Exemplo
O exemplo a seguir mostra como implementar esse método para um objeto simples CExpression
que implementa a interface IDebugExpression2 .
HRESULT CExpression::EvaluateAsync(EVALFLAGS dwFlags,
IDebugEventCallback2* pExprCallback)
{
// Set the aborted state to FALSE
// in case the user tries to redo the evaluation after aborting.
m_bAborted = FALSE;
// Post the WM_EVAL_EXPR message in the message queue of the current thread.
// This starts the expression evaluation on a background thread.
PostThreadMessage(GetCurrentThreadId(), WM_EVAL_EXPR, 0, (LPARAM) this);
return S_OK;
}