将消息从DirectShow筛选器发送到属性页

Send message to property page from DirectShow filter

本文关键字:属性 消息 DirectShow 筛选      更新时间:2023-10-16

我编写了一个Directshow筛选器,它从CTransInPlace派生并实现了一个属性页。将数据从属性页传递到过滤器,并将数据从过滤器拉到属性页,效果很好(使用定义的接口),但我想从过滤器向属性页发送一个通知,表示发生了一些事情(在这种情况下,在均衡器中发生了剪切)。

在这一点上我遇到了麻烦,因为我没有从过滤器中引用属性页,并且属性页是由GraphEdit实例化的。

向属性页发送某种类型的消息或通知的最佳方式是什么?

您可以在过滤器中实现回调函数。看看采样器过滤器。有一种模拟情况:

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