IDebugExpression2::EvaluateAsync
Tato metoda vyhodnotí výraz asynchronně.
Syntaxe
Parametry
dwFlags
[v] Kombinace příznaků z výčtu EVALFLAGS , která řídí vyhodnocení výrazu.
pExprCallback
[v] Tento parametr je vždy hodnotou null.
Vrácená hodnota
V případě úspěchu vrátí hodnotu S_OK
; v opačném případě vrátí kód chyby. Typický kód chyby:
Chyba | Popis |
---|---|
E_EVALUATE_BUSY_WITH_EVALUATION | Aktuálně se vyhodnocuje jiný výraz a souběžné vyhodnocení výrazů se nepodporuje. |
Poznámky
Tato metoda by se měla vrátit okamžitě po spuštění vyhodnocení výrazu. Pokud je výraz úspěšně vyhodnocen, IDebugExpressionEvaluationCompleteEvent2 musí být odeslán do zpětného volání události IDebugEventCallback2, jak je zadáno prostřednictvím Attach nebo Attach.
Příklad
Následující příklad ukazuje, jak implementovat tuto metodu pro jednoduchý CExpression
objekt, který implementuje IDebugExpression2 rozhraní.
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;
}