在一个directshow的应用项目里面,有这样一段代码://创建一个效果器
IBaseFilter * pEffect;
hr = ::CoCreateInstance(filterGUID, NULL, CLSCTX_INPROC_SERVER, IID_IBaseFilter, (void **)&pEffect);
//列集效果器
IStream * pStream;
hr = ::CoMarshalInterThreadInterfaceInStream(IID_IBaseFilter, pEffect,&(pStream));在windows xp下没有问题,能列集成功
但在windows 7下,CoMarshalInterThreadInterfaceInStream返回的错误信息是:没有注册接口
两个系统的开发环境都是vs2005(sp1)+dx9sdk难道是win7下面没有IBaseFilter的stub/proxy程序?可这是标准接口阿,又不是自定义接口,怎么会没有呢...
谁有什么建议阿?

解决方案 »

  1.   

    在dx9sdk以后的版本中不再缺省包含Directshow
    需要安装相应的Directshow版本
      

  2.   

    只是 CoMarshalInterThreadInterfaceInStream报错的话,多半是WIN7的安全设置问题,否则如果没有注册接口,CoCreateInstance也不会调用成功的
      

  3.   

    你可以把代码发给我,我帮你调试一下
    [email protected]
      

  4.   

    window7  还有很大的问题,没有xp成熟,建议还是换成xp的系统。另外 百度  google的话 也很难找到 相关的回答。