次の方法で共有


CBaseControlWindow.NotifyOwnerMessage メソッド

[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayerIMFMediaEngineAudio/Video Capture を使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]

メソッドは NotifyOwnerMessage 、特定のメッセージをビデオ ウィンドウに渡します。

構文

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

パラメーター

hwnd

ビデオ ウィンドウにハンドルします。

uMsg

メッセージの詳細。

wParam

最初のメッセージ パラメーター。

lParam

2 番目のメッセージ パラメーター。

戻り値

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 クラス