インターネット上の非同期モニカー
インターネットはネットワーク アクセスが遅いため、アプリケーションのデザインに工夫が必要です。 つまり、アプリケーションからネットワークに非同期でアクセスして、ユーザー インターフェイスの機能が停止しないようにアプリケーションをデザインします。 MFC の CAsyncMonikerFile クラスを使用すると、ファイルを非同期でダウンロードできます。
非同期モニカーを使用すると、COM アプリケーションを拡張してインターネットを通じてデータを非同期的にダウンロードし、ビットマップや VRML オブジェクトなどの大きなオブジェクトを少しずつ描画できます。 また、ユーザー インターフェイスの応答を中断することなく、インターネット上の ActiveX コントロール プロパティまたはファイルをダウンロードできます。
非同期モニカーの利点
非同期モニカーの利点は、次のとおりです。
ユーザー インターフェイスを妨げることなく、コードやファイルをダウンロードできます。
ユーザー インターフェイスを妨げることなく、ActiveX コントロールのプロパティをダウンロードできます。
ダウンロードの進行状況に関する通知を受け取ることができます。
進行状況および準備状況の情報を追跡できます。
進行状況のステータスをユーザーに提供できます。
ユーザーはダウンロードをいつでもキャンセルできます。
非同期モニカーの MFC クラス
CAsyncMonikerFile は、CMonikerFile の派生クラスであり、CMonikerFile は COleStreamFile の派生クラスです。 COleStreamFile オブジェクトは、データのストリームを表します。CMonikerFile オブジェクトは、IMoniker を使用してデータを取得します。CAsyncMonikerFile オブジェクトは、IMoniker を使用して非同期でデータを取得できます。
通常、インターネット対応のアプリケーションおよび ActiveX コントロールでは、非同期モニカーを使用して、ファイル転送中でもユーザー インターフェイスが応答できるようにします。 主な例として、CDataPathProperty を使用した ActiveX コントロールの非同期プロパティが用意されています。
ActiveX コントロールのデータ パスを表す MFC クラス
MFC の CDataPathProperty クラスおよび CCachedDataPathProperty クラスは、非同期で読み込むことができる ActiveX コントロールのプロパティを実装します。 非同期プロパティは、同期インターフェイスの初期手順終了後に読み込まれます。 非同期の ActiveX コントロールは、長いプロパティの交換中にコールバックを繰り返し呼び出すことによって、新しいデータが取得できたことを示します。
CDataPathProperty は CAsyncMonikerFile から派生します。 CCachedDataPathProperty は CDataPathProperty から派生します。 ActiveX コントロールに非同期プロパティを実装するには、CDataPathProperty または CCachedDataPathProperty からクラスを派生し、OnDataAvailable およびほかの受け取りたい通知をオーバーライドします。
非同期モニカーを使用してファイルをダウンロードするには
CAsyncMonikerFile の派生クラスを宣言します。
OnDataAvailable をオーバーライドしてデータを表示します。
OnProgress、OnStartBinding、OnStopBinding など、その他のメンバー関数をオーバーライドします。
このクラスのインスタンスを宣言し、そのインスタンスで URL を開きます。
ActiveX コントロールでの非同期的なダウンロードの詳細については、「インターネット上の ActiveX コントロール」を参照してください。