Partager via


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;
}

Voir aussi

Référence

IDebugExpression2

IDebugExpressionEvaluationCompleteEvent2

EVALFLAGS

IDebugEventCallback2