Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

55 lines
1.7 KiB

class CSniffStream :
public IStream,
public ISniffStream,
public CComObjectRoot,
public CComCoClass< CSniffStream, &CLSID_CoSniffStream >
{
public:
CSniffStream(); // Default constructor
~CSniffStream(); // Destructor
BEGIN_COM_MAP( CSniffStream )
COM_INTERFACE_ENTRY( IStream )
COM_INTERFACE_ENTRY( ISniffStream )
END_COM_MAP()
DECLARE_REGISTRY( CSniffStream, _T( "ImgUtil.CoSniffStream.1" ),
_T( "ImgUtil.CoSniffStream" ), IDS_COSNIFFSTREAM_DESC,
THREADFLAGS_BOTH );
// DECLARE_NO_REGISTRY()
// IStream
public:
STDMETHOD( Clone )( IStream** ppStream );
STDMETHOD( Commit )( DWORD dwFlags );
STDMETHOD( CopyTo )( IStream* pStream, ULARGE_INTEGER nBytes,
ULARGE_INTEGER* pnBytesRead, ULARGE_INTEGER* pnBytesWritten );
STDMETHOD( LockRegion )( ULARGE_INTEGER iOffset, ULARGE_INTEGER nBytes,
DWORD dwLockType );
STDMETHOD( Read )( void* pBuffer, ULONG nBytes, ULONG* pnBytesRead );
STDMETHOD( Revert )();
STDMETHOD( Seek )( LARGE_INTEGER nDisplacement, DWORD dwOrigin,
ULARGE_INTEGER* piNewPosition );
STDMETHOD( SetSize )( ULARGE_INTEGER nNewSize );
STDMETHOD( Stat )( STATSTG* pStatStg, DWORD dwFlags );
STDMETHOD( UnlockRegion )( ULARGE_INTEGER iOffset, ULARGE_INTEGER nBytes,
DWORD dwLockType );
STDMETHOD( Write )( const void* pBuffer, ULONG nBytes,
ULONG* pnBytesWritten );
// ISniffStream
public:
STDMETHOD( Init )( IStream* pStream );
STDMETHOD( Peek )( void* pBuffer, ULONG nBytes, ULONG* pnBytesRead );
protected:
CComPtr< IStream > m_pStream;
BYTE* m_pbBuffer;
ULONG m_nBufferSize;
ULONG m_nValidBytes;
ULONG m_iNextFreeByte;
ULONG m_iOffset;
};