CBindStatusCallback Class
This class implements the IBindStatusCallback interface.
Important
This class and its members cannot be used in applications that execute in the Windows Runtime.
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>
Parameters
T
Your class containing the function that will be called as the data is received.nBindFlags
Specifies the bind flags that are returned by GetBindInfo. The default implementation sets the binding to be asynchronous, retrieves the newest version of the data/object, and does not store retrieved data in the disk cache.
Members
Public Constructors
Name |
Description |
---|---|
The constructor. |
|
The destructor. |
Public Methods
Name |
Description |
---|---|
Static method that starts the download process, creates a CBindStatusCallback object, and calls StartAsyncDownload. |
|
Called by the asynchronous moniker to request information on the type of bind to be created. |
|
Called by the asynchronous moniker to get the priority of the bind operation. The ATL implementation returns E_NOTIMPL. |
|
Called to provide data to your application as it becomes available. Reads the data, then calls the function passed to it to use the data. |
|
Called when resources are low. The ATL implementation returns S_OK. |
|
Called by the asynchronous moniker to pass an object interface pointer to your application. The ATL implementation returns S_OK. |
|
Called to indicate the progress of a data downloading process. The ATL implementation returns S_OK. |
|
Called when binding is started. |
|
Called when the asynchronous data transfer is stopped. |
|
Initializes the bytes available and bytes read to zero, creates a push-type stream object from a URL, and calls OnDataAvailable every time data is available. |
Public Data Members
Name |
Description |
---|---|
Number of bytes available to read. |
|
Total number of bytes read. |
|
Pointer to the function called when data is available. |
|
Pointer to the object requesting the asynchronous data transfer. |
|
Pointer to the IBindCtx interface for the current bind operation. |
|
Pointer to the IBinding interface for the current bind operation. |
|
Pointer to the IMoniker interface for the URL to use. |
|
Pointer to the IStream interface for the data transfer. |
Remarks
The CBindStatusCallback class implements the IBindStatusCallback interface. IBindStatusCallback must be implemented by your application so it can receive notifications from an asynchronous data transfer. The asynchronous moniker provided by the system uses IBindStatusCallback methods to send and receive information about the asynchronous data transfer to and from your object.
Typically, the CBindStatusCallback object is associated with a specific bind operation. For example, in the ASYNC sample, when you set the URL property, it creates a CBindStatusCallback object in the call to Download:
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;
}
The asynchronous moniker uses the callback function OnData to call your application when it has data. The asynchronous moniker is provided by the system.
Inheritance Hierarchy
CComObjectRootBase
IBindStatusCallback
CBindStatusCallback
Requirements
Header: atlctl.h