IResourceManager::RequestResource 方法 (strmif.h)

[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayerIMFMediaEngine音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

方法 RequestResource 请求使用给定的注册资源。

语法

HRESULT RequestResource(
  [in] LONG              idResource,
  [in] IUnknown          *pFocusObject,
  [in] IResourceConsumer *pConsumer
);

参数

[in] idResource

注册资源时检索到的资源令牌。

[in] pFocusObject

指向与请求关联的焦点对象的 IUnknown 接口的指针 (通常是筛选器) 的 IUnknown 接口。

[in] pConsumer

指向请求资源的对象上的 IResourceConsumer 接口的指针。

返回值

返回 HRESULT 值。 如果返回请求的资源,则返回S_OK;如果资源不可用,则返回S_FALSE,在这种情况下,当资源变为可用时,资源管理器将调用请求对象。 任何其他返回都是错误。

备注

当有多个资源请求时,资源管理器将使用随每个请求传递的焦点对象,并将其与最新 IResourceManager::SetFocus 方法中传递的焦点对象进行比较来决定优先级。

请求将按以下优先级顺序进行填充:

  1. 使用与最后一个 SetFocus 方法完全相同的焦点对象发出的请求。
  2. 其焦点对象共享公共源筛选器的请求,其焦点对象共享一个通用筛选器图。
  3. 与焦点位于同一进程中的请求。
检查此优先级时,资源管理器将对焦点对象使用 QueryInterface 进行IID_IFilter。 如果找到,资源管理器将使用 IBaseFilter 方法检查筛选器图,并查找具有当前焦点对象的常见源筛选器。

筛选器应在 pFocusObject 参数中传递筛选器的 IUnknown 接口。 筛选器图管理器将筛选器与筛选器图匹配,并在检查焦点对象时尝试将筛选器跟踪到常见的源筛选器。

焦点对象必须在请求的整个生存期内有效,直到调用 IResourceManager::CancelRequest 方法,或者调用 IResourceManager::NotifyRelease 方法,并将 bStillWant 参数设置为 FALSE

要求

   
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 strmif.h (包括 Dshow.h)
Library Strmiids.lib

另请参阅

错误和成功代码

IResourceManager 接口