IDebugExpression2 : : EvaluateAsync
cette méthode évalue l'expression de façon asynchrone.
HRESULT EvaluateAsync (
EVALFLAGS dwFlags,
IDebugEventCallback2* pExprCallback
);
int EvaluateAsync(
enum_EVALFLAGS dwFlags,
IDebugEventCallback2 pExprCallback
);
Paramètres
dwFlags
[in] Une combinaison des indicateurs d'énumération d' EVALFLAGS qui évaluation de l'expression de contrôle.pExprCallback
[in] ce paramètre est toujours une valeur NULL.
Valeur de retour
En cas de réussite, retourne S_OK; sinon retourne un code d'erreur. Code d'erreur se déroule comme suit :
Erreur |
Description |
---|---|
E_EVALUATE_BUSY_WITH_EVALUATION |
Une autre expression actuellement est évaluée, et l'évaluation d'une expression simultanée n'est pas prise en charge. |
Notes
Cette méthode doit retourner immédiatement après qu'il a démarré l'évaluation de l'expression. Lorsque l'expression est correctement évaluée, IDebugExpressionEvaluationCompleteEvent2 doit être envoyé au rappel d'événement d' IDebugEventCallback2 comme indiqué dans IDebugProgram2 : : Attachement ou IDebugEngine2 : : Attachement.
Exemple
L'exemple suivant indique comment appliquer cette méthode d'un objet simple d' CExpression qui implémente l'interface d' 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;
}