CBindStatusCallback クラス
このクラスは、IBindStatusCallback インターフェイスを実装します。
重要 |
---|
このクラスおよびメンバーは、Windows のランタイムで実行するアプリケーションで使用することはできません。 |
template <class T, int nBindFlags= BINDF_ASYNCHRONOUS |
BINDF_ASYNCSTORAGE | BINDF_GETNEWESTVERSION | BINDF_NOWRITECACHE>
class ATL_NO_VTABLE CBindStatusCallback : public CComObjectRootEx
<T::_ThreadModel::ThreadModelNoCS>, public IBindStatusCallbackImpl<T>
パラメーター
T
データとして呼び出す関数を含むこのクラスは、受信します。nBindFlags
GetBindInfoによって返されるバインドのフラグを指定します。既定の実装では、非同期にするためのバインディングを設定し、データとオブジェクトの最新バージョンを取得し、ディスク キャッシュで取得したデータを格納しません。
メンバー
パブリック コンストラクター
名前 |
説明 |
---|---|
コンストラクターです。 |
|
デストラクターです。 |
パブリック メソッド
名前 |
説明 |
---|---|
ダウンロードのプロセスを開始および CBindStatusCallback のオブジェクトを作成し、StartAsyncDownload静的メソッドを呼び出す。 |
|
バインドの型情報を作成することを要求するための非同期モニカーによって呼び出されます。 |
|
バインド操作の優先順位を取得するには、非同期モニカーによって呼び出されます。ATL 実装は、E_NOTIMPLを返します。 |
|
使用できるようになるように、アプリケーションにデータを提供するために呼び出されます。データを読み取り、関数をデータを使用するには、を渡して呼び出します。 |
|
リソースが少ないときに呼び出されます。ATL 実装は、S_OKを返します。 |
|
アプリケーションにオブジェクトのインターフェイス ポインターを渡すために非同期モニカーによって呼び出されます。ATL 実装は、S_OKを返します。 |
|
データをダウンロードする処理の進行状況を示すために呼び出されます。ATL 実装は、S_OKを返します。 |
|
バインドすると呼び出される呼び出されます。 |
|
非同期データ転送を停止すると呼び出されます。 |
|
使用できるバイトを初期化し、データが使用可能になるたびにバイトはゼロに読み取り、URL からのプッシュ型のストリーム オブジェクトを作成し、OnDataAvailable を呼び出します。 |
パブリック データ メンバー
名前 |
説明 |
---|---|
使用できる読み取るバイト数。 |
|
読み取られた合計バイト数。 |
|
データが使用可能な場合に呼び出される関数へのポインター。 |
|
非同期データ転送を要求しているオブジェクトへのポインター。 |
|
現在のバインド操作の IBindCtx インターフェイスへのポインター。 |
|
現在のバインド操作の IBinding インターフェイスへのポインター。 |
|
使用する URL の IMoniker インターフェイスへのポインター。 |
|
データ転送の IStream インターフェイスへのポインター。 |
解説
CBindStatusCallback クラスは、IBindStatusCallback インターフェイスを実装します。IBindStatusCallback は、アプリケーションで実装する必要があるため、非同期データのコピーから通知を受け取ることができます。システムによって提供される非同期モニカーは、オブジェクトとの間で非同期データ転送についての情報を送信し、受け取るために IBindStatusCallback のメソッドを使用します。
通常、CBindStatusCallback のオブジェクトは、特定のバインド操作に関連付けられます。たとえば、ASYNC の例では、URL のプロパティ、Downloadの呼び出しの CBindStatusCallback のオブジェクトを作成する場合:
STDMETHOD(put_URL)(BSTR newVal)
{
HRESULT hResult = E_UNEXPECTED;
ATLTRACE(_T("IATLAsync::put_URL\n"));
m_bstrURL = newVal;
if (::IsWindow(m_EditCtrl.m_hWnd))
{
::SendMessage(m_EditCtrl.m_hWnd, WM_SETTEXT, 0, (LPARAM)_T(""));
hResult = CBindStatusCallback<CATLAsync>::Download(this, &CATLAsync::OnData,
m_bstrURL, m_spClientSite, FALSE);
}
return hResult;
}
非同期モニカーはデータがある場合は、アプリケーションを呼び出すときにコールバック関数 OnData を使用します。非同期モニカーはシステムによって提供されます。
継承階層
CComObjectRootBase
IBindStatusCallback
CBindStatusCallback
必要条件
Header: atlctl.h