/* - - - - - - - - */ /* ** Copyright (C) Microsoft Corporation 1993. All rights reserved. */ /* - - - - - - - - */ /* - - - - - - - - */ #define implement struct #define implementations private /* ** _StdClassImplementations ** Defines the standard implementations for a class object. */ #define _StdClassImplementations(Impl) \ STDMETHODIMP QueryInterface(const IID FAR& riid, void FAR* FAR* ppv); \ STDMETHODIMP_(ULONG) AddRef(); \ STDMETHODIMP_(ULONG) Release() /* - - - - - - - - */ class FAR CAVIFileCF : IClassFactory { public: static HRESULT Create(const CLSID FAR& rclsid, const IID FAR& riid, void FAR* FAR* ppv); private: CAVIFileCF(const CLSID FAR& rclsid, IUnknown FAR* FAR* ppUnknown); _StdClassImplementations(CFactoryImpl); CFactoryImpl(CAVIFileCF FAR* pAVIFileCF); STDMETHODIMP CreateInstance(IUnknown FAR* pUnknownOuter, const IID FAR& riid, void FAR* FAR* ppv); STDMETHODIMP LockServer(BOOL fLock); ULONG m_refs; CLSID m_clsid; }; #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_ AVISTREAMINFO 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); STDMETHODIMP Reserved1 (THIS); STDMETHODIMP Reserved2 (THIS); STDMETHODIMP Reserved3 (THIS); STDMETHODIMP Reserved4 (THIS); STDMETHODIMP Reserved5 (THIS); public: IUnknown FAR* m_pUnknownOuter; // Instance data ULONG m_refs; AVISTREAMINFO m_avistream; // stream info PAVISTREAM m_pavi; HACMSTREAM m_hs; LPWAVEFORMATEX m_lpFormat; LONG m_cbFormat; LPWAVEFORMATEX m_lpFormatC; LONG m_cbFormatC; }; /* - - - - - - - - */ /* ** The usage counter keeps track of the overall usage of objects based on ** implementations provided by the component. This allows one to determine ** when the implementation is no longer in use. */ extern UINT uUseCount; extern BOOL fLocked; extern HINSTANCE ghInst; /* - - - - - - - - */ DEFINE_AVIGUID(CLSID_AVIWaveFileReader, 0x00020003, 0, 0); /* resource ids */ #define IDS_CNVTERR 100 #define IDS_ACMERR 101 /*----------------------------------------------------------------------*/