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