当前位置: 代码迷 >> WinCE >> 急关于WINDOWS CE下调用DirectShow开发多媒体的有关问题!
  详细解决方案

急关于WINDOWS CE下调用DirectShow开发多媒体的有关问题!

热度:57   发布时间:2016-04-28 13:25:57.0
急!!!关于WINDOWS CE下调用DirectShow开发多媒体的问题!!!
我在WINDOWS   CE平台上调用DirectShow开发多媒体,当初始化COM以后,调用CoCreateInstance方法,老是出错,返回一个很小的负数,不知道是什么原因,请高手指教,下面是其中一段代码。IID和CLSID都没错。

        HRESULT   hr   =   CoInitializeEx(NULL,   COINIT_MULTITHREADED);
hr   =   CoCreateInstance(CLSID_FilterGraph,   NULL,   CLSCTX_INPROC,   IID_IGraphBuilder,   (void   **)&pGraph);
        //   Filenames   on   Windows   CE   start   with   a   \\   instead   of   a   drive   letter.
        pGraph-> RenderFile(L "\\Videos\\没有你的每一天.wmv ",   NULL);

谢谢!!!


------解决方案--------------------
JIF(CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,IID_IGraphBuilder, (void **)&ipGraBuilder));
------解决方案--------------------
// Initialize COM
if(FAILED(CoInitializeEx(NULL, COINIT_MULTITHREADED)))
{
RETAILMSG(1, (TEXT( "CoInitialize Failed!\r\n ")));
exit(1);
}
JIF(CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void **)&pGB));

可参考wince目录下的sdk的playwnd例子
------解决方案--------------------
我估计你定制wince的时候,没有把directshow的相关模块全部加进去。你应该先查你的OS。
------解决方案--------------------
你定制的时候把dshow和WMP等都加进来,然后在WINCE中试着打开wmp,如果可以就说明没问题,肯定是你代码的问题或者你链接了不正确的lib文件等等。
------解决方案--------------------
你的CE什么版本,看看是否支持DSHOW.
 另外,你可以把CoCreateInstance返回值,转变成正数,看看对应的错误代码解释。
  相关解决方案