Здравствуйте 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;
}