IDebugExpression2::EvaluateAsync
Diese Methode wertet den Ausdruck asynchron aus.
Syntax
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;
}