Поделиться через


CAsyncMonikerFile::OnDataAvailable

Асинхронный моникер вызывает OnDataAvailable для реализации данные клиента по мере того, как он становится доступным, во время асинхронной операции привязки.

virtual void OnDataAvailable( 
   DWORD dwSize, 
   DWORD bscfFlag  
);

Параметры

  • dwSize
    Совокупная продолжительность (в байтах) данных, доступных с начала привязки. Может быть равен нулю, показывая, что количество данных не относится к операции или отсутствие определенное количество не стало доступным.

  • bscfFlag
    Значение перечисления BSCF. Может иметь одно или несколько из следующих значений:

    • BSCF_FIRSTDATANOTIFICATION Определяет первый вызов OnDataAvailable для данной операции привязки.

    • BSCF_INTERMEDIATEDATANOTIFICATION Определяет промежуточного вызова OnDataAvailable для операции привязки.

    • BSCF_LASTDATANOTIFICATION Указывает последний вызов OnDataAvailable для операции привязки.

Заметки

Реализация по умолчанию данной функции не дает результата. См. следующий пример образец реализации.

Пример

void CMyMoniker::OnDataAvailable(DWORD dwSize, DWORD bscfFlag)
{
   if ((bscfFlag & BSCF_FIRSTDATANOTIFICATION) != 0)
   {
      m_dwReadBefore = 0;
      m_strText.Empty();
   }

   DWORD dwArriving = dwSize - m_dwReadBefore;

   if (dwArriving > 0)
   {
      int nLen = m_strText.GetLength();
      ASSERT((DWORD)nLen == m_dwReadBefore);
      LPTSTR psz = m_strText.GetBuffer(nLen + dwArriving);
      Read(psz + nLen, dwArriving);
      m_strText.ReleaseBuffer(nLen + dwArriving);
      m_dwReadBefore = dwSize;
   }
}

Требования

Header: afxole.h

См. также

Ссылки

Класс CAsyncMonikerFile

Диаграмма иерархии

Класс CDataPathProperty