Windows NT 4.0 source code leak
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.
 
 
 
 
 
 

94 lines
2.2 KiB

//+-------------------------------------------------------------------
//
// File: stream.hxx
//
// Contents: Implements the IStream interface on a memory buffer.
//
//--------------------------------------------------------------------
#ifndef _STREAM_HXX_
#define _STREAM_HXX_
class CNdrStream : public IStream
{
public:
virtual HRESULT STDMETHODCALLTYPE
QueryInterface(
IN REFIID riid,
OUT void **ppvObj);
virtual ULONG STDMETHODCALLTYPE
AddRef();
virtual ULONG STDMETHODCALLTYPE
Release();
virtual HRESULT STDMETHODCALLTYPE
Read(
IN void * pv,
IN ULONG cb,
OUT ULONG * pcbRead);
virtual HRESULT STDMETHODCALLTYPE
Write(
IN void const *pv,
IN ULONG cb,
OUT ULONG * pcbWritten);
virtual HRESULT STDMETHODCALLTYPE
Seek(
IN LARGE_INTEGER dlibMove,
IN DWORD dwOrigin,
OUT ULARGE_INTEGER *plibNewPosition);
virtual HRESULT STDMETHODCALLTYPE
SetSize(
IN ULARGE_INTEGER libNewSize);
virtual HRESULT STDMETHODCALLTYPE
CopyTo(
IN IStream * pstm,
IN ULARGE_INTEGER cb,
OUT ULARGE_INTEGER *pcbRead,
OUT ULARGE_INTEGER *pcbWritten);
virtual HRESULT STDMETHODCALLTYPE
Commit(
IN DWORD grfCommitFlags);
virtual HRESULT STDMETHODCALLTYPE
Revert();
virtual HRESULT STDMETHODCALLTYPE
LockRegion(
IN ULARGE_INTEGER libOffset,
IN ULARGE_INTEGER cb,
IN DWORD dwLockType);
virtual HRESULT STDMETHODCALLTYPE
UnlockRegion(
IN ULARGE_INTEGER libOffset,
IN ULARGE_INTEGER cb,
IN DWORD dwLockType);
virtual HRESULT STDMETHODCALLTYPE
Stat(
OUT STATSTG * pstatstg,
IN DWORD grfStatFlag);
virtual HRESULT STDMETHODCALLTYPE
Clone(
OUT IStream **ppstm);
CNdrStream(
IN unsigned char * pData,
IN unsigned long cbMax);
private:
long RefCount;
unsigned char * pBuffer;
unsigned long cbBufferLength;
unsigned long position;
};
#endif // _STREAM_HXX_