| 5587 | } |
| 5588 | |
| 5589 | void |
| 5590 | wm_drive_changed(MSG *msg, signal_user_data_t *ud) |
| 5591 | { |
| 5592 | PDEV_BROADCAST_HDR bch = (PDEV_BROADCAST_HDR)msg->lParam; |
| 5593 | gchar drive[4]; |
| 5594 | |
| 5595 | g_strlcpy(drive, "A:" G_DIR_SEPARATOR_S, 4); |
| 5596 | switch (msg->wParam) |
| 5597 | { |
| 5598 | case DBT_DEVICEARRIVAL: |
| 5599 | { |
| 5600 | if (bch->dbch_devicetype == DBT_DEVTYP_VOLUME) |
| 5601 | { |
| 5602 | PDEV_BROADCAST_VOLUME bcv = (PDEV_BROADCAST_VOLUME)bch; |
| 5603 | |
| 5604 | if (bcv->dbcv_flags & DBTF_MEDIA) |
| 5605 | { |
| 5606 | drive[0] = FindDriveFromMask(bcv->dbcv_unitmask); |
| 5607 | handle_media_change(drive, TRUE, ud); |
| 5608 | } |
| 5609 | } |
| 5610 | } break; |
| 5611 | |
| 5612 | case DBT_DEVICEREMOVECOMPLETE: |
| 5613 | { |
| 5614 | if (bch->dbch_devicetype == DBT_DEVTYP_VOLUME) |
| 5615 | { |
| 5616 | PDEV_BROADCAST_VOLUME bcv = (PDEV_BROADCAST_VOLUME)bch; |
| 5617 | |
| 5618 | if (bcv->dbcv_flags & DBTF_MEDIA) |
| 5619 | { |
| 5620 | drive[0] = FindDriveFromMask(bcv->dbcv_unitmask); |
| 5621 | handle_media_change(drive, FALSE, ud); |
| 5622 | } |
| 5623 | } |
| 5624 | } break; |
| 5625 | default: ; |
| 5626 | } |
| 5627 | } |
| 5628 | |
| 5629 | #else |
| 5630 |
no test coverage detected