急!!!关于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返回值,转变成正数,看看对应的错误代码解释。