IDebugExpression2::EvaluateAsync
Cette méthode évalue l’expression de façon asynchrone.
Syntaxe
Paramètres
dwFlags
[in] Combinaison d’indicateurs de l’énumération EVALFLAGS qui contrôle l’évaluation d’expression.
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. Un code d’erreur classique est :
Erreur | Description |
---|---|
E_EVALUATE_BUSY_WITH_EVALUATION | Une autre expression est actuellement évaluée et l’évaluation simultanée de l’expression n’est pas prise en charge. |
Notes
Cette méthode doit retourner immédiatement une fois l’évaluation de l’expression démarrée. Lorsque l’expression est correctement évaluée, un IDebugExpressionEvaluationCompleteEvent2 doit être envoyé au rappel d’événement IDebugEventCallback2 tel qu’il est fourni via Attach ou Attach.
Exemple
L’exemple suivant montre comment implémenter cette méthode pour un objet simple CExpression
qui implémente l’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;
}