IResourceManager::SetFocus 方法 (strmif.h)
[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayer、 IMFMediaEngine 和 媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
方法 SetFocus
通知资源管理器指定对象已获得用户的焦点。
语法
HRESULT SetFocus(
[in] IUnknown *pFocusObject
);
参数
[in] pFocusObject
指向已给予用户焦点的 对象的指针。
返回值
返回一个取决于实现的 HRESULT 值。 HRESULT 可以是以下标准常量之一,也可以是未列出的其他值。
返回代码 | 说明 |
---|---|
|
失败。 |
|
NULL 指针参数。 |
|
无效的参数。 |
|
不支持方法。 |
|
成功。 |
备注
在 DirectShow 中,给定用户焦点的对象通常是窗口已接收焦点的视频呈现器。 资源管理器按以下顺序优先处理资源请求:
- 使用 pFocusObject 参数中指定的焦点对象发出的请求。
- 其焦点对象共享公共源筛选器的请求。
- 其焦点对象共享公共筛选器图的请求。
- 与焦点位于同一进程中的请求。
SetFocus
在此期间由其他对象调用。 焦点对象上不保留引用计数。
资源管理器将保留此指针,直到被替换或取消,并将使用它来解决资源争用。 它将至少对 IBaseFilter 接口使用 QueryInterface,如果找到,将在该接口上使用方法。 它在 IBaseFilter 上调用方法来决定使用哪个音频呈现器(如果有两个 (它将选择具有焦点对象) 通用的源筛选器的呈现器,并确定这两个对象是否位于同一筛选器图中。
要求
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | strmif.h (包括 Dshow.h) |
Library | Strmiids.lib |