MTP 디바이스가 연결 될때 받는 메시지 핸들러
MTP 디바이스가 연결 되면
mswmdm.h 에 정의된 구조체에서 상속 받아
// mswmdm.h 에 정의된 IWMDMNotification 구조체
IWMDMNotification : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE WMDMMessage(
/* [in] */ DWORD dwMessageType,
/* [string][in] */ __RPC__in LPCWSTR pwszCanonicalName) = 0;
};
// 메시지 핸들러 - 상속 받은 클래스의 오버라이드한 함수.
HRESULT STDMETHODCALLTYPE WMDMMessage(DWORD dwMessageType, LPCWSTR pwszCanonicalName);
HRESULT CIWMDMNotification::WMDMMessage(DWORD dwMessageType, LPCWSTR pwszCanonicalName)
{
switch(dwMessageType)
{
case WMDM_MSG_DEVICE_ARRIVAL:
break;
case WMDM_MSG_DEVICE_REMOVAL:
break;
case WMDM_MSG_MEDIA_ARRIVAL:
break;
case WMDM_MSG_MEDIA_REMOVAL:
break;
default:
// TODO: Display a message indicating that an unidentified message has been received.
break;
}
return S_OK; // Return value is ignored, and not returned to the application.
};
에서 구현 가능 하다.
참고
IWMDMNotification::WMDMMessage : http://msdn.microsoft.com/en-us/library/bb231849(v=vs.85).aspx
IWMDMNotification Interface : http://msdn.microsoft.com/en-us/library/bb231848(v=vs.85).aspx
IWMDeviceManager2::GetDeviceFromCanonicalName method : http://msdn.microsoft.com/en-us/library/windows/desktop/ff801389(v=vs.85).aspx