www.pudn.com > rtptest.rar > MemStream.h


// MemStream.h: interface for the CMemStream class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#if !defined(AFX_MEMSTREAM_H__0A70E31F_E979_415A_B986_71C27FCF1BAD__INCLUDED_) 
#define AFX_MEMSTREAM_H__0A70E31F_E979_415A_B986_71C27FCF1BAD__INCLUDED_ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
class CMemStream : public CAsyncStream   
{ 
public: 
	void SetMediaLength(LONGLONG lMediaLength); 
	void Unlock(); 
	void Lock(); 
	DWORD Alignment(); 
	LONGLONG Size(LONGLONG *pSizeAvailable); 
	HRESULT Read(PBYTE pbBuffer,DWORD dwBytesToRead,BOOL bAlign,LPDWORD pdwBytesRead); 
	HRESULT SetPointer(LONGLONG llPos); 
	CMemStream(); 
	virtual ~CMemStream(); 
	void SetRTPSession(RTPSession *rtpSession); 
	HRESULT Block(); 
	HRESULT ReleaseBlock(); 
	void FillBuffer(char* pbData,int nLength); 
public: 
 
protected: 
    CCritSec		m_csLock; 
    LONGLONG		m_llLength; 
    LONGLONG		m_llPosition; 
	RTPSession*		m_rtpSession; 
	HANDLE			m_pMutex; 
	char*			m_pbBuffer; 
	BOOL			m_bWaiting; 
	CTRLMSG			m_msg; 
	DWORD			m_dwBytesToRead; 
	DWORD			m_dwBytesHaveRead; 
}; 
 
#endif // !defined(AFX_MEMSTREAM_H__0A70E31F_E979_415A_B986_71C27FCF1BAD__INCLUDED_)