IResourceManager::SetFocus メソッド (strmif.h)
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]
メソッドは SetFocus
、指定したオブジェクトにユーザーのフォーカスが与えられていることをリソース マネージャーに通知します。
構文
HRESULT SetFocus(
[in] IUnknown *pFocusObject
);
パラメーター
[in] pFocusObject
ユーザーのフォーカスが与えられたオブジェクトへのポインター。
戻り値
実装に依存する HRESULT 値を返します。 HRESULT には、次の標準定数のいずれか、または一覧にないその他の値を指定できます。
リターン コード | 説明 |
---|---|
|
失敗しました。 |
|
NULL ポインター引数。 |
|
引数が無効です。 |
|
メソッドはサポートされていません。 |
|
成功しました。 |
解説
DirectShow では、ユーザーのフォーカスが与えられたオブジェクトは、通常、ウィンドウがフォーカスを受け取ったビデオ レンダラーです。 リソース マネージャーは、次の順序でリソースの要求を優先します。
- pFocusObject パラメーターで指定されたフォーカス オブジェクトを使用して行われた要求。
- フォーカス オブジェクトが共通のソース フィルターを共有する要求。
- フォーカス オブジェクトが共通のフィルター グラフを共有する要求。
- フォーカスと同じプロセスでの要求。
SetFocus
保証できる場合を除きます。 フォーカス オブジェクトに参照カウントは保持されません。
リソース マネージャーは、置き換えられるか取り消されるまでこのポインターを保持し、それを使用してリソースの競合を解決します。 少なくとも IBaseFilter インターフェイスには QueryInterface を使用し、見つかった場合は、そのインターフェイスのメソッドを使用します。 IBaseFilter のメソッドを呼び出して、2 つがある場合に使用するオーディオ レンダラーを決定し (フォーカス オブジェクトに共通するソース フィルターを持つものを選択します)、2 つのオブジェクトが同じフィルター グラフ内にあるかどうかを判断します。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | strmif.h (Dshow.h を含む) |
Library | Strmiids.lib |