Fehlermeldung bei Directshow-Player abfangen



  • hi,
    ich benutze einen Player der auf directshow basiert und den Filtergraph automatisch erstellt. Funktioniert alles gut, solange ich kein file lade, für das kein decoderfilter existiert. Unter MSVC++6 bekomme ich dann die Fehlermeldung:

    Unbehandelte Ausnahme in Anwendung.exe:0C00000094: Integer Divide by Zero

    Ich bekomme nicht raus wie ich den Fehler abfangen kann, so dass die Anwendung nicht abstürzt. Normalerweise sollte das ja DShowUtils::MessageBoxError(hr) erledigen aber irgendwie klappts nicht.

    Wenn ich die Zeile für das IMediaseeking Interface ausklammere erhalte ich keine Fehlermeldung? Anscheinend liegt da der Fehler.

    HRESULT hr = CoCreateInstance(CLSID_FilterGraph, 
    								  NULL, CLSCTX_INPROC_SERVER,
    								  IID_IGraphBuilder, (void **)&m_Graph1);
    	DShowUtils::MessageBoxError(hr);
    
    	//Media-Control-Interface erzeugen
    	hr = m_Graph1->QueryInterface(IID_IMediaControl, (void **)&m_Ctrl1);
    	DShowUtils::MessageBoxError(hr);
    
        //Envent-Interface
    	hr = m_Graph1->QueryInterface(IID_IMediaEventEx, (void **)&m_Event1);
    	DShowUtils::MessageBoxError(hr);
    
    	//Media-Seeking Interface
    	hr = m_Graph1->QueryInterface(IID_IMediaSeeking, (void**)&m_Seek1);
    	DShowUtils::MessageBoxError(hr);
    
    	//File laden
    	hr = m_Graph1->RenderFile(m_sPlayFile.AllocSysString(),NULL);
    	DShowUtils::MessageBoxError(hr);
    
    	//Benachrichtigung über Abspielereignisse
    	hr = m_Event1->SetNotifyWindow((long)GetSafeHwnd(),WM_GRAPHNOTIFY,NULL);
    	DShowUtils::MessageBoxError(hr);
    

    Kann mir jemand helfen?


Anmelden zum Antworten