что-то не получается пытаюсь поймать событие отключения сетевого устройста
| Код | BEGIN_MESSAGE_MAP VCL_MESSAGE_HANDLER(WM_DEVICECHANGE, TMessage, OnDeviceChange); END_MESSAGE_MAP(TForm)
void __fastcall OnDeviceChange(TMessage& msg);
|
код
| Код | bool TForm1::Register (void){
DEV_BROADCAST_DEVICEINTERFACE filter = {0}; filter.dbcc_size = sizeof(filter); filter.dbcc_devicetype = DBT_DEVTYP_DEVICEINTERFACE; filter.dbcc_classguid = GUID_DEVCLASS_NET;
hNotify_ = RegisterDeviceNotification (Handle, (void *) &filter, DEVICE_NOTIFY_WINDOW_HANDLE);
return (hNotify_ != NULL); } /*----------------------------------------------------------------------------*/ bool TForm1::Unregister (void){ if (!hNotify_) return true; if (!UnregisterDeviceNotification(hNotify_)){ return false; } hNotify_ = NULL; return true; } /*----------------------------------------------------------------------------*/ void __fastcall TForm1::OnDeviceChange(TMessage& msg){
switch (msg.WParam) { case DBT_DEVICEARRIVAL : MessageBox(Handle, TEXT("ADD"), NULL, MB_OK); break; case DBT_DEVICEREMOVECOMPLETE : MessageBox(Handle, TEXT("REMOVE"), NULL, MB_OK); break; }
}
|
ничего не ловлю - что не так ?
P.S. Итог - Нужно отслеживать состояние одного сетевого адаптера |