URLモニカー
OLE モニカー アーキテクチャは、URL を操作するための便利なプログラミング モデルを提供します。 モニカー アーキテクチャでは、 MkParseDisplayName 関数と IParseDisplayName インターフェイスと IMoniker インターフェイスを介した拡張可能で完全な名前の解析と、 IMoniker::GetDisplayName メソッドによる印刷可能な名前がサポートされています。 IMoniker インターフェイスは実際に URL を使用する方法であり、モニカー アーキテクチャに適合するコンポーネントを構築することは、実際に URL 名前空間を実際に拡張する方法です。
システム提供のモニカー クラスである URL モニカーは、特定の URL を構築して使用するためのフレームワークを提供します。 URL では待機時間の長いネットワーク間でリソースが頻繁に表示されるため、URL モニカーは非同期バインディングと同期バインディングをサポートします。 URL モニカーは現在、 非同期ストレージ をサポートしていません。
次の図は、URLモニカーの使用に関連するコンポーネントを示しています。 これらのコンポーネントはすべて使い慣れているはずです。 (非同期モニカーをご覧ください。)
すべてのモニカー クライアントと同様に、URL モニカーのユーザーは通常、モニカーへの参照と、バインド中に使用されるバインド コンテキストへの参照を作成して保持します (IMoniker::BindToStorage または IMoniker::BindToObject)。 非同期バインディングをサポートするために、クライアントは、 IBindStatusCallback インターフェイスを実装する bind-status-callback オブジェクトを実装し、 RegisterBindStatusCallback 関数を使用してバインド コンテキストに登録できます。 このオブジェクトは、 IBindStatusCallback::OnStartBinding の呼び出し中にトランスポートの IBinding インターフェイスを受け取ります。
URL モニカーは、URL プレフィックスを解析して使用されているプロトコルを識別し、トランスポート層から IBinding インターフェイスを取得します。 クライアントは IBinding を使用して、バインディング操作の一時停止、取り消し、および優先順位付けをサポートします。 コールバックオブジェクトは、 IBindStatusCallback::OnProgress による進行状況の通知、 IBindStatusCallback::OnDataAvailable によるデータの利用可能性の通知、バインディングのステータスに関する様々な他のトランスポート層の通知も受け取ります。 URL モニカーまたは特定のトランスポート層は、 IBindStatusCallback::QueryInterface を介してクライアントに拡張情報を要求する場合もあり、クライアントはバインド操作に影響を与えるプロトコル固有の情報を提供できます。
詳細については、次のトピックを参照してください。