Поделиться через


Регистрация в событиях

В следующем примере используется метод получения образов Windows (WIA) 1.0 IWiaDevMgr::RegisterEventCallbackCLSID для регистрации для получения уведомлений, когда любое устройство получения образов Windows (WIA) подключено к системе. Приложения также могут использовать WIA 1.0 IWiaDevMgr::RegisterEventCallbackInterface и WIA 1.0 IWiaDevMgr::RegisterEventCallbackProgram для регистрации событий. В Windows Vista и более поздних версиях для регистрации событий можно использовать методы Windows Image Acquisition (WIA) 2.0 IWiaDevMgr2::RegisterEventCallbackCLSID, IWiaDevMgr2::RegisterEventCallbackInterface или IWiaDevMgr2::RegisterEventCallbackProgram .

Предполагается, что пример взят из приложения, зарегистрированного как объект com внепроцессного серверного объекта.

Вызов IWiaDevMgr::RegisterEventCallbackCLSID (или IWiaDevMgr2::RegisterEventCallbackCLSID) выглядит следующим образом:

    pWiaDevMgr->RegisterEventCallbackCLSID( WIA_REGISTER_EVENT_CALLBACK,
                                            NULL,
                                            WIA_EVENT_DEVICE_CONNECTED,
                                            pCLSID,
                                            bstrName,
                                            bstrDescription,
                                            bstrIcon
                                            );

В предыдущем коде pWiaDevMgr является допустимым указателем на интерфейс IWiaDevMgr (или IWiaDevMgr2), WIA_REGISTER_EVENT_CALLBACK является константой, указывающей, что этот вызов должен регистрироваться для события, а не отмены регистрации для события, WIA_EVENT_DEVICE_CONNECTED является константой, указывающей, что приложение регистрируется для уведомления при подключении устройства к компьютеру пользователя. pCLSID — это указатель на зарегистрированный ИДЕНТИФИКАТОР CLSID приложения, bstrName — имя приложения, bstrDescription — текстовое описание приложения, а bstrIcon — имя файла изображения, используемого для значка приложения, регистрирующего событие.

Затем приложение должно реализовать метод IWiaEventCallback::ImageEventCallback , который вызывается при каждом возникновении события, для которого зарегистрировано приложение.

Приложение может использовать метод IWiaItem::EnumRegisterEventInfo (или IWiaItem2::EnumRegisterEventInfo) для перечисления сведений о событиях, для которых оно зарегистрировано.