This method copies bytes from the source stream to the specified buffer. All copied bytes are consumed (that is, the read pointer is advanced).
int32 ISource_Read( ISource * pif, char * pBuf, int32 nBufLen );
Number of bytes read, if successful. This will be a value greater than zero.
Error code, if otherwise. Possible error code include:
ISOURCE_END:end of stream (no more data).
ISOURCE_ERROR: error was encountered (no more data).
ISOURCE_WAIT: no data available at the moment; call Readable() to wait.