IMFTrackedSample::SetAllocator 方法 (mfidl.h)

设置示例的所有者。

语法

HRESULT SetAllocator(
  [in] IMFAsyncCallback *pSampleAllocator,
  [in] IUnknown         *pUnkState
);

参数

[in] pSampleAllocator

指向回调对象的 IMFAsyncCallback 接口的指针。 调用方必须实现此接口。

[in] pUnkState

指向由调用方定义的状态对象的 IUnknown 接口的指针。 此参数可以为 NULL。 可以使用此对象来保存状态信息。 调用回调时,对象将返回到调用方。

返回值

该方法返回 HRESULT。 可能的值包括(但并不限于)下表中的项。

返回代码 说明
S_OK
方法成功。
MF_E_NOTACCEPTING
所有者已设置。 此方法不能在示例中调用两次。

注解

调用此方法时,该示例本身保留一个额外的引用计数。 当每个其他对象释放其对示例的引用计数时,该示例将调用 pSampleAllocator 回调方法。 若要获取指向示例的指针,请在给定给回调的 IMFAsyncCallback:: Invoke 方法的异步结果对象 上调用 IMFAsyncResult:: GetObject。

调用回调后,示例将清除回调。 若要恢复回调,必须再次调用 SetAllocator

可以安全地将示例的 IMFSample 接口指针作为状态对象 (pUnkState) 进行回调。 如果 pUnkState 指向示例, SetAllocator 方法会考虑 pUnkState 上的附加引用计数。

要求

要求
最低受支持的客户端 Windows Vista [桌面应用 | UWP 应用]
最低受支持的服务器 Windows Server 2008 [桌面应用 | UWP 应用]
目标平台 Windows
标头 mfidl.h
Library Strmiids.lib

另请参阅

IMFTrackedSample