IResourceManager インターフェイス
IResourceManager インターフェイスは、システム リソースの競合を解決する。
フィルタ グラフ マネージャはこのインターフェイスを公開する。フィルタでは、このインターフェイスを使って、他のオブジェクトが使う可能性があるリソースを要求できる。たとえば、オーディオ レンダリングでは、このインターフェイスを使って、ウェーブ出力デバイスの競合を解決し、サウンドとフォーカスを一致させる。
通常、アプリケーションがこのインターフェイスを使うことはない。
オブジェクトでは、既存のリソース間で起きる可能性がある競合を、このインターフェイスを使って解決できる。まず、オブジェクトは、インターフェイスにリソースを登録し、必要なときにそのリソースを要求する。オブジェクトは、ユーザーのフォーカスが変化するたびに、フィルタ グラフ マネージャに通知しなければならない。これによって、フィルタ グラフ マネージャは、競合するリソースをユーザーのフォーカスがあるオブジェクトに切り替えることができる。
このインターフェイスを使うオブジェクトは、IResourceConsumer インターフェイスを実装する必要がある。IResourceConsumer は、リソースが利用可能になったとき、または取得したリソースをオブジェクトが解放すべきときに、フィルタ グラフ マネージャがオブジェクトに通知するためのコールバック メカニズムを提供する。
IUnknown から継承したメソッドに加えて、IResourceConsumer インターフェイスは次のメソッドを公開する。
メソッド | 説明 |
Register | 単独の名前付きリソースをリソース マネージャに登録する。 |
RegisterGroup | 名前付きリソース グループをリソース マネージャに登録する。 |
RequestResource | 所定の登録済みリソースの使用を要求する。 |
NotifyAcquire | リソース取得の試みが完了したことをリソース マネージャに通知する。 |
NotifyRelease | リソースの使用者がリソースを解放したことをリソース マネージャに通知する。 |
CancelRequest | リソース要求を取り消す。 |
SetFocus | 指定されたオブジェクトにユーザーのフォーカスが与えられたことをリソース マネージャに通知する。 |
ReleaseFocus | 現在のフォーカス オブジェクトが指定された場合に、リソース マネージャ内のフォーカス オブジェクトを NULL に設定する。 |