371 lines
15 KiB
C++
371 lines
15 KiB
C++
// CodeGear C++Builder
|
|
// Copyright (c) 1995, 2025 by Embarcadero Technologies, Inc.
|
|
// All rights reserved
|
|
|
|
// (DO NOT EDIT: machine generated header) 'ievfw.pas' rev: 37.00 (Windows)
|
|
|
|
#ifndef ievfwHPP
|
|
#define ievfwHPP
|
|
|
|
#pragma delphiheader begin
|
|
#pragma option push
|
|
#if defined(__BORLANDC__) && !defined(__clang__)
|
|
#pragma option -w- // All warnings off
|
|
#pragma option -Vx // Zero-length empty class member
|
|
#endif
|
|
#pragma pack(push,8)
|
|
#include <System.hpp>
|
|
#include <SysInit.hpp>
|
|
#include <Winapi.Windows.hpp>
|
|
#include <System.Types.hpp>
|
|
|
|
//-- user supplied -----------------------------------------------------------
|
|
|
|
namespace Ievfw
|
|
{
|
|
//-- forward type declarations -----------------------------------------------
|
|
class DELPHICLASS IUnknown;
|
|
struct TAviStreamInfoA;
|
|
struct TAviStreamInfoW;
|
|
struct TAviFileInfoA;
|
|
struct TAviFileInfoW;
|
|
struct TAviCompressOptions;
|
|
class DELPHICLASS IAVIStream;
|
|
class DELPHICLASS IAVIEditStream;
|
|
class DELPHICLASS IAVIFile;
|
|
class DELPHICLASS IGetFrame;
|
|
//-- type declarations -------------------------------------------------------
|
|
typedef System::PGUID PCLSID;
|
|
|
|
typedef GUID TIID;
|
|
|
|
class PASCALIMPLEMENTATION IUnknown : public System::TObject
|
|
{
|
|
typedef System::TObject inherited;
|
|
|
|
public:
|
|
virtual HRESULT __stdcall QueryInterface(const TIID &iid, void *obj) = 0 ;
|
|
virtual System::LongInt __stdcall AddRef() = 0 ;
|
|
virtual System::LongInt __stdcall Release() = 0 ;
|
|
public:
|
|
/* TObject.Create */ inline __fastcall IUnknown() : System::TObject() { }
|
|
/* TObject.Destroy */ inline __fastcall virtual ~IUnknown() { }
|
|
|
|
};
|
|
|
|
|
|
typedef System::LongInt LONG;
|
|
|
|
typedef void * PVOID;
|
|
|
|
typedef TAviStreamInfoA *PAviStreamInfoA;
|
|
|
|
struct DECLSPEC_DRECORD TAviStreamInfoA
|
|
{
|
|
public:
|
|
unsigned fccType;
|
|
unsigned fccHandler;
|
|
unsigned dwFlags;
|
|
unsigned dwCaps;
|
|
System::Word wPriority;
|
|
System::Word wLanguage;
|
|
unsigned dwScale;
|
|
unsigned dwRate;
|
|
unsigned dwStart;
|
|
unsigned dwLength;
|
|
unsigned dwInitialFrames;
|
|
unsigned dwSuggestedBufferSize;
|
|
unsigned dwQuality;
|
|
unsigned dwSampleSize;
|
|
Winapi::Windows::TRect rcFrame;
|
|
unsigned dwEditCount;
|
|
unsigned dwFormatChangeCount;
|
|
System::StaticArray<char, 64> szName;
|
|
};
|
|
|
|
|
|
typedef TAviStreamInfoW *PAviStreamInfoW;
|
|
|
|
struct DECLSPEC_DRECORD TAviStreamInfoW
|
|
{
|
|
public:
|
|
unsigned fccType;
|
|
unsigned fccHandler;
|
|
unsigned dwFlags;
|
|
unsigned dwCaps;
|
|
System::Word wPriority;
|
|
System::Word wLanguage;
|
|
unsigned dwScale;
|
|
unsigned dwRate;
|
|
unsigned dwStart;
|
|
unsigned dwLength;
|
|
unsigned dwInitialFrames;
|
|
unsigned dwSuggestedBufferSize;
|
|
unsigned dwQuality;
|
|
unsigned dwSampleSize;
|
|
Winapi::Windows::TRect rcFrame;
|
|
unsigned dwEditCount;
|
|
unsigned dwFormatChangeCount;
|
|
System::StaticArray<System::WideChar, 64> szName;
|
|
};
|
|
|
|
|
|
typedef TAviStreamInfoW TAviStreamInfo;
|
|
|
|
typedef TAviFileInfoA *PAviFileInfoA;
|
|
|
|
struct DECLSPEC_DRECORD TAviFileInfoA
|
|
{
|
|
public:
|
|
unsigned dwMaxBytesPerSec;
|
|
unsigned dwFlags;
|
|
unsigned dwCaps;
|
|
unsigned dwStreams;
|
|
unsigned dwSuggestedBufferSize;
|
|
unsigned dwWidth;
|
|
unsigned dwHeight;
|
|
unsigned dwScale;
|
|
unsigned dwRate;
|
|
unsigned dwLength;
|
|
unsigned dwEditCount;
|
|
System::StaticArray<char, 64> szFileType;
|
|
};
|
|
|
|
|
|
typedef TAviFileInfoA TAviFileInfo;
|
|
|
|
typedef TAviFileInfoW *PAviFileInfoW;
|
|
|
|
struct DECLSPEC_DRECORD TAviFileInfoW
|
|
{
|
|
public:
|
|
unsigned dwMaxBytesPerSec;
|
|
unsigned dwFlags;
|
|
unsigned dwCaps;
|
|
unsigned dwStreams;
|
|
unsigned dwSuggestedBufferSize;
|
|
unsigned dwWidth;
|
|
unsigned dwHeight;
|
|
unsigned dwScale;
|
|
unsigned dwRate;
|
|
unsigned dwLength;
|
|
unsigned dwEditCount;
|
|
System::StaticArray<System::WideChar, 64> szFileType;
|
|
};
|
|
|
|
|
|
typedef bool __stdcall (*TAVISaveCallBack)(int Percentage);
|
|
|
|
typedef TAVISaveCallBack *AVISaveCallBack;
|
|
|
|
typedef TAviCompressOptions *PAviCompressOptions;
|
|
|
|
struct DECLSPEC_DRECORD TAviCompressOptions
|
|
{
|
|
public:
|
|
unsigned fccType;
|
|
unsigned fccHandler;
|
|
unsigned dwKeyFrameEvery;
|
|
unsigned dwQuality;
|
|
unsigned dwBytesPerSecond;
|
|
unsigned dwFlags;
|
|
PVOID lpFormat;
|
|
unsigned cbFormat;
|
|
PVOID lpParms;
|
|
unsigned cbParms;
|
|
unsigned dwInterleaveEvery;
|
|
};
|
|
|
|
|
|
class PASCALIMPLEMENTATION IAVIStream : public IUnknown
|
|
{
|
|
typedef IUnknown inherited;
|
|
|
|
public:
|
|
HIDESBASE virtual HRESULT __stdcall Create(__int64 lParam1, __int64 lParam2) = 0 ;
|
|
virtual HRESULT __stdcall Info(TAviStreamInfoW &psi, LONG lSize) = 0 ;
|
|
virtual LONG __stdcall FindSample(LONG lPos, LONG lFlags) = 0 ;
|
|
virtual HRESULT __stdcall ReadFormat(LONG lPos, PVOID lpFormat, LONG &lpcbFormat) = 0 ;
|
|
virtual HRESULT __stdcall SetFormat(LONG lPos, PVOID lpFormat, LONG lpcbFormat) = 0 ;
|
|
virtual HRESULT __stdcall Read(LONG lStart, LONG lSamples, PVOID lpBuffer, LONG cbBuffer, LONG &plBytes, LONG &plSamples) = 0 ;
|
|
virtual HRESULT __stdcall Write(LONG lStart, LONG lSamples, PVOID lpBuffer, LONG cbBuffer, unsigned dwFlags, LONG &plSampWritten, LONG &plBytesWritten) = 0 ;
|
|
virtual HRESULT __stdcall Delete(LONG lStart, LONG lSamples) = 0 ;
|
|
virtual HRESULT __stdcall ReadData(unsigned fcc, PVOID lp, LONG &lpcb) = 0 ;
|
|
virtual HRESULT __stdcall WriteData(unsigned fcc, PVOID lp, LONG cb) = 0 ;
|
|
virtual HRESULT __stdcall SetInfo(TAviStreamInfoW &lpInfo, LONG cbInfo) = 0 ;
|
|
public:
|
|
/* TObject.Create */ inline __fastcall IAVIStream() : IUnknown() { }
|
|
/* TObject.Destroy */ inline __fastcall virtual ~IAVIStream() { }
|
|
|
|
};
|
|
|
|
|
|
typedef IAVIStream* *PAVIStream;
|
|
|
|
class PASCALIMPLEMENTATION IAVIEditStream : public IUnknown
|
|
{
|
|
typedef IUnknown inherited;
|
|
|
|
public:
|
|
virtual HRESULT __stdcall Info(TAviFileInfoW &pfi, LONG lSize) = 0 ;
|
|
virtual HRESULT __stdcall Cut(LONG &plStart, LONG &plLength, PAVIStream &ppResult) = 0 ;
|
|
virtual HRESULT __stdcall Copy(LONG &plLength, PAVIStream &ppResult) = 0 ;
|
|
virtual HRESULT __stdcall Paste(LONG &plLength, PAVIStream pstream, LONG lStart, LONG lEnd) = 0 ;
|
|
virtual HRESULT __stdcall Clone(PAVIStream &ppResult) = 0 ;
|
|
virtual HRESULT __stdcall SetInfo(TAviStreamInfoW &lpInfo, LONG cbInfo) = 0 ;
|
|
public:
|
|
/* TObject.Create */ inline __fastcall IAVIEditStream() : IUnknown() { }
|
|
/* TObject.Destroy */ inline __fastcall virtual ~IAVIEditStream() { }
|
|
|
|
};
|
|
|
|
|
|
typedef IAVIEditStream* *PAVIEditStream;
|
|
|
|
class PASCALIMPLEMENTATION IAVIFile : public IUnknown
|
|
{
|
|
typedef IUnknown inherited;
|
|
|
|
public:
|
|
virtual HRESULT __stdcall Open(char * szFile, unsigned mode) = 0 ;
|
|
virtual HRESULT __stdcall Info(TAviFileInfo &pfi, LONG lSize) = 0 ;
|
|
virtual HRESULT __stdcall GetStream(PAVIStream &ppStream, unsigned fccType, LONG lParam) = 0 ;
|
|
virtual HRESULT __stdcall CreateStream(PAVIStream &ppStream, const TAviStreamInfo &psi) = 0 ;
|
|
virtual HRESULT __stdcall Save(char * szFile, TAviCompressOptions &lpOptions, AVISaveCallBack lpfnCallback) = 0 ;
|
|
virtual HRESULT __stdcall WriteData(unsigned ckid, PVOID lpData, LONG cbData) = 0 ;
|
|
virtual HRESULT __stdcall ReadData(unsigned ckid, PVOID lpData, LONG &lpcbData) = 0 ;
|
|
virtual HRESULT __stdcall EndRecord() = 0 ;
|
|
public:
|
|
/* TObject.Create */ inline __fastcall IAVIFile() : IUnknown() { }
|
|
/* TObject.Destroy */ inline __fastcall virtual ~IAVIFile() { }
|
|
|
|
};
|
|
|
|
|
|
typedef IAVIFile* *PAVIFile;
|
|
|
|
class PASCALIMPLEMENTATION IGetFrame : public IUnknown
|
|
{
|
|
typedef IUnknown inherited;
|
|
|
|
public:
|
|
virtual PVOID __stdcall GetFrame(LONG lPos) = 0 ;
|
|
virtual HRESULT __stdcall SetFormat(Winapi::Windows::PBitmapInfoHeader lpbi, PVOID lpBits, int x, int y, int dx, int dy) = 0 ;
|
|
public:
|
|
/* TObject.Create */ inline __fastcall IGetFrame() : IUnknown() { }
|
|
/* TObject.Destroy */ inline __fastcall virtual ~IGetFrame() { }
|
|
|
|
};
|
|
|
|
|
|
typedef IGetFrame* *PGetFrame;
|
|
|
|
//-- var, const, procedure ---------------------------------------------------
|
|
static _DELPHI_CONST int streamtypeVIDEO = int(0x73646976);
|
|
static _DELPHI_CONST int streamtypeAUDIO = int(0x73647561);
|
|
static _DELPHI_CONST int streamtypeMIDI = int(0x7364696d);
|
|
static _DELPHI_CONST int streamtypeTEXT = int(0x73747874);
|
|
static _DELPHI_CONST int comptypeDIB = int(0x20424944);
|
|
static _DELPHI_CONST System::Int8 AVIIF_KEYFRAME = System::Int8(0x10);
|
|
static _DELPHI_CONST System::Int8 AVISTREAMINFO_DISABLED = System::Int8(0x1);
|
|
static _DELPHI_CONST int AVISTREAMINFO_FORMATCHANGES = int(0x10000);
|
|
static _DELPHI_CONST System::Int8 AVIFILEINFO_HASINDEX = System::Int8(0x10);
|
|
static _DELPHI_CONST System::Int8 AVIFILEINFO_MUSTUSEINDEX = System::Int8(0x20);
|
|
static _DELPHI_CONST System::Word AVIFILEINFO_ISINTERLEAVED = System::Word(0x100);
|
|
static _DELPHI_CONST int AVIFILEINFO_WASCAPTUREFILE = int(0x10000);
|
|
static _DELPHI_CONST int AVIFILEINFO_COPYRIGHTED = int(0x20000);
|
|
static _DELPHI_CONST System::Int8 AVIFILECAPS_CANREAD = System::Int8(0x1);
|
|
static _DELPHI_CONST System::Int8 AVIFILECAPS_CANWRITE = System::Int8(0x2);
|
|
static _DELPHI_CONST System::Int8 AVIFILECAPS_ALLKEYFRAMES = System::Int8(0x10);
|
|
static _DELPHI_CONST System::Int8 AVIFILECAPS_NOCOMPRESSION = System::Int8(0x20);
|
|
static _DELPHI_CONST System::Int8 ICMF_CHOOSE_KEYFRAME = System::Int8(0x1);
|
|
static _DELPHI_CONST System::Int8 ICMF_CHOOSE_DATARATE = System::Int8(0x2);
|
|
static _DELPHI_CONST System::Int8 ICMF_CHOOSE_PREVIEW = System::Int8(0x4);
|
|
static _DELPHI_CONST System::Int8 ICMF_CHOOSE_ALLCOMPRESSORS = System::Int8(0x8);
|
|
static _DELPHI_CONST System::Int8 AVICOMPRESSF_INTERLEAVE = System::Int8(0x1);
|
|
static _DELPHI_CONST System::Int8 AVICOMPRESSF_DATARATE = System::Int8(0x2);
|
|
static _DELPHI_CONST System::Int8 AVICOMPRESSF_KEYFRAMES = System::Int8(0x4);
|
|
static _DELPHI_CONST System::Int8 AVICOMPRESSF_VALID = System::Int8(0x8);
|
|
extern DELPHI_PACKAGE GUID IID_IAVIFile;
|
|
extern DELPHI_PACKAGE GUID IID_IAVIStream;
|
|
extern DELPHI_PACKAGE GUID IID_IAVIStreaming;
|
|
extern DELPHI_PACKAGE GUID IID_IGetFrame;
|
|
extern DELPHI_PACKAGE GUID IID_IAVIEditStream;
|
|
extern DELPHI_PACKAGE GUID CLSID_AVISimpleUnMarshal;
|
|
extern DELPHI_PACKAGE GUID CLSID_AVIFile;
|
|
static _DELPHI_CONST System::Int8 AVIFILEHANDLER_CANREAD = System::Int8(0x1);
|
|
static _DELPHI_CONST System::Int8 AVIFILEHANDLER_CANWRITE = System::Int8(0x2);
|
|
static _DELPHI_CONST System::Int8 AVIFILEHANDLER_CANACCEPTNONRGB = System::Int8(0x4);
|
|
static _DELPHI_CONST System::Int8 FIND_DIR = System::Int8(0xf);
|
|
static _DELPHI_CONST System::Int8 FIND_NEXT = System::Int8(0x1);
|
|
static _DELPHI_CONST System::Int8 FIND_PREV = System::Int8(0x4);
|
|
static _DELPHI_CONST System::Byte FIND_TYPE = System::Byte(0xf0);
|
|
static _DELPHI_CONST System::Int8 FIND_KEY = System::Int8(0x10);
|
|
static _DELPHI_CONST System::Int8 FIND_ANY = System::Int8(0x20);
|
|
static _DELPHI_CONST System::Int8 FIND_FORMAT = System::Int8(0x40);
|
|
static _DELPHI_CONST System::Word FIND_RET = System::Word(0xf000);
|
|
static _DELPHI_CONST System::Int8 FIND_POS = System::Int8(0x0);
|
|
static _DELPHI_CONST System::Word FIND_LENGTH = System::Word(0x1000);
|
|
static _DELPHI_CONST System::Word FIND_OFFSET = System::Word(0x2000);
|
|
static _DELPHI_CONST System::Word FIND_SIZE = System::Word(0x3000);
|
|
static _DELPHI_CONST System::Word FIND_INDEX = System::Word(0x4000);
|
|
static _DELPHI_CONST System::Int8 AVIERR_OK = System::Int8(0x0);
|
|
static _DELPHI_CONST System::Int8 AVIIF_LIST = System::Int8(0x1);
|
|
static _DELPHI_CONST System::Int8 AVIIF_TWOCC = System::Int8(0x2);
|
|
extern DELPHI_PACKAGE HRESULT AVIERR_NOCOMPRESSOR;
|
|
extern DELPHI_PACKAGE HRESULT AVIERR_MEMORY;
|
|
extern DELPHI_PACKAGE HRESULT AVIERR_UNSUPPORTED;
|
|
extern "C" void __stdcall AVIFileInit(void);
|
|
extern "C" void __stdcall AVIFileExit(void);
|
|
extern "C" unsigned __stdcall AVIFileAddRef(PAVIFile pfile);
|
|
extern "C" unsigned __stdcall AVIFileRelease(PAVIFile pfile);
|
|
extern "C" HRESULT __stdcall AVIFileOpen(PAVIFile &ppfile, System::WideChar * szFile, unsigned uMode, PCLSID lpHandler);
|
|
extern "C" HRESULT __stdcall AVIFileOpenW(PAVIFile &ppfile, System::WideChar * szFile, unsigned uMode, PCLSID lpHandler);
|
|
extern "C" HRESULT __stdcall AVIFileInfo(PAVIFile pfile, TAviFileInfo &pfi, LONG lSize);
|
|
extern "C" HRESULT __stdcall AVIFileGetStream(PAVIFile pfile, PAVIStream &ppavi, unsigned fccType, LONG lParam);
|
|
extern "C" HRESULT __stdcall AVIFileCreateStream(PAVIFile pfile, PAVIStream &ppavi, TAviStreamInfo &psi);
|
|
extern "C" HRESULT __stdcall AVIFileCreateStreamW(PAVIFile pfile, PAVIStream &ppavi, TAviStreamInfoW &psi);
|
|
extern "C" HRESULT __stdcall AVIFileWriteData(PAVIFile pfile, unsigned ckid, PVOID lpData, LONG cbData);
|
|
extern "C" HRESULT __stdcall AVIFileReadData(unsigned ckid, PVOID lpData, LONG &lpcbData);
|
|
extern "C" HRESULT __stdcall AVIFileEndRecord(PAVIFile pfile);
|
|
extern "C" unsigned __stdcall AVIStreamAddRef(PAVIStream pavi);
|
|
extern "C" unsigned __stdcall AVIStreamRelease(PAVIStream pavi);
|
|
extern "C" HRESULT __stdcall AVIStreamInfo(PAVIStream pavi, TAviStreamInfo &psi, LONG lSize);
|
|
extern "C" HRESULT __stdcall AVIStreamInfoW(PAVIStream pavi, TAviStreamInfoW &psi, LONG lSize);
|
|
extern "C" LONG __stdcall AVIStreamFindSample(PAVIStream pavi, LONG lPos, LONG lFlags);
|
|
extern "C" HRESULT __stdcall AVIStreamReadFormat(PAVIStream pavi, LONG lPos, PVOID lpFormat, LONG &lpcbFormat);
|
|
extern "C" HRESULT __stdcall AVIStreamSetFormat(PAVIStream pavi, LONG lPos, PVOID lpFormat, LONG cbFormat);
|
|
extern "C" HRESULT __stdcall AVIStreamReadData(PAVIStream pavi, unsigned fcc, PVOID lp, LONG &lpcb);
|
|
extern "C" HRESULT __stdcall AVIStreamWriteData(PAVIStream pavi, unsigned fcc, PVOID lp, LONG cb);
|
|
extern "C" HRESULT __stdcall AVIStreamRead(PAVIStream pavi, LONG lStart, LONG lSamples, PVOID lpBuffer, LONG cbBuffer, LONG &plBytes, LONG &plSamples);
|
|
extern "C" HRESULT __stdcall AVIStreamWrite(PAVIStream pavi, LONG lStart, LONG lSamples, PVOID lpBuffer, LONG cbBuffer, unsigned dwFlags, void * plSampWritten, void * plBytesWritten);
|
|
extern "C" LONG __stdcall AVIStreamStart(PAVIStream pavi);
|
|
extern "C" LONG __stdcall AVIStreamLength(PAVIStream pavi);
|
|
extern "C" LONG __stdcall AVIStreamTimeToSample(PAVIStream pavi, LONG lTime);
|
|
extern "C" LONG __stdcall AVIStreamSampleToTime(PAVIStream pavi, LONG lSample);
|
|
extern "C" LONG __stdcall AVIStreamBeginStreaming(PAVIStream pavi, LONG lStart, LONG lEnd, LONG lRate);
|
|
extern "C" LONG __stdcall AVIStreamEndStreaming(PAVIStream pavi);
|
|
extern "C" PGetFrame __stdcall AVIStreamGetFrameOpen(PAVIStream pavi, Winapi::Windows::PBitmapInfoHeader lpbiWanted);
|
|
extern "C" PVOID __stdcall AVIStreamGetFrame(PGetFrame pg, LONG lPos);
|
|
extern "C" HRESULT __stdcall AVIStreamGetFrameClose(PGetFrame pg);
|
|
extern "C" HRESULT __stdcall AVIStreamOpenFromFile(PAVIStream &ppavi, System::WideChar * szFile, unsigned fccType, LONG lParam, unsigned mode, PCLSID pclsidHandler);
|
|
extern "C" HRESULT __stdcall AVIStreamOpenFromFileW(PAVIStream &ppavi, System::WideChar * szFile, unsigned fccType, LONG lParam, unsigned mode, PCLSID pclsidHandler);
|
|
extern "C" HRESULT __stdcall AVIStreamCreate(PAVIStream &ppavi, LONG lParam1, LONG lParam2, PCLSID pclsidHandler);
|
|
extern "C" HRESULT __stdcall AVISaveV(System::WideChar * szFile, PCLSID pclsidHandler, AVISaveCallBack lpfnCallback, int nStreams, PAVIStream &ppavi, PAviCompressOptions &plpOptions);
|
|
extern "C" bool __stdcall AVISaveOptions(HWND hwnd, unsigned uiFlags, int nStreams, void * pavi, void * plpOptions);
|
|
extern "C" bool __stdcall AVISaveOptionsFree(int nStreams, PAviCompressOptions &plpOptions);
|
|
extern "C" HRESULT __stdcall CreateEditableStream(PAVIStream &ppsEditable, PAVIStream psSource);
|
|
extern "C" HRESULT __stdcall EditStreamSetInfo(PAVIStream pavi, PAviStreamInfoA lpinfo, LONG cbinfo);
|
|
extern "C" HRESULT __stdcall AVIMakeCompressedStream(PAVIStream &ppsCompressed, PAVIStream psSource, PAviCompressOptions lpOptions, PCLSID pclsid);
|
|
extern DELPHI_PACKAGE int __fastcall mmioFOURCC(System::AnsiString cc);
|
|
} /* namespace Ievfw */
|
|
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_IEVFW)
|
|
using namespace Ievfw;
|
|
#endif
|
|
#pragma pack(pop)
|
|
#pragma option pop
|
|
|
|
#pragma delphiheader end.
|
|
//-- end unit ----------------------------------------------------------------
|
|
#endif // ievfwHPP
|