IWiaDevMgr::RegisterEventCallbackCLSID 方法 (wia_xp.h)

IWiaDevMgr::RegisterEventCallbackCLSID 方法注册应用程序以接收事件,即使应用程序可能未运行。

语法

HRESULT RegisterEventCallbackCLSID(
  [in] LONG       lFlags,
  [in] BSTR       bstrDeviceID,
  [in] const GUID *pEventGUID,
  [in] const GUID *pClsID,
  [in] BSTR       bstrName,
  [in] BSTR       bstrDescription,
  [in] BSTR       bstrIcon
);

参数

[in] lFlags

类型: LONG

指定注册标志。 可以设置为以下值:

注册标志 含义
WIA_REGISTER_EVENT_CALLBACK 报名参加活动。
WIA_UNREGISTER_EVENT_CALLBACK 删除事件的注册。
WIA_SET_DEFAULT_HANDLER 将应用程序设置为默认事件处理程序。

[in] bstrDeviceID

类型: BSTR

指定设备标识符。 传递 NULL 以在所有 WIA 设备上注册事件。

[in] pEventGUID

类型: const GUID*

指定应用程序要为其注册的事件。 有关标准事件的列表,请参阅 WIA 事件标识符

[in] pClsID

类型: const GUID*

指向应用程序的类 ID 的指针, (CLSID) 。 WIA 运行时系统使用应用程序的 CLSID 启动应用程序时,发生为其注册的事件。

[in] bstrName

类型: BSTR

指定为事件注册的应用程序的名称。

[in] bstrDescription

类型: BSTR

指定为事件注册的应用程序的文本说明。

[in] bstrIcon

类型: BSTR

指定要用于注册事件的应用程序的图标的图像文件的名称。

返回值

类型: HRESULT

如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。

注解

WIA 应用程序使用此方法注册以接收WIA_ACTION_EVENT类型的硬件设备事件。 程序调用 IWiaDevMgr::RegisterEventCallbackCLSID 后,即使它们未运行,它们也会注册以接收 WIA 设备事件。

事件发生时,WIA 系统将确定注册哪个应用程序以接收事件。 它使用 CoCreateInstance 函数和 pClsID 参数中指定的类 ID 来创建应用程序的实例。 然后,它调用应用程序的 ImageEventCallback 方法来传输事件信息。

应用程序可以调用 EnumRegisterEventInfo 方法来枚举事件注册信息。

应用程序可以通过检查事件枚举返回的WIA_DEV_CAP结构的 ulFlags 值来查找事件是操作类型或通知类型 ( 还是两者) 事件。

如果应用程序不是注册的组件对象模型 (COM) 组件,并且与 WIA 体系结构不兼容,则开发人员应使用 IWiaDevMgr::RegisterEventCallbackProgram 而不是此方法。

注意 在多线程应用程序中,无法保证事件通知回调将出现在注册回调的同一线程上。
 

要求

要求
最低受支持的客户端 Windows 2000 专业版、Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 wia_xp.h (包括 Wia.h)
Library Wiaguid.lib
DLL Wiaservc.dll