次の方法で共有


IResourceManager インターフェイス

IResourceManager インターフェイスは、システム リソースの競合を解決する。

フィルタ グラフ マネージャはこのインターフェイスを公開する。フィルタでは、このインターフェイスを使って、他のオブジェクトが使う可能性があるリソースを要求できる。たとえば、オーディオ レンダリングでは、このインターフェイスを使って、ウェーブ出力デバイスの競合を解決し、サウンドとフォーカスを一致させる。

通常、アプリケーションがこのインターフェイスを使うことはない。

オブジェクトでは、既存のリソース間で起きる可能性がある競合を、このインターフェイスを使って解決できる。まず、オブジェクトは、インターフェイスにリソースを登録し、必要なときにそのリソースを要求する。オブジェクトは、ユーザーのフォーカスが変化するたびに、フィルタ グラフ マネージャに通知しなければならない。これによって、フィルタ グラフ マネージャは、競合するリソースをユーザーのフォーカスがあるオブジェクトに切り替えることができる。

このインターフェイスを使うオブジェクトは、IResourceConsumer インターフェイスを実装する必要がある。IResourceConsumer は、リソースが利用可能になったとき、または取得したリソースをオブジェクトが解放すべきときに、フィルタ グラフ マネージャがオブジェクトに通知するためのコールバック メカニズムを提供する。

IUnknown から継承したメソッドに加えて、IResourceConsumer インターフェイスは次のメソッドを公開する。

メソッド 説明
Register 単独の名前付きリソースをリソース マネージャに登録する。
RegisterGroup 名前付きリソース グループをリソース マネージャに登録する。
RequestResource 所定の登録済みリソースの使用を要求する。
NotifyAcquire リソース取得の試みが完了したことをリソース マネージャに通知する。
NotifyRelease リソースの使用者がリソースを解放したことをリソース マネージャに通知する。
CancelRequest リソース要求を取り消す。
SetFocus 指定されたオブジェクトにユーザーのフォーカスが与えられたことをリソース マネージャに通知する。
ReleaseFocus 現在のフォーカス オブジェクトが指定された場合に、リソース マネージャ内のフォーカス オブジェクトを NULL に設定する。