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?