IResourceManager::RequestResource メソッド (strmif.h)
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]
メソッドは RequestResource
、特定の登録済みリソースの使用を要求します。
構文
HRESULT RequestResource(
[in] LONG idResource,
[in] IUnknown *pFocusObject,
[in] IResourceConsumer *pConsumer
);
パラメーター
[in] idResource
リソースが登録されたときに取得されたリソース トークン。
[in] pFocusObject
要求に関連付けられているフォーカス オブジェクトの IUnknown インターフェイスへのポインター (通常はフィルターの IUnknown インターフェイス)。
[in] pConsumer
リソースを要求するオブジェクトの IResourceConsumer インターフェイスへのポインター。
戻り値
HRESULT 値を返します。 要求されたリソースが返された場合はS_OKを返し、リソースが使用できない場合はS_FALSEを返します。その場合、リソースが使用可能になると、リソース マネージャーは要求元のオブジェクトを呼び出します。 その他の戻り値はエラーです。
解説
リソースに対する要求が複数ある場合、リソース マネージャーは、各要求で渡されたフォーカスのオブジェクトを使用して優先度を決定し、最新の IResourceManager::SetFocus メソッドで渡されたフォーカスのオブジェクトと比較します。
要求は、次の優先順位で入力されます。
- 最後の SetFocus メソッドとまったく同じフォーカス オブジェクトを使用して行われた要求。
- フォーカスのオブジェクトが共通のソース フィルターを共有し、フォーカスのオブジェクトが共通のフィルター グラフを共有する要求。
- フォーカスと同じプロセスでの要求。
フィルターは、pFocusObject パラメーターでフィルターの IUnknown インターフェイスを渡す必要があります。 フィルター グラフ マネージャーは、フィルターをフィルター グラフに一致させ、フォーカスのオブジェクトをチェックするときに、一般的なソース フィルターへのフィルターのトレースを試みます。
フォーカス オブジェクトは、IResourceManager::CancelRequest メソッドが呼び出されるか、bStillWant パラメーターを FALSE に設定して IResourceManager::NotifyRelease メソッドが呼び出されるまで、要求の有効期間全体にわたって有効である必要があります。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | strmif.h (Dshow.h を含む) |
Library | Strmiids.lib |