windows-nt/Source/XPSP1/NT/multimedia/media/avi/avifile.16/fakefile.h
2020-09-26 16:20:57 +08:00

73 lines
1.8 KiB
C++

/* - - - - - - - - */
/*
** Copyright (C) Microsoft Corporation 1993. All rights reserved.
*/
/* - - - - - - - - */
/*
** _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 CFakeFile : IAVIFile {
public:
CFakeFile(int nStreams, PAVISTREAM FAR * papStreams);
_StdClassImplementations(CUnknownImpl);
STDMETHODIMP Open (THIS_
LPCSTR szFile,
UINT mode);
STDMETHODIMP Info (THIS_
AVIFILEINFO FAR * pfi,
LONG lSize);
STDMETHODIMP GetStream (THIS_
PAVISTREAM FAR * ppStream,
DWORD fccType,
LONG lParam);
STDMETHODIMP CreateStream (THIS_
PAVISTREAM FAR * ppStream,
AVISTREAMINFO FAR * psi);
STDMETHODIMP Save (THIS_
LPCSTR szFile,
AVICOMPRESSOPTIONS FAR *lpOptions,
AVISAVECALLBACK lpfnCallback);
STDMETHODIMP WriteData (THIS_
DWORD ckid,
LPVOID lpData,
LONG cbData);
STDMETHODIMP ReadData (THIS_
DWORD ckid,
LPVOID lpData,
LONG FAR *lpcbData);
STDMETHODIMP EndRecord (THIS);
STDMETHODIMP Reserved1 (THIS);
STDMETHODIMP Reserved2 (THIS);
STDMETHODIMP Reserved3 (THIS);
STDMETHODIMP Reserved4 (THIS);
STDMETHODIMP Reserved5 (THIS);
public:
IUnknown FAR* m_pUnknownOuter;
//
// AVIFile instance data
//
AVIFILEINFO FARSTRUCT avihdr; // file info
ULONG m_refs;
PAVISTREAM NEAR * aps;
};