Export (0) Print
Expand All
This topic has not yet been rated - Rate this topic

CBindStatusCallback Class

This class implements the IBindStatusCallback interface.

Important note 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> 
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.

Name

Description

CBindStatusCallback::Download

Static method that starts the download process, creates a CBindStatusCallback object, and calls StartAsyncDownload.

CBindStatusCallback::GetBindInfo

Called by the asynchronous moniker to request information on the type of bind to be created.

CBindStatusCallback::GetPriority

Called by the asynchronous moniker to get the priority of the bind operation. The ATL implementation returns E_NOTIMPL.

CBindStatusCallback::OnDataAvailable

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.

CBindStatusCallback::OnLowResource

Called when resources are low. The ATL implementation returns S_OK.

CBindStatusCallback::OnObjectAvailable

Called by the asynchronous moniker to pass an object interface pointer to your application. The ATL implementation returns S_OK.

CBindStatusCallback::OnProgress

Called to indicate the progress of a data downloading process. The ATL implementation returns S_OK.

CBindStatusCallback::OnStartBinding

Called when binding is started.

CBindStatusCallback::OnStopBinding

Called when the asynchronous data transfer is stopped.

CBindStatusCallback::StartAsyncDownload

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.

Name

Description

CBindStatusCallback::m_dwAvailableToRead

Number of bytes available to read.

CBindStatusCallback::m_dwTotalRead

Total number of bytes read.

CBindStatusCallback::m_pFunc

Pointer to the function called when data is available.

CBindStatusCallback::m_pT

Pointer to the object requesting the asynchronous data transfer.

CBindStatusCallback::m_spBindCtx

Pointer to the IBindCtx interface for the current bind operation.

CBindStatusCallback::m_spBinding

Pointer to the IBinding interface for the current bind operation.

CBindStatusCallback::m_spMoniker

Pointer to the IMoniker interface for the URL to use.

CBindStatusCallback::m_spStream

Pointer to the IStream interface for the data transfer.

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.

CComObjectRootBase

IBindStatusCallback

CComObjectRootEx

CBindStatusCallback

Header: atlctl.h

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft. All rights reserved.