当前位置: 首页 > news >正文

公司网站空间域名建设公司logo设计大全 效果图

公司网站空间域名建设,公司logo设计大全 效果图,福田网站建设费用预算,手机网站免费建设平台文章目录接口介绍概述过滤器介绍举例接收通知创建窗口参考文档接口介绍 概述 window提供了RegisterDeviceNotificationW方法,可以用来监听设备的热插拔事件。 HDEVNOTIFY RegisterDeviceNotificationW([in] HANDLE hRecipient,[in] LPVOID NotificationFilter,[in]…

文章目录

  • 接口介绍
    • 概述
    • 过滤器
      • 介绍
      • 举例
  • 接收通知
    • 创建窗口
  • 参考文档

接口介绍

概述

  • window提供了RegisterDeviceNotificationW方法,可以用来监听设备的热插拔事件。

    HDEVNOTIFY RegisterDeviceNotificationW([in] HANDLE hRecipient,[in] LPVOID NotificationFilter,[in] DWORD  Flags
    );
    
    • hRecipient,表示用来接收通知的窗口或者服务。
    • NotificationFilter,过滤器,用来过滤设备通知。
    • Flags,用来说明hRecipient是个窗口还是服务。
    • 通知必须绑定到窗口或者服务,也就是说在监听之前,你必须先创建一个窗口或者服务。

过滤器

介绍

  • NotificationFilter其基本结构为DEV_BROADCAST_HDR,具体结构根据dbch_devicetype字段值的不同而不同,
    typedef struct _DEV_BROADCAST_HDR {DWORD dbch_size;DWORD dbch_devicetype;DWORD dbch_reserved;
    } DEV_BROADCAST_HDR;
    
  • dbch_devicetype字段可能的值如下:
    在这里插入图片描述

举例

  • 我们以dbch_devicetype的值是DBT_DEVTYP_DEVICEINTERFACE为例,其对应的NotificationFilter是DEV_BROADCAST_DEVICEINTERFACE_A,如下:
    typedef struct _DEV_BROADCAST_DEVICEINTERFACE_A {DWORD dbcc_size;DWORD dbcc_devicetype;DWORD dbcc_reserved;GUID  dbcc_classguid;char  dbcc_name[1];
    } DEV_BROADCAST_DEVICEINTERFACE_A;
    
  • dbcc_classguid这个是GUID用来表示我们所关注的事件。那么什么是GUID?其全称为globally unique identifier,就像它的名字一样,GUID是一个系统级全局的唯一标识符。
  • USB相关的GUID有如下一些:
    • GUID_DEVINTERFACE_USB_DEVICE表示连接到HUB的USB设备。
    • GUID_DEVINTERFACE_USB_HOST_CONTROLLER表示USB主机控制器。
    • GUID_DEVINTERFACE_USB_HUB表示USB HUB。

接收通知

  • 上面都是在说如何监听热插拔通知,那么我们监听好了之后,到底怎么样接收插拔通知,以及如何解析这些通知呢?
  • 上面我们说了,监听通知时必须绑定到窗口或者服务。也就是和 RegisterDeviceNotificationW这个接口的hRecipient参数有关系。所以我们需要了解一些窗口相关的知识。

创建窗口

  • 首先我们需要通过接口RegisterClassA创建一个类。该接口包含如下参数:
    typedef struct tagWNDCLASSA {UINT      style;WNDPROC   lpfnWndProc;int       cbClsExtra;int       cbWndExtra;HINSTANCE hInstance;HICON     hIcon;HCURSOR   hCursor;HBRUSH    hbrBackground;LPCSTR    lpszMenuName;LPCSTR    lpszClassName;
    } WNDCLASSA, *PWNDCLASSA, *NPWNDCLASSA, *LPWNDCLASSA;
    
    • lpfnWndProc,这个参数是窗口的回调函数。也就是是说如果有通知消息发给窗口,那么就会调用该回调来处理。也就是说我们上面订阅的通知会被发送给该函数处理。
    • hInstance,该窗口所属的实例。
    • lpszClassName, 窗口类名,这个很重要。我们创建好这个类之后,后面才能基于这个类创建窗口。
  • 接着我们就可以通过CreateWindowEx接口创建一个窗口,该接口会返回一个 HWND ,可用于上面注册设备通知的接口。

参考文档

  • RegisterDeviceNotificationW function (winuser.h)
  • Windows监听USB热插拔事件
  • 硬件检测:安装、停用
  • GUID structure (guiddef.h)
  • GUIDs
  • GUID_DEVINTERFACE_USB_DEVICE
http://www.yayakq.cn/news/768779/

相关文章:

  • 手机微网站开发书籍绍兴房产网
  • 帮公司做网站怎么找wordpress漂浮表单
  • 如何创办自己的网站深圳市建设工程交易服务网站
  • 网站开发合同 保密条款电脑怎样做网站
  • 网站怎么做图片超链接dwwordpress取消置顶
  • 英文网站建设流程网站搜索栏建立
  • 电子商务网站建设规划论文做网站不需要编程的软件
  • 建设银行北京市财满街分行网站网站的html代码在哪
  • 汉沽手机网站建设企业网站建设与实施调查报告
  • 无锡网站建设专业极速信息做个电商网站和app
  • 广州建设工程造价管理站网站推广方式的英文
  • 网站项目流程表承德教育信息网官网
  • 开发网站用什么语言好关于dw做网站
  • 免费化工网站建设手机软件大全
  • 万网账号跟网站有关系吗唐山软件开发公司排名
  • 网站制作用什么语言盐城市建设局网站设计备案资料
  • h5手机网站开发腾讯云 建网站
  • 如何把网站加入白名单东莞厚街劳务事件
  • 网站开发需要哪些技术人员长春专业网站建设推广
  • 企业做官网有哪些好处台州关键词优化哪家好
  • 天津建设注册执业中心网站网站服务器部署
  • 微信端网站设计规范爱采购官网首页
  • 深圳外贸网站建设服务商建立中英文网站
  • 东莞网站建设方案服务传媒网站制作
  • 中小型网站设计公司大连网站推广排名
  • 建设网站用户名百度seo课程
  • 国外网站空间租用费用建立公司网页需要
  • 网站流水怎么做猎头公司收费
  • 电影网站排名怎么做网站建设功能说明书
  • wordpress 站群管理辽宁自适应网站建设公司