USB/SD 카드 가 컴퓨터에서 인식되면 이게 이동식이든 HD 든 상관없이 시스템 콜을 받게 됩니다.
MFC 에서 DefWindowProc() 함수에서 메시지가 날라오는군요.
DefWindowProc 함수는 MFC 메시지 함수 입니다.
#include <dbt.h>
LRESULT CMyProject::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
// TODO: 여기에 특수화된 코드를 추가 및/또는 기본 클래스를 호출합니다.
if(message == WM_DEVICECHANGE){
UINT event = (UINT)wParam;
switch(event ){
case DBT_DEVICEARRIVAL :// 이동식 디스크 삽입
SetDlgItemText(IDC_STATIC_MSG, "USB 삽입 감지...!!" );
break;
case DBT_DEVICEREMOVECOMPLETE :// 이동식 디스크 추출
SetDlgItemText(IDC_STATIC_MSG, "USB 제거 감지...!!" );
break;
}
}
return CDialogEx::DefWindowProc(message, wParam, lParam);
}
이동식 외에도 HD 나 SD 카드등 분기를 하기 위해서 여러 플레그가 정의 되어 있네요.
Reference site
외부 디스크 감지 플레그 http://jmgame.egloos.com/viewer/2208907