IMemAllocatorCallbackTemp::SetNotify 方法 (strmif.h)
[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayer、 IMFMediaEngine 和 音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
方法 SetNotify
设置或删除分配器上的回调。 每当调用分配器的 IMemAllocator::ReleaseBuffer 方法时,分配器都会调用回调方法。
语法
HRESULT SetNotify(
IMemAllocatorNotifyCallbackTemp *pNotify
);
参数
pNotify
指向将用于回调的 IMemAllocatorNotifyCallbackTemp 接口的指针。 调用方必须实现 接口。 使用值 NULL 删除回调。
返回值
如果成功,则返回S_OK,否则返回错误代码。
注解
每当调用分配器的 ReleaseBuffer 方法时,分配器都会在 pNotify 中提供的接口上调用 NotifyRelease 方法。 ReleaseBuffer 方法将媒体示例返回到分配器的可用列表。 当样本的引用计数达到零时,会调用此方法。
分配器保留调用方 IMemAllocatorNotifyCallbackTemp 接口上的引用计数。 这会创建循环引用计数,从而阻止正确释放图形中的对象。 因此,当调用方不再需要回调通知时,它应再次 使用 NULL 值调用此方法。 执行此操作的适当时间是图停止的时间,或者引脚断开连接的时间。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | strmif.h (包括 Dshow.h) |
Library | Strmiids.lib |