/**********
  • XX/XX/04 - LR, YHC - BCB corrections: fixed conflict between vfw.pas Unit and C++ vfw.h Header **********/ //#ifndef VFW_BCBHPP //#define VFW_BCBHPP #include namespace Vfw { struct TAVIStreamInfoW; typedef TAVIStreamInfoW *PAVIStreamInfoW; #pragma pack(push, 1) struct TAVIStreamInfoW { unsigned fccType; unsigned fccHandler; unsigned dwFlags; unsigned dwCaps; Word wPriority; Word wLanguage; unsigned dwScale; unsigned dwRate; unsigned dwStart; unsigned dwLength; unsigned dwInitialFrames; unsigned dwSuggestedBufferSize; unsigned dwQuality; unsigned dwSampleSize; Types::TRect rcFrame; unsigned dwEditCount; unsigned dwFormatChangeCount; wchar_t szName[64]; } ; #pragma pack(pop) struct TAVIStreamInfoA; typedef TAVIStreamInfoA *PAVIStreamInfoA; #pragma pack(push, 1) struct TAVIStreamInfoA { unsigned fccType; unsigned fccHandler; unsigned dwFlags; unsigned dwCaps; Word wPriority; Word wLanguage; unsigned dwScale; unsigned dwRate; unsigned dwStart; unsigned dwLength; unsigned dwInitialFrames; unsigned dwSuggestedBufferSize; unsigned dwQuality; unsigned dwSampleSize; Types::TRect rcFrame; unsigned dwEditCount; unsigned dwFormatChangeCount; char szName[64]; } ; #pragma pack(pop) __interface IAVIStream; typedef System::DelphiInterface _di_IAVIStream; __interface IAVIStream : public IInterface { public: virtual HRESULT __stdcall Create(int lParam1, int lParam2) = 0 ; virtual HRESULT __stdcall Info(TAVIStreamInfoW &psi, int lSize) = 0 ; virtual int __stdcall FindSample(int lPos, int lFlags) = 0 ; virtual HRESULT __stdcall ReadFormat(int lPos, void * lpFormat, int &lpcbFormat) = 0 ; virtual HRESULT __stdcall SetFormat(int lPos, void * lpFormat, int cbFormat) = 0 ; virtual HRESULT __stdcall Read(int lStart, int lSamples, void * lpBuffer, int cbBuffer, int &plBytes, int &plSamples) = 0 ; virtual HRESULT __stdcall Write(int lStart, int lSamples, void * lpBuffer, int cbBuffer, unsigned dwFlags, int &plSampWritten, int &plBytesWritten) = 0 ; virtual HRESULT __stdcall Delete(int lStart, int lSamples) = 0 ; virtual HRESULT __stdcall ReadData(unsigned fcc, void * lp, int &lpcb) = 0 ; virtual HRESULT __stdcall WriteData(unsigned fcc, void * lp, int cb) = 0 ; virtual HRESULT __stdcall SetInfo(TAVIStreamInfoW &lpInfo, int cbInfo) = 0 ; }; struct TAVIFileInfoW; typedef TAVIFileInfoW *PAVIFileInfoW; #pragma pack(push, 1) struct TAVIFileInfoW { unsigned dwMaxBytesPerSec; unsigned dwFlags; unsigned dwCaps; unsigned dwStreams; unsigned dwSuggestedBufferSize; unsigned dwWidth; unsigned dwHeight; unsigned dwScale; unsigned dwRate; unsigned dwLength; unsigned dwEditCount; wchar_t szFileType[64]; } ; #pragma pack(pop) struct TAVIFileInfoA; typedef TAVIFileInfoA *PAVIFileInfoA; #pragma pack(push, 1) struct TAVIFileInfoA { unsigned dwMaxBytesPerSec; unsigned dwFlags; unsigned dwCaps; unsigned dwStreams; unsigned dwSuggestedBufferSize; unsigned dwWidth; unsigned dwHeight; unsigned dwScale; unsigned dwRate; unsigned dwLength; unsigned dwEditCount; char szFileType[64]; } ; #pragma pack(pop) __interface IAVIFile; typedef System::DelphiInterface _di_IAVIFile; __interface IAVIFile : public IInterface { public: virtual HRESULT __stdcall Info(TAVIFileInfoW &pfi, int iSize) = 0 ; virtual HRESULT __stdcall GetStream(_di_IAVIStream &ppStream, unsigned fccType, int lParam) = 0 ; virtual HRESULT __stdcall CreateStream(_di_IAVIStream &ppStream, TAVIStreamInfoW &psi) = 0 ; virtual HRESULT __stdcall WriteData(unsigned ckid, void * lpData, int cbData) = 0 ; virtual HRESULT __stdcall ReadData(unsigned ckid, void * lpData, PLONG lpcbData) = 0 ; virtual HRESULT __stdcall EndRecord(void) = 0 ; virtual HRESULT __stdcall DeleteStream(unsigned fccType, int lParam) = 0 ; }; }