Регистрация в событиях
В следующем примере используется метод получения образов 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) для перечисления сведений о событиях, для которых оно зарегистрировано.