На этом шаге мы кратко охарактеризуем событие Error.
Когда метод СОМ-компонента возвращает клиентскому приложению код НRESULT, уведомление об ошибке называют синхронным. Синхронное уведомление - это часть нормального взаимодействия сервера и клиента: клиент вызывает сервер, тот определяет ошибку, возвращает описывающий проблему код HRESULT, и клиентское приложение реагирует на нее. Все это происходит по порядку - клиентское приложение узнает об ошибке только после прекращения работы компонента и возвращения управления.
Иногда встречается ошибка, о которой клиентское приложение требуется информировать немедленно. В таких случаях компонент возбуждает событие и продолжает работать. Также допустимы и другие действия. Например, у компонента есть рабочий поток, выполняющийся одновременно с клиентским приложением. Если этот поток обнаруживает ошибку, единственное средство оповещения клиента - возбудить событие. В СОМ определено событие Error, позволяющее организовать такой тип асинхронного уведомления об ошибке.
Событию Error назначен идентификатор DISPID_ERROREVENT. Элемент управления на базе ActiveX, использующий MFC и производный от класса COleControl, может вызвать функцию-член FireError().
Со следующего шага мы начнем рассматривать отладку программы.