Re: How to get CD-ROM media change notification
От: Snax Россия  
Дата: 13.11.01 03:44
Оценка:
Здравствуйте critter, Вы писали:

C>Как узнать что в CD-ROM сменился диск? Помогите плиз!!!


C>Пробовал через RegisterDeviceNotification но не сумел заставить работать. Как?


Странно. У меня работает на ура.

DEV_BROADCAST_DEVICEINTERFACE NotificationFilter = {0};
HDEVNOTIFY hDevNotify;
NotificationFilter.dbcc_size = sizeof(DEV_BROADCAST_DEVICEINTERFACE);
NotificationFilter.dbcc_devicetype = DBT_DEVTYP_DEVNODE;

hDevNotify = ::RegisterDeviceNotification(m_hWnd, &NotificationFilter, DEVICE_NOTIFY_WINDOW_HANDLE);

LRESULT OnPnP(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
    if (DBT_DEVNODES_CHANGED == wParam)
        MessageBox(_T("PnP device inserted or removed"));

    else if (DBT_DEVICEARRIVAL == wParam)
        MessageBox(_T("CD-ROM or smth inserted"));
    else if (DBT_DEVICEREMOVECOMPLETE == wParam)
        MessageBox(_T("CD-ROM or smth removed"));

    return TRUE;
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.