我编写了一个派生自 CTransInPlace 并实现单个属性页的 Directshow 过滤器。将数据从属性页传递到过滤器并将数据从过滤器拉到属性页效果很好(使用定义的接口(interface)),但我想从过滤器向属性页发送通知以表示发生了某些事情(在此在这种情况下,削波发生在均衡器中)。
此时我遇到了麻烦,因为我没有从过滤器中引用属性页,而属性页是由 GraphEdit 实例化的。
向属性页发送某种类型的消息或通知的最佳方式是什么?
最佳答案
您可以在过滤器中实现回调函数。看一下 samplegrabber 过滤器。有一个类似的情况:
samplegrabber 过滤器实现了 ISampleGrabber Interface其中包括 SetCallback功能。需要接收回调的类,需要实现ISampleGrabberCB Interface .调用 SetCallback 时,您将指针传递给 ISampleGrabberCB 接口(interface)。现在,samplegrabber 过滤器可以调用该接口(interface)中的函数(BufferCB 或 SampleCB)。
关于c++ - 从 DirectShow 过滤器向属性页发送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6220748/