インターネット上の非同期モニカー

インターネットは、ネットワーク アクセスが低速であるため、アプリケーション設計に新しいアプローチが必要となります。 ユーザー インターフェイスが固まったようになるのを防ぐために、アプリケーションは、ネットワーク アクセスを非同期的に実行する必要があります。 CAsyncMonikerFile は、ファイルの非同期ダウンロードをサポートする MFC クラスです。

非同期モニカーを使用すると、インターネットでの非同期ダウンロードや、ラージ オブジェクト (ビットマップ、VRML オブジェクトなど) のプログレッシブ レンダリングを行うように COM アプリケーションを拡張できます。 非同期モニカーを使えば、ユーザー インターフェイスの応答をブロックすることなく、インターネット上のファイルや ActiveX コントロールのプロパティをダウンロードすることが可能です。

非同期モニカーの利点

非同期モニカーを使用すると、次のことができます。

  • ブロック化せずにコードとファイルをダウンロードする。

  • ブロック化せずに ActiveX コントロールのプロパティをダウンロードする。

  • ダウンロードの進行状況の通知を受信する。

  • 進行状況と準備完了状態の情報を追跡する。

  • 進行状況についての状態情報をユーザーに提供する。

  • ダウンロードをユーザーがいつでもキャンセルできる。

非同期モニカーの MFC クラス

CAsyncMonikerFileCMonikerFile から派生し、さらに、CMonikerFile は COleStreamFile から派生します。 COleStreamFile オブジェクトは、データのストリームを表し、そのデータを CMonikerFile オブジェクトは IMoniker を使用して取得します。CAsyncMonikerFile オブジェクトは、それを非同期的に行うものです。

非同期モニカーは主に、インターネット対応のアプリケーションや ActiveX コントロールで、ファイル転送中にユーザー インターフェイスの応答性を確保する目的で使用されます。 その代表的な例が、ActiveX コントロールに非同期のプロパティを提供する CDataPathProperty の使用です。

ActiveX コントロールのデータ パスに使用される MFC クラス

MFC のクラスである CDataPathPropertyCCachedDataPathProperty は、非同期的に読み込むことのできる ActiveX コントロールのプロパティを実装します。 非同期のプロパティは、同期の開始後に読み込まれます。 時間のかかるプロパティ交換プロセス中、非同期の ActiveX コントロールは、コールバックを繰り返し呼び出すことで、新しいデータの状態を知らせます。

CDataPathProperty は、CAsyncMonikerFile から派生しています。 CCachedDataPathProperty は、CDataPathProperty から派生しています。 ActiveX コントロールに非同期プロパティを実装するには、CDataPathProperty または CCachedDataPathProperty からクラスを派生し、OnDataAvailable など、受信したい通知をオーバーライドします。

非同期モニカーを使用してファイルをダウンロードするには

  1. CAsyncMonikerFile から派生したクラスを宣言します。

  2. データを表示するために OnDataAvailable をオーバーライドします。

  3. OnProgressOnStartBindingOnStopBinding など、他のメンバー関数をオーバーライドします。

  4. このクラスのインスタンスを宣言し、それを使用して URL を開きます。

ActiveX コントロールにおける非同期ダウンロードについては、「インターネット上の ActiveX コントロール」を参照してください。

関連項目

MFC インターネット プログラミングの作業
MFC インターネット プログラミングの基礎