dbch_devicetypeが、DBT_DEVTYP_VOLUMEなら、DEV_BROADCAST_HDRポインタをDEV_BROADCAST_VOLUMEポインタにキャストできる。
DEV_BROADCAST_VOLUME (dbt.h) - Win32 apps | Microsoft Docs
USBメモリーの挿入などを検出する(UsefullCode.net)
今度は、DEV_BROADCAST_VOLUME構造体としての各要素を見てみる。
DEV_BROADCAST_VOLUME.cppで、
このように各要素をMessageBoxで表示。
これが来たら、OKを押す。
ここでさらに、OKを押す。
で、さらに各要素がわかる。
DBT_DEVTYP_VOLUMEということは、ボリュームを持つデバイスであり、USBメモリやUSBポータブルHDDなどのリムーバブルディスクはこれ。
実は、dbcv_unitmaskがドライブレターを表しており、例えば、一番下のビットが立っていたら'A'、下から2番目のビットが立っていたら'B'という感じになっている。
ここでは16になっているが、2進数で0x10000だから、'E'ドライブということになる。