Notifies an application of a change to the hardware configuration of a device or the computer.
A window receives this message through its WindowProc function.
LRESULT CALLBACK WindowProc(HWND hwnd, // handle to window UINT uMsg, // WM_DEVICECHANGE WPARAM wParam, // device-change event LPARAM lParam ); // event-specific data
A handle to the window.
The WM_DEVICECHANGE identifier.
The event that has occurred. This parameter can be one of the following values from the Dbt.h header file.
Value Meaning DBT_DEVNODES_CHANGED0x0007 A device has been added to or removed from the system. DBT_QUERYCHANGECONFIG0x0017 Permission is requested to change the current configuration (dock or undock). DBT_CONFIGCHANGED0x0018 The current configuration has changed, due to a dock or undock. DBT_CONFIGCHANGECANCELED0x0019 A request to change the current configuration (dock or undock) has been canceled. DBT_DEVICEARRIVAL0x8000 A device or piece of media has been inserted and is now available. DBT_DEVICEQUERYREMOVE0x8001 Permission is requested to remove a device or piece of media. Any application can deny this request and cancel the removal. DBT_DEVICEQUERYREMOVEFAILED0x8002 A request to remove a device or piece of media has been canceled. DBT_DEVICEREMOVEPENDING0x8003 A device or piece of media is about to be removed. Cannot be denied. DBT_DEVICEREMOVECOMPLETE0x8004 A device or piece of media has been removed. DBT_DEVICETYPESPECIFIC0x8005 A device-specific event has occurred. DBT_CUSTOMEVENT0x8006 A custom event has occurred. DBT_USERDEFINED0xFFFF The meaning of this message is user-defined.
A pointer to a structure that contains event-specific data. Its format depends on the value of the wParam parameter. For more information, refer to the documentation for each event.
Return TRUE to grant the request.
Return BROADCAST_QUERY_DENY to deny the request.
For devices that offer software-controllable features, such as ejection and locking, the system typically sends a DBT_DEVICEREMOVEPENDING message to let applications and device drivers end their use of the device gracefully. If the system forcibly removes a device, it may not send a DBT_DEVICEQUERYREMOVE message before doing so.
|Minimum supported client||Windows XP|
|Minimum supported server||Windows Server 2003|