USBリムーバブルメディア(USBメモリ、USBカードリーダー経由のCFメディア)の挿抜イベントを検出
USBメモリ、カードリーダー経由のCF挿抜の検出方法
まずはUSBメモリの場合
WM_DEVICECHANGEで検出する。
(MFCならOnDeviceChangeで検出)
その中のパラメタ、EventTypeが
DBT_DEVICEARRIVALだったら挿入
DBT_DEVICEREMOVECOMPLETEは抜かれた
次に、USBカードリーダーに刺さるメモリ関連。これは上のメッセージでは検出が出来ない。
全部書くの面倒なので省略する。これらをググってください。
SHGetSpecialFolderLocationにてSHCNE_DISKEVENTS、SHCNE_MEDIAINSERTED|SHCNE_MEDIAREMOVED
そして返されるメッセージを登録
そしたらCFを抜き差しするたびにそのメッセージが返される。
lParamがSHCNE_MEDIAINSERTEDなら挿入
SHCNE_MEDIAREMOVEDなら抜かれた
これで完璧かと思われる。