通知应用程序设备或计算机的硬件配置发生更改。
窗口通过其 WindowProc 函数接收此消息。
LRESULT CALLBACK WindowProc(HWND hwnd, // handle to window
UINT uMsg, // WM_DEVICECHANGE
WPARAM wParam, // device-change event
LPARAM lParam ); // event-specific data
参数
-
hwnd
-
窗口的句柄。
-
uMsg
-
WM_DEVICECHANGE标识符。
-
wParam
-
发生的事件。 此参数可以是 Dbt.h 头文件中的以下值之一。
| 值 |
含义 |
DBT_DEVNODES_CHANGED0x0007 |
设备已添加到系统或从系统中删除。 |
DBT_QUERYCHANGECONFIG0x0017 |
请求权限以更改当前配置 (停靠或取消停靠) 。 |
DBT_CONFIGCHANGED0x0018 |
由于停靠或取消停靠,当前配置已更改。 |
DBT_CONFIGCHANGECANCELED0x0019 |
已取消更改当前配置 (停靠或取消停靠) 的请求。 |
DBT_DEVICEARRIVAL0x8000 |
已插入设备或介质片段,现已可用。 |
DBT_DEVICEQUERYREMOVE0x8001 |
请求权限以删除设备或介质。 任何应用程序都可以拒绝此请求并取消删除。 |
DBT_DEVICEQUERYREMOVEFAILED0x8002 |
删除设备或介质的请求已取消。 |
DBT_DEVICEREMOVEPENDING0x8003 |
即将删除设备或介质片段。 不可拒绝。 |
DBT_DEVICEREMOVECOMPLETE0x8004 |
已删除设备或介质片段。 |
DBT_DEVICETYPESPECIFIC0x8005 |
发生了特定于设备的事件。 |
DBT_CUSTOMEVENT0x8006 |
发生了自定义事件。 |
DBT_USERDEFINED0xFFFF |
此消息的含义是用户定义的。 |
-
lParam
-
指向包含特定于事件的数据的结构的指针。 其格式取决于 wParam 参数的值。 有关详细信息,请参阅每个事件的文档。
返回值
返回 TRUE 以授予请求。
返回 拒绝请求BROADCAST_QUERY_DENY 。
对于提供软件可控制功能(如弹出和锁定)的设备,系统通常会发送 DBT_DEVICEREMOVEPENDING 消息,让应用程序和设备驱动程序正常结束对设备的使用。 如果系统强行删除设备,则它可能不会在这样做之前发送 DBT_DEVICEQUERYREMOVE 消息。
要求
| 要求 |
值 |
| 最低受支持的客户端 |
Windows XP |
| 最低受支持的服务器 |
Windows Server 2003 |
| 标头 |
- Winuser.h (包括 Windows.h 或 Dbt.h)
|
另请参阅
-
DBT_CONFIGCHANGECANCELED
-
DBT_CONFIGCHANGED
-
DBT_CUSTOMEVENT
-
DBT_DEVICEARRIVAL
-
DBT_DEVICEQUERYREMOVE
-
DBT_DEVICEQUERYREMOVEFAILED
-
DBT_DEVICEREMOVECOMPLETE
-
DBT_DEVICEREMOVEPENDING
-
DBT_DEVICETYPESPECIFIC
-
DBT_DEVNODES_CHANGED
-
DBT_QUERYCHANGECONFIG
-
DBT_USERDEFINED