CAsyncMonikerFile::OnDataAvailable
virtual void OnDataAvailable( DWORD dwsize, DWORD bscfFlag );
参数:
dwsize
约束开始后数据传输的累计数(字节)。可以为0,表示数据量与操作无关,或没有。
bscfFlag
BSCF枚举值。可为以下值中的一个或几个:
·
BSCF_FIRSTDATANOTIFICATION
表示对一个特定的约束操作,第一次调用OnDataAvailable。
·
BSCF_INTERMEDIATEDATANOTIFICATION
表示对一个特定的约束操作,中间调用OnDataAvailable。
·
BSCF_LASTDATANOTIFICATION
表示对一个特定的约束操作,最后一次调用OnDataAvailable。
说明:
在异步约束操作中,异步标识调用OnDataAvailable,向有效的客户端提供数据。缺省情况下,此函数不作任何操作。请参看下面一种实现的例子。
示例:
//refer to CDataPathProperty.
void CAsyncMyTextProperty::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(nLen == m_dwReadBefore);
LPTSTR psz = m_strText.GetBuffer(nLen + dwArriving);
Read(psz+nLen,dwArriving);
m_strText.ReleaseBuffer(nLen + dwArriving);
m_dwReadBefore = dwSize;GetControl()->Invalidate();
}
}
请参阅:
CDataPathProperty