|
|
/* - - - - - - - - */
/*
** Copyright (C) Microsoft Corporation 1993 - 1995. All rights reserved. */
/* - - - - - - - - */
/* - - - - - - - - */
#define implement struct
#define implementations private
/*
** _StdClassImplementations ** Defines the standard implementations for a class object. */
#ifndef _StdClassImplementations
#define _StdClassImplementations(Impl) \
STDMETHODIMP QueryInterface(const IID FAR& riid, void FAR* FAR* ppv); \ STDMETHODIMP_(ULONG) AddRef(); \ STDMETHODIMP_(ULONG) Release() #endif
#include "mmreg.h"
#include "msacm.h"
/* - - - - - - - - */
class FAR CACMCmpStream : IAVIStream{ public: static HRESULT MakeInst(IUnknown FAR* pUnknownOuter, const IID FAR& riid, void FAR* FAR* ppv); LONG SetUpCompression(); private: CACMCmpStream(IUnknown FAR* pUnknownOuter, IUnknown FAR* FAR* ppUnknown); public: _StdClassImplementations(CAVIStreamImpl); STDMETHODIMP Create (THIS_ LPARAM lParam1, LPARAM lParam2); STDMETHODIMP Info (THIS_ AVISTREAMINFOW FAR * psi, LONG lSize); STDMETHODIMP_(LONG) FindSample (THIS_ LONG lPos, LONG lFlags); STDMETHODIMP ReadFormat (THIS_ LONG lPos, LPVOID lpFormat, LONG FAR *cbFormat); STDMETHODIMP SetFormat (THIS_ LONG lPos, LPVOID lpFormat, LONG cbFormat); STDMETHODIMP Read (THIS_ LONG lStart, LONG lSamples, LPVOID lpBuffer, LONG cbBuffer, LONG FAR * plBytes, LONG FAR * plSamples); STDMETHODIMP Write (THIS_ LONG lStart, LONG lSamples, LPVOID lpBuffer, LONG cbBuffer, DWORD dwFlags, LONG FAR *plSampWritten, LONG FAR *plBytesWritten); STDMETHODIMP Delete (THIS_ LONG lStart, LONG lSamples); STDMETHODIMP ReadData (THIS_ DWORD fcc, LPVOID lp, LONG FAR *lpcb); STDMETHODIMP WriteData (THIS_ DWORD fcc, LPVOID lp, LONG cb); #ifdef _WIN32
STDMETHODIMP SetInfo(AVISTREAMINFOW FAR *lpInfo, LONG cbInfo); #else
STDMETHODIMP Reserved1 (THIS); STDMETHODIMP Reserved2 (THIS); STDMETHODIMP Reserved3 (THIS); STDMETHODIMP Reserved4 (THIS); STDMETHODIMP Reserved5 (THIS); #endif
public: IUnknown FAR* m_pUnknownOuter;
// Instance data
ULONG m_refs; AVISTREAMINFOW m_avistream; // stream info
PAVISTREAM m_pavi; HACMSTREAM m_hs;
LPWAVEFORMATEX m_lpFormat; LONG m_cbFormat; LPWAVEFORMATEX m_lpFormatC; LONG m_cbFormatC;
LONG m_cbIn; BYTE _huge * m_lpIn; LONG m_cbOut; BYTE _huge * m_lpOut; ACMSTREAMHEADER m_acm;
LONG m_dwPosIn; LONG m_dwPosOut; LONG m_dwSamplesLeft; LONG m_dwBytesMissing; };
/*----------------------------------------------------------------------*/
|