コールバック同期

非同期のWinInet API(最も一般的なプロトコルに使用される)は、コールバックメカニズムと呼び出しアプリケーションの同期をクライアントで実行されるタスクとして残します。 これは、最大限の柔軟性を実現できるため、意図的なものです。 既定のプロトコルとURLモニカーの実装は、この同期を実行し、シングルスレッドおよびアパートメントスレッドアプリケーションがフリースレッドスタイルの競合を処理する必要がないことを保証します。 つまり、クライアントのIEnumFORMATETCおよびIBindStatusCallbackインターフェイスは、それぞれの適切なスレッドでのみ呼び出されます。 この機能は、IMoniker::BindToStorageおよびIMoniker::BindToObjectを呼び出す各スレッドがメッセージキューを持っている限り、URL mMonikerのユーザーに対し透過的です。

非同期モニカーの仕様では、WinSockまたはWinInetで許可されているよりも、ダウンロードの優先順位付けと管理をより正確に制御する必要があります。 したがって、URLモニカーは、IBinding仕様に基づく優先順位スキームを(同期の一部として)使用して、任意の呼び出し元のスレッドのすべてのダウンロードを管理します。

URLモニカー