IMemAllocatorCallbackTemp::SetNotify 方法 (strmif.h)

[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayerIMFMediaEngine音频/视频捕获 ,而不是 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

另请参阅

错误和成功代码

IMemAllocatorCallbackTemp 接口