次の方法で共有


ASYNC サンプル:データを非同期にダウンロードします。

ASYNC サンプルでは、URL からデータを非同期にダウンロードするコントロールを作成します。 このコントロールは IBindStatusCallback インターフェイスを実装します。 通常は、大きなバイナリ オブジェクトやプロパティをダウンロードするときに、非同期ダウンロードを使用します。 これは、ユーザー インターフェイスの長いネットワーク操作中にブロック化されていないままにするコントロールできます。 非同期のダウンロードも、ユーザーのダウンロードを中止する機会を与えます。 ATL では、WinInet 関数を内部的に使用して、非同期のダウンロードを実装します。

ASYNC 属性サンプル : データを非同期にダウンロードは、このサンプルの属性付きバージョンです。

セキュリティに関するメモセキュリティに関するメモ

このサンプル コードは概念を示すためのものであり、その概念に関連するコードのみを示しています。特定の環境について必ずしもセキュリティ要件を満たしていませんので、そのまま使用しないでください。セキュリティおよびエラー処理コードを追加して、プロジェクトをより安全かつ堅牢にすることをお勧めします。これらのサンプル コードは、現状有姿のままで提供されるものであり、一切保証されていません。

サンプルとそのインストール手順を取得するには

Visual Studio のサンプルにアクセスするには

  • [ヘルプ] メニューの [サンプル] をクリックします。

    既定では、これらのサンプルは drive:\Program Files\Microsoft Visual Studio 10.0\Samples\ にインストールされています。

  • このサンプルの最新版および他のサンプルの一覧については、MSDN Web サイト上で Visual Studio サンプル 」を参照してください。

サンプルのビルドと実行

このサンプルをビルドして実行するには

  1. async.sln を開きます。

  2. メニューを作成、ソリューションのビルド をクリックします。

  3. サンプルをビルドしたら、Web ブラウザーで ATLAsync.htm を開き、表示される指示に従います。 これは URL の ASYNC コントロールのプロパティを設定し、ダウンロードを開始します。 ダウンロードされたデータは、ASYNC コントロールに表示されます。

ActiveX コントロール テスト コンテナーでコントロールをテストできます。 テスト コンテナーにアクセスし、それを使用して、コントロールをテストする方法についての詳細については、Testing Properties and Events with Test Container」を参照してください。

サンプルの動作

ASYNC という URL の 1 つのプロパティが設定されているサブクラスのエディット コントロールを作成します。 URL プロパティは BSTR であり、データを指す URL を表します。 ASYNC サンプルでは、ATL CBindStatusCallback クラスを使用して非同期のダウンロードを実装します。 コントロールのユーザーが URL プロパティを設定すると、ASYNC CBindStatusCallback オブジェクトを作成します。 次に、CBindStatusCallback::StartAsyncDownload メソッドが呼び出され、URL とコールバック関数へのポインターが渡されます。 この関数は、CAtlAsync::OnDataCBindStatusCallback オブジェクトによって呼び出され、が受信されると、URL からバイナリ データが渡されます。 CAtlAsync::OnData だけで、サブクラスに受信したデータ コントロール、編集、表示されている送信します。

ATL を使用して、Windows にスーパークラスを制御する方法について例については、ATL SubEdit サンプル」を参照してください。

Keywords

このサンプルでは、次のキーワードを使用します。

ALT_MSG_MAP ; ATLTRACE ; BEGIN_COM_MAP; BEGIN_MSG_MAP; BEGIN_OBJECT_MAP; BEGIN_PROPERTY_MAP; CBindStatusCallback::Download; CComBSTR::Append; CComCoClass; CComControl; CComModule::GetClassObject; CComModule::GetLockCount; CComModule::Init; CComModule::RegisterServer; CComModule::Term; CComModule::UnregisterServer; CComObjectRoot; COM_INTERFACE_ENTRY; COM_INTERFACE_ENTRY_IMPL; DECLARE_REGISTRY_RESOURCEID; DisableThreadLibraryCalls; DLL_PROCESS_ATTACH; DLL_PROCESS_DETACH; DllMain; END_COM_MAP; END_MSG_MAP; END_OBJECT_MAP; END_PROPERTY_MAP; IDataObjectImpl; IDispatchImpl; IObjectSafetyImpl; IOleControlImpl; IOleInPlaceActiveObjectImpl; IOleInPlaceObjectWindowlessImpl; IOleInPlaceObjectWindowlessImpl::SetObjectRects; IOleObjectImpl; IPerPropertyBrowsingImpl; IPersistPropertyBagImpl; IPersistStorageImpl; IPersistStreamInitImpl; IProvideClassInfo2Impl; IQuickActivateImpl; IsWindow; IViewObjectExImpl; MESSAGE_HANDLER; OBJECT_ENTRY; PROP_ENTRY; SendMessage; USES_CONVERSION

参照

その他の技術情報

ATL サンプル