помогите разобраться с IMediaControl и IGraphBuilder

Тема в разделе "WASM.WIN32", создана пользователем lpn_com, 7 июл 2007.

  1. lpn_com

    lpn_com New Member

    Публикаций:
    0
    Регистрация:
    25 ноя 2006
    Сообщения:
    6
    в плагине для winamp'а проигрываю файл
    Код (Text):
    1. CoInitialize(NULL);
    2. IGraphBuilder* m_objGraphBuilder=0;
    3. IMediaControl* m_objMediaControl=0;
    4.  
    5. CoCreateInstance(CLSID_FilterGraph,NULL,CLSCTX_INPROC_SERVER,IID_IGraphBuilder,(void**)& m_objGraphBuilder);
    6. m_objGraphBuilder->QueryInterface (IID_IMediaControl, (void**)&m_objMediaControl);
    7. m_objGraphBuilder->RenderFile(MusicFileName,NULL);
    8. m_objMediaControl->Run();
    потом слежу когда файл проиграется до конца и отпускаю интерфейсы
    Код (Text):
    1. m_objMediaControl->Release();
    2. m_objGraphBuilder->Release();
    3. CoUninitialize();
    так вот, после этого отпускания, при воспроизведении звука самим winamp'ом происходит ошибка (access violation, т.е. как я понимаю какойто указатель (не мой) показывает в никуда) и windows закрывает winamp.
    как правильно закончить работу с IMediaControl и IGraphBuilder когда они больше не нужны ?