CBaseControlWindow.NotifyOwnerMessage 方法

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

方法 NotifyOwnerMessage 将特定消息传递到视频窗口。

语法

HRESULT NotifyOwnerMessage(
   long     hwnd,
   long     uMsg,
   LONG_PTR wParam,
   LONG_PTR lParam
);

参数

hwnd

视频窗口的句柄。

uMsg

消息详细信息。

wParam

第一个消息参数。

lParam

第二个消息参数。

返回值

返回NO_ERROR。

备注

当视频窗口是另一个窗口的子窗口时,它不会收到某些顶级窗口消息。 这些消息对呈现器很有价值,因为它们可能会影响其行为。 NotifyOwnerMessage 将以下任意消息传递到视频窗口。

  • WM_ACTIVATEAPP
  • WM_DEVMODECHANGE
  • WM_DISPLAYCHANGE
  • WM_PALETTECHANGED
  • WM_PALETTEISCHANGING
  • WM_QUERYNEWPALETTE
  • WM_SYSCOLORCHANGE

可以请求 IVideoWindow 插件分发服务器 (PID) 使窗口成为另一个窗口的子窗口。 发生这种情况时,PID 将查找可能发送到所属窗口的某些消息。 然后,PID 会将这些消息转发到拥有的窗口。 消息的默认处理是通过调用 Win32 SendMessage 函数以同步方式将它们发送到拥有的窗口过程。

要求

要求
标头
Ctlutil.h (包括 Streams.h)

Strmbase.lib (零售版本) ;
Strmbasd.lib (调试生成)

另请参阅

CBaseControlWindow 类