IDebugExpression2::EvaluateAsync

Tato metoda vyhodnotí výraz asynchronně.

Syntaxe

int EvaluateAsync(
    enum_EVALFLAGS       dwFlags,
    IDebugEventCallback2 pExprCallback
);

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

Viz také