Windows Programming Tips

USBメモリを挿したときやCDなどを挿入したことなどを検知するには、WM_DEVICECHANGEメッセージを受け取る。 wParamには

  • DBT_CONFIGCHANGECANCELED
  • DTB_CONFIGCHANGED
  • DBT_CUSTOMEVENT
  • DBT_DEVICEARRIVAL
  • DBT_DEVICEQUERYMOVE
  • DBT_DEVICEQUERYMOVEFAILED
  • DBT_DEVICEREMOVECOMPLETE
  • DBT_DEVICEMOVEPENDING
  • DBT_DEVICETYPESPECIFIC
  • DBT_DEVNODES_CHANGED
  • DBT_QUERYCHANGECONFIG
  • DBT_USERDEFINED があり、挿入はDBT_DEVICEARRIVALを取り出しはDBT_DEVICEREMOVECOMPLETEDを受け取ればよい。

さらに、lParamをDEV_BROADCAST_HDR*にキャストして、メンバdbch_devicetypeを見ることでデバイスの種類がわかる。

デバイスの種類によってキャストすることでさらに情報が得られる。 例えば、dbch_devicetypeがDBT_DEVTYPE_VOLUMEの場合はDEV_BROADCAST_VOLUME*にキャストすると、メンバdbcv_unitmaskによってドライブレターがわかる。

情報元
UsefullCode.net
http://www.usefullcode.net/2007/02/usb.html

マイクロソフト サポート オンライン
http://support.microsoft.com/kb/163503/ja

最終更新:2011年01月05日 14:49