[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayer、 IMFMediaEngine 和 音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
CBaseControlWindow 类实现 IVideoWindow 接口,并控制对其关联筛选器的外部访问。 必须通过向 CBaseControlWindow 对象传递指向关键节同步对象的指针,将其与筛选器同步。 CBaseControlWindow 类提供了许多方法,这些方法无需处理此关键部分即可返回属性设置。 例如,调用 CBaseControlWindow::get_AutoShow 来检索 m_bAutoShow 数据成员的值会锁定关键节。 但是,筛选器可能已具有锁定的内部关键部分,这可能会违反筛选器的锁层次结构。 相反,调用 CBaseControlWindow::IsAutoShowEnabled 成员函数返回所需的值,而不会影响关键部分。
所有 CBaseControlWindow 实现的 IVideoWindow 方法都要求筛选器与其上游筛选器正确连接。 出于此原因,类对象需要同步引脚,可通过调用 CBaseControlWindow::SetControlWindowPin 方法设置同步引脚。 每当调用 IVideoWindow 方法时, CBaseControlWindow 对象都会检查引脚是否仍然连接。
| 受保护的数据成员 | 说明 |
|---|---|
| m_bAutoShow | 状态更改时的结果。 |
| m_bCursorHidden | 确定光标是显示还是隐藏。 |
| m_BorderColour | 当前窗口边框的颜色。 |
| m_hwndDrain | 接收的消息将发布到的窗口句柄。 |
| m_hwndOwner | 拥有窗口。 |
| m_pFilter | 指向拥有媒体筛选器的指针。 |
| m_pInterfaceLock | 外部定义的关键部分。 |
| m_pPin | 控制连接的媒体类型。 |
| 成员函数 | 说明 |
| CBaseControlWindow | 构造 CBaseControlWindow 对象。 |
| DoGetWindowStyle | 检索典型或扩展窗口样式。 |
| DoSetWindowStyle | 设置典型或扩展窗口样式。 |
| GetBorderColour | 检索当前边框颜色。 这是一个帮助程序成员函数。 |
| GetOwnerWindow | 检索拥有窗口。 这是一个帮助程序成员函数。 |
| IsAutoShowEnabled | 检索有关呈现筛选器暂停或运行时视频窗口是否自动显示的信息。 |
| IsCursorHidden | 在不锁定关键节的情况下检索 m_bCursorHidden 数据成员的当前状态。 这是一个帮助程序成员函数。 |
| 可能yEatMessage | 将消息分发到父窗口。 |
| SetControlWindowPin | 通知应用该图钉的对象。 |
| IVideoWindow 方法 | 说明 |
| get_AutoShow | 检索当前自动显示标志设置。 |
| get_BackgroundPalette | 检索背景标志中实现的调色板。 |
| get_BorderColor | 检索当前边框颜色。 |
| get_Caption | 检索当前窗口描述文字。 |
| get_ FullScreenMode | 检索当前全屏模式。 |
| get_Height | 检索当前窗口高度。 |
| get_Left | 检索当前左窗口坐标。 |
| GetMaxIdealImageSize | 检索理想图像的最大大小。 |
| get_MessageDrain | 检索当前消息排出。 |
| GetMinIdealImageSize | 检索理想图像的最小大小。 |
| get_Owner | 检索父窗口句柄。 |
| GetRestorePosition | 检索窗口在最大化或最小化时将还原到的位置。 |
| get_Top | 检索窗口顶部的 y 坐标。 |
| get_Visible | 检索窗口的当前可见性设置。 |
| get_Width | 检索窗口的宽度。 |
| GetWindowPosition | 检索当前窗口坐标。 |
| get_WindowState | 检索窗口的当前状态。 |
| get_WindowStyle | 检索标准窗口样式。 |
| get_WindowStyleEx | 检索扩展窗口样式。 |
| HideCursor | 隐藏或显示光标。 |
| IsCursorHidden | 检索 m_bCursorHidden 数据成员的当前状态。 |
| NotifyOwnerMessage | 传递发送到拥有窗口的消息。 |
| put_AutoShow | 设置 AutoShow 属性。 |
| put_BackgroundPalette | 设置一个标志以在背景中实现调色板。 |
| put_BorderColor | 设置当前边框颜色。 |
| put_Caption | 设置当前窗口描述文字。 |
| put_ FullScreenMode | 设置全屏模式。 |
| put_Height | 设置当前窗口的高度。 |
| put_Left | 设置窗口的左坐标。 |
| put_MessageDrain | 设置消息排出窗口。 |
| put_Owner | 设置 Microsoft Win32 父窗口句柄。 |
| put_Top | 设置窗口顶部的位置。 |
| put_Visible | 隐藏或显示窗口。 |
| put_Width | 设置窗口的宽度。 |
| put_WindowState | 设置窗口的状态。 |
| put_WindowStyle | 设置标准窗口样式。 |
| put_WindowStyleEx | 设置扩展窗口样式。 |
| SetWindowForeground | 在前台设置窗口。 |
| SetWindowPosition | 设置窗口位置。 |
另请参阅