private
procedure
WMDeviceChange(
var
Message: TMessage);
message WM_DEVICECHANGE;
...
const
DBT_DEVICEARRIVAL =
$8000
;
const
DBT_DEVICEQUERYREMOVE =
$8001
;
const
DBT_DEVICEQUERYREMOVEFAILED =
$8002
;
const
DBT_DEVICEREMOVEPENDING =
$8003
;
const
DBT_DEVICEREMOVECOMPLETE =
$8004
;
const
DBT_DEVICETYPESPECIFIC =
$8005
;
const
DBT_CONFIGCHANGED =
$0018
;
procedure
TForm1
.
WMDeviceChange(
var
Message: TMessage);
var
s :
string
;
begin
case
Message
.
wParam
of
DBT_DEVICEARRIVAL :
s :=
'A device has been inserted and is now available'
;
DBT_DEVICEQUERYREMOVE:
begin
s :=
'Permission to remove a device is requested'
;
ShowMessage(s);
Message
.
Result :=
integer
(
true
);
exit;
end
;
DBT_DEVICEQUERYREMOVEFAILED :
s :=
'Request to remove a device has been canceled'
;
DBT_DEVICEREMOVEPENDING :
s :=
'Device is about to be removed'
;
DBT_DEVICEREMOVECOMPLETE :
s :=
'Device has been removed'
;
DBT_DEVICETYPESPECIFIC :
s :=
'Device-specific event'
;
DBT_CONFIGCHANGED :
s:=
'Current configuration has changed'
else
s :=
'Unknown Device Message'
;
end
;
ShowMessage(s);
inherited
;
end
;