[DELPHI6] et WM_DEVICECHANGE et ActiveForm
Bonjour,
J'essaye de gérer l'évènement WM_DEVICECHANGE pour détecter l'ouverture ou la fermeture d'un lecteur CD/DVD.
Je dispose de plusieurs solutions pour gérer l'évènement :
1) Ajout d'une procédure qui gère l'évènement WM_DEVICECHANGE du genre :
procedure WMDeviceChange(var Msg:TMessage); message WM_DEVICECHANGE;
2) Surcharge de la procedure DefaultHandler
3) Ajout du contrôle ApplicationEvents
Dans une application standard (TForm) seules les deux premières solutions fonctionnent.
Dans une application ActiveX (TActiveForm) aucune ne fonctionnent.
Est-ce normal ?
Exemple de code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
procedure TForm1.ApplicationEventsMessage(var Msg: tagMSG;
var Handled: Boolean);
var
m: TMessage;
begin
if ( Msg.message = WM_DEVICECHANGE) then begin
// Ne fonctionne pas
ShowMessage('ApplicationEventsMessage : WM_DEVICECHANGE');
end;
if ( Msg.message = WM_LBUTTONDBLCLK) then begin
// Fonctionne
ShowMessage('ApplicationEventsMessage : WM_LBUTTONDBLCLK');
end;
end; |
Merci.