home *** CD-ROM | disk | FTP | other *** search
Text File | 1997-01-02 | 1.7 KB | 62 lines | [TEXT/????] |
- //
- // MEMSTRM.H
- //
- // Copyright (C) Microsoft Corporation, 1996
- //
-
- class CMemoryStreamNotify:
- public CNetscapeStreamNotify
- {
- public:
- LPVOID m_pStream;
- long m_StreamLength;
-
- virtual ~CMemoryStreamNotify();
- virtual int32 OnWrite(NPStream *stream, int32 offset, int32 len, void
- *buffer);
- };
-
- class CMemoryOleStreamNotify:
- public CMemoryStreamNotify,
- public IStream
- {
- private:
- ULONG m_cRef;
-
- public:
- long m_SeekPosition;
- BOOL m_fAsyncStreamInProgress;
-
- inline CMemoryOleStreamNotify();
-
- // *** IUnknown methods ***
- STDMETHOD(QueryInterface)(REFIID riid, LPVOID *ppvObj);
- STDMETHOD_(ULONG,AddRef)(void);
- STDMETHOD_(ULONG,Release)(void);
-
- // *** IStream methods ***
- STDMETHOD(Read)(void *pv, DWORD cb, LPDWORD pcbRead);
- STDMETHOD(Write)(void const *pv, DWORD cb, LPDWORD pcbWritten);
- STDMETHOD(Seek)(LARGE_INTEGER dlibMove, DWORD dwOrigin, ULARGE_INTEGER *plibNewPosition);
- STDMETHOD(SetSize)(ULARGE_INTEGER libNewSize);
- STDMETHOD(CopyTo)(LPSTREAM pstm, ULARGE_INTEGER cb, ULARGE_INTEGER *pcbRead, ULARGE_INTEGER *pcbWritten);
- STDMETHOD(Commit)(DWORD grfCommitFlags);
- STDMETHOD(Revert)(void);
- STDMETHOD(LockRegion)(ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType);
- STDMETHOD(UnlockRegion)(ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType);
- STDMETHOD(Stat)(STATSTG *pstatstg, DWORD grfStatFlag);
- STDMETHOD(Clone)(LPSTREAM *ppstm);
- };
-
- inline
- CMemoryOleStreamNotify::CMemoryOleStreamNotify()
- {
- // Our implementation of the "new" operator will zero the structure so we
- // don't have to explicitly zero/null anything.
- m_cRef = 1;
- m_SeekPosition = 0;
- m_fAsyncStreamInProgress = false;
- m_pStream = 0;
- m_StreamLength = 0;
- }
-