从DirectShow过滤器向属性页发送消息

时间:2011-06-02 21:44:33

标签: c++ directshow

我编写了一个源自CTransInPlace的Directshow过滤器,并实现了一个属性页面。将数据从属性页面传递到过滤器并将数据从过滤器提取到属性页面效果很好(使用已定义的接口),但我想从过滤器向属性页面发送通知以表示发生了某些事情(在此情况下,在均衡器中发生了削波。)

我现在遇到了麻烦,因为我没有在过滤器中引用属性页面,而且属性页面是由GraphEdit实例化的。

将某种类型的消息或通知发送到属性页面的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以在过滤器中实现回调函数。看一下samplegrabber过滤器。有一个类似的情况:

samplegrabber过滤器实现ISampleGrabber Interface,其中包含SetCallback函数。需要接收回调的类需要实现ISampleGrabberCB Interface。调用SetCallback时,您将指针传递给ISampleGrabberCB接口。现在,samplegrabber过滤器可以调用该接口中的函数(BufferCB或SampleCB)。