IDebugExpression2::EvaluateAsync
Этот метод асинхронно оценивает выражение.
Синтаксис
Параметры
dwFlags
[in] Сочетание флагов из перечисления EVALFLAGS , которое оценивает выражение элемента управления.
pExprCallback
[in] Этот параметр всегда имеет значение NULL.
Возвращаемое значение
В случае успешного выполнения возвращается S_OK
; в противном случае возвращается код ошибки. Типичный код ошибки:
Ошибка | Описание |
---|---|
E_EVALUATE_BUSY_WITH_EVALUATION | Другое выражение в настоящее время вычисляется, а одновременное вычисление выражений не поддерживается. |
Замечания
Этот метод должен вернуться сразу после запуска оценки выражений. При успешной оценке выражения необходимо отправить обратный вызов события IDebugExpressionEvaluationEvaluationCompleteEvent2 в обратный вызов события IDebugEventCallback2 , как показано через Подключение или подключение.
Пример
В следующем примере показано, как реализовать этот метод для простого CExpression
объекта, реализующего интерфейс 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;
}