2009-01-09 56 views

回答

2

使用无呈现模式时,SelectAtPosition()崩溃问题可以通过在自定义分配器中实现IVMRWindowlessControl9接口来解决。

  1. 除了IVMRSurfaceAllocator9 & IVMRImagePresenter9,实现IMRWindowlessControl9,太! class CAllocator:public IVMRSurfaceAllocator9,IVMRImagePresenter9,IVMRWindowlessControl9

  2. 定义IVMRWindowlessControl9的所有虚拟功能。在我的情况下,我需要在下列函数上加上额外的代码 ,以使鼠标处理正常工作:GetAspectRatioMode(),SetAspectRatioMode(),SetAspectRatioMode(),GetVideoPosition()& GetNativeVideoSize()。其他函数只返回S_OK。

M $ SDK文档没有提到我们需要实现这个!经过几个小时的调试,我注意到quartz.dll试图从定制分配器中查询这个接口。有时候真的要付出耐心!