Проблема вот в чем. Файл передается по сети и его надо проиграть.
Как я понял, для проигрывания локального файла HRESULT IGraphBuilder::RenderFile(LPCWSTR lpwstrFile, LPCWSTR lpwstrPlayList); и потом IMediaControl::Run()
Но файл на диске сохранять не хочеться. В DXSDK есть пример проигрывания файла из памяти (memfile), все работает, но там создается IFilterGraph, для создания которого используеться CMediaType (тип файла определяеться по расширению), ну и далее HRESULT IGraphBuilder::Render(IPin*). А есть ли какой-нибудь путь что бы не надо было оределять самостоятельно тип файла по расширению или анализируя его структуру.
Т.е. весь файл находиться в памяти и его надо проиграть. Можно ли как то автоматически получить MEDIASUBTYPE_XXX, ведь это же как то делаеться в RenderFile, а принципиальной разници весь файл на диске или в памяти нет.