Probleme mit WM_DEVICECHANGE



  • Ich hänge gerade ein wenig beim WM_DEVICECHANGE fest.

    Folgendes will ich tun:
    Mein Prgramm läuft und soll mitbekommen, wenn ein USB-Stick hinzugefügt wird.
    Hierzu verwende ich folgenden Code.

    BEGIN_MESSAGE_MAP(CAutowriterDlg, CDialog)
    	ON_WM_SYSCOMMAND()
    	ON_WM_PAINT()
    	ON_WM_QUERYDRAGICON()
    	ON_MESSAGE(WM_DEVICECHANGE, &CAutowriterDlg::GetDevice) //Find devices automaticly
    	//}}AFX_MSG_MAP
    .
    .
    .
    END_MESSAGE_MAP()
    
    LRESULT CAutowriterDlg::GetDevice(WPARAM wParam, LPARAM lParam)
    {
    	cBool = FALSE;
    
    	if(wParam == DBT_DEVICEARRIVAL)
    	{
    		MessageBox(NULL, NULL, MB_OK);
    	}
    
    	return LRESULT();
    }
    

    Wenn ich wParam nicht abfrage, dann bekomme ich für jedes USB-Gerät, was bei einem Devicechange dran hängt eine MessageBox. Ich will aber nur eine bekommen, wenn ein neues Gerät eingesteckt wird. Also hab ich in der MSDN geschaut und einen Artiekl gefunden. Nur klappt das nicht so. Was mache ich flasch? muss ich wParam anders abfragen?

    thx schonmal


Log in to reply