インターネット上の非同期モニカー
インターネットは、ネットワーク アクセスが低速であるため、アプリケーション設計に新しいアプローチが必要となります。 ユーザー インターフェイスが固まったようになるのを防ぐために、アプリケーションは、ネットワーク アクセスを非同期的に実行する必要があります。 CAsyncMonikerFile は、ファイルの非同期ダウンロードをサポートする MFC クラスです。
非同期モニカーを使用すると、インターネットでの非同期ダウンロードや、ラージ オブジェクト (ビットマップ、VRML オブジェクトなど) のプログレッシブ レンダリングを行うように COM アプリケーションを拡張できます。 非同期モニカーを使えば、ユーザー インターフェイスの応答をブロックすることなく、インターネット上のファイルや ActiveX コントロールのプロパティをダウンロードすることが可能です。
非同期モニカーの利点
非同期モニカーを使用すると、次のことができます。
ブロック化せずにコードとファイルをダウンロードする。
ブロック化せずに ActiveX コントロールのプロパティをダウンロードする。
ダウンロードの進行状況の通知を受信する。
進行状況と準備完了状態の情報を追跡する。
進行状況についての状態情報をユーザーに提供する。
ダウンロードをユーザーがいつでもキャンセルできる。
非同期モニカーの MFC クラス
CAsyncMonikerFile は CMonikerFile から派生し、さらに、CMonikerFile は COleStreamFile から派生します。 COleStreamFile
オブジェクトは、データのストリームを表し、そのデータを CMonikerFile
オブジェクトは IMoniker
を使用して取得します。CAsyncMonikerFile
オブジェクトは、それを非同期的に行うものです。
非同期モニカーは主に、インターネット対応のアプリケーションや ActiveX コントロールで、ファイル転送中にユーザー インターフェイスの応答性を確保する目的で使用されます。 その代表的な例が、ActiveX コントロールに非同期のプロパティを提供する CDataPathProperty の使用です。
ActiveX コントロールのデータ パスに使用される MFC クラス
MFC のクラスである CDataPathProperty
と CCachedDataPathProperty は、非同期的に読み込むことのできる ActiveX コントロールのプロパティを実装します。 非同期のプロパティは、同期の開始後に読み込まれます。 時間のかかるプロパティ交換プロセス中、非同期の ActiveX コントロールは、コールバックを繰り返し呼び出すことで、新しいデータの状態を知らせます。
CDataPathProperty
は、CAsyncMonikerFile
から派生しています。 CCachedDataPathProperty
は、CDataPathProperty
から派生しています。 ActiveX コントロールに非同期プロパティを実装するには、CDataPathProperty
または CCachedDataPathProperty
からクラスを派生し、OnDataAvailable など、受信したい通知をオーバーライドします。
非同期モニカーを使用してファイルをダウンロードするには
CAsyncMonikerFile から派生したクラスを宣言します。
データを表示するために OnDataAvailable をオーバーライドします。
OnProgress、OnStartBinding、OnStopBinding など、他のメンバー関数をオーバーライドします。
このクラスのインスタンスを宣言し、それを使用して URL を開きます。
ActiveX コントロールにおける非同期ダウンロードについては、「インターネット上の ActiveX コントロール」を参照してください。