Продолжаем расследование по встроенной проблеме WindowsMediaPlayer , я пытаюсь выполнить простое воспроизведение файла через обрабатывающий сервер DirectShow:
::CoInitializeEx(0, COINIT_MULTITHREADED);
CComPtr<IGraphBuilder> spGraph;
spGraph.CoCreateInstance(CLSID_FilterGraph, 0, CLSCTX_INPROC_SERVER);
CComQIPtr<IMediaControl> spMediaControl(spGraph);
// ... later:
spGraph->RenderFile(L"c:\\foo.wav", 0); // fails with VFW_E_BAD_KEY
spMediaControl->Run();
Интересно, что это работает нормально на обеих системах, на которых я тестировал (Windows XP 32 и x64), когда делал это в автономном приложении.
Однако в моем реальном случае он не работает, плагин для браузера на основе NPAPI - то есть DLL, загруженная в Firefox / Chrome / Opera.
Кто-нибудь имеет представление, что здесь может пойти не так?
Или идеи, что еще попробовать?
Обновление: также запрашивается на форумах Microsoft .
Update2:
IGraphBuilder::AddSourceFilter(path,path,&base)
уже завершается ошибкой со следующими вызовами реестра (как видно из монитора процессов):
"RegOpenKey","HKCU\Software\Classes\c","NAME NOT FOUND","Desired Access: Query Value, Maximum Allowed"
"RegOpenKey","HKCU\Software\Classes\Media Type\Extensions\.wav","NAME NOT FOUND","Desired Access: Read"
"RegOpenKey","HKCU\Software\Classes\Media Type","NAME NOT FOUND","Desired Access: Read"