home *** CD-ROM | disk | FTP | other *** search
/ ...taking it to the Macs! / ...taking it to the Macs!.iso / Extras / ActiveX Mac SDK / ActiveX SDK / Container Common / memstrm.h < prev    next >
Encoding:
Text File  |  1997-01-02  |  1.7 KB  |  62 lines  |  [TEXT/????]

  1. //
  2. //  MEMSTRM.H
  3. //
  4. //  Copyright (C) Microsoft Corporation, 1996
  5. //
  6.  
  7. class CMemoryStreamNotify:
  8.     public CNetscapeStreamNotify
  9. {
  10. public:
  11.     LPVOID m_pStream;
  12.     long m_StreamLength;
  13.  
  14.     virtual ~CMemoryStreamNotify();
  15.     virtual int32 OnWrite(NPStream *stream, int32 offset, int32 len, void
  16.         *buffer);
  17. };
  18.  
  19. class CMemoryOleStreamNotify:
  20.     public CMemoryStreamNotify,
  21.     public IStream
  22. {
  23. private:
  24.     ULONG m_cRef;
  25.  
  26. public:
  27.     long m_SeekPosition;
  28.     BOOL m_fAsyncStreamInProgress;
  29.  
  30.     inline CMemoryOleStreamNotify();
  31.  
  32.     //  *** IUnknown methods ***
  33.     STDMETHOD(QueryInterface)(REFIID riid, LPVOID *ppvObj);
  34.     STDMETHOD_(ULONG,AddRef)(void);
  35.     STDMETHOD_(ULONG,Release)(void);
  36.  
  37.     //  *** IStream methods ***
  38.     STDMETHOD(Read)(void *pv, DWORD cb, LPDWORD pcbRead);
  39.     STDMETHOD(Write)(void const *pv, DWORD cb, LPDWORD pcbWritten);
  40.     STDMETHOD(Seek)(LARGE_INTEGER dlibMove, DWORD dwOrigin, ULARGE_INTEGER *plibNewPosition);
  41.     STDMETHOD(SetSize)(ULARGE_INTEGER libNewSize);
  42.     STDMETHOD(CopyTo)(LPSTREAM pstm, ULARGE_INTEGER cb, ULARGE_INTEGER *pcbRead, ULARGE_INTEGER *pcbWritten);
  43.     STDMETHOD(Commit)(DWORD grfCommitFlags);
  44.     STDMETHOD(Revert)(void);
  45.     STDMETHOD(LockRegion)(ULARGE_INTEGER libOffset, ULARGE_INTEGER cb,  DWORD dwLockType);
  46.     STDMETHOD(UnlockRegion)(ULARGE_INTEGER libOffset, ULARGE_INTEGER cb,  DWORD dwLockType);
  47.     STDMETHOD(Stat)(STATSTG *pstatstg, DWORD grfStatFlag);
  48.     STDMETHOD(Clone)(LPSTREAM *ppstm);
  49. };
  50.  
  51. inline
  52. CMemoryOleStreamNotify::CMemoryOleStreamNotify()
  53. {
  54.     //  Our implementation of the "new" operator will zero the structure so we
  55.     //  don't have to explicitly zero/null anything.
  56.     m_cRef = 1;
  57.     m_SeekPosition = 0;
  58.     m_fAsyncStreamInProgress = false;
  59.     m_pStream = 0;
  60.     m_StreamLength = 0;
  61. }
  62.