IDebugExpression2::EvaluateAsync

Diese Methode wertet den Ausdruck asynchron aus.

Syntax

int EvaluateAsync(
    enum_EVALFLAGS       dwFlags,
    IDebugEventCallback2 pExprCallback
);

Parameter

dwFlags
[in] Eine Kombination von Flags aus der EVALFLAGS-Aufzählung , die die Auswertung von Ausdrücken steuert.

pExprCallback
[in] Dieser Parameter ist immer ein Nullwert.

Rückgabewert

Wenn die Ausführung erfolgreich ist, wird S_OK zurückgegeben, andernfalls ein Fehlercode. Ein typischer Fehlercode ist:

Error Beschreibung
E_EVALUATE_BUSY_WITH_EVALUATION Ein anderer Ausdruck wird derzeit ausgewertet, und die gleichzeitige Ausdrucksauswertung wird nicht unterstützt.

Hinweise

Diese Methode sollte unmittelbar nach dem Starten der Ausdrucksauswertung zurückgegeben werden. Wenn der Ausdruck erfolgreich ausgewertet wird, muss ein IDebugExpressionEvaluationCompleteEvent2 an den IDebugEventCallback2-Ereignisrückruf gesendet werden, wie über Attach oder Attach bereitgestellt.

Beispiel

Das folgende Beispiel zeigt, wie Sie diese Methode für ein einfaches CExpression Objekt implementieren, das die IDebugExpression2-Schnittstelle implementiert.

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

Siehe auch