// Borland C++ Builder
// Copyright (c) 1995, 1999 by Borland International
// All rights reserved

// (DO NOT EDIT: machine generated header) 'VidGrab.pas' rev: 5.00

#ifndef VidGrabHPP
#define VidGrabHPP

#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <Dialogs.hpp>	// Pascal unit
#include <Forms.hpp>	// Pascal unit
#include <MMSystem.hpp>	// Pascal unit
#include <ExtCtrls.hpp>	// Pascal unit
#include <jpeg.hpp>	// Pascal unit
#include <Graphics.hpp>	// Pascal unit
#include <AxCtrls.hpp>	// Pascal unit
#include <ActiveX.hpp>	// Pascal unit
#include <Controls.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <Messages.hpp>	// Pascal unit
#include <Windows.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <System.hpp>	// Pascal unit

//-- user supplied -----------------------------------------------------------

namespace Vidgrab
{
//-- type declarations -------------------------------------------------------
struct TDVAudInfo
{
	Byte bAudStyle[2];
	Byte bAudQu[2];
	Byte bNumAudPin;
	Word wAvgSamplesPerPinPerFrm[2];
	Word wBlkMode;
	Word wDIFMode;
	Word wBlkDiv;
} ;

__interface ICustomBT878;
typedef System::DelphiInterface<ICustomBT878> _di_ICustomBT878;
__interface INTERFACE_UUID("{FC5DEB2C-FFAF-416D-8DBC-2BCD57EC46DE}") ICustomBT878  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall SetBrightness(unsigned lVideoNum, unsigned lValue) = 0 ;
	virtual HRESULT __stdcall SetContrast(unsigned lVideoNum, unsigned lValue) = 0 ;
	virtual HRESULT __stdcall SetHue(unsigned lVideoNum, unsigned lValue) = 0 ;
	virtual HRESULT __stdcall SetSaturation(unsigned lVideoNum, unsigned lValue) = 0 ;
	virtual HRESULT __stdcall GetBrightness(unsigned lVideoNum, /* out */ unsigned &lValue) = 0 ;
	virtual HRESULT __stdcall GetContrast(unsigned lVideoNum, /* out */ unsigned &lValue) = 0 ;
	virtual HRESULT __stdcall GetHue(unsigned lVideoNum, /* out */ unsigned &lValue) = 0 ;
	virtual HRESULT __stdcall GetSaturation(unsigned lVideoNum, /* out */ unsigned &lValue) = 0 ;
	virtual HRESULT __stdcall EnableVideo(unsigned lVideoNum, BOOL lValue) = 0 ;
	virtual HRESULT __stdcall IsEnableVideo(unsigned lVideoNum, /* out */ BOOL &lValue) = 0 ;
};

__interface ICustomBT146;
typedef System::DelphiInterface<ICustomBT146> _di_ICustomBT146;
__interface INTERFACE_UUID("{70639B5B-B015-4718-87C8-43B278AFE20B}") ICustomBT146  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall SetBrightness(unsigned lVideoNum, unsigned lValue) = 0 ;
	virtual HRESULT __stdcall SetContrast(unsigned lVideoNum, unsigned lValue) = 0 ;
	virtual HRESULT __stdcall SetHue(unsigned lVideoNum, unsigned lValue) = 0 ;
	virtual HRESULT __stdcall SetSaturation(unsigned lVideoNum, unsigned lValue) = 0 ;
	virtual HRESULT __stdcall GetBrightness(unsigned lVideoNum, /* out */ unsigned &lValue) = 0 ;
	virtual HRESULT __stdcall GetContrast(unsigned lVideoNum, /* out */ unsigned &lValue) = 0 ;
	virtual HRESULT __stdcall GetHue(unsigned lVideoNum, /* out */ unsigned &lValue) = 0 ;
	virtual HRESULT __stdcall GetSaturation(unsigned lVideoNum, /* out */ unsigned &lValue) = 0 ;
	virtual HRESULT __stdcall GetCardNumber(Windows::PByte byNumber) = 0 ;
	virtual HRESULT __stdcall GetProtectId(Windows::PByte byId) = 0 ;
	virtual HRESULT __stdcall SetVdoSource(int VideoSrc) = 0 ;
};

__interface ICustomPV147;
typedef System::DelphiInterface<ICustomPV147> _di_ICustomPV147;
__interface INTERFACE_UUID("{2AAEB141-59DA-11D2-BA41-00A0C90D2B06}") ICustomPV147  : public IUnknown 
	
{
	
public:
	virtual void __stdcall GetFirmwareVersion(PULONG lValue) = 0 ;
	virtual HRESULT __stdcall GetCustomProperty(unsigned lID, PULONG lValue) = 0 ;
	virtual HRESULT __stdcall SetCustomProperty(unsigned lID, PULONG lValue) = 0 ;
};

struct TAM_Media_Type
{
	GUID majortype;
	GUID subtype;
	BOOL bFixedSizeSamples;
	BOOL bTemporalCompression;
	unsigned lSampleSize;
	GUID formattype;
	_di_IUnknown pUnk;
	unsigned cbFormat;
	void *pbFormat;
} ;

typedef TAM_Media_Type *PAM_Media_Type;

#pragma option push -b
enum TPin_Direction { PINDIR_INPUT, PINDIR_OUTPUT };
#pragma option pop

typedef __int64 TReference_Time;

typedef __int64 *PReference_Time;

typedef double TRefTime;

typedef int HSEMAPHORE;

struct TAllocator_Properties
{
	int cBuffers;
	int cbBuffer;
	int cbAlign;
	int cbPrefix;
} ;

__interface IBaseFilter;
typedef System::DelphiInterface<IBaseFilter> _di_IBaseFilter;
__interface IMediaFilter;
typedef System::DelphiInterface<IMediaFilter> _di_IMediaFilter;
#pragma option push -b
enum TFilter_State { State_Stopped, State_Paused, State_Running };
#pragma option pop

__interface IReferenceClock;
typedef System::DelphiInterface<IReferenceClock> _di_IReferenceClock;
__interface INTERFACE_UUID("{56A86899-0AD4-11CE-B03A-0020AF0BA770}") IMediaFilter  : public IPersist 
	
{
	
public:
	virtual HRESULT __stdcall Stop(void) = 0 ;
	virtual HRESULT __stdcall Pause(void) = 0 ;
	virtual HRESULT __stdcall Run(__int64 tStart) = 0 ;
	virtual HRESULT __stdcall GetState(unsigned dwMilliSecsTimeout, /* out */ TFilter_State &State) = 0 
		;
	virtual HRESULT __stdcall SetSyncSource(_di_IReferenceClock pClock) = 0 ;
	virtual HRESULT __stdcall GetSyncSource(/* out */ _di_IReferenceClock &pClock) = 0 ;
};

__interface IEnumPins;
typedef System::DelphiInterface<IEnumPins> _di_IEnumPins;
__interface IPin;
typedef System::DelphiInterface<IPin> _di_IPin;
struct TFilterInfo;
__interface IFilterGraph;
typedef System::DelphiInterface<IFilterGraph> _di_IFilterGraph;
__interface INTERFACE_UUID("{56A86895-0AD4-11CE-B03A-0020AF0BA770}") IBaseFilter  : public IMediaFilter 
	
{
	
public:
	virtual HRESULT __stdcall EnumPins(/* out */ _di_IEnumPins &ppEnum) = 0 ;
	virtual HRESULT __stdcall FindPin(wchar_t * Id, /* out */ _di_IPin &ppPin) = 0 ;
	virtual HRESULT __stdcall QueryFilterInfo(/* out */ TFilterInfo &pInfo) = 0 ;
	virtual HRESULT __stdcall JoinFilterGraph(_di_IFilterGraph pGraph, wchar_t * pName) = 0 ;
	virtual HRESULT __stdcall QueryVendorInfo(/* out */ wchar_t * &pVendorInfo) = 0 ;
};

struct TPin_Info
{
	_di_IBaseFilter pFilter;
	TPin_Direction dir;
	wchar_t achName[128];
} ;

__interface IEnumMediaTypes;
typedef System::DelphiInterface<IEnumMediaTypes> _di_IEnumMediaTypes;
__interface INTERFACE_UUID("{56A86891-0AD4-11CE-B03A-0020AF0BA770}") IPin  : public IUnknown 
{
	
public:
	virtual HRESULT __stdcall Connect(_di_IPin pReceivePin, const PAM_Media_Type pmt) = 0 ;
	virtual HRESULT __stdcall ReceiveConnection(_di_IPin pConnector, const TAM_Media_Type &pmt) = 0 ;
	virtual HRESULT __stdcall Disconnect(void) = 0 ;
	virtual HRESULT __stdcall ConnectedTo(/* out */ _di_IPin &pPin) = 0 ;
	virtual HRESULT __stdcall ConnectionMediaType(/* out */ TAM_Media_Type &pmt) = 0 ;
	virtual HRESULT __stdcall QueryPinInfo(/* out */ TPin_Info &pInfo) = 0 ;
	virtual HRESULT __stdcall QueryDirection(/* out */ TPin_Direction &pPinDir) = 0 ;
	virtual HRESULT __stdcall QueryId(/* out */ wchar_t * &Id) = 0 ;
	virtual HRESULT __stdcall QueryAccept(PAM_Media_Type pmt) = 0 ;
	virtual HRESULT __stdcall EnumMediaTypes(/* out */ _di_IEnumMediaTypes &ppEnum) = 0 ;
	virtual HRESULT __stdcall QueryInternalConnections(/* out */ _di_IPin &apPin, unsigned &nPin) = 0 ;
		
	virtual HRESULT __stdcall EndOfStream(void) = 0 ;
	virtual HRESULT __stdcall BeginFlush(void) = 0 ;
	virtual HRESULT __stdcall EndFlush(void) = 0 ;
	virtual HRESULT __stdcall NewSegment(__int64 tStart, __int64 tStop, double dRate) = 0 ;
};

__interface INTERFACE_UUID("{56A86892-0AD4-11CE-B03A-0020AF0BA770}") IEnumPins  : public IUnknown 
{
	
public:
	virtual HRESULT __stdcall Next(unsigned cPins, /* out */ _di_IPin &ppPins, PULONG pcFetched) = 0 ;
	virtual HRESULT __stdcall Skip(unsigned cPins) = 0 ;
	virtual HRESULT __stdcall Reset(void) = 0 ;
	virtual HRESULT __stdcall Clone(/* out */ _di_IEnumPins &ppEnum) = 0 ;
};

__interface INTERFACE_UUID("{89C31040-846B-11CE-97D3-00AA0055595A}") IEnumMediaTypes  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall Next(unsigned cMediaTypes, /* out */ PAM_Media_Type &ppMediaTypes, PULONG 
		pcFetched) = 0 ;
	virtual HRESULT __stdcall Skip(unsigned cMediaTypes) = 0 ;
	virtual HRESULT __stdcall Reset(void) = 0 ;
	virtual HRESULT __stdcall Clone(/* out */ _di_IEnumMediaTypes &ppEnum) = 0 ;
};

__interface IEnumFilters;
typedef System::DelphiInterface<IEnumFilters> _di_IEnumFilters;
__interface INTERFACE_UUID("{56A8689F-0AD4-11CE-B03A-0020AF0BA770}") IFilterGraph  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall AddFilter(_di_IBaseFilter pFilter, wchar_t * pName) = 0 ;
	virtual HRESULT __stdcall RemoveFilter(_di_IBaseFilter pFilter) = 0 ;
	virtual HRESULT __stdcall EnumFilters(/* out */ _di_IEnumFilters &ppEnum) = 0 ;
	virtual HRESULT __stdcall FindFilterByName(wchar_t * pName, /* out */ _di_IBaseFilter &ppFilter) = 0 
		;
	virtual HRESULT __stdcall ConnectDirect(_di_IPin ppinOut, _di_IPin ppinIn, PAM_Media_Type pmt) = 0 
		;
	virtual HRESULT __stdcall Reconnect(_di_IPin ppin) = 0 ;
	virtual HRESULT __stdcall Disconnect(_di_IPin ppin) = 0 ;
	virtual HRESULT __stdcall SetDefaultSyncSource(void) = 0 ;
};

__interface INTERFACE_UUID("{56A86893-0AD4-11CE-B03A-0020AF0BA770}") IEnumFilters  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall Next(unsigned cFilters, /* out */ _di_IBaseFilter &ppFilter, PULONG pcFetched
		) = 0 ;
	virtual HRESULT __stdcall Skip(unsigned cFilters) = 0 ;
	virtual HRESULT __stdcall Reset(void) = 0 ;
	virtual HRESULT __stdcall Clone(/* out */ _di_IEnumFilters &ppEnum) = 0 ;
};

struct TFilterInfo
{
	wchar_t achName[128];
	_di_IFilterGraph pGraph;
} ;

__interface INTERFACE_UUID("{56A86897-0AD4-11CE-B03A-0020AF0BA770}") IReferenceClock  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall GetTime(/* out */ __int64 &pTime) = 0 ;
	virtual HRESULT __stdcall AdviseTime(__int64 baseTime, __int64 streamTime, unsigned hEvent, /* out */ 
		unsigned &pdwAdviseCookie) = 0 ;
	virtual HRESULT __stdcall AdvisePeriodic(__int64 startTime, __int64 periodTime, int hSemaphore, /* out */ 
		unsigned &pdwAdviseCookie) = 0 ;
	virtual HRESULT __stdcall Unadvise(unsigned dwAdviseCookie) = 0 ;
};

__interface IReferenceClock2;
typedef System::DelphiInterface<IReferenceClock2> _di_IReferenceClock2;
__interface INTERFACE_UUID("{36B73885-C2C8-11CF-8B46-00805F6CEF60}") IReferenceClock2  : public IReferenceClock 
	
{
	
};

__interface IMediaSample;
typedef System::DelphiInterface<IMediaSample> _di_IMediaSample;
__interface INTERFACE_UUID("{56A8689A-0AD4-11CE-B03A-0020AF0BA770}") IMediaSample  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall GetPointer(/* out */ Windows::PByte &ppBuffer) = 0 ;
	virtual int __stdcall GetSize(void) = 0 ;
	virtual HRESULT __stdcall GetTime(/* out */ __int64 &pTimeStart, /* out */ __int64 &pTimeEnd) = 0 ;
		
	virtual HRESULT __stdcall SetTime(PReference_Time pTimeStart, PReference_Time pTimeEnd) = 0 ;
	virtual HRESULT __stdcall IsSyncPoint(void) = 0 ;
	virtual HRESULT __stdcall SetSyncPoint(BOOL bIsSyncPoint) = 0 ;
	virtual HRESULT __stdcall IsPreroll(void) = 0 ;
	virtual HRESULT __stdcall SetPreroll(BOOL bIsPreroll) = 0 ;
	virtual int __stdcall GetActualDataLength(void) = 0 ;
	virtual HRESULT __stdcall SetActualDataLength(int lLen) = 0 ;
	virtual HRESULT __stdcall GetMediaType(/* out */ PAM_Media_Type &ppMediaType) = 0 ;
	virtual HRESULT __stdcall SetMediaType(TAM_Media_Type &pMediaType) = 0 ;
	virtual HRESULT __stdcall IsDiscontinuity(void) = 0 ;
	virtual HRESULT __stdcall SetDiscontinuity(BOOL bDiscontinuity) = 0 ;
	virtual HRESULT __stdcall GetMediaTime(/* out */ __int64 &pTimeStart, /* out */ __int64 &pTimeEnd) = 0 
		;
	virtual HRESULT __stdcall SetMediaTime(PReference_Time pTimeStart, PReference_Time pTimeEnd) = 0 ;
};

__interface IMemAllocator;
typedef System::DelphiInterface<IMemAllocator> _di_IMemAllocator;
__interface INTERFACE_UUID("{56A8689C-0AD4-11CE-B03A-0020AF0BA770}") IMemAllocator  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall SetProperties(TAllocator_Properties &pRequest, /* out */ TAllocator_Properties 
		&pActual) = 0 ;
	virtual HRESULT __stdcall GetProperties(/* out */ TAllocator_Properties &pProps) = 0 ;
	virtual HRESULT __stdcall Commit(void) = 0 ;
	virtual HRESULT __stdcall Decommit(void) = 0 ;
	virtual HRESULT __stdcall GetBuffer(/* out */ _di_IMediaSample &ppBuffer, PReference_Time pStartTime
		, PReference_Time pEndTime, unsigned dwFlags) = 0 ;
	virtual HRESULT __stdcall ReleaseBuffer(_di_IMediaSample pBuffer) = 0 ;
};

__interface IMediaSeeking;
typedef System::DelphiInterface<IMediaSeeking> _di_IMediaSeeking;
__interface INTERFACE_UUID("{36B73880-C2C8-11CF-8B46-00805F6CEF60}") IMediaSeeking  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall GetCapabilities(/* out */ unsigned &pCapabilities) = 0 ;
	virtual HRESULT __stdcall CheckCapabilities(unsigned &pCapabilities) = 0 ;
	virtual HRESULT __stdcall IsFormatSupported(const GUID &pFormat) = 0 ;
	virtual HRESULT __stdcall QueryPreferredFormat(/* out */ GUID &pFormat) = 0 ;
	virtual HRESULT __stdcall GetTimeFormat(/* out */ GUID &pFormat) = 0 ;
	virtual HRESULT __stdcall IsUsingTimeFormat(const GUID &pFormat) = 0 ;
	virtual HRESULT __stdcall SetTimeFormat(const GUID &pFormat) = 0 ;
	virtual HRESULT __stdcall GetDuration(/* out */ __int64 &pDuration) = 0 ;
	virtual HRESULT __stdcall GetStopPosition(/* out */ __int64 &pStop) = 0 ;
	virtual HRESULT __stdcall GetCurrentPosition(/* out */ __int64 &pCurrent) = 0 ;
	virtual HRESULT __stdcall ConvertTimeFormat(/* out */ __int64 &pTarget, System::PGUID pTargetFormat
		, __int64 Source, System::PGUID pSourceFormat) = 0 ;
	virtual HRESULT __stdcall SetPositions(__int64 &pCurrent, unsigned dwCurrentFlags, __int64 &pStop, 
		unsigned dwStopFlags) = 0 ;
	virtual HRESULT __stdcall GetPositions(/* out */ __int64 &pCurrent, /* out */ __int64 &pStop) = 0 ;
		
	virtual HRESULT __stdcall GetAvailable(/* out */ __int64 &pEarliest, /* out */ __int64 &pLatest) = 0 
		;
	virtual HRESULT __stdcall SetRate(double dRate) = 0 ;
	virtual HRESULT __stdcall GetRate(/* out */ double &pdRate) = 0 ;
	virtual HRESULT __stdcall GetPreroll(/* out */ __int64 &pllPreroll) = 0 ;
};

struct TColorKey
{
	unsigned KeyType;
	unsigned PaletteIndex;
	unsigned LowColorValue;
	unsigned HighColorValue;
} ;

typedef unsigned HMonitor;

__interface IOverlayNotify;
typedef System::DelphiInterface<IOverlayNotify> _di_IOverlayNotify;
__interface INTERFACE_UUID("{56A868A0-0AD4-11CE-B03A-0020AF0BA770}") IOverlayNotify  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall OnPaletteChange(unsigned dwColors, const tagPALETTEENTRY pPalette) = 0 ;
	virtual HRESULT __stdcall OnClipChange(const Windows::TRect &pSourceRect, const Windows::TRect &pDestinationRect
		, const _RGNDATA &pRgnData) = 0 ;
	virtual HRESULT __stdcall OnColorKeyChange(const TColorKey &pColorKey) = 0 ;
	virtual HRESULT __stdcall OnPositionChange(const Windows::TRect &pSourceRect, const Windows::TRect 
		&pDestinationRect) = 0 ;
};

__interface IOverlayNotify2;
typedef System::DelphiInterface<IOverlayNotify2> _di_IOverlayNotify2;
__interface INTERFACE_UUID("{680EFA10-D535-11D1-87C8-00A0C9223196}") IOverlayNotify2  : public IOverlayNotify 
	
{
	
public:
	virtual HRESULT __stdcall OnDisplayChange(unsigned &hMonitor) = 0 ;
};

__interface IOverlay;
typedef System::DelphiInterface<IOverlay> _di_IOverlay;
__interface INTERFACE_UUID("{56A868A1-0AD4-11CE-B03A-0020AF0BA770}") IOverlay  : public IUnknown 
{
	
public:
	virtual HRESULT __stdcall GetPalette(/* out */ unsigned &pdwColors, /* out */ Windows::PPaletteEntry 
		&ppPalette) = 0 ;
	virtual HRESULT __stdcall SetPalette(unsigned dwColors, tagPALETTEENTRY &pPalette) = 0 ;
	virtual HRESULT __stdcall GetDefaultColorKey(/* out */ TColorKey &pColorKey) = 0 ;
	virtual HRESULT __stdcall GetColorKey(/* out */ TColorKey &pColorKey) = 0 ;
	virtual HRESULT __stdcall SetColorKey(TColorKey &pColorKey) = 0 ;
	virtual HRESULT __stdcall GetWindowHandle(/* out */ HWND &pHwnd) = 0 ;
	virtual HRESULT __stdcall GetClipList(/* out */ Windows::TRect &pSourceRect, /* out */ Windows::TRect 
		&pDestinationRect, /* out */ Windows::PRgnData &ppRgnData) = 0 ;
	virtual HRESULT __stdcall GetVideoPosition(/* out */ Windows::TRect &pSourceRect, /* out */ Windows::TRect 
		&pDestinationRect) = 0 ;
	virtual HRESULT __stdcall Advise(_di_IOverlayNotify pOverlayNotify, unsigned dwInterests) = 0 ;
	virtual HRESULT __stdcall Unadvise(void) = 0 ;
};

__interface IMediaEventSink;
typedef System::DelphiInterface<IMediaEventSink> _di_IMediaEventSink;
__interface INTERFACE_UUID("{56A868A2-0AD4-11CE-B03A-0020AF0BA770}") IMediaEventSink  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall Notify(int EventCode, int EventParam1, int EventParam2) = 0 ;
};

__interface IFileSourceFilter;
typedef System::DelphiInterface<IFileSourceFilter> _di_IFileSourceFilter;
__interface INTERFACE_UUID("{56A868A6-0AD4-11CE-B03A-0020AF0BA770}") IFileSourceFilter  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall Load(wchar_t * pszFileName, const PAM_Media_Type pmt) = 0 ;
	virtual HRESULT __stdcall GetCurFile(/* out */ wchar_t * &ppszFileName, /* out */ TAM_Media_Type &pmt
		) = 0 ;
};

__interface IFileSinkFilter;
typedef System::DelphiInterface<IFileSinkFilter> _di_IFileSinkFilter;
__interface INTERFACE_UUID("{A2104830-7C70-11CF-8BCE-00AA00A3F1A6}") IFileSinkFilter  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall SetFileName(wchar_t * pszFileName, TAM_Media_Type &pmt) = 0 ;
	virtual HRESULT __stdcall GetCurFile(/* out */ wchar_t * &ppszFileName, /* out */ TAM_Media_Type &pmt
		) = 0 ;
};

__interface IFileSinkFilter2;
typedef System::DelphiInterface<IFileSinkFilter2> _di_IFileSinkFilter2;
__interface INTERFACE_UUID("{00855B90-CE1B-11D0-BD4F-00A0C911CE86}") IFileSinkFilter2  : public IFileSinkFilter 
	
{
	
public:
	virtual HRESULT __stdcall SetMode(unsigned dwFlags) = 0 ;
	virtual HRESULT __stdcall GetMode(/* out */ unsigned &pdwFlags) = 0 ;
};

__interface IGraphBuilder;
typedef System::DelphiInterface<IGraphBuilder> _di_IGraphBuilder;
__interface INTERFACE_UUID("{56A868A9-0AD4-11CE-B03A-0020AF0BA770}") IGraphBuilder  : public IFilterGraph 
	
{
	
public:
	virtual HRESULT __stdcall Connect(_di_IPin ppinOut, _di_IPin ppinIn) = 0 ;
	virtual HRESULT __stdcall Render(_di_IPin ppinOut) = 0 ;
	virtual HRESULT __stdcall RenderFile(wchar_t * lpcwstrFile, wchar_t * lpcwstrPlayList) = 0 ;
	virtual HRESULT __stdcall AddSourceFilter(wchar_t * lpcwstrFileName, wchar_t * lpcwstrFilterName, /* out */ 
		_di_IBaseFilter &ppFilter) = 0 ;
	virtual HRESULT __stdcall SetLogFile(unsigned hFile) = 0 ;
	virtual HRESULT __stdcall Abort(void) = 0 ;
	virtual HRESULT __stdcall ShouldOperationContinue(void) = 0 ;
};

__interface IGraphConfigCallback;
typedef System::DelphiInterface<IGraphConfigCallback> _di_IGraphConfigCallback;
__interface INTERFACE_UUID("{ADE0FD60-D19D-11D2-ABF6-00A0C905F375}") IGraphConfigCallback  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall Reconfigure(void *pvContext, unsigned dwFlags) = 0 ;
};

__interface IPinConnection;
typedef System::DelphiInterface<IPinConnection> _di_IPinConnection;
__interface INTERFACE_UUID("{4A9A62D3-27D4-403D-91E9-89F540E55534}") IPinConnection  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall DynamicQueryAccept(TAM_Media_Type &pmt) = 0 ;
	virtual HRESULT __stdcall NotifyEndOfStream(unsigned hNotifyEvent) = 0 ;
	virtual HRESULT __stdcall IsEndPin(void) = 0 ;
	virtual HRESULT __stdcall DynamicDisconnect(void) = 0 ;
};

__interface IGraphConfig;
typedef System::DelphiInterface<IGraphConfig> _di_IGraphConfig;
__interface INTERFACE_UUID("{03A1EB8E-32BF-4245-8502-114D08A9CB88}") IGraphConfig  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall Reconnect(_di_IPin pOutputPin, _di_IPin pInputPin, PAM_Media_Type pmtFirstConnection
		, _di_IBaseFilter pUsingFilter, unsigned hAbortEvent, unsigned dwFlags) = 0 ;
	virtual HRESULT __stdcall Reconfigure(_di_IGraphConfigCallback pCallback, void *pvContext, unsigned 
		dwFlags, unsigned hAbortEvent) = 0 ;
	virtual HRESULT __stdcall AddFilterToCache(_di_IBaseFilter pFilter) = 0 ;
	virtual HRESULT __stdcall EnumCacheFilter(/* out */ _di_IEnumFilters &pEnum) = 0 ;
	virtual HRESULT __stdcall RemoveFilterFromCache(_di_IBaseFilter pFilter) = 0 ;
	virtual HRESULT __stdcall GetStartTime(/* out */ __int64 &prtStart) = 0 ;
	virtual HRESULT __stdcall PushThroughData(_di_IPin pOutputPin, _di_IPinConnection pConnection, Windows::PHandle 
		hEventAbort) = 0 ;
	virtual HRESULT __stdcall SetFilterFlags(_di_IBaseFilter pFilter, unsigned dwFlags) = 0 ;
	virtual HRESULT __stdcall GetFilterFlags(_di_IBaseFilter pFilter, /* out */ unsigned &pdwFlags) = 0 
		;
	virtual HRESULT __stdcall RemoveFilterEx(_di_IBaseFilter pFilter, unsigned Flags) = 0 ;
};

__interface ICaptureGraphBuilder;
typedef System::DelphiInterface<ICaptureGraphBuilder> _di_ICaptureGraphBuilder;
__interface IAMCopyCaptureFileProgress;
typedef System::DelphiInterface<IAMCopyCaptureFileProgress> _di_IAMCopyCaptureFileProgress;
__interface INTERFACE_UUID("{BF87B6E0-8C27-11D0-B3F0-00AA003761C5}") ICaptureGraphBuilder  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall SetFiltergraph(_di_IGraphBuilder pfg) = 0 ;
	virtual HRESULT __stdcall GetFiltergraph(/* out */ _di_IGraphBuilder &ppfg) = 0 ;
	virtual HRESULT __stdcall SetOutputFileName(const GUID &pType, wchar_t * lpstrFile, /* out */ _di_IBaseFilter 
		&ppf, /* out */ _di_IFileSinkFilter &ppSink) = 0 ;
	virtual HRESULT __stdcall FindInterface(System::PGUID pCategory, _di_IBaseFilter pf, const GUID &riid
		, /* out */ void *ppint) = 0 ;
	virtual HRESULT __stdcall RenderStream(System::PGUID pCategory, _di_IUnknown pSource, _di_IBaseFilter 
		pfCompressor, _di_IBaseFilter pfRenderer) = 0 ;
	virtual HRESULT __stdcall ControlStream(System::PGUID pCategory, _di_IBaseFilter pFilter, PReference_Time 
		pstart, PReference_Time pstop, Word wStartCookie, Word wStopCookie) = 0 ;
	virtual HRESULT __stdcall AllocCapFile(wchar_t * lpstr, __int64 dwlSize) = 0 ;
	virtual HRESULT __stdcall CopyCaptureFile(wchar_t * lpwstrOld, wchar_t * lpwstrNew, int fAllowEscAbort
		, _di_IAMCopyCaptureFileProgress pCallback) = 0 ;
};

__interface ICaptureGraphBuilder2;
typedef System::DelphiInterface<ICaptureGraphBuilder2> _di_ICaptureGraphBuilder2;
__interface INTERFACE_UUID("{93E5A4E0-2D50-11D2-ABFA-00A0C9C6E38D}") ICaptureGraphBuilder2  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall SetFiltergraph(_di_IGraphBuilder pfg) = 0 ;
	virtual HRESULT __stdcall GetFiltergraph(/* out */ _di_IGraphBuilder &Muxg) = 0 ;
	virtual HRESULT __stdcall SetOutputFileName(const GUID &pType, wchar_t * lpstrFile, /* out */ _di_IBaseFilter 
		&Mux, /* out */ _di_IFileSinkFilter &ppSink) = 0 ;
	virtual HRESULT __stdcall FindInterface(System::PGUID pCategory, System::PGUID pType, _di_IBaseFilter 
		pf, const GUID &riid, /* out */ void *ppint) = 0 ;
	virtual HRESULT __stdcall RenderStream(System::PGUID pCategory, System::PGUID pType, _di_IUnknown pSource
		, _di_IBaseFilter pfCompressor, _di_IBaseFilter pfRenderer) = 0 ;
	virtual HRESULT __stdcall ControlStream(System::PGUID pCategory, System::PGUID pType, _di_IBaseFilter 
		pFilter, PReference_Time pstart, PReference_Time pstop, Word wStartCookie, Word wStopCookie) = 0 ;
		
	virtual HRESULT __stdcall AllocCapFile(wchar_t * lpstr, __int64 dwlSize) = 0 ;
	virtual HRESULT __stdcall CopyCaptureFile(wchar_t * lpwstrOld, wchar_t * lpwstrNew, int fAllowEscAbort
		, _di_IAMCopyCaptureFileProgress pCallback) = 0 ;
	virtual HRESULT __stdcall FindPin(_di_IUnknown pSource, TPin_Direction pindir, void * pCategory, void * 
		pType, BOOL fUnconnected, int num, /* out */ _di_IPin &ppPin) = 0 ;
};

__interface INTERFACE_UUID("{670D1D20-A068-11D0-B3F0-00AA003761C5}") IAMCopyCaptureFileProgress  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall Progress(int iProgress) = 0 ;
};

__interface IMoniker;
typedef System::DelphiInterface<IMoniker> _di_IMoniker;
typedef _di_IMoniker *PIMoniker;

__interface IEnumString;
typedef System::DelphiInterface<IEnumString> _di_IEnumString;
__interface INTERFACE_UUID("{00000101-0000-0000-C000-000000000046}") IEnumString  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall Next(int celt, /* out */ void *elt, Windows::PLongint pceltFetched) = 0 ;
		
	virtual HRESULT __stdcall Skip(int celt) = 0 ;
	virtual HRESULT __stdcall Reset(void) = 0 ;
	virtual HRESULT __stdcall Clone(/* out */ _di_IEnumString &enm) = 0 ;
};

__interface IBindCtx;
typedef System::DelphiInterface<IBindCtx> _di_IBindCtx;
__interface IEnumMoniker;
typedef System::DelphiInterface<IEnumMoniker> _di_IEnumMoniker;
__interface INTERFACE_UUID("{0000000F-0000-0000-C000-000000000046}") IMoniker  : public IPersistStream 
	
{
	
public:
	virtual HRESULT __stdcall BindToObject(const _di_IBindCtx bc, const _di_IMoniker mkToLeft, const GUID 
		&iidResult, /* out */ void *vResult) = 0 ;
	virtual HRESULT __stdcall BindToStorage(const _di_IBindCtx bc, const _di_IMoniker mkToLeft, const GUID 
		&iid, /* out */ void *vObj) = 0 ;
	virtual HRESULT __stdcall Reduce(const _di_IBindCtx bc, int dwReduceHowFar, PIMoniker mkToLeft, /* out */ 
		_di_IMoniker &mkReduced) = 0 ;
	virtual HRESULT __stdcall ComposeWith(const _di_IMoniker mkRight, BOOL fOnlyIfNotGeneric, /* out */ 
		_di_IMoniker &mkComposite) = 0 ;
	virtual HRESULT __stdcall Enum(BOOL fForward, /* out */ _di_IEnumMoniker &enumMoniker) = 0 ;
	virtual HRESULT __stdcall IsEqual(const _di_IMoniker mkOtherMoniker) = 0 ;
	virtual HRESULT __stdcall Hash(/* out */ int &dwHash) = 0 ;
	virtual HRESULT __stdcall IsRunning(const _di_IBindCtx bc, const _di_IMoniker mkToLeft, const _di_IMoniker 
		mkNewlyRunning) = 0 ;
	virtual HRESULT __stdcall GetTimeOfLastChange(const _di_IBindCtx bc, const _di_IMoniker mkToLeft, /* out */ 
		_FILETIME &filetime) = 0 ;
	virtual HRESULT __stdcall Inverse(/* out */ _di_IMoniker &mk) = 0 ;
	virtual HRESULT __stdcall CommonPrefixWith(const _di_IMoniker mkOther, /* out */ _di_IMoniker &mkPrefix
		) = 0 ;
	virtual HRESULT __stdcall RelativePathTo(const _di_IMoniker mkOther, /* out */ _di_IMoniker &mkRelPath
		) = 0 ;
	virtual HRESULT __stdcall GetDisplayName(const _di_IBindCtx bc, const _di_IMoniker mkToLeft, /* out */ 
		wchar_t * &pszDisplayName) = 0 ;
	virtual HRESULT __stdcall ParseDisplayName(const _di_IBindCtx bc, const _di_IMoniker mkToLeft, wchar_t * 
		pszDisplayName, /* out */ int &chEaten, /* out */ _di_IMoniker &mkOut) = 0 ;
	virtual HRESULT __stdcall IsSystemMoniker(/* out */ int &dwMksys) = 0 ;
};

__interface INTERFACE_UUID("{00000102-0000-0000-C000-000000000046}") IEnumMoniker  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall Next(int celt, /* out */ void *elt, Windows::PLongint pceltFetched) = 0 ;
		
	virtual HRESULT __stdcall Skip(int celt) = 0 ;
	virtual HRESULT __stdcall Reset(void) = 0 ;
	virtual HRESULT __stdcall Clone(/* out */ _di_IEnumMoniker &enm) = 0 ;
};

__interface IRunningObjectTable;
typedef System::DelphiInterface<IRunningObjectTable> _di_IRunningObjectTable;
__interface INTERFACE_UUID("{00000010-0000-0000-C000-000000000046}") IRunningObjectTable  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall Register(int grfFlags, const _di_IUnknown unkObject, const _di_IMoniker mkObjectName
		, /* out */ int &dwRegister) = 0 ;
	virtual HRESULT __stdcall Revoke(int dwRegister) = 0 ;
	virtual HRESULT __stdcall IsRunning(const _di_IMoniker mkObjectName) = 0 ;
	virtual HRESULT __stdcall GetObject(const _di_IMoniker mkObjectName, /* out */ _di_IUnknown &unkObject
		) = 0 ;
	virtual HRESULT __stdcall NoteChangeTime(int dwRegister, const _FILETIME &filetime) = 0 ;
	virtual HRESULT __stdcall GetTimeOfLastChange(const _di_IMoniker mkObjectName, /* out */ _FILETIME 
		&filetime) = 0 ;
	virtual HRESULT __stdcall EnumRunning(/* out */ _di_IEnumMoniker &enumMoniker) = 0 ;
};

struct tagBIND_OPTS
{
	int cbStruct;
	int grfFlags;
	int grfMode;
	int dwTickCountDeadline;
} ;

typedef tagBIND_OPTS *PBindOpts;

typedef tagBIND_OPTS  TBindOpts;

typedef tagBIND_OPTS  BIND_OPTS;

__interface INTERFACE_UUID("{0000000E-0000-0000-C000-000000000046}") IBindCtx  : public IUnknown 
{
	
public:
	virtual HRESULT __stdcall RegisterObjectBound(const _di_IUnknown unk) = 0 ;
	virtual HRESULT __stdcall RevokeObjectBound(const _di_IUnknown unk) = 0 ;
	virtual HRESULT __stdcall ReleaseBoundObjects(void) = 0 ;
	virtual HRESULT __stdcall SetBindOptions(const tagBIND_OPTS &bindopts) = 0 ;
	virtual HRESULT __stdcall GetBindOptions(tagBIND_OPTS &bindopts) = 0 ;
	virtual HRESULT __stdcall GetRunningObjectTable(/* out */ _di_IRunningObjectTable &rot) = 0 ;
	virtual HRESULT __stdcall RegisterObjectParam(wchar_t * pszKey, const _di_IUnknown unk) = 0 ;
	virtual HRESULT __stdcall GetObjectParam(wchar_t * pszKey, /* out */ _di_IUnknown &unk) = 0 ;
	virtual HRESULT __stdcall EnumObjectParam(/* out */ _di_IEnumString &Enum) = 0 ;
	virtual HRESULT __stdcall RevokeObjectParam(wchar_t * pszKey) = 0 ;
};

__interface IFilterGraph2;
typedef System::DelphiInterface<IFilterGraph2> _di_IFilterGraph2;
__interface INTERFACE_UUID("{36B73882-C2C8-11CF-8B46-00805F6CEF60}") IFilterGraph2  : public IGraphBuilder 
	
{
	
public:
	virtual HRESULT __stdcall AddSourceFilterForMoniker(_di_IMoniker pMoniker, _di_IBindCtx pCtx, wchar_t * 
		lpcwstrFilterName, /* out */ _di_IBaseFilter &ppFilter) = 0 ;
	virtual HRESULT __stdcall ReconnectEx(_di_IPin ppin, PAM_Media_Type pmt) = 0 ;
	virtual HRESULT __stdcall RenderEx(_di_IPin pPinOut, unsigned dwFlags, PDWORD pvContext) = 0 ;
};

__interface IStreamBuilder;
typedef System::DelphiInterface<IStreamBuilder> _di_IStreamBuilder;
__interface INTERFACE_UUID("{56A868BF-0AD4-11CE-B03A-0020AF0BA770}") IStreamBuilder  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall Render(_di_IPin ppinOut, _di_IGraphBuilder pGraph) = 0 ;
	virtual HRESULT __stdcall Backout(_di_IPin ppinOut, _di_IGraphBuilder pGraph) = 0 ;
};

__interface IAsyncReader;
typedef System::DelphiInterface<IAsyncReader> _di_IAsyncReader;
__interface INTERFACE_UUID("{56A868AA-0AD4-11CE-B03A-0020AF0BA770}") IAsyncReader  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall RequestAllocator(_di_IMemAllocator pPreferred, const TAllocator_Properties 
		&pProps, /* out */ _di_IMemAllocator &ppActual) = 0 ;
	virtual HRESULT __stdcall Request(_di_IMediaSample pSample, unsigned dwUser) = 0 ;
	virtual HRESULT __stdcall WaitForNext(unsigned dwTimeout, /* out */ _di_IMediaSample &ppSample, /* out */ 
		unsigned &pdwUser) = 0 ;
	virtual HRESULT __stdcall SyncReadAligned(_di_IMediaSample pSample) = 0 ;
	virtual HRESULT __stdcall SyncRead(__int64 llPosition, int lLength, Windows::PByte pBuffer) = 0 ;
	virtual HRESULT __stdcall Length(/* out */ __int64 &pTotal, /* out */ __int64 &pAvailable) = 0 ;
	virtual HRESULT __stdcall BeginFlush(void) = 0 ;
	virtual HRESULT __stdcall EndFlush(void) = 0 ;
};

struct TAM_Stream_Info
{
	__int64 tStart;
	__int64 tStop;
	unsigned dwStartCookie;
	unsigned dwStopCookie;
	unsigned dwFlags;
} ;

__interface IAMStreamControl;
typedef System::DelphiInterface<IAMStreamControl> _di_IAMStreamControl;
__interface INTERFACE_UUID("{36B73881-C2C8-11CF-8B46-00805F6CEF60}") IAMStreamControl  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall StartAt(PReference_Time ptStart, unsigned dwCookie) = 0 ;
	virtual HRESULT __stdcall StopAt(PReference_Time ptStop, BOOL bSendExtra, unsigned dwCookie) = 0 ;
	virtual HRESULT __stdcall GetInfo(/* out */ TAM_Stream_Info &pInfo) = 0 ;
};

struct TVideo_Stream_Config_Caps;
typedef TVideo_Stream_Config_Caps *PVideo_Stream_Config_Caps;

struct TVideo_Stream_Config_Caps
{
	GUID guid;
	unsigned VideoStandard;
	tagSIZE InputSize;
	tagSIZE MinCroppingSize;
	tagSIZE MaxCroppingSize;
	int CropGranularityX;
	int CropGranularityY;
	int CropAlignX;
	int CropAlignY;
	tagSIZE MinOutputSize;
	tagSIZE MaxOutputSize;
	int OutputGranularityX;
	int OutputGranularityY;
	int StretchTapsX;
	int StretchTapsY;
	int ShrinkTapsX;
	int ShrinkTapsY;
	__int64 MinFrameInterval;
	__int64 MaxFrameInterval;
	int MinBitsPerSecond;
	int MaxBitsPerSecond;
} ;

struct TAudio_Stream_Config_Caps
{
	GUID guid;
	unsigned MinimumChannels;
	unsigned MaximumChannels;
	unsigned ChannelsGranularity;
	unsigned MinimumBitsPerSample;
	unsigned MaximumBitsPerSample;
	unsigned BitsPerSampleGranularity;
	unsigned MinimumSampleFrequency;
	unsigned MaximumSampleFrequency;
	unsigned SampleFrequencyGranularity;
} ;

__interface IAMStreamConfig;
typedef System::DelphiInterface<IAMStreamConfig> _di_IAMStreamConfig;
__interface INTERFACE_UUID("{C6E13340-30AC-11D0-A18C-00A0C9118956}") IAMStreamConfig  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall SetFormat(const TAM_Media_Type &pmt) = 0 ;
	virtual HRESULT __stdcall GetFormat(/* out */ PAM_Media_Type &ppmt) = 0 ;
	virtual HRESULT __stdcall GetNumberOfCapabilities(/* out */ int &piCount, /* out */ int &piSize) = 0 
		;
	virtual HRESULT __stdcall GetStreamCaps(int iIndex, /* out */ PAM_Media_Type &ppmt, /* out */ void 
		*pSCC) = 0 ;
};

__interface IAMGraphStreams;
typedef System::DelphiInterface<IAMGraphStreams> _di_IAMGraphStreams;
__interface INTERFACE_UUID("{632105FA-072E-11D3-8AF9-00C04FB6BD3D}") IAMGraphStreams  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall FindUpstreamInterface(_di_IPin pPin, const GUID &riid, /* out */ void *ppvInterface
		, unsigned dwFlags) = 0 ;
	virtual HRESULT __stdcall SyncUsingStreamOffset(BOOL bUseStreamOffset) = 0 ;
	virtual HRESULT __stdcall SetMaxGraphLatency(__int64 rtMaxGraphLatency) = 0 ;
};

#pragma option push -b
enum TInterleavingMode { im_None, im_Capture, im_Full, im_none_buffered };
#pragma option pop

__interface IConfigInterleaving;
typedef System::DelphiInterface<IConfigInterleaving> _di_IConfigInterleaving;
__interface INTERFACE_UUID("{BEE3D220-157B-11D0-BD23-00A0C911CE86}") IConfigInterleaving  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall put_Mode(TInterleavingMode mode) = 0 ;
	virtual HRESULT __stdcall get_Mode(/* out */ TInterleavingMode &pMode) = 0 ;
	virtual HRESULT __stdcall put_Interleaving(void * prtInterleave, void * prtPreroll) = 0 ;
	virtual HRESULT __stdcall get_Interleaving(/* out */ __int64 &prtInterleave, /* out */ __int64 &prtPreroll
		) = 0 ;
};

__interface IConfigAviMux;
typedef System::DelphiInterface<IConfigAviMux> _di_IConfigAviMux;
__interface INTERFACE_UUID("{5ACD6AA0-F482-11CE-8B67-00AA00A3F1A6}") IConfigAviMux  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall SetMasterStream(int iStream) = 0 ;
	virtual HRESULT __stdcall GetMasterStream(/* out */ int &pStream) = 0 ;
	virtual HRESULT __stdcall SetOutputCompatibilityIndex(BOOL fOldIndex) = 0 ;
	virtual HRESULT __stdcall GetOutputCompatibilityIndex(/* out */ BOOL &pfOldIndex) = 0 ;
};

#pragma option push -b
enum TTunerInputType { TunerInputCable, TunerInputAntenna };
#pragma option pop

typedef unsigned TAMTunerModeType;

typedef Activex::TOleEnum TAMTunerEventType;

__interface IAMTuner;
typedef System::DelphiInterface<IAMTuner> _di_IAMTuner;
__interface IAMTunerNotification;
typedef System::DelphiInterface<IAMTunerNotification> _di_IAMTunerNotification;
__interface INTERFACE_UUID("{211A8761-03AC-11D1-8D13-00AA00BD8339}") IAMTuner  : public IUnknown 
{
	
public:
	virtual HRESULT __stdcall put_Channel(int lChannel, int lVideoSubChannel, int lAudioSubChannel) = 0 
		;
	virtual HRESULT __stdcall get_Channel(/* out */ int &lChannel, /* out */ int &lVideoSubChannel, /* out */ 
		int &lAudioSubChannel) = 0 ;
	virtual HRESULT __stdcall ChannelMinMax(/* out */ int &lChannelMin, /* out */ int &lChannelMax) = 0 
		;
	virtual HRESULT __stdcall put_CountryCode(int lCountryCode) = 0 ;
	virtual HRESULT __stdcall get_CountryCode(/* out */ int &lCountryCode) = 0 ;
	virtual HRESULT __stdcall put_TuningSpace(int lTuningSpace) = 0 ;
	virtual HRESULT __stdcall get_TuningSpace(/* out */ int &lTuningSpace) = 0 ;
	virtual HRESULT __stdcall Logon(unsigned hCurrentUser) = 0 ;
	virtual HRESULT __stdcall Logout(void) = 0 ;
	virtual HRESULT __stdcall SignalPresent(/* out */ int &plSignalStrength) = 0 ;
	virtual HRESULT __stdcall put_Mode(unsigned lMode) = 0 ;
	virtual HRESULT __stdcall get_Mode(/* out */ unsigned &plMode) = 0 ;
	virtual HRESULT __stdcall GetAvailableModes(/* out */ int &plModes) = 0 ;
	virtual HRESULT __stdcall RegisterNotificationCallBack(_di_IAMTunerNotification pNotify, int lEvents
		) = 0 ;
	virtual HRESULT __stdcall UnRegisterNotificationCallBack(_di_IAMTunerNotification pNotify) = 0 ;
};

__interface INTERFACE_UUID("{211A8760-03AC-11D1-8D13-00AA00BD8339}") IAMTunerNotification  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall OnEvent(Activex::TOleEnum Event) = 0 ;
};

__interface IAMTVTuner;
typedef System::DelphiInterface<IAMTVTuner> _di_IAMTVTuner;
__interface INTERFACE_UUID("{211A8766-03AC-11D1-8D13-00AA00BD8339}") IAMTVTuner  : public IAMTuner 
{
	
public:
	virtual HRESULT __stdcall get_AvailableTVFormats(/* out */ int &lAnalogVideoStandard) = 0 ;
	virtual HRESULT __stdcall get_TVFormat(/* out */ int &plAnalogVideoStandard) = 0 ;
	virtual HRESULT __stdcall AutoTune(int lChannel, /* out */ int &plFoundSignal) = 0 ;
	virtual HRESULT __stdcall StoreAutoTune(void) = 0 ;
	virtual HRESULT __stdcall get_NumInputConnections(/* out */ int &plNumInputConnections) = 0 ;
	virtual HRESULT __stdcall put_InputType(int lIndex, TTunerInputType InputType) = 0 ;
	virtual HRESULT __stdcall get_InputType(int lIndex, /* out */ TTunerInputType &InputType) = 0 ;
	virtual HRESULT __stdcall put_ConnectInput(int lIndex) = 0 ;
	virtual HRESULT __stdcall get_ConnectInput(/* out */ int &plIndex) = 0 ;
	virtual HRESULT __stdcall get_VideoFrequency(/* out */ int &lFreq) = 0 ;
	virtual HRESULT __stdcall get_AudioFrequency(/* out */ int &lFreq) = 0 ;
};

typedef Activex::TOleEnum TPhysicalConnectorType;

__interface IAMCrossbar;
typedef System::DelphiInterface<IAMCrossbar> _di_IAMCrossbar;
__interface INTERFACE_UUID("{C6E13380-30AC-11D0-A18C-00A0C9118956}") IAMCrossbar  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall get_PinCounts(/* out */ int &OutputPinCount, /* out */ int &InputPinCount
		) = 0 ;
	virtual HRESULT __stdcall CanRoute(int OutputPinIndex, int InputPinIndex) = 0 ;
	virtual HRESULT __stdcall Route(int OutputPinIndex, int InputPinIndex) = 0 ;
	virtual HRESULT __stdcall get_IsRoutedTo(int OutputPinIndex, /* out */ int &InputPinIndex) = 0 ;
	virtual HRESULT __stdcall get_CrossbarPinInfo(BOOL IsInputPin, int PinIndex, /* out */ int &PinIndexRelated
		, /* out */ Activex::TOleEnum &PhysicalType) = 0 ;
};

#pragma option push -b
enum TAMTVAudioEventType { AMTVAUDIO_EVENT_CHANGED };
#pragma option pop

__interface IAMTVAudio;
typedef System::DelphiInterface<IAMTVAudio> _di_IAMTVAudio;
__interface INTERFACE_UUID("{83EC1C30-23D1-11D1-99E6-00A0C9560266}") IAMTVAudio  : public IUnknown 
{
	
public:
	virtual HRESULT __stdcall GetHardwareSupportedTVAudioModes(/* out */ int &plModes) = 0 ;
	virtual HRESULT __stdcall GetAvailableTVAudioModes(/* out */ int &plModes) = 0 ;
	virtual HRESULT __stdcall get_TVAudioMode(/* out */ int &plMode) = 0 ;
	virtual HRESULT __stdcall put_TVAudioMode(int lMode) = 0 ;
	virtual HRESULT __stdcall RegisterNotificationCallBack(_di_IAMTunerNotification pNotify, int lEvents
		) = 0 ;
	virtual HRESULT __stdcall UnRegisterNotificationCallBack(_di_IAMTunerNotification pNotify) = 0 ;
};

__interface IAMTVAudioNotification;
typedef System::DelphiInterface<IAMTVAudioNotification> _di_IAMTVAudioNotification;
__interface INTERFACE_UUID("{83EC1C33-23D1-11D1-99E6-00A0C9560266}") IAMTVAudioNotification  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall OnEvent(TAMTVAudioEventType Event) = 0 ;
};

__interface IAMVideoCompression;
typedef System::DelphiInterface<IAMVideoCompression> _di_IAMVideoCompression;
__interface INTERFACE_UUID("{C6E13343-30AC-11D0-A18C-00A0C9118956}") IAMVideoCompression  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall put_KeyFrameRate(int KeyFrameRate) = 0 ;
	virtual HRESULT __stdcall get_KeyFrameRate(/* out */ int &pKeyFrameRate) = 0 ;
	virtual HRESULT __stdcall put_PFramesPerKeyFrame(int PFramesPerKeyFrame) = 0 ;
	virtual HRESULT __stdcall get_PFramesPerKeyFrame(/* out */ int &pPFramesPerKeyFrame) = 0 ;
	virtual HRESULT __stdcall put_Quality(double Quality) = 0 ;
	virtual HRESULT __stdcall get_Quality(/* out */ double &pQuality) = 0 ;
	virtual HRESULT __stdcall put_WindowSize(__int64 WindowSize) = 0 ;
	virtual HRESULT __stdcall get_WindowSize(/* out */ __int64 &pWindowSize) = 0 ;
	virtual HRESULT __stdcall GetInfo(wchar_t * pszVersion, int &pcbVersion, wchar_t * pszDescription, 
		int &pcbDescription, /* out */ int &pDefaultKeyFrameRate, /* out */ int &pDefaultPFramesPerKey, /* out */ 
		double &pDefaultQuality, /* out */ int &pCapabilities) = 0 ;
	virtual HRESULT __stdcall OverrideKeyFrame(int FrameNumber) = 0 ;
	virtual HRESULT __stdcall OverrideFrameSize(int FrameNumber, int Size) = 0 ;
};

__interface IAMDroppedFrames;
typedef System::DelphiInterface<IAMDroppedFrames> _di_IAMDroppedFrames;
__interface INTERFACE_UUID("{C6E13344-30AC-11D0-A18C-00A0C9118956}") IAMDroppedFrames  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall GetNumDropped(/* out */ int &plDropped) = 0 ;
	virtual HRESULT __stdcall GetNumNotDropped(/* out */ int &plNotDropped) = 0 ;
	virtual HRESULT __stdcall GetDroppedInfo(int lSize, /* out */ int &plArray, /* out */ int &plNumCopied
		) = 0 ;
	virtual HRESULT __stdcall GetAverageFrameSize(/* out */ int &plAverageSize) = 0 ;
};

__interface IAMVfwCaptureDialogs;
typedef System::DelphiInterface<IAMVfwCaptureDialogs> _di_IAMVfwCaptureDialogs;
__interface INTERFACE_UUID("{D8D715A0-6E5E-11D0-B3F0-00AA003761C5}") IAMVfwCaptureDialogs  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall HasDialog(int iDialog) = 0 ;
	virtual HRESULT __stdcall ShowDialog(int iDialog, HWND hwnd) = 0 ;
	virtual HRESULT __stdcall SendDriverMessage(int iDialog, int uMsg, int dw1, int dw2) = 0 ;
};

__interface IAMVfwCompressDialogs;
typedef System::DelphiInterface<IAMVfwCompressDialogs> _di_IAMVfwCompressDialogs;
__interface INTERFACE_UUID("{D8D715A3-6E5E-11D0-B3F0-00AA003761C5}") IAMVfwCompressDialogs  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall ShowDialog(int iDialog, HWND hwnd) = 0 ;
	virtual HRESULT __stdcall GetState(void * pState, int &pcbState) = 0 ;
	virtual HRESULT __stdcall SetState(void * pState, int cbState) = 0 ;
	virtual HRESULT __stdcall SendDriverMessage(int uMsg, int dw1, int dw2) = 0 ;
};

#pragma option push -b
enum TAnalogVideoStandard { AnalogVideo_None, AnalogVideo_NTSC_M, AnalogVideo_NTSC_M_J, AnalogVideo_NTSC_433, 
	AnalogVideo_PAL_B, AnalogVideo_PAL_D, AnalogVideo_PAL_H, AnalogVideo_PAL_I, AnalogVideo_PAL_M, AnalogVideo_PAL_N, 
	AnalogVideo_PAL_60, AnalogVideo_SECAM_B, AnalogVideo_SECAM_D, AnalogVideo_SECAM_G, AnalogVideo_SECAM_H, 
	AnalogVideo_SECAM_K, AnalogVideo_SECAM_K1, AnalogVideo_SECAM_L, AnalogVideo_SECAM_L1, AnalogVideo_PAL_N_COMBO 
	};
#pragma option pop

__interface IAMAnalogVideoDecoder;
typedef System::DelphiInterface<IAMAnalogVideoDecoder> _di_IAMAnalogVideoDecoder;
__interface INTERFACE_UUID("{C6E13350-30AC-11D0-A18C-00A0C9118956}") IAMAnalogVideoDecoder  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall get_AvailableTVFormats(/* out */ int &lAnalogVideoStandard) = 0 ;
	virtual HRESULT __stdcall put_TVFormat(int lAnalogVideoStandard) = 0 ;
	virtual HRESULT __stdcall get_TVFormat(/* out */ int &plAnalogVideoStandard) = 0 ;
	virtual HRESULT __stdcall get_HorizontalLocked(/* out */ int &plLocked) = 0 ;
	virtual HRESULT __stdcall put_VCRHorizontalLocking(int lVCRHorizontalLocking) = 0 ;
	virtual HRESULT __stdcall get_VCRHorizontalLocking(/* out */ int &plVCRHorizontalLocking) = 0 ;
	virtual HRESULT __stdcall get_NumberOfLines(/* out */ int &plNumberOfLines) = 0 ;
	virtual HRESULT __stdcall put_OutputEnable(BOOL lOutputEnable) = 0 ;
	virtual HRESULT __stdcall get_OutputEnable(/* out */ BOOL &plOutputEnable) = 0 ;
};

#pragma option push -b
enum TAMProperty_Pin { AMPROPERTY_PIN_CATEGORY, AMPROPERTY_PIN_MEDIUM };
#pragma option pop

__interface IKsPropertySet;
typedef System::DelphiInterface<IKsPropertySet> _di_IKsPropertySet;
__interface INTERFACE_UUID("{31EFAC30-515C-11D0-A9AA-00AA0061BE93}") IKsPropertySet  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall Set_(const GUID &guidPropSet, TAMProperty_Pin dwPropID, void * pInstanceData
		, unsigned cbInstanceData, void * pPropData, unsigned cbPropData) = 0 ;
	virtual HRESULT __stdcall Get(const GUID &guidPropSet, TAMProperty_Pin dwPropID, void * pInstanceData
		, unsigned cbInstanceData, /* out */ void *pPropData, unsigned cbPropData, /* out */ unsigned &pcbReturned
		) = 0 ;
	virtual HRESULT __stdcall QuerySupported(const GUID &guidPropSet, TAMProperty_Pin dwPropID, /* out */ 
		unsigned &pTypeSupport) = 0 ;
};

struct TTimeCode
{
	Word wFrameRate;
	Word wFrameFract;
	unsigned dwFrames;
} ;

struct TTimeCode_Sample
{
	__int64 qwTick;
	TTimeCode timecode;
	unsigned dwUser;
	unsigned dwFlags;
} ;

__interface IAMTimecodeReader;
typedef System::DelphiInterface<IAMTimecodeReader> _di_IAMTimecodeReader;
__interface INTERFACE_UUID("{9B496CE1-811B-11CF-8C77-00AA006B6814}") IAMTimecodeReader  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall GetTCRMode(int Param, /* out */ int &pValue) = 0 ;
	virtual HRESULT __stdcall SetTCRMode(int Param, int Value) = 0 ;
	virtual HRESULT __stdcall put_VITCLine(int Line) = 0 ;
	virtual HRESULT __stdcall get_VITCLine(/* out */ int &pLine) = 0 ;
	virtual HRESULT __stdcall GetTimecode(/* out */ TTimeCode_Sample &pTimecodeSample) = 0 ;
};

__interface IAMExtDevice;
typedef System::DelphiInterface<IAMExtDevice> _di_IAMExtDevice;
__interface INTERFACE_UUID("{B5730A90-1A2C-11CF-8C23-00AA006B6814}") IAMExtDevice  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall GetCapability(int Capability, /* out */ int &pValue, /* out */ double &pdblValue
		) = 0 ;
	virtual HRESULT __stdcall get_ExternalDeviceID(/* out */ wchar_t * &ppszData) = 0 ;
	virtual HRESULT __stdcall get_ExternalDeviceVersion(/* out */ wchar_t * &ppszData) = 0 ;
	virtual HRESULT __stdcall put_DevicePower(int PowerMode) = 0 ;
	virtual HRESULT __stdcall get_DevicePower(/* out */ int &pPowerMode) = 0 ;
	virtual HRESULT __stdcall Calibrate(unsigned hEvent, int Mode, /* out */ int &pStatus) = 0 ;
	virtual HRESULT __stdcall put_DevicePort(int DevicePort) = 0 ;
	virtual HRESULT __stdcall get_DevicePort(/* out */ int &pDevicePort) = 0 ;
};

__interface IAMExtTransport;
typedef System::DelphiInterface<IAMExtTransport> _di_IAMExtTransport;
__interface INTERFACE_UUID("{A03CD5F0-3045-11CF-8C44-00AA006B6814}") IAMExtTransport  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall GetCapability(int Capability, /* out */ int &pValue, /* out */ double &pdblValue
		) = 0 ;
	virtual HRESULT __stdcall put_MediaState(int State) = 0 ;
	virtual HRESULT __stdcall get_MediaState(/* out */ int &pState) = 0 ;
	virtual HRESULT __stdcall put_LocalControl(int State) = 0 ;
	virtual HRESULT __stdcall get_LocalControl(/* out */ int &pState) = 0 ;
	virtual HRESULT __stdcall GetStatus(int StatusItem, /* out */ int &pValue) = 0 ;
	virtual HRESULT __stdcall GetTransportBasicParameters(int Param, int &pValue, void * ppszData) = 0 
		;
	virtual HRESULT __stdcall SetTransportBasicParameters(int Param, int Value, wchar_t * pszData) = 0 
		;
	virtual HRESULT __stdcall GetTransportVideoParameters(int Param, /* out */ int &pValue) = 0 ;
	virtual HRESULT __stdcall SetTransportVideoParameters(int Param, int Value) = 0 ;
	virtual HRESULT __stdcall GetTransportAudioParameters(int Param, /* out */ int &pValue) = 0 ;
	virtual HRESULT __stdcall SetTransportAudioParameters(int Param, int Value) = 0 ;
	virtual HRESULT __stdcall put_Mode(int Mode) = 0 ;
	virtual HRESULT __stdcall get_Mode(/* out */ int &pMode) = 0 ;
	virtual HRESULT __stdcall put_Rate(double dblRate) = 0 ;
	virtual HRESULT __stdcall get_Rate(/* out */ double &pdblRate) = 0 ;
	virtual HRESULT __stdcall GetChase(/* out */ int &pEnabled, /* out */ int &pOffset, unsigned &phEvent
		) = 0 ;
	virtual HRESULT __stdcall SetChase(int Enable, int Offset, unsigned hEvent) = 0 ;
	virtual HRESULT __stdcall GetBump(/* out */ int &pSpeed, /* out */ int &pDuration) = 0 ;
	virtual HRESULT __stdcall SetBump(int Speed, int Duration) = 0 ;
	virtual HRESULT __stdcall get_AntiClogControl(/* out */ int &pEnabled) = 0 ;
	virtual HRESULT __stdcall put_AntiClogControl(int Enable) = 0 ;
	virtual HRESULT __stdcall GetEditPropertySet(int EditID, /* out */ int &pState) = 0 ;
	virtual HRESULT __stdcall SetEditPropertySet(int &pEditID, int State) = 0 ;
	virtual HRESULT __stdcall GetEditProperty(int EditID, int Param, /* out */ int &pValue) = 0 ;
	virtual HRESULT __stdcall SetEditProperty(int EditID, int Param, int Value) = 0 ;
	virtual HRESULT __stdcall get_EditStart(/* out */ int &pValue) = 0 ;
	virtual HRESULT __stdcall put_EditStart(int Value) = 0 ;
};

#pragma option push -b
enum TCameraControlProperty { CameraControl_Dummy_starts_1, CameraControl_Pan, CameraControl_Tilt, CameraControl_Roll, 
	CameraControl_Zoom, CameraControl_Exposure, CameraControl_Iris, CameraControl_Focus };
#pragma option pop

__interface IAMCameraControl;
typedef System::DelphiInterface<IAMCameraControl> _di_IAMCameraControl;
__interface INTERFACE_UUID("{C6E13370-30AC-11D0-A18C-00A0C9118956}") IAMCameraControl  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall GetRange(TCameraControlProperty Property_, /* out */ int &pMin, /* out */ 
		int &pMax, /* out */ int &pSteppingDelta, /* out */ int &pDefault, /* out */ int &pCapsFlags) = 0 
		;
	virtual HRESULT __stdcall Set_(TCameraControlProperty Property_, int lValue, int Flags) = 0 ;
	virtual HRESULT __stdcall Get(TCameraControlProperty Property_, /* out */ int &lValue, /* out */ int 
		&Flags) = 0 ;
};

#pragma option push -b
enum TVideoProcAmpProperty { VideoProcAmp_Brightness, VideoProcAmp_Contrast, VideoProcAmp_Hue, VideoProcAmp_Saturation, 
	VideoProcAmp_Sharpness, VideoProcAmp_Gamma, VideoProcAmp_ColorEnable, VideoProcAmp_WhiteBalance, VideoProcAmp_BacklightCompensation 
	};
#pragma option pop

#pragma option push -b
enum TVideoProcAmpFlags { VideoProcAmp_Flags_Manual, VideoProcAmp_Flags_Auto };
#pragma option pop

__interface IAMVideoProcAmp;
typedef System::DelphiInterface<IAMVideoProcAmp> _di_IAMVideoProcAmp;
__interface INTERFACE_UUID("{C6E13360-30AC-11D0-A18C-00A0C9118956}") IAMVideoProcAmp  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall GetRange(TVideoProcAmpProperty Property_, /* out */ int &pMin, /* out */ 
		int &pMax, /* out */ int &pSteppingDelta, /* out */ int &pDefault, /* out */ TVideoProcAmpFlags &pCapsFlags
		) = 0 ;
	virtual HRESULT __stdcall Set_(TVideoProcAmpProperty Property_, int lValue, TVideoProcAmpFlags Flags
		) = 0 ;
	virtual HRESULT __stdcall Get(TVideoProcAmpProperty Property_, /* out */ int &lValue, /* out */ TVideoProcAmpFlags 
		&Flags) = 0 ;
};

__interface IIPDVDec;
typedef System::DelphiInterface<IIPDVDec> _di_IIPDVDec;
__interface INTERFACE_UUID("{B8E8BD60-0BFE-11D0-AF91-00AA00B67A42}") IIPDVDec  : public IUnknown 
{
	
public:
	virtual HRESULT __stdcall get_IPDisplay(/* out */ int &displayPix) = 0 ;
	virtual HRESULT __stdcall put_IPDisplay(int displayPix) = 0 ;
};

__interface IDVSplitter;
typedef System::DelphiInterface<IDVSplitter> _di_IDVSplitter;
__interface INTERFACE_UUID("{92A3A302-DA7C-4A1F-BA7E-1802BB5D2D02}") IDVSplitter  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall DiscardAlternateVideoFrames(int nDiscard) = 0 ;
};

__interface ICreateDevEnum;
typedef System::DelphiInterface<ICreateDevEnum> _di_ICreateDevEnum;
__interface INTERFACE_UUID("{29840822-5B84-11D0-BD3B-00A0C911CE86}") ICreateDevEnum  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall CreateClassEnumerator(const GUID &clsidDeviceClass, /* out */ _di_IEnumMoniker 
		&ppEnumMoniker, unsigned dwFlags) = 0 ;
};

typedef int OAEVENT;

typedef int OAHWND;

__interface IMediaControl;
typedef System::DelphiInterface<IMediaControl> _di_IMediaControl;
__interface INTERFACE_UUID("{56A868B1-0AD4-11CE-B03A-0020AF0BA770}") IMediaControl  : public IDispatch 
	
{
	
public:
	virtual HRESULT __stdcall Run(void) = 0 ;
	virtual HRESULT __stdcall Pause(void) = 0 ;
	virtual HRESULT __stdcall Stop(void) = 0 ;
	virtual HRESULT __stdcall GetState(unsigned msTimeout, /* out */ TFilter_State &pfs) = 0 ;
	virtual HRESULT __stdcall RenderFile(WideString strFilename) = 0 ;
	virtual HRESULT __stdcall AddSourceFilter(WideString strFilename, /* out */ _di_IDispatch &ppUnk) = 0 
		;
	virtual HRESULT __stdcall get_FilterCollection(/* out */ _di_IDispatch &ppUnk) = 0 ;
	virtual HRESULT __stdcall get_RegFilterCollection(/* out */ _di_IDispatch &ppUnk) = 0 ;
	virtual HRESULT __stdcall StopWhenReady(void) = 0 ;
};

__interface IMediaEvent;
typedef System::DelphiInterface<IMediaEvent> _di_IMediaEvent;
__interface INTERFACE_UUID("{56A868B6-0AD4-11CE-B03A-0020AF0BA770}") IMediaEvent  : public IDispatch 
	
{
	
public:
	virtual HRESULT __stdcall GetEventHandle(/* out */ int &hEvent) = 0 ;
	virtual HRESULT __stdcall GetEvent(/* out */ int &lEventCode, /* out */ int &lParam1, /* out */ int 
		&lParam2, unsigned msTimeout) = 0 ;
	virtual HRESULT __stdcall WaitForCompletion(unsigned msTimeout, /* out */ int &pEvCode) = 0 ;
	virtual HRESULT __stdcall CancelDefaultHandling(int lEvCode) = 0 ;
	virtual HRESULT __stdcall RestoreDefaultHandling(int lEvCode) = 0 ;
	virtual HRESULT __stdcall FreeEventParams(int lEvCode, int lParam1, int lParam2) = 0 ;
};

__interface IMediaEventEx;
typedef System::DelphiInterface<IMediaEventEx> _di_IMediaEventEx;
__interface INTERFACE_UUID("{56A868C0-0AD4-11CE-B03A-0020AF0BA770}") IMediaEventEx  : public IMediaEvent 
	
{
	
public:
	virtual HRESULT __stdcall SetNotifyWindow(int hwnd, int lMsg, int lInstanceData) = 0 ;
	virtual HRESULT __stdcall SetNotifyFlags(int lNoNotifyFlags) = 0 ;
	virtual HRESULT __stdcall GetNotifyFlags(/* out */ void *lplNoNotifyFlags) = 0 ;
};

__interface IVideoWindow;
typedef System::DelphiInterface<IVideoWindow> _di_IVideoWindow;
__interface INTERFACE_UUID("{56A868B4-0AD4-11CE-B03A-0020AF0BA770}") IVideoWindow  : public IDispatch 
	
{
	
public:
	virtual HRESULT __stdcall put_Caption(WideString strCaption) = 0 ;
	virtual HRESULT __stdcall get_Caption(/* out */ WideString &strCaption) = 0 ;
	virtual HRESULT __stdcall put_WindowStyle(int WindowStyle) = 0 ;
	virtual HRESULT __stdcall get_WindowStyle(/* out */ int &WindowStyle) = 0 ;
	virtual HRESULT __stdcall put_WindowStyleEx(int WindowStyleEx) = 0 ;
	virtual HRESULT __stdcall get_WindowStyleEx(/* out */ int &WindowStyleEx) = 0 ;
	virtual HRESULT __stdcall put_AutoShow(BOOL AutoShow) = 0 ;
	virtual HRESULT __stdcall get_AutoShow(/* out */ BOOL &AutoShow) = 0 ;
	virtual HRESULT __stdcall put_WindowState(int WindowState) = 0 ;
	virtual HRESULT __stdcall get_WindowState(/* out */ int &WindowState) = 0 ;
	virtual HRESULT __stdcall put_BackgroundPalette(int BackgroundPalette) = 0 ;
	virtual HRESULT __stdcall get_BackgroundPalette(/* out */ int &pBackgroundPalette) = 0 ;
	virtual HRESULT __stdcall put_Visible(BOOL Visible) = 0 ;
	virtual HRESULT __stdcall get_Visible(/* out */ BOOL &pVisible) = 0 ;
	virtual HRESULT __stdcall put_Left(int Left) = 0 ;
	virtual HRESULT __stdcall get_Left(/* out */ int &pLeft) = 0 ;
	virtual HRESULT __stdcall put_Width(int Width) = 0 ;
	virtual HRESULT __stdcall get_Width(/* out */ int &pWidth) = 0 ;
	virtual HRESULT __stdcall put_Top(int Top) = 0 ;
	virtual HRESULT __stdcall get_Top(/* out */ int &pTop) = 0 ;
	virtual HRESULT __stdcall put_Height(int Height) = 0 ;
	virtual HRESULT __stdcall get_Height(/* out */ int &pHeight) = 0 ;
	virtual HRESULT __stdcall put_Owner(int Owner) = 0 ;
	virtual HRESULT __stdcall get_Owner(/* out */ int &Owner) = 0 ;
	virtual HRESULT __stdcall put_MessageDrain(int Drain) = 0 ;
	virtual HRESULT __stdcall get_MessageDrain(/* out */ int &Drain) = 0 ;
	virtual HRESULT __stdcall get_BorderColor(/* out */ int &Color) = 0 ;
	virtual HRESULT __stdcall put_BorderColor(int Color) = 0 ;
	virtual HRESULT __stdcall get_FullScreenMode(/* out */ BOOL &FullScreenMode) = 0 ;
	virtual HRESULT __stdcall put_FullScreenMode(BOOL FullScreenMode) = 0 ;
	virtual HRESULT __stdcall SetWindowForeground(int Focus) = 0 ;
	virtual HRESULT __stdcall NotifyOwnerMessage(int hwnd, int uMsg, int wParam, int lParam) = 0 ;
	virtual HRESULT __stdcall SetWindowPosition(int Left, int Top, int Width, int Height) = 0 ;
	virtual HRESULT __stdcall GetWindowPosition(/* out */ int &pLeft, /* out */ int &pTop, /* out */ int 
		&pWidth, /* out */ int &pHeight) = 0 ;
	virtual HRESULT __stdcall GetMinIdealImageSize(/* out */ int &pWidth, /* out */ int &pHeight) = 0 ;
		
	virtual HRESULT __stdcall GetMaxIdealImageSize(/* out */ int &pWidth, /* out */ int &pHeight) = 0 ;
		
	virtual HRESULT __stdcall GetRestorePosition(/* out */ int &pLeft, /* out */ int &pTop, /* out */ int 
		&pWidth, /* out */ int &pHeight) = 0 ;
	virtual HRESULT __stdcall HideCursor(BOOL HideCursor) = 0 ;
	virtual HRESULT __stdcall IsCursorHidden(/* out */ BOOL &CursorHidden) = 0 ;
};

__interface IVideoFrameStep;
typedef System::DelphiInterface<IVideoFrameStep> _di_IVideoFrameStep;
__interface INTERFACE_UUID("{E46A9787-2B71-444D-A4B5-1FAB7B708D6A}") IVideoFrameStep  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall Step(unsigned dwFrames, _di_IUnknown pStepObject) = 0 ;
	virtual HRESULT __stdcall CanStep(int bMultiple, _di_IUnknown pStepObject) = 0 ;
	virtual HRESULT __stdcall CancelStep(void) = 0 ;
};

__interface IBasicVideo;
typedef System::DelphiInterface<IBasicVideo> _di_IBasicVideo;
__interface INTERFACE_UUID("{56A868B5-0AD4-11CE-B03A-0020AF0BA770}") IBasicVideo  : public IDispatch 
	
{
	
public:
	virtual HRESULT __stdcall get_AvgTimePerFrame(/* out */ double &pAvgTimePerFrame) = 0 ;
	virtual HRESULT __stdcall get_BitRate(/* out */ int &pBitRate) = 0 ;
	virtual HRESULT __stdcall get_BitErrorRate(/* out */ int &pBitErrorRate) = 0 ;
	virtual HRESULT __stdcall get_VideoWidth(/* out */ int &pVideoWidth) = 0 ;
	virtual HRESULT __stdcall get_VideoHeight(/* out */ int &pVideoHeight) = 0 ;
	virtual HRESULT __stdcall put_SourceLeft(int SourceLeft) = 0 ;
	virtual HRESULT __stdcall get_SourceLeft(/* out */ int &pSourceLeft) = 0 ;
	virtual HRESULT __stdcall put_SourceWidth(int SourceWidth) = 0 ;
	virtual HRESULT __stdcall get_SourceWidth(/* out */ int &pSourceWidth) = 0 ;
	virtual HRESULT __stdcall put_SourceTop(int SourceTop) = 0 ;
	virtual HRESULT __stdcall get_SourceTop(/* out */ int &pSourceTop) = 0 ;
	virtual HRESULT __stdcall put_SourceHeight(int SourceHeight) = 0 ;
	virtual HRESULT __stdcall get_SourceHeight(/* out */ int &pSourceHeight) = 0 ;
	virtual HRESULT __stdcall put_DestinationLeft(int DestinationLeft) = 0 ;
	virtual HRESULT __stdcall get_DestinationLeft(/* out */ int &pDestinationLeft) = 0 ;
	virtual HRESULT __stdcall put_DestinationWidth(int DestinationWidth) = 0 ;
	virtual HRESULT __stdcall get_DestinationWidth(/* out */ int &pDestinationWidth) = 0 ;
	virtual HRESULT __stdcall put_DestinationTop(int DestinationTop) = 0 ;
	virtual HRESULT __stdcall get_DestinationTop(/* out */ int &pDestinationTop) = 0 ;
	virtual HRESULT __stdcall put_DestinationHeight(int DestinationHeight) = 0 ;
	virtual HRESULT __stdcall get_DestinationHeight(/* out */ int &pDestinationHeight) = 0 ;
	virtual HRESULT __stdcall SetSourcePosition(int Left, int Top, int Width, int Height) = 0 ;
	virtual HRESULT __stdcall GetSourcePosition(/* out */ int &pLeft, /* out */ int &pTop, /* out */ int 
		&pWidth, /* out */ int &pHeight) = 0 ;
	virtual HRESULT __stdcall SetDefaultSourcePosition(void) = 0 ;
	virtual HRESULT __stdcall SetDestinationPosition(int Left, int Top, int Width, int Height) = 0 ;
	virtual HRESULT __stdcall GetDestinationPosition(/* out */ int &pLeft, /* out */ int &pTop, /* out */ 
		int &pWidth, /* out */ int &pHeight) = 0 ;
	virtual HRESULT __stdcall SetDefaultDestinationPosition(void) = 0 ;
	virtual HRESULT __stdcall GetVideoSize(/* out */ int &pWidth, /* out */ int &Height) = 0 ;
	virtual HRESULT __stdcall GetVideoPaletteEntries(int StartIndex, int Entries, /* out */ int &pRetrieved
		, /* out */ void *pPalette) = 0 ;
	virtual HRESULT __stdcall GetCurrentImage(int &BufferSize, void *pDIBImage) = 0 ;
	virtual HRESULT __stdcall IsUsingDefaultSource(void) = 0 ;
	virtual HRESULT __stdcall IsUsingDefaultDestination(void) = 0 ;
};

__interface IBasicVideo2;
typedef System::DelphiInterface<IBasicVideo2> _di_IBasicVideo2;
__interface INTERFACE_UUID("{329BB360-F6EA-11D1-9038-00A0C9697298}") IBasicVideo2  : public IBasicVideo 
	
{
	
public:
	virtual HRESULT __stdcall GetPreferredAspectRatio(/* out */ int &plAspectX, /* out */ int &plAspectY
		) = 0 ;
};

#pragma pack(push, 1)
struct TDDSCaps
{
	unsigned dwCaps;
} ;
#pragma pack(pop)

typedef TDDSCaps *PDDSCaps;

#pragma pack(push, 1)
struct TDDColorKey
{
	unsigned dwColorSpaceLowValue;
	unsigned dwColorSpaceHighValue;
} ;
#pragma pack(pop)

typedef TDDColorKey *PDDColorKey;

#pragma pack(push, 1)
struct TDDPixelFormat_DX6
{
	unsigned dwSize;
	unsigned dwFlags;
	unsigned dwFourCC;
	union
	{
		struct 
		{
			unsigned dwBumpBitCount;
			
		};
		struct 
		{
			unsigned dwLuminanceBitCount;
			unsigned dwBumpDuBitMask;
			unsigned Fill1;
			unsigned Fill2;
			unsigned dwYUVZBitMask;
			
		};
		struct 
		{
			unsigned dwAlphaBitDepth;
			unsigned dwLuminanceBitMask;
			unsigned dwBumpDvBitMask;
			unsigned dwBumpLuminanceBitMask;
			unsigned dwRGBZBitMask;
			
		};
		struct 
		{
			unsigned dwZBufferBitDepth;
			unsigned dwStencilBitDepth;
			unsigned dwZBitMask;
			unsigned dwStencilBitMask;
			unsigned dwLuminanceAlphaBitMask;
			
		};
		struct 
		{
			unsigned dwYUVBitCount;
			unsigned dwYBitMask;
			unsigned dwUBitMask;
			unsigned dwVBitMask;
			unsigned dwYUVAlphaBitMask;
			
		};
		struct 
		{
			unsigned dwRGBBitCount;
			unsigned dwRBitMask;
			unsigned dwGBitMask;
			unsigned dwBBitMask;
			unsigned dwRGBAlphaBitMask;
			
		};
		
	};
} ;
#pragma pack(pop)

typedef TDDPixelFormat_DX6 *PDDPixelFormat_DX6;

typedef TDDPixelFormat_DX6 *PDDPixelFormat;

#pragma pack(push, 1)
struct TDDSurfaceDesc
{
	unsigned dwSize;
	unsigned dwFlags;
	unsigned dwHeight;
	unsigned dwWidth;
	union
	{
		struct 
		{
			int lPitch;
			unsigned dwBackBufferCount;
			union
			{
				struct 
				{
					unsigned dwRefreshRate;
					
				};
				struct 
				{
					unsigned dwZBufferBitDepth;
					
				};
				struct 
				{
					unsigned dwMipMapCount;
					unsigned dwAlphaBitDepth;
					unsigned dwReserved;
					void *lpSurface;
					TDDColorKey ddckCKDestOverlay;
					TDDColorKey ddckCKDestBlt;
					TDDColorKey ddckCKSrcOverlay;
					TDDColorKey ddckCKSrcBlt;
					TDDPixelFormat_DX6 ddpfPixelFormat;
					TDDSCaps ddsCaps;
					
				};
				
			};
		};
		struct 
		{
			unsigned dwLinearSize;
			
		};
		
	};
} ;
#pragma pack(pop)

typedef TDDSurfaceDesc *PDDSurfaceDesc;

__interface IQualProp;
typedef System::DelphiInterface<IQualProp> _di_IQualProp;
__interface INTERFACE_UUID("{1BD0ECB0-F8E2-11CE-AAC6-0020AF0B99A3}") IQualProp  : public IUnknown 
{
	
public:
	virtual HRESULT __stdcall get_FramesDroppedInRenderer(int &pcFrames) = 0 ;
	virtual HRESULT __stdcall get_FramesDrawn(/* out */ int &pcFrames) = 0 ;
	virtual HRESULT __stdcall get_AvgFrameRate(/* out */ int &piAvgFrameRate) = 0 ;
	virtual HRESULT __stdcall get_Jitter(/* out */ int &iJitter) = 0 ;
	virtual HRESULT __stdcall get_AvgSyncOffset(/* out */ int &piAvg) = 0 ;
	virtual HRESULT __stdcall get_DevSyncOffset(/* out */ int &piDev) = 0 ;
};

__interface IFullScreenVideo;
typedef System::DelphiInterface<IFullScreenVideo> _di_IFullScreenVideo;
__interface INTERFACE_UUID("{DD1D7110-7836-11CF-BF47-00AA0055595A}") IFullScreenVideo  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall CountModes(/* out */ int &pModes) = 0 ;
	virtual HRESULT __stdcall GetModeInfo(int Mode, /* out */ int &pWidth, /* out */ int &pHeight, /* out */ 
		int &pDepth) = 0 ;
	virtual HRESULT __stdcall GetCurrentMode(/* out */ int &pMode) = 0 ;
	virtual HRESULT __stdcall IsModeAvailable(int Mode) = 0 ;
	virtual HRESULT __stdcall IsModeEnabled(int Mode) = 0 ;
	virtual HRESULT __stdcall SetEnabled(int Mode, int bEnabled) = 0 ;
	virtual HRESULT __stdcall GetClipFactor(/* out */ int &pClipFactor) = 0 ;
	virtual HRESULT __stdcall SetClipFactor(int ClipFactor) = 0 ;
	virtual HRESULT __stdcall SetMessageDrain(HWND hwnd) = 0 ;
	virtual HRESULT __stdcall GetMessageDrain(/* out */ HWND &hwnd) = 0 ;
	virtual HRESULT __stdcall SetMonitor(int Monitor) = 0 ;
	virtual HRESULT __stdcall GetMonitor(/* out */ int &Monitor) = 0 ;
	virtual HRESULT __stdcall HideOnDeactivate(BOOL Hide) = 0 ;
	virtual HRESULT __stdcall IsHideOnDeactivate(void) = 0 ;
	virtual HRESULT __stdcall SetCaption(wchar_t * strCaption) = 0 ;
	virtual HRESULT __stdcall GetCaption(/* out */ wchar_t * &pstrCaption) = 0 ;
	virtual HRESULT __stdcall SetDefault(void) = 0 ;
};

__interface IFullScreenVideoEx;
typedef System::DelphiInterface<IFullScreenVideoEx> _di_IFullScreenVideoEx;
__interface INTERFACE_UUID("{53479470-F1DD-11CF-BC42-00AA00AC74F6}") IFullScreenVideoEx  : public IFullScreenVideo 
	
{
	
public:
	virtual HRESULT __stdcall SetAcceleratorTable(HWND hwnd, HACCEL hAccel) = 0 ;
	virtual HRESULT __stdcall GetAcceleratorTable(HWND &hwnd, HACCEL &hAccel) = 0 ;
	virtual HRESULT __stdcall KeepPixelAspectRatio(BOOL KeepAspect) = 0 ;
	virtual HRESULT __stdcall IsKeepPixelAspectRatio(BOOL &pKeepAspect) = 0 ;
};

__interface IBaseVideoMixer;
typedef System::DelphiInterface<IBaseVideoMixer> _di_IBaseVideoMixer;
__interface INTERFACE_UUID("{61DED640-E912-11CE-A099-00AA00479A58}") IBaseVideoMixer  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall SetLeadPin(int iPin) = 0 ;
	virtual HRESULT __stdcall GetLeadPin(/* out */ int &iPin) = 0 ;
	virtual HRESULT __stdcall GetInputPinCount(/* out */ int &piPinCount) = 0 ;
	virtual HRESULT __stdcall IsUsingClock(/* out */ int &pbValue) = 0 ;
	virtual HRESULT __stdcall SetUsingClock(int bValue) = 0 ;
	virtual HRESULT __stdcall GetClockPeriod(/* out */ int &pbValue) = 0 ;
	virtual HRESULT __stdcall SetClockPeriod(int bValue) = 0 ;
};

__interface IAMOverlayFX;
typedef System::DelphiInterface<IAMOverlayFX> _di_IAMOverlayFX;
__interface INTERFACE_UUID("{62FAE250-7E65-4460-BFC9-6398B322073C}") IAMOverlayFX  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall QueryOverlayFXCaps(/* out */ unsigned &lpdwOverlayFXCaps) = 0 ;
	virtual HRESULT __stdcall SetOverlayFX(unsigned dwOverlayFX) = 0 ;
	virtual HRESULT __stdcall GetOverlayFX(/* out */ unsigned &lpdwOverlayFX) = 0 ;
};

struct TTrueColorInfo
{
	unsigned dwBitMasks[3];
	tagRGBQUAD bmiColors[256];
} ;

struct TVideoInfoHeader2;
typedef TVideoInfoHeader2 *PVideoInfoHeader2;

struct TVideoInfoHeader2
{
	Windows::TRect rcSource;
	Windows::TRect rcTarget;
	unsigned dwBitRate;
	unsigned dwBitErrorRate;
	__int64 AvgTimePerFrame;
	unsigned dwInterlaceFlags;
	unsigned dwCopyProtectFlags;
	unsigned dwPictAspectRatioX;
	unsigned dwPictAspectRatioY;
	union
	{
		struct 
		{
			unsigned dwReserved1;
			unsigned dwReserved2_;
			tagBITMAPINFOHEADER bmiHeader_;
			
		};
		struct 
		{
			unsigned dwControlFlags;
			unsigned dwReserved2;
			tagBITMAPINFOHEADER bmiHeader;
			
		};
		
	};
} ;

struct TVideoInfoHeader;
typedef TVideoInfoHeader *PVideoInfoHeader;

struct TVideoInfoHeader
{
	Windows::TRect rcSource;
	Windows::TRect rcTarget;
	unsigned dwBitRate;
	unsigned dwBitErrorRate;
	__int64 AvgTimePerFrame;
	tagBITMAPINFOHEADER bmiHeader;
} ;

__interface ISampleGrabberCB;
typedef System::DelphiInterface<ISampleGrabberCB> _di_ISampleGrabberCB;
__interface INTERFACE_UUID("{0579154A-2B53-4994-B0D0-E773148EFF85}") ISampleGrabberCB  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall SampleCB(double SampleTime, void * pSample) = 0 ;
	virtual HRESULT __stdcall BufferCB(double SampleTime, void * pBuffer, int BufferLen) = 0 ;
};

__interface ISampleGrabber;
typedef System::DelphiInterface<ISampleGrabber> _di_ISampleGrabber;
__interface INTERFACE_UUID("{6B652FFF-11FE-4FCE-92AD-0266B5D7C78F}") ISampleGrabber  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall SetOneShot(BOOL OneShot) = 0 ;
	virtual HRESULT __stdcall SetMediaType(TAM_Media_Type &pType) = 0 ;
	virtual HRESULT __stdcall GetConnectedMediaType(/* out */ TAM_Media_Type &pType) = 0 ;
	virtual HRESULT __stdcall SetBufferSamples(BOOL BufferThem) = 0 ;
	virtual HRESULT __stdcall GetCurrentBuffer(int &pBufferSize, void * pBuffer) = 0 ;
	virtual HRESULT __stdcall GetCurrentSample(/* out */ _di_IMediaSample &ppSample) = 0 ;
	virtual HRESULT __stdcall SetCallback(_di_ISampleGrabberCB pCallback, int WhichMethodToCallback) = 0 
		;
};

__interface IMediaDet;
typedef System::DelphiInterface<IMediaDet> _di_IMediaDet;
__interface INTERFACE_UUID("{65BD0710-24D2-4FF7-9324-ED2E5D3ABAFA}") IMediaDet  : public IUnknown 
{
	
public:
	virtual HRESULT __stdcall get_Filter(/* out */ _di_IUnknown &pVal) = 0 ;
	virtual HRESULT __stdcall put_Filter(_di_IUnknown newVal) = 0 ;
	virtual HRESULT __stdcall get_OutputStreams(/* out */ int &pVal) = 0 ;
	virtual HRESULT __stdcall get_CurrentStream(/* out */ int &pVal) = 0 ;
	virtual HRESULT __stdcall put_CurrentStream(int newVal) = 0 ;
	virtual HRESULT __stdcall get_StreamType(/* out */ GUID &pVal) = 0 ;
	virtual HRESULT __stdcall get_StreamTypeB(/* out */ WideString &pVal) = 0 ;
	virtual HRESULT __stdcall get_StreamLength(/* out */ double &pVal) = 0 ;
	virtual HRESULT __stdcall get_Filename(/* out */ WideString &pVal) = 0 ;
	virtual HRESULT __stdcall put_Filename(WideString pVal) = 0 ;
	virtual HRESULT __stdcall GetBitmapBits(double streamTime, int &pBufferSize, char * &pBuffer, int Width
		, int Height) = 0 ;
	virtual HRESULT __stdcall WriteBitmapBits(double streamTime, int Width, int Height, WideString Filename
		) = 0 ;
	virtual HRESULT __stdcall get_StreamMediaType(/* out */ TAM_Media_Type &pVal) = 0 ;
	virtual HRESULT __stdcall GetSampleGrabber(/* out */ _di_ISampleGrabber &ppVal) = 0 ;
	virtual HRESULT __stdcall get_FrameRate(/* out */ double &pVal) = 0 ;
	virtual HRESULT __stdcall EnterBitmapGrabMode(double SeekTime) = 0 ;
};

class DELPHICLASS TTVTuner;
class PASCALIMPLEMENTATION TTVTuner : public System::TObject 
{
	typedef System::TObject inherited;
	
public:
	__fastcall TTVTuner(void);
	__fastcall virtual ~TTVTuner(void);
	HRESULT __stdcall QueryInterface(const GUID &IID, /* out */ void *Obj);
	int __stdcall _AddRef(void);
	int __stdcall _Release(void);
	HRESULT __stdcall put_Channel(int lChannel, int lVideoSubChannel, int lAudioSubChannel);
	HRESULT __stdcall get_Channel(/* out */ int &lChannel, /* out */ int &lVideoSubChannel, /* out */ int 
		&lAudioSubChannel);
	HRESULT __stdcall ChannelMinMax(/* out */ int &lChannelMin, /* out */ int &lChannelMax);
	HRESULT __stdcall put_CountryCode(int lCountryCode);
	HRESULT __stdcall get_CountryCode(/* out */ int &lCountryCode);
	HRESULT __stdcall put_TuningSpace(int lTuningSpace);
	HRESULT __stdcall get_TuningSpace(/* out */ int &lTuningSpace);
	HRESULT __stdcall Logon(unsigned hCurrentUser);
	HRESULT __stdcall Logout(void);
	HRESULT __stdcall SignalPresent(/* out */ int &plSignalStrength);
	HRESULT __stdcall put_Mode(unsigned lMode);
	HRESULT __stdcall get_Mode(/* out */ unsigned &plMode);
	HRESULT __stdcall GetAvailableModes(/* out */ int &plModes);
	HRESULT __stdcall RegisterNotificationCallBack(_di_IAMTunerNotification pNotify, int lEvents);
	HRESULT __stdcall UnRegisterNotificationCallBack(_di_IAMTunerNotification pNotify);
	HRESULT __stdcall get_AvailableTVFormats(/* out */ int &lAnalogVideoStandard);
	HRESULT __stdcall get_TVFormat(/* out */ int &plAnalogVideoStandard);
	HRESULT __stdcall AutoTune(int lChannel, /* out */ int &plFoundSignal);
	HRESULT __stdcall StoreAutoTune(void);
	HRESULT __stdcall get_NumInputConnections(/* out */ int &plNumInputConnections);
	HRESULT __stdcall put_InputType(int lIndex, TTunerInputType InputType);
	HRESULT __stdcall get_InputType(int lIndex, /* out */ TTunerInputType &InputType);
	HRESULT __stdcall put_ConnectInput(int lIndex);
	HRESULT __stdcall get_ConnectInput(/* out */ int &plIndex);
	HRESULT __stdcall get_VideoFrequency(/* out */ int &lFreq);
	HRESULT __stdcall get_AudioFrequency(/* out */ int &lFreq);
	HRESULT __stdcall put_TVFormat(int lAnalogVideoStandard);
	HRESULT __stdcall get_HorizontalLocked(/* out */ int &plLocked);
	HRESULT __stdcall put_VCRHorizontalLocking(int lVCRHorizontalLocking);
	HRESULT __stdcall get_VCRHorizontalLocking(/* out */ int &plVCRHorizontalLocking);
	HRESULT __stdcall get_NumberOfLines(/* out */ int &plNumberOfLines);
	HRESULT __stdcall put_OutputEnable(BOOL lOutputEnable);
	HRESULT __stdcall get_OutputEnable(/* out */ BOOL &plOutputEnable);
	
private:
	void *Channel0;
	void *Channel1;
	void *Channel2;
	void *Channel3;
	void *Channel4;
	void *Channel5;
	void *Channel6;
private:
	void *__IAMTVTuner;	/* Vidgrab::IAMTVTuner */
	void *__IAMAnalogVideoDecoder;	/* Vidgrab::IAMAnalogVideoDecoder */
	
public:
	operator IAMAnalogVideoDecoder*(void) { return (IAMAnalogVideoDecoder*)&__IAMAnalogVideoDecoder; }
	operator IAMTVTuner*(void) { return (IAMTVTuner*)&__IAMTVTuner; }
	
};


struct TRegPinMedium;
typedef TRegPinMedium *PRegPinMedium;

struct TRegPinMedium
{
	GUID clsMedium;
	unsigned dw1;
	unsigned dw2;
} ;

struct TKSIDENTIFIER;
typedef TKSIDENTIFIER *PKSIDENTIFIER;

struct TKSIDENTIFIER
{
	
	union
	{
		struct 
		{
			__int64 Alignment;
			
		};
		struct 
		{
			GUID Set_;
			unsigned Id;
			unsigned Flags;
			
		};
		
	};
} ;

typedef TKSIDENTIFIER *PKSPIN_INTERFACE;

typedef TKSIDENTIFIER  TKSPIN_INTERFACE;

struct TKSMULTIPLE_ITEM;
typedef TKSMULTIPLE_ITEM *PKSMULTIPLE_ITEM;

struct TKSMULTIPLE_ITEM
{
	unsigned Size;
	unsigned Count;
} ;

#pragma option push -b
enum TKSPROPERTY_PIN { KSPROPERTY_PIN_CINSTANCES, KSPROPERTY_PIN_CTYPES, KSPROPERTY_PIN_DATAFLOW, KSPROPERTY_PIN_DATARANGES, 
	KSPROPERTY_PIN_DATAINTERSECTION, KSPROPERTY_PIN_INTERFACES, KSPROPERTY_PIN_MEDIUMS, KSPROPERTY_PIN_COMMUNICATION, 
	KSPROPERTY_PIN_GLOBALCINSTANCES, KSPROPERTY_PIN_NECESSARYINSTANCES, KSPROPERTY_PIN_PHYSICALCONNECTION, 
	KSPROPERTY_PIN_CATEGORY, KSPROPERTY_PIN_NAME, KSPROPERTY_PIN_CONSTRAINEDDATARANGES, KSPROPERTY_PIN_PROPOSEDATAFORMAT 
	};
#pragma option pop

#pragma option push -b
enum TKSPIN_COMMUNICATION { KSPIN_COMMUNICATION_NONE, KSPIN_COMMUNICATION_SINK, KSPIN_COMMUNICATION_SOURCE, 
	KSPIN_COMMUNICATION_BOTH, KSPIN_COMMUNICATION_BRIDGE };
#pragma option pop

typedef TKSPIN_COMMUNICATION *PKSPIN_COMMUNICATION;

typedef TKSIDENTIFIER *PKSPIN_MEDIUM;

typedef TKSIDENTIFIER  TKSPIN_MEDIUM;

#pragma option push -b
enum TKSIOOPERATION { KsIoOperation_Write, KsIoOperation_Read };
#pragma option pop

__interface IKsDataTypeHandler;
typedef System::DelphiInterface<IKsDataTypeHandler> _di_IKsDataTypeHandler;
__interface INTERFACE_UUID("{5FFBAA02-49A3-11D0-9F36-00AA00A216A1}") IKsDataTypeHandler  : public IUnknown 
	
{
	
public:
	virtual void __stdcall KsCompleteIoOperation(_di_IMediaSample Sample, void * StreamHeader, TKSIOOPERATION 
		IoOperation, BOOL Cancelled) = 0 ;
	virtual void __stdcall KsIsMediaTypeInRanges(void * DataRanges) = 0 ;
	virtual void __stdcall KsPrepareIoOperation(_di_IMediaSample Sample, void * StreamHeader, TKSIOOPERATION 
		IoOperation) = 0 ;
	virtual void __stdcall KsQueryExtendedSize(unsigned &ExtendedSize) = 0 ;
	virtual void __stdcall KsSetMediaType(const TAM_Media_Type &AmMediaType) = 0 ;
};

__interface IKsDataTypeCompletion;
typedef System::DelphiInterface<IKsDataTypeCompletion> _di_IKsDataTypeCompletion;
__interface INTERFACE_UUID("{827D1A0E-0F73-11D2-B27A-00A0C9223196}") IKsDataTypeCompletion  : public IUnknown 
	
{
	
public:
	virtual void __stdcall KsCompleteMediaType(unsigned FilterHandle, unsigned PinFactoryId, TAM_Media_Type 
		&AmMediaType) = 0 ;
};

struct TKSSTREAM_SEGMENT;
typedef TKSSTREAM_SEGMENT *PKSSTREAM_SEGMENT;

__interface IKsInterfaceHandler;
typedef System::DelphiInterface<IKsInterfaceHandler> _di_IKsInterfaceHandler;
__interface IKsPin;
typedef System::DelphiInterface<IKsPin> _di_IKsPin;
__interface INTERFACE_UUID("{D3ABC7E0-9A61-11D0-A40D-00A0C9223196}") IKsInterfaceHandler  : public IUnknown 
	
{
	
public:
	virtual void __stdcall KsSetPin(_di_IKsPin KsPin) = 0 ;
	virtual void __stdcall KsProcessMediaSamples(_di_IKsDataTypeHandler KsDataTypeHandler, _di_IMediaSample 
		SampleList, Windows::PLongint SampleCount, TKSIOOPERATION IoOperation, PKSSTREAM_SEGMENT StreamSegment
		) = 0 ;
	virtual void __stdcall KsCompleteIo(PKSSTREAM_SEGMENT StreamSegment) = 0 ;
};

struct TKSSTREAM_SEGMENT
{
	_di_IKsInterfaceHandler KsInterfaceHandler;
	_di_IKsDataTypeHandler KsDataTypeHandler;
	TKSIOOPERATION IoOperation;
	unsigned CompletionEvent;
} ;

#pragma option push -b
enum TKSPEEKOPERATION { KsPeekOperation_PeekOnly, KsPeekOperation_AddRef };
#pragma option pop

__interface INTERFACE_UUID("{B61178D1-A2D9-11CF-9E53-00AA00A216A1}") IKsPin  : public IUnknown 
{
	
public:
	virtual HRESULT __stdcall KsQueryMediums(/* out */ PKSMULTIPLE_ITEM &MediumList) = 0 ;
	virtual HRESULT __stdcall KsQueryInterfaces(/* out */ PKSMULTIPLE_ITEM &InterfaceList) = 0 ;
	virtual void __stdcall KsCreateSinkPinHandle(const TKSIDENTIFIER Interface_, const TKSIDENTIFIER Medium
		) = 0 ;
	virtual void __stdcall KsGetCurrentCommunication(PKSPIN_COMMUNICATION Communication, PKSPIN_INTERFACE 
		Interface_, PKSPIN_MEDIUM Medium) = 0 ;
	virtual void __stdcall KsPropagateAcquire(void) = 0 ;
	virtual void __stdcall KsDeliver(_di_IMediaSample Sample, unsigned Flags) = 0 ;
	virtual void __stdcall KsMediaSamplesCompleted(PKSSTREAM_SEGMENT StreamSegment) = 0 ;
	virtual _di_IMemAllocator __stdcall KsPeekAllocator(TKSPEEKOPERATION Operation) = 0 ;
	virtual void __stdcall KsReceiveAllocator(_di_IMemAllocator MemAllocator) = 0 ;
	virtual void __stdcall KsRenegotiateAllocator(void) = 0 ;
	virtual int __stdcall KsIncrementPendingIoCount(void) = 0 ;
	virtual int __stdcall KsDecrementPendingIoCount(void) = 0 ;
	virtual void __stdcall KsQualityNotify(unsigned Proportion, __int64 TimeDelta) = 0 ;
};

__interface IKsPinFactory;
typedef System::DelphiInterface<IKsPinFactory> _di_IKsPinFactory;
__interface INTERFACE_UUID("{CD5EBE6B-8B6E-11D1-8AE0-00A0C9223196}") IKsPinFactory  : public IUnknown 
	
{
	
public:
	virtual HRESULT __stdcall KsPinFactory(/* out */ unsigned &PinFactory) = 0 ;
};

typedef TKSIDENTIFIER  TKSPROPERTY;

typedef TKSIDENTIFIER *PKSPROPERTY;

typedef TKSIDENTIFIER  TKSMETHOD;

typedef TKSIDENTIFIER *PKSMETHOD;

typedef TKSIDENTIFIER  TKSEVENT;

typedef TKSIDENTIFIER *PKSEVENT;

__interface IKsControl;
typedef System::DelphiInterface<IKsControl> _di_IKsControl;
__interface INTERFACE_UUID("{28F54685-06FD-11D2-B27A-00A0C9223196}") IKsControl  : public IUnknown 
{
	
public:
	virtual HRESULT __stdcall KsProperty(PKSPROPERTY Property_, unsigned PropertyLength, void * PropertyData
		, unsigned DataLength, /* out */ unsigned &BytesReturned) = 0 ;
	virtual void __stdcall KsMethod(PKSMETHOD Method, unsigned MethodLength, void * MethodData, unsigned 
		DataLength, /* out */ unsigned &BytesReturned) = 0 ;
	virtual void __stdcall KsEvent(PKSEVENT Event, unsigned EventLength, void * EventData, unsigned DataLength
		, /* out */ unsigned &BytesReturned) = 0 ;
};

struct TKSP_PIN;
typedef TKSP_PIN *PKSP_PIN;

struct TKSP_PIN
{
	TKSIDENTIFIER Property_;
	unsigned PinId;
	unsigned Reserved;
} ;

#pragma option push -b
enum TFormatType { ft_Unknown, ft_VideoInfo, ft_VideoInfo2 };
#pragma option pop

struct TCallbackInfo
{
	double SampleTime;
	Graphics::TBitmap* Bitmap;
	HWND OwnerHandle;
} ;

class DELPHICLASS TSampleGrabberCB;
class PASCALIMPLEMENTATION TSampleGrabberCB : public System::TObject 
{
	typedef System::TObject inherited;
	
private:
	TCallbackInfo FCallbackInfo;
	bool FBurstMode;
	int FRemainingFrameInterval;
	int FRemainingFrames;
	int FBurstCount;
	int FBurstInterval;
	TFormatType FFormatType;
	_di_IMediaControl FMediaControl;
	TAM_Media_Type FMediaType;
	bool FPauseAfterBurst;
	bool FSnapFrames;
	int __stdcall _AddRef(void);
	int __stdcall _Release(void);
	HRESULT __stdcall QueryInterface(const GUID &IID, /* out */ void *Obj);
	void __fastcall SetBurstCount(int Value);
	void __fastcall SetBurstInterval(int Value);
	HRESULT __stdcall SampleCB(double SampleTime, void * pSample);
	HRESULT __stdcall BufferCB(double SampleTime, void * pBuffer, int BufferLen);
	void __fastcall SetBurstMode(bool Value);
	void __fastcall SetHandle(HWND Value);
	
public:
	__fastcall TSampleGrabberCB(void);
	__fastcall virtual ~TSampleGrabberCB(void);
	void __fastcall Reset(void);
	void __fastcall StartSnapping(void);
	void __fastcall StopSnapping(void);
	__property bool BurstMode = {read=FBurstMode, write=SetBurstMode, nodefault};
	__property int BurstCount = {read=FBurstCount, write=SetBurstCount, nodefault};
	__property int BurstInterval = {read=FBurstInterval, write=SetBurstInterval, nodefault};
	__property TCallbackInfo CallbackInfo = {read=FCallbackInfo};
	__property HWND Handle = {write=SetHandle, nodefault};
	__property _di_IMediaControl MediaControl = {read=FMediaControl, write=FMediaControl};
	__property bool PauseAfterBurst = {read=FPauseAfterBurst, write=FPauseAfterBurst, nodefault};
	__property int RemainingFrames = {read=FRemainingFrames, nodefault};
private:
	void *__ISampleGrabberCB;	/* Vidgrab::ISampleGrabberCB */
	
public:
	operator ISampleGrabberCB*(void) { return (ISampleGrabberCB*)&__ISampleGrabberCB; }
	
};


struct TCapDeviceInfo
{
	AnsiString Name;
	bool WDM;
	_di_IMoniker moniker;
	AnsiString MkName;
	AnsiString MkId;
	Classes::TStringList* Formats;
	Classes::TStringList* SubTypes;
	bool InUse;
} ;

typedef DynamicArray<TCapDeviceInfo >  TArrayCapDeviceInfo;

typedef TArrayCapDeviceInfo *PArrayCapDeviceInfo;

typedef _di_IAMStreamControl *pAMStreamControl;

#pragma option push -b
enum TAutoFileName { fn_Sequential, fn_DateTime };
#pragma option pop

#pragma option push -b
enum TFrameCaptureDest { fc_TBitmap, fc_BmpFile, fc_JpegFile };
#pragma option pop

#pragma option push -b
enum TCurrentState { cs_Down, cs_Preview, cs_Capture, cs_Player, cs_Compress };
#pragma option pop

typedef Set<TCurrentState, cs_Down, cs_Compress>  SetCurrentState;

#pragma option push -b
enum TCompressionMode { cm_NoCompression, cm_CompressOnTheFly, cm_CompressAfterCapture };
#pragma option pop

#pragma option push -b
enum TCompressionType { ct_Video, ct_Audio, ct_AudioVideo };
#pragma option pop

#pragma option push -b
enum TInitComponent { ic_creating, ic_can_initialize, ic_initialized };
#pragma option pop

#pragma option push -b
enum TMasterStream { ms_VideoMaster, ms_AudioMaster, ms_NoMaster };
#pragma option pop

#pragma option push -b
enum TDVCaptureMode { dv_CaptureType1, dv_CaptureType2 };
#pragma option pop

#pragma option push -b
enum TDVResolution { dvr_Default, dvr_Dc, dvr_Quarter, dvr_Half, dvr_Full };
#pragma option pop

#pragma option push -b
enum TDVCommand { dv_Play, dv_Stop, dv_Freeze, dv_FF, dv_Rew, dv_Record, dv_RecordFreeze, dv_StepFwd, 
	dv_StepRev, dv_PlayFastestFwd, dv_PlaySlowestFwd, dv_PlayFastestRev, dv_PlaySlowestRev };
#pragma option pop

#pragma option push -b
enum TDialog { dlg_Capture, dlg_Compressor, dlg_StreamConfig, dlg_ProcAmp, dlg_VfwFormat, dlg_vfwSource, 
	dlg_vfwDisplay, dlg_vfwCompressor, dlg_Crossbar, dlg_TVTuner, dlg_TVAudio, dlg_Audio };
#pragma option pop

#pragma option push -b
enum TAudioFormat { af_default, af_8000_8b_1ch, af_8000_8b_2ch, af_8000_16b_1ch, af_8000_16b_2ch, af_11025_8b_1ch, 
	af_11025_8b_2ch, af_11025_16b_1ch, af_11025_16b_2ch, af_22050_8b_1ch, af_22050_8b_2ch, af_22050_16b_1ch, 
	af_22050_16b_2ch, af_44100_8b_1ch, af_44100_8b_2ch, af_44100_16b_1ch, af_44100_16b_2ch };
#pragma option pop

#pragma option push -b
enum TCommandType { CMD_SHUTDOWNGRAPH, CMD_STARTPREVIEW, CMD_STOPPREVIEW, CMD_REBUILDDEVICELIST, CMD_RECOMPRESSFILE, 
	CMD_STARTCAPTURE, CMD_STOPCAPTURE, CMD_SETFRAMERATE, CMD_SHOWDIALOG, CMD_SETDVCAPTUREMODE, CMD_SETVIDEOCOMPRESSOR, 
	CMD_SETVIDEODEVICE, CMD_SETAUDIOCOMPRESSOR, CMD_SETAUDIODEVICE, CMD_SETRenderAudio, CMD_SETCOMPRESSIONMODE, 
	CMD_SETCOMPRESSIONTYPE, CMD_SETDVPREVIEWRESOLUTION, CMD_SETDVREDUCEFRAMERATE, CMD_SETFRAMEGRABBERENABLED, 
	CMD_SETFRAMEGRABBERONCAPTURESTREAM, CMD_SETVIDEOSIZE, CMD_SETVIDEOSUBTYPE, CMD_RUNPLAYER, CMD_OPENPLAYER, 
	CMD_PAUSEPLAYER, CMD_FASTFORWARDPLAYER, CMD_FASTREVERSEPLAYER, CMD_CLOSEPLAYER };
#pragma option pop

struct TCommandparam;
typedef TCommandparam *pCommandParam;

struct TCommandparam
{
	TCommandType Command;
	bool pBoolean;
	int pInteger;
	double pDouble;
	__int64 pint64;
	AnsiString pString;
	AnsiString pString2;
	unsigned pDword;
} ;

#pragma option push -b
enum TDeviceChange { dc_none, dc_arrival, dc_removal };
#pragma option pop

typedef DynamicArray<TCapDeviceInfo >  VidGrab__4;

class DELPHICLASS TDevices;
class PASCALIMPLEMENTATION TDevices : public System::TObject 
{
	typedef System::TObject inherited;
	
private:
	AnsiString FDeviceClassName;
	#pragma pack(push, 1)
	GUID FclsidDeviceClass;
	#pragma pack(pop)
	
	DynamicArray<TCapDeviceInfo >  FDevices;
	Classes::TStringList* FList;
	AnsiString FVfwClsid;
	AnsiString FWDMClsid;
	int FEnumeratedCount;
	int FPreviousEnumeratedCount;
	int FDevicesCount;
	TDeviceChange FDeviceChange;
	AnsiString FExclusionList;
	AnsiString __fastcall GetList();
	int __fastcall Count(void);
	void __fastcall ClearDevices(void);
	bool __fastcall Listed(AnsiString MkName);
	
public:
	__fastcall TDevices(AnsiString DeviceClassName, const GUID &clsidDeviceClass, AnsiString ExclusionList
		);
	__fastcall virtual ~TDevices(void);
	__property AnsiString List = {read=GetList};
	void __fastcall RebuildDeviceList(void);
};


class DELPHICLASS TDevicesManager;
class PASCALIMPLEMENTATION TDevicesManager : public System::TObject 
{
	typedef System::TObject inherited;
	
private:
	unsigned FDetectDeviceChange;
	Extctrls::TTimer* FTimer;
	Classes::TList* FVideoGrabberList;
	void __fastcall OnTimerInitialize(System::TObject* Sender);
	void __fastcall OnTimerInitialized(System::TObject* Sender);
	bool __fastcall HookMainWindowMsg(Messages::TMessage &Msg);
	
public:
	__fastcall TDevicesManager(void);
	void __fastcall AddRef(System::TObject* Ref);
	void __fastcall RemoveRef(System::TObject* Ref);
	__fastcall virtual ~TDevicesManager(void);
};


typedef void __fastcall (__closure *TOnErrorLog)(System::TObject* Sender, int ErrorCode, AnsiString 
	ErrorMsg);

typedef void __fastcall (__closure *TOnProcessCompleted)(System::TObject* Sender, bool Success);

typedef void __fastcall (__closure *TOnResizeVideo)(System::TObject* Sender, int FVideoWidth, int FVideoHeight
	);

typedef void __fastcall (__closure *TOnCaptureCompleted)(System::TObject* Sender, AnsiString FileName
	, bool Success);

typedef void __fastcall (__closure *TOnCaptureProgress)(double SampleTime, int DeliveredFrames, int 
	DroppedFrames);

typedef void __fastcall (__closure *TOnCaptureReadyToStart)(System::TObject* Sender, bool &OkToStart
	);

typedef void __fastcall (__closure *TOnPlayerFileNotFound)(System::TObject* Sender, AnsiString FileName
	);

typedef void __fastcall (__closure *TOnPlayerProgress)(double SampleTime);

typedef void __fastcall (__closure *TOnTimeCodeReader)(System::TObject* Sender, int TrackNum, int hh
	, int mm, int ss, int ff);

typedef void __fastcall (__closure *TOnFrameCaptureCompleted)(System::TObject* Sender, void * MemoryBitmap
	, TFrameCaptureDest DestType, AnsiString FileName, bool Success);

class DELPHICLASS TVideoGrabber;
class PASCALIMPLEMENTATION TVideoGrabber : public Extctrls::TCustomPanel 
{
	typedef Extctrls::TCustomPanel inherited;
	
private:
	_di_IAMStreamConfig F_AMAudioStreamConfig;
	_di_IAMStreamConfig F_AMVideoStreamConfig;
	_di_IAMExtTransport F_AMExtTransport;
	_di_IAMTimecodeReader F_AMTimeCodeReader;
	_di_IAMAnalogVideoDecoder F_AMAnalogVideoDecoder;
	_di_IAMCrossbar F_AMCrossbar;
	_di_IAMTVAudio F_AMTVAudio;
	_di_IAMTVTuner F_AMTVTuner;
	_di_IBaseFilter F_AudioCompressor;
	_di_IBaseFilter F_AudioDevice;
	_di_ICaptureGraphBuilder2 F_Builder;
	_di_ICustomBT878 F_CustomBT878;
	_di_ICustomBT146 F_CustomBT146;
	_di_ICustomPV147 F_CustomPV147;
	_di_IAMDroppedFrames F_DroppedFrames;
	_di_IBaseFilter F_FileMux;
	_di_IGraphBuilder F_Graph;
	_di_IMediaControl F_MediaControl;
	_di_IMediaSeeking F_MediaSeeking;
	_di_IMediaEventEx F_MediaEventEx;
	_di_ISampleGrabber F_SampleGrabber;
	_di_IBaseFilter F_RenderedFile;
	_di_IBaseFilter F_VideoCompressor;
	_di_IBaseFilter F_VideoDevice;
	_di_IVideoWindow F_VideoWindow;
	TTVTuner* F_TVTuner;
	bool FAcceptingSamples;
	TAnalogVideoStandard FAnalogVideoStandard;
	bool FAnalogVideoStandardAvailable;
	int FAudioCompressor;
	int FAudioDevice;
	bool FAudioGraphOk;
	TAudioFormat FAudioFormat;
	TAutoFileName FAutoFileName;
	AnsiString FAutoFilePrefix;
	int FAutoSearchInitialDevice;
	bool FAutoSearchNextAvailVideoDevice;
	bool FAutoSize;
	bool FAutoStartPreview;
	bool FAVI1IndexCompatibility;
	bool FBusy;
	Controls::TCursor FBusyCursor;
	bool FCaptureAudio;
	double FCaptureDuration;
	AnsiString FCaptureFileExt;
	AnsiString FCaptureFileName;
	AnsiString FCaptureFrameBmpFileName;
	int FCaptureProgressSkipFrames;
	unsigned FCaptureStartTime;
	bool FChangedAudioDevice;
	bool FChangedVideoDevice;
	bool FComponentInitialized;
	TCompressionMode FCompressionMode;
	TCompressionType FCompressionType;
	TCurrentState FCurrentState;
	TCurrentState FPreviousState;
	bool FDebug;
	bool FDroppedFramesAvailable;
	bool FDVReduceFrameRate;
	TDVCaptureMode FDVCaptureMode;
	TDVResolution FDVPreviewResolution;
	TDVResolution FDVCaptureResolution;
	TFrameCaptureDest FFrameCaptureDest;
	bool FFrameGrabberEnabled;
	bool FFrameGrabberOnCaptureStream;
	double FFrameRate;
	TSampleGrabberCB* FGrabberCallBack;
	bool FGraphCompressorInitialized;
	#pragma pack(push, 1)
	GUID FGraphMediaType;
	#pragma pack(pop)
	
	TFilter_State FGraphState;
	Jpeg::TJPEGPerformance FJPEGPerformance;
	bool FJPEGProgressiveDisplay;
	Jpeg::TJPEGQualityRange FJPEGQuality;
	double FImageRatio;
	__int64 FInitCurrentTime;
	int FInitialDroppedFrames;
	int FInitialDeliveredFrames;
	bool FInResizeWindow;
	bool FInsertVideoCompressorForSettings;
	bool FInTimer;
	bool FIsAnalogVideoIn;
	bool FIsDigitalVideoIn;
	bool FIsVideoDeviceAvailable;
	bool FIsVideoPort;
	bool FMaintainImageRatio;
	bool FMustRecompressCapturedFile;
	bool FMustRemoveVideoCompressor;
	Controls::TCursor FNormalCursor;
	Classes::TList* FOleStrings;
	bool FPlayerAutoStart;
	double FPlayerClipDuration;
	double FPlayerClipFrameRate;
	bool FPlayerDontResetIntermediaryPosition;
	AnsiString FPlayerFileName;
	bool FPlayerIntermediaryPosition;
	double FPlayerRate;
	bool FPlayingAudioClip;
	bool FPreallocCapFileEnabled;
	AnsiString FPreallocCapFileName;
	int FPreallocCapFileSizeInMB;
	bool FPreallocCapRecreate;
	Classes::TList* FQueueCommands;
	bool FRaiseDeviceLost;
	bool FRaiseDiskFull;
	bool FRaiseEvent;
	bool FRaiseGraphError;
	bool FRaisePlayerEndOfStream;
	AnsiString FRealCaptureFileName;
	bool FRefreshPreviewOnParamChange;
	bool FRenderAudio;
	bool FSearchNextDeviceIfNotAvailable;
	int FSequentialFileCount;
	bool FShowStreamConfigDialog;
	AnsiString FStoragePath;
	AnsiString FTemporaryCaptureFileName;
	Extctrls::TTimer* FTimer;
	TMasterStream FUseMasterStream;
	int FVCompKeyFrameRate;
	double FVCompQuality;
	int FVideoCompressor;
	int FVideoDevice;
	int FVideoHeight;
	int FVideoWidth;
	int FVideoPresetHeight;
	int FVideoPresetWidth;
	int FVideoSize;
	int FVideoSubType;
	Classes::TNotifyEvent FOnChangeAudioDevice;
	Classes::TNotifyEvent FOnChangeVideoDevice;
	TOnCaptureProgress FOnCaptureProgress;
	TOnCaptureReadyToStart FOnCaptureReadyToStart;
	TOnCaptureCompleted FOnCaptureCompleted;
	Classes::TNotifyEvent FOnCaptureStarted;
	Classes::TNotifyEvent FOnComponentLoaded;
	TOnProcessCompleted FOnCopyPreallocDataCompleted;
	Classes::TNotifyEvent FOnCopyPreallocDataStarted;
	Classes::TNotifyEvent FOnCreatePreallocFileStarted;
	TOnProcessCompleted FOnCreatePreallocFileCompleted;
	Classes::TNotifyEvent FOnDirectX8Required;
	Classes::TNotifyEvent FOnNewDeviceList;
	Classes::TNotifyEvent FOnDeviceArrival;
	Classes::TNotifyEvent FOnDeviceRemoval;
	Classes::TNotifyEvent FOnDeviceLost;
	Classes::TNotifyEvent FOnDiskFull;
	TOnErrorLog FOnErrorLog;
	TOnFrameCaptureCompleted FOnFrameCaptureCompleted;
	Controls::TKeyPressEvent FOnFullScreenKeyPress;
	Classes::TNotifyEvent FOnNoVideoDevices;
	Classes::TNotifyEvent FOnPlayerEndOfStream;
	TOnPlayerFileNotFound FOnPlayerFileNotFound;
	TOnPlayerProgress FOnPlayerProgress;
	Classes::TNotifyEvent FOnPlayerStarted;
	Classes::TNotifyEvent FOnPreviewStarted;
	TOnProcessCompleted FOnRecompressCompleted;
	Classes::TNotifyEvent FOnRecompressStarted;
	TOnResizeVideo FOnResizeVideo;
	TOnTimeCodeReader FOnTimeCodeReader;
	int FTimerCounter;
	int FTimerDivider;
	Word FSwitchMsgBox;
	int FDividerCount;
	Forms::TForm* FMsgForm;
	Extctrls::TImage* FMsgImage;
	bool __fastcall AddFilter(_di_IBaseFilter &pFilter, AnsiString Name);
	bool __fastcall AddFilter0(const GUID &ClsidFilter, AnsiString FilterName, /* out */ _di_IBaseFilter 
		&Filter);
	bool __fastcall AddFilter1(const GUID &ClsidFilter, AnsiString FilterName, /* out */ _di_IBaseFilter 
		&Filter, /* out */ _di_IPin &FilterIn);
	bool __fastcall AddFilter2(const GUID &ClsidFilter, AnsiString FilterName, /* out */ _di_IBaseFilter 
		&Filter, /* out */ _di_IPin &FilterIn, /* out */ _di_IPin &FilterOut);
	bool __fastcall AddFilter3(const GUID &ClsidFilter, AnsiString FilterName, /* out */ _di_IBaseFilter 
		&Filter, /* out */ _di_IPin &FilterIn, /* out */ _di_IPin &FilterOut1, /* out */ _di_IPin &FilterOut2
		);
	bool __fastcall Allow(SetCurrentState Options);
	void __fastcall AudioStreamConfigSetFormat(void);
	AnsiString __fastcall AutoGenerateFileName(int &Counter, AnsiString Extension);
	bool __fastcall BindAndAddFilter(TDevices* DeviceClass, int &FCurrentDevice, _di_IBaseFilter &DeviceFilter
		);
	bool __fastcall Build_VIDEO_PreviewCaptureGrabber(void);
	bool __fastcall Build_DV_PreviewCaptureGrabber_type1(void);
	bool __fastcall Build_DV_PreviewCaptureGrabber_Type2(void);
	bool __fastcall BuildDownStreams(void);
	bool __fastcall CanCaptureAudio(void);
	bool __fastcall CanCompressAudio(void);
	bool __fastcall CanCompressVideo(void);
	bool __fastcall CanPerformActionOnParameterChange(void);
	bool __fastcall CanRenderAudio(void);
	void __fastcall ChangeBusyStateAndCursor(bool Value);
	bool __fastcall ChangeGraphState(TFilter_State NewState);
	void __fastcall ClearGraph(void);
	void __fastcall ClearStream(_di_IBaseFilter &Filter);
	bool __fastcall Connect(_di_IPin &InPin, _di_IPin &OutPin);
	void __fastcall CopyBitmap(void);
	bool __fastcall CreateBaseGraph(void);
	bool __fastcall CreateFilterGraph(void);
	bool __fastcall CreateInstance(const GUID &clsid, const GUID &iid, /* out */ void *BaseFilter, AnsiString 
		ObjName);
	bool __fastcall CreateSampleGrabber(/* out */ _di_IBaseFilter &GrabFilter, /* out */ _di_IPin &GrabIn
		, /* out */ _di_IPin &GrabOut);
	bool __fastcall GenerateCaptureFileName(void);
	bool __fastcall GetMediaFrameRate(AnsiString FileName, double &FrameRate);
	pCommandParam __fastcall GetQueueCommand(void);
	void __fastcall PurgeQueueCommand(pCommandParam p);
	void __fastcall DoCommand(void);
	void __fastcall DoClosePlayer(void);
	void __fastcall DoFastForwardPlayer(int Percent);
	void __fastcall DoFastReversePlayer(int Percent);
	void __fastcall DoOpenPlayer(void);
	void __fastcall DoPausePlayer(void);
	void __fastcall DoRunPlayer(void);
	void __fastcall DoRecompressFile(AnsiString SourceFile, AnsiString DestFile);
	void __fastcall DoStopPreview(void);
	void __fastcall DoStartPreview(void);
	void __fastcall DoRebuildDeviceList(void);
	void __fastcall DoSetFrameRate(double Value);
	void __fastcall DoSetAudioDevice(int Value);
	void __fastcall DoSetAudioCompressor(int Value);
	void __fastcall DoSetRenderAudio(bool Value);
	void __fastcall DoSetCompressionMode(TCompressionMode Value);
	void __fastcall DoSetCompressionType(TCompressionType Value);
	void __fastcall DoSetDVCaptureMode(TDVCaptureMode Value);
	void __fastcall DoSetFrameGrabberEnabled(bool Value);
	void __fastcall DoSetFrameGrabberOnCaptureStream(bool Value);
	void __fastcall DoSetVideoCompressor(int Value);
	void __fastcall DoSetVideoDevice(int Value);
	void __fastcall DoStopCapture(void);
	void __fastcall DoSetDVPreviewResolution(TDVResolution Value);
	void __fastcall DoSetDVReduceFrameRate(bool Value);
	void __fastcall DoSetVideoSize(int Value);
	void __fastcall DoSetVideoSubType(int Value);
	bool __fastcall DoShowDialog(TDialog Dialog, bool TestOnly);
	void __fastcall DoStartCapture(void);
	void __fastcall DoShutDownGraph(void);
	TAnalogVideoStandard __fastcall GetAnalogVideoStandard(void);
	AnsiString __fastcall GetAnalogVideoStandards();
	AnsiString __fastcall GetAudioCompressors();
	AnsiString __fastcall GetAudioDevices();
	AnsiString __fastcall GetAudioFormats();
	int __fastcall GetBurstCount(void);
	int __fastcall GetBurstInterval(void);
	bool __fastcall GetBurstMode(void);
	AnsiString __fastcall GetVideoCompressors();
	AnsiString __fastcall GetVideoDevices();
	AnsiString __fastcall GetVideoSizes();
	AnsiString __fastcall GetVideoSubTypes();
	bool __fastcall InsertSampleGrabberGetConnectedMediaType(_di_IBaseFilter UseThisFilter, bool UseSmartTee
		);
	bool __fastcall Log(bool Test, int Level, int ErrorCode, AnsiString Msg)/* overload */;
	bool __fastcall Log(HRESULT Hr, int Level, int ErrorCode, AnsiString Msg)/* overload */;
	bool __fastcall NotBusyOrNotInitialized(void);
	void * __fastcall OLEs(AnsiString s);
	void __fastcall OnTimerInitialize(System::TObject* Sender);
	void __fastcall OnTimerInitialized(System::TObject* Sender);
	void __fastcall QueueCommand(TCommandType Command)/* overload */;
	void __fastcall QueueCommand(TCommandType Command, bool Param)/* overload */;
	void __fastcall QueueCommand(TCommandType Command, int Param)/* overload */;
	void __fastcall QueueCommand(TCommandType Command, int Param, bool Param2)/* overload */;
	void __fastcall QueueCommand(TCommandType Command, double Param)/* overload */;
	void __fastcall QueueCommand(TCommandType Command, __int64 Param)/* overload */;
	void __fastcall QueueCommand(TCommandType Command, unsigned Param)/* overload */;
	void __fastcall QueueCommand(TCommandType Command, AnsiString Param)/* overload */;
	void __fastcall QueueCommand(TCommandType Command, AnsiString Param, AnsiString Param2)/* overload */
		;
	bool __fastcall RecompressOrRecopyFile(AnsiString SourceFile, AnsiString DestFile, bool MustUseCompressors
		)/* overload */;
	void __fastcall RecompressFileCapturedIfNecessary(void);
	void __fastcall ReduceDVFrameRate(_di_IBaseFilter &DVSplitter);
	void __fastcall RemoveAR(void);
	void __fastcall RemoveAVIMux(void);
	bool __fastcall RenderVideoStream(void);
	void __fastcall ResizeVideoWindow(void);
	void __fastcall RestartGraph(void);
	bool __fastcall RunGraph(bool &CanStartCapture);
	bool __fastcall QueryControlGraph(void);
	void __fastcall SampleGrabberForceMediaType(_di_ISampleGrabber &SampleGrabber);
	void __fastcall SampleGrabberGetConnectedMediaType(_di_ISampleGrabber &SampleGrabber);
	void __fastcall SearchMaxSequentialFile(int &Counter, AnsiString Extension);
	void __fastcall Set_AutoSize(bool Value);
	void __fastcall SetAnalogVideoStandard(TAnalogVideoStandard Value);
	void __fastcall SetAudioCompressor(int Value);
	void __fastcall SetAudioDevice(int Value);
	void __fastcall SetRenderAudio(bool Value);
	void __fastcall SetAviOptions(_di_IBaseFilter Mux);
	void __fastcall SetBurstCount(int Value);
	void __fastcall SetBurstInterval(int Value);
	void __fastcall SetBurstMode(bool Value);
	void __fastcall SetCompressionMode(TCompressionMode Value);
	void __fastcall SetCompressionType(TCompressionType Value);
	void __fastcall SetDVReduceFrameRate(bool Value);
	void __fastcall SetDvCaptureMode(TDVCaptureMode Value);
	void __fastcall SetDVCaptureResolution(TDVResolution Value);
	void __fastcall SetDVPreviewResolution(TDVResolution Value);
	void __fastcall SetFrameGrabberEnabled(bool Value);
	void __fastcall SetFrameGrabberOnCaptureStream(bool Value);
	void __fastcall SetFrameRate(double Value);
	void __fastcall SetPlayerRate(double Value);
	void __fastcall SetVCompQuality(double Value);
	void __fastcall SetVideoCompressor(int Value);
	void __fastcall SetVideoDevice(int Value);
	void __fastcall SetVideoSize(int Value);
	void __fastcall SetVideoSubType(int Value);
	bool __fastcall TestAudioGraph(void);
	void __fastcall VideoStreamConfigGetCapabilities(void);
	void __fastcall VideoStreamConfigGetFrameRate(void);
	void __fastcall VideoStreamConfigGetFormat(void);
	void __fastcall VideoStreamConfigSetFrameRate(void);
	void __fastcall VideoStreamConfigSetFormat(void);
	void __fastcall VideoStreamConfigFindFormat(/* out */ PAM_Media_Type &pmt);
	bool __fastcall WDMDialog(_di_IUnknown UnkFilter, bool Display);
	MESSAGE void __fastcall CaptureBitmapNotify(Messages::TMessage &msg);
	MESSAGE void __fastcall FullScreenNotify(Messages::TMessage &msg);
	MESSAGE void __fastcall GraphNotify(Messages::TMessage &msg);
	MESSAGE void __fastcall SetSize(Messages::TMessage &msg);
	
public:
	__fastcall virtual TVideoGrabber(Classes::TComponent* Aowner);
	__fastcall virtual ~TVideoGrabber(void);
	int __fastcall AudioCompressorsCount(void);
	AnsiString __fastcall AudioCompressorName(int Index);
	int __fastcall AudioDevicesCount(void);
	AnsiString __fastcall AudioDeviceName(int Index);
	void __fastcall CaptureFrameTo(TFrameCaptureDest Dest, AnsiString FileName);
	void __fastcall ClosePlayer(void);
	void __fastcall FastForwardPlayer(int Percent);
	void __fastcall FastReversePlayer(int Percent);
	void __fastcall FullScreenMode(void);
	void __fastcall OpenPlayer(void);
	void __fastcall PausePlayer(void);
	void __fastcall RebuildDeviceList(void);
	void __fastcall RecompressFile(AnsiString SourceFile, AnsiString DestFile);
	void __fastcall RunPlayer(void);
	bool __fastcall SendDVCommand(TDVCommand DvCommand);
	bool __fastcall SetPlayerPosition(double Value);
	void __fastcall ShowDialog(TDialog Dialog);
	void __fastcall ShowFilterDialog(_di_IUnknown Filter);
	void __fastcall StartCapture(void);
	void __fastcall StopCapture(void);
	void __fastcall StartPreview(void);
	void __fastcall StopPreview(void);
	void __fastcall ShutdownGraph(void);
	int __fastcall VideoCompressorsCount(void);
	AnsiString __fastcall VideoCompressorName(int Index);
	int __fastcall VideoDevicesCount(void);
	AnsiString __fastcall VideoDeviceName(int Index);
	__property bool AnalogVideoStandardAvailable = {read=FAnalogVideoStandardAvailable, nodefault};
	__property AnsiString AnalogVideoStandards = {read=GetAnalogVideoStandards};
	__property AnsiString AudioCompressors = {read=GetAudioCompressors};
	__property AnsiString AudioDevices = {read=GetAudioDevices};
	__property AnsiString AudioFormats = {read=GetAudioFormats};
	__property bool Busy = {read=FBusy, nodefault};
	__property double CaptureDuration = {read=FCaptureDuration};
	__property TCurrentState CurrentState = {read=FCurrentState, nodefault};
	__property bool Debug = {read=FDebug, write=FDebug, nodefault};
	__property double ImageRatio = {read=FImageRatio};
	__property bool IsAnalogVideoIn = {read=FIsAnalogVideoIn, nodefault};
	bool __fastcall IsDialogAvailable(TDialog Dialog);
	__property bool IsDigitalVideoIn = {read=FIsDigitalVideoIn, nodefault};
	__property AnsiString LastCaptureFileName = {read=FRealCaptureFileName};
	__property double PlayerClipDuration = {read=FPlayerClipDuration};
	__property TTVTuner* TVTuner = {read=F_TVTuner};
	__property AnsiString VideoCompressors = {read=GetVideoCompressors};
	__property AnsiString VideoDevices = {read=GetVideoDevices};
	__property int VideoHeight = {read=FVideoHeight, nodefault};
	__property int VideoWidth = {read=FVideoWidth, nodefault};
	__property AnsiString VideoSizes = {read=GetVideoSizes};
	__property AnsiString VideoSubTypes = {read=GetVideoSubTypes};
	bool __fastcall SetPVProperty(int PropertyId, int Value)/* overload */;
	int __fastcall GetPVProperty(int PropertyId)/* overload */;
	bool __fastcall SetPVProperty(int PortNum, int PropertyId, int Value)/* overload */;
	int __fastcall GetPVProperty(int PortNum, int PropertyId)/* overload */;
	bool __fastcall SetBT878(int PortNum, int PropertyId, int Value);
	int __fastcall GetBT878(int PortNum, int PropertyId);
	int __fastcall GetPVCardNumber(void);
	int __fastcall GetPVProtectId(void);
	bool __fastcall SetPVVdoSource(int VideoSrc);
	
__published:
	__property Alignment ;
	__property BorderWidth ;
	__property BorderStyle ;
	__property BevelInner ;
	__property BevelOuter ;
	__property BevelWidth ;
	__property Color ;
	__property ParentColor ;
	__property Visible ;
	__property int AudioCompressor = {read=FAudioCompressor, write=SetAudioCompressor, nodefault};
	__property int AudioDevice = {read=FAudioDevice, write=SetAudioDevice, nodefault};
	__property TAudioFormat AudioFormat = {read=FAudioFormat, write=FAudioFormat, nodefault};
	__property TAutoFileName AutoFileName = {read=FAutoFileName, write=FAutoFileName, nodefault};
	__property AnsiString AutoFilePrefix = {read=FAutoFilePrefix, write=FAutoFilePrefix};
	__property bool AutoSearchNextAvailVideoDevice = {read=FAutoSearchNextAvailVideoDevice, write=FAutoSearchNextAvailVideoDevice
		, nodefault};
	__property bool RenderAudio = {read=FRenderAudio, write=SetRenderAudio, nodefault};
	__property bool AutoSize = {read=FAutoSize, write=Set_AutoSize, nodefault};
	__property bool AutoStartPreview = {read=FAutoStartPreview, write=FAutoStartPreview, nodefault};
	__property bool AVI1IndexCompatibility = {read=FAVI1IndexCompatibility, write=FAVI1IndexCompatibility
		, nodefault};
	__property int BurstCount = {read=GetBurstCount, write=SetBurstCount, nodefault};
	__property int BurstInterval = {read=GetBurstInterval, write=SetBurstInterval, nodefault};
	__property bool BurstMode = {read=GetBurstMode, write=SetBurstMode, nodefault};
	__property Controls::TCursor BusyCursor = {read=FBusyCursor, write=FBusyCursor, nodefault};
	__property bool CaptureAudio = {read=FCaptureAudio, write=FCaptureAudio, nodefault};
	__property AnsiString CaptureFileExt = {read=FCaptureFileExt, write=FCaptureFileExt};
	__property AnsiString CaptureFileName = {read=FCaptureFileName, write=FCaptureFileName};
	__property TCompressionMode CompressionMode = {read=FCompressionMode, write=SetCompressionMode, nodefault
		};
	__property TCompressionType CompressionType = {read=FCompressionType, write=SetCompressionType, nodefault
		};
	__property TDVCaptureMode DVCaptureMode = {read=FDVCaptureMode, write=SetDvCaptureMode, nodefault};
		
	__property bool DVReduceFrameRate = {read=FDVReduceFrameRate, write=SetDVReduceFrameRate, nodefault
		};
	__property TDVResolution DVPreviewResolution = {read=FDVPreviewResolution, write=SetDVPreviewResolution
		, nodefault};
	__property TDVResolution DVCaptureResolution = {read=FDVCaptureResolution, write=SetDVCaptureResolution
		, nodefault};
	__property bool FrameGrabberEnabled = {read=FFrameGrabberEnabled, write=SetFrameGrabberEnabled, nodefault
		};
	__property bool FrameGrabberOnCaptureStream = {read=FFrameGrabberOnCaptureStream, write=SetFrameGrabberOnCaptureStream
		, nodefault};
	__property double FrameRate = {read=FFrameRate, write=SetFrameRate};
	__property TFilter_State GraphState = {read=FGraphState, nodefault};
	__property Jpeg::TJPEGPerformance JPEGPerformance = {read=FJPEGPerformance, write=FJPEGPerformance, 
		nodefault};
	__property bool JPEGProgressiveDisplay = {read=FJPEGProgressiveDisplay, write=FJPEGProgressiveDisplay
		, nodefault};
	__property Jpeg::TJPEGQualityRange JPEGQuality = {read=FJPEGQuality, write=FJPEGQuality, nodefault}
		;
	__property bool MaintainImageRatio = {read=FMaintainImageRatio, write=FMaintainImageRatio, nodefault
		};
	__property Controls::TCursor NormalCursor = {read=FNormalCursor, write=FNormalCursor, nodefault};
	__property bool PlayerAutoStart = {read=FPlayerAutoStart, write=FPlayerAutoStart, nodefault};
	__property double PlayerClipFrameRate = {read=FPlayerClipFrameRate};
	__property AnsiString PlayerFileName = {read=FPlayerFileName, write=FPlayerFileName};
	__property double PlayerRate = {read=FPlayerRate, write=SetPlayerRate};
	__property bool PreallocCapFileEnabled = {read=FPreallocCapFileEnabled, write=FPreallocCapFileEnabled
		, nodefault};
	__property AnsiString PreallocCapFileName = {read=FPreallocCapFileName, write=FPreallocCapFileName}
		;
	__property int PreallocCapFileSizeInMB = {read=FPreallocCapFileSizeInMB, write=FPreallocCapFileSizeInMB
		, nodefault};
	__property bool PreallocCapRecreate = {read=FPreallocCapRecreate, write=FPreallocCapRecreate, nodefault
		};
	__property bool RefreshPreviewOnParamChange = {read=FRefreshPreviewOnParamChange, write=FRefreshPreviewOnParamChange
		, nodefault};
	__property bool SearchNextDeviceIfNotAvailable = {read=FSearchNextDeviceIfNotAvailable, write=FSearchNextDeviceIfNotAvailable
		, nodefault};
	__property AnsiString StoragePath = {read=FStoragePath, write=FStoragePath, stored=false};
	__property int VCompKeyFrameRate = {read=FVCompKeyFrameRate, write=FVCompKeyFrameRate, nodefault};
	__property double VCompQuality = {read=FVCompQuality, write=SetVCompQuality};
	__property int VideoCompressor = {read=FVideoCompressor, write=SetVideoCompressor, nodefault};
	__property int VideoDevice = {read=FVideoDevice, write=SetVideoDevice, nodefault};
	__property int VideoSize = {read=FVideoSize, write=SetVideoSize, nodefault};
	__property TAnalogVideoStandard AnalogVideoStandard = {read=GetAnalogVideoStandard, write=SetAnalogVideoStandard
		, nodefault};
	__property int VideoSubType = {read=FVideoSubType, write=SetVideoSubType, nodefault};
	__property TOnCaptureProgress OnCaptureProgress = {read=FOnCaptureProgress, write=FOnCaptureProgress
		};
	__property TOnCaptureReadyToStart OnCaptureReadyToStart = {read=FOnCaptureReadyToStart, write=FOnCaptureReadyToStart
		};
	__property TOnCaptureCompleted OnCaptureCompleted = {read=FOnCaptureCompleted, write=FOnCaptureCompleted
		};
	__property Classes::TNotifyEvent OnCaptureStarted = {read=FOnCaptureStarted, write=FOnCaptureStarted
		};
	__property Classes::TNotifyEvent OnChangeAudioDevice = {read=FOnChangeAudioDevice, write=FOnChangeAudioDevice
		};
	__property Classes::TNotifyEvent OnChangeVideoDevice = {read=FOnChangeVideoDevice, write=FOnChangeVideoDevice
		};
	__property Classes::TNotifyEvent OnComponentLoaded = {read=FOnComponentLoaded, write=FOnComponentLoaded
		};
	__property TOnProcessCompleted OnCopyPreallocDataCompleted = {read=FOnCopyPreallocDataCompleted, write=
		FOnCopyPreallocDataCompleted};
	__property Classes::TNotifyEvent OnCopyPreallocDataStarted = {read=FOnCopyPreallocDataStarted, write=
		FOnCopyPreallocDataStarted};
	__property TOnProcessCompleted OnCreatePreallocFileCompleted = {read=FOnCreatePreallocFileCompleted
		, write=FOnCreatePreallocFileCompleted};
	__property Classes::TNotifyEvent OnCreatePreallocFileStarted = {read=FOnCreatePreallocFileStarted, 
		write=FOnCreatePreallocFileStarted};
	__property Classes::TNotifyEvent OnDeviceArrival = {read=FOnDeviceArrival, write=FOnDeviceArrival};
		
	__property Classes::TNotifyEvent OnDeviceRemoval = {read=FOnDeviceRemoval, write=FOnDeviceRemoval};
		
	__property Classes::TNotifyEvent OnDeviceLost = {read=FOnDeviceLost, write=FOnDeviceLost};
	__property Classes::TNotifyEvent OnDirectX8Required = {read=FOnDirectX8Required, write=FOnDirectX8Required
		};
	__property Classes::TNotifyEvent OnDiskFull = {read=FOnDiskFull, write=FOnDiskFull};
	__property TOnErrorLog OnErrorLog = {read=FOnErrorLog, write=FOnErrorLog};
	__property TOnFrameCaptureCompleted OnFrameCaptureCompleted = {read=FOnFrameCaptureCompleted, write=
		FOnFrameCaptureCompleted};
	__property Controls::TKeyPressEvent OnFullScreenKeyPress = {read=FOnFullScreenKeyPress, write=FOnFullScreenKeyPress
		};
	__property Classes::TNotifyEvent OnNewDeviceList = {read=FOnNewDeviceList, write=FOnNewDeviceList};
		
	__property Classes::TNotifyEvent OnNoVideoDevices = {read=FOnNoVideoDevices, write=FOnNoVideoDevices
		};
	__property Classes::TNotifyEvent OnPlayerStarted = {read=FOnPlayerStarted, write=FOnPlayerStarted};
		
	__property Classes::TNotifyEvent OnPlayerEndOfStream = {read=FOnPlayerEndOfStream, write=FOnPlayerEndOfStream
		};
	__property TOnPlayerFileNotFound OnPlayerFileNotFound = {read=FOnPlayerFileNotFound, write=FOnPlayerFileNotFound
		};
	__property TOnPlayerProgress OnPlayerProgress = {read=FOnPlayerProgress, write=FOnPlayerProgress};
	__property Classes::TNotifyEvent OnPreviewStarted = {read=FOnPreviewStarted, write=FOnPreviewStarted
		};
	__property Classes::TNotifyEvent OnRecompressStarted = {read=FOnRecompressStarted, write=FOnRecompressStarted
		};
	__property TOnProcessCompleted OnRecompressCompleted = {read=FOnRecompressCompleted, write=FOnRecompressCompleted
		};
	__property TOnResizeVideo OnResizeVideo = {read=FOnResizeVideo, write=FOnResizeVideo};
	__property TOnTimeCodeReader OnTimeCodeReader = {read=FOnTimeCodeReader, write=FOnTimeCodeReader};
public:
		
	#pragma option push -w-inl
	/* TWinControl.CreateParented */ inline __fastcall TVideoGrabber(HWND ParentWindow) : Extctrls::TCustomPanel(
		ParentWindow) { }
	#pragma option pop
	
};


//-- var, const, procedure ---------------------------------------------------
static const int DV_DVSD_NTSC_FRAMESIZE = 0x1d4c0;
static const int DV_DVSD_PAL_FRAMESIZE = 0x23280;
static const Word DV_SMCHN = 0xe000;
static const Word DV_AUDIOMODE = 0xf00;
static const int DV_AUDIOSMP = 0x38000000;
static const int DV_AUDIOQU = 0x7000000;
static const int DV_NTSCPAL = 0x200000;
static const int DV_STYPE = 0x1f0000;
static const Shortint DV_NTSC = 0x0;
static const Shortint DV_PAL = 0x1;
static const Shortint DV_SD = 0x0;
static const Shortint DV_HD = 0x1;
static const Shortint DV_SL = 0x2;
static const Shortint DV_CAP_AUD16Bits = 0x0;
static const Shortint DV_CAP_AUD12Bits = 0x1;
static const Shortint SIZE_DVINFO = 0x20;
static const Shortint ED_TOP = 0x1;
static const Shortint ED_MIDDLE = 0x2;
static const Shortint ED_BOTTOM = 0x4;
static const Word ED_LEFT = 0x100;
static const Word ED_CENTER = 0x200;
static const Word ED_RIGHT = 0x400;
static const Word ED_BASE = 0x1000;
static const Word ED_DEVCAP_CAN_RECORD = 0x1001;
static const Word ED_DEVCAP_CAN_RECORD_STROBE = 0x1002;
static const Word ED_DEVCAP_HAS_AUDIO = 0x1003;
static const Word ED_DEVCAP_HAS_VIDEO = 0x1004;
static const Word ED_DEVCAP_USES_FILES = 0x1005;
static const Word ED_DEVCAP_CAN_SAVE = 0x1006;
static const Word ED_DEVCAP_DEVICE_TYPE = 0x1007;
static const Word ED_DEVTYPE_VCR = 0x1008;
static const Word ED_DEVTYPE_LASERDISK = 0x1009;
static const Word ED_DEVTYPE_ATR = 0x100a;
static const Word ED_DEVTYPE_DDR = 0x100b;
static const Word ED_DEVTYPE_ROUTER = 0x100c;
static const Word ED_DEVTYPE_KEYER = 0x100d;
static const Word ED_DEVTYPE_MIXER_VIDEO = 0x100e;
static const Word ED_DEVTYPE_DVE = 0x100f;
static const Word ED_DEVTYPE_WIPEGEN = 0x1010;
static const Word ED_DEVTYPE_MIXER_AUDIO = 0x1011;
static const Word ED_DEVTYPE_CG = 0x1012;
static const Word ED_DEVTYPE_TBC = 0x1013;
static const Word ED_DEVTYPE_TCG = 0x1014;
static const Word ED_DEVTYPE_GPI = 0x1015;
static const Word ED_DEVTYPE_JOYSTICK = 0x1016;
static const Word ED_DEVTYPE_KEYBOARD = 0x1017;
static const Word ED_DEVCAP_EXTERNAL_DEVICE_ID = 0x1018;
static const Word ED_DEVCAP_TIMECODE_READ = 0x1019;
static const Word ED_DEVCAP_TIMECODE_WRITE = 0x101a;
static const Word ED_DEVCAP_CTLTRK_READ = 0x101b;
static const Word ED_DEVCAP_INDEX_READ = 0x101c;
static const Word ED_DEVCAP_PREROLL = 0x101d;
static const Word ED_DEVCAP_POSTROLL = 0x101e;
static const Word ED_DEVCAP_SYNC_ACCURACY = 0x101f;
static const Word ED_SYNCACC_PRECISE = 0x1020;
static const Word ED_SYNCACC_FRAME = 0x1021;
static const Word ED_SYNCACC_ROUGH = 0x1022;
static const Word ED_DEVCAP_NORMAL_RATE = 0x1023;
static const Word ED_RATE_24 = 0x1024;
static const Word ED_RATE_25 = 0x1025;
static const Word ED_RATE_2997 = 0x1026;
static const Word ED_RATE_30 = 0x1027;
static const Word ED_DEVCAP_CAN_PREVIEW = 0x1028;
static const Word ED_DEVCAP_CAN_MONITOR_SOURCES = 0x1029;
static const Word ED_DEVCAP_CAN_TEST = 0x102a;
static const Word ED_DEVCAP_VIDEO_INPUTS = 0x102b;
static const Word ED_DEVCAP_AUDIO_INPUTS = 0x102c;
static const Word ED_DEVCAP_NEEDS_CALIBRATING = 0x102d;
static const Word ED_DEVCAP_SEEK_TYPE = 0x102e;
static const Word ED_SEEK_PERFECT = 0x102f;
static const Word ED_SEEK_FAST = 0x1030;
static const Word ED_SEEK_SLOW = 0x1031;
static const Word ED_POWER_ON = 0x1032;
static const Word ED_POWER_OFF = 0x1033;
static const Word ED_POWER_STANDBY = 0x1034;
static const Word ED_ACTIVE = 0x1035;
static const Word ED_INACTIVE = 0x1036;
static const Word ED_ALL = 0x1037;
static const Word ED_TEST = 0x1038;
static const Word ED_TRANSCAP_CAN_EJECT = 0x1064;
static const Word ED_TRANSCAP_CAN_BUMP_PLAY = 0x1065;
static const Word ED_TRANSCAP_CAN_PLAY_BACKWARDS = 0x1066;
static const Word ED_TRANSCAP_CAN_SET_EE = 0x1067;
static const Word ED_TRANSCAP_CAN_SET_PB = 0x1068;
static const Word ED_TRANSCAP_CAN_DELAY_VIDEO_IN = 0x1069;
static const Word ED_TRANSCAP_CAN_DELAY_VIDEO_OUT = 0x106a;
static const Word ED_TRANSCAP_CAN_DELAY_AUDIO_IN = 0x106b;
static const Word ED_TRANSCAP_CAN_DELAY_AUDIO_OUT = 0x106c;
static const Word ED_TRANSCAP_FWD_VARIABLE_MAX = 0x106d;
static const Word ED_TRANSCAP_REV_VARIABLE_MAX = 0x106e;
static const Word ED_TRANSCAP_NUM_AUDIO_TRACKS = 0x106f;
static const Word ED_TRANSCAP_LTC_TRACK = 0x1070;
static const Word ED_TRANSCAP_NEEDS_TBC = 0x1071;
static const Word ED_TRANSCAP_NEEDS_CUEING = 0x1072;
static const Word ED_TRANSCAP_CAN_INSERT = 0x1073;
static const Word ED_TRANSCAP_CAN_ASSEMBLE = 0x1074;
static const Word ED_TRANSCAP_FIELD_STEP = 0x1075;
static const Word ED_TRANSCAP_CLOCK_INC_RATE = 0x1076;
static const Word ED_TRANSCAP_CAN_DETECT_LENGTH = 0x1077;
static const Word ED_TRANSCAP_CAN_FREEZE = 0x1078;
static const Word ED_TRANSCAP_HAS_TUNER = 0x1079;
static const Word ED_TRANSCAP_HAS_TIMER = 0x107a;
static const Word ED_TRANSCAP_HAS_CLOCK = 0x107b;
static const Word ED_MEDIA_SPIN_UP = 0x1082;
static const Word ED_MEDIA_SPIN_DOWN = 0x1083;
static const Word ED_MEDIA_UNLOAD = 0x1084;
static const Word ED_MODE_PLAY = 0x10c8;
static const Word ED_MODE_STOP = 0x10c9;
static const Word ED_MODE_FREEZE = 0x10ca;
static const Word ED_MODE_THAW = 0x10cb;
static const Word ED_MODE_FF = 0x10cc;
static const Word ED_MODE_REW = 0x10cd;
static const Word ED_MODE_RECORD = 0x10ce;
static const Word ED_MODE_RECORD_STROBE = 0x10cf;
static const Word ED_MODE_RECORD_FREEZE = 0x1328;
static const Word ED_MODE_STEP = 0x10d0;
static const Word ED_MODE_STEP_FWD = 0x10d0;
static const Word ED_MODE_STEP_REV = 0x1329;
static const Word ED_MODE_SHUTTLE = 0x10d1;
static const Word ED_MODE_EDIT_CUE = 0x10d2;
static const Word ED_MODE_VAR_SPEED = 0x10d3;
static const Word ED_MODE_PERFORM = 0x10d4;
static const Word ED_MODE_LINK_ON = 0x1118;
static const Word ED_MODE_LINK_OFF = 0x1119;
static const Word ED_TCG_TIMECODE_TYPE = 0x1190;
static const Word ED_TCG_SMPTE_LTC = 0x1191;
static const Word ED_TCG_SMPTE_VITC = 0x1192;
static const Word ED_TCG_MIDI_QF = 0x1193;
static const Word ED_TCG_MIDI_FULL = 0x1194;
static const Word ED_TCG_FRAMERATE = 0x1195;
static const Word ED_FORMAT_SMPTE_30 = 0x1196;
static const Word ED_FORMAT_SMPTE_30DROP = 0x1197;
static const Word ED_FORMAT_SMPTE_25 = 0x1198;
static const Word ED_FORMAT_SMPTE_24 = 0x1199;
static const Word ED_TCG_SYNC_SOURCE = 0x119a;
static const Word ED_TCG_VIDEO = 0x119b;
static const Word ED_TCG_READER = 0x119c;
static const Word ED_TCG_FREE = 0x119d;
static const Word ED_TCG_REFERENCE_SOURCE = 0x119e;
static const Word ED_DUMMY_1 = 0x119f;
static const Word ED_TCR_SOURCE = 0x11a0;
static const Word ED_TCR_LTC = 0x11a1;
static const Word ED_TCR_VITC = 0x11a2;
static const Word ED_TCR_CT = 0x11a3;
static const Word ED_TCR_FTC = 0x11a4;
static const Word ED_TCR_LAST_VALUE = 0x11a5;
static const Word ED_TCD_SOURCE = 0x11a6;
static const Word ED_TCR = 0x11a7;
static const Word ED_TCG = 0x11a8;
static const Word ED_TCD_SIZE = 0x11a9;
static const Word ED_SMALL = 0x11aa;
static const Word ED_MED = 0x11ab;
static const Word ED_LARGE = 0x11ac;
static const Word ED_TCD_POSITION = 0x11ad;
static const Word ED_TCD_INTENSITY = 0x11b4;
static const Word ED_HIGH = 0x11b5;
static const Word ED_LOW = 0x11b6;
static const Word ED_TCD_TRANSPARENCY = 0x11b7;
static const Word ED_TCD_INVERT = 0x11b8;
static const Word ED_MODE = 0x11f4;
static const Word ED_ERROR = 0x11f5;
static const Word ED_LOCAL = 0x11f6;
static const Word ED_RECORD_INHIBIT = 0x11f7;
static const Word ED_SERVO_LOCK = 0x11f8;
static const Word ED_MEDIA_PRESENT = 0x11f9;
static const Word ED_MEDIA_LENGTH = 0x11fa;
static const Word ED_MEDIA_SIZE = 0x11fb;
static const Word ED_MEDIA_TRACK_COUNT = 0x11fc;
static const Word ED_MEDIA_TRACK_LENGTH = 0x11fd;
static const Word ED_MEDIA_SIDE = 0x11fe;
static const Word ED_MEDIA_TYPE = 0x11ff;
static const Word ED_MEDIA_VHS = 0x1200;
static const Word ED_MEDIA_SVHS = 0x1201;
static const Word ED_MEDIA_HI8 = 0x1202;
static const Word ED_MEDIA_UMATIC = 0x1203;
static const Word ED_MEDIA_DVC = 0x1204;
static const Word ED_MEDIA_1_INCH = 0x1205;
static const Word ED_MEDIA_D1 = 0x1206;
static const Word ED_MEDIA_D2 = 0x1207;
static const Word ED_MEDIA_D3 = 0x1208;
static const Word ED_MEDIA_D5 = 0x1209;
static const Word ED_MEDIA_DBETA = 0x120a;
static const Word ED_MEDIA_BETA = 0x120b;
static const Word ED_MEDIA_8MM = 0x120c;
static const Word ED_MEDIA_DDR = 0x120d;
static const Word ED_MEDIA_SX = 0x132d;
static const Word ED_MEDIA_OTHER = 0x120e;
static const Word ED_MEDIA_CLV = 0x120f;
static const Word ED_MEDIA_CAV = 0x1210;
static const Word ED_MEDIA_POSITION = 0x1211;
static const Word ED_LINK_MODE = 0x1212;
static const Word ED_TRANSBASIC_TIME_FORMAT = 0x121c;
static const Word ED_FORMAT_MILLISECONDS = 0x121d;
static const Word ED_FORMAT_FRAMES = 0x121e;
static const Word ED_FORMAT_REFERENCE_TIME = 0x121f;
static const Word ED_DUMMY_2 = 0x1220;
static const Word ED_DUMMY_3 = 0x1221;
static const Word ED_DUMMY_4 = 0x1222;
static const Word ED_FORMAT_HMSF = 0x1223;
static const Word ED_FORMAT_TMSF = 0x1224;
static const Word ED_TRANSBASIC_TIME_REFERENCE = 0x1225;
static const Word ED_TIMEREF_TIMECODE = 0x1226;
static const Word ED_TIMEREF_CONTROL_TRACK = 0x1227;
static const Word ED_TIMEREF_INDEX = 0x1228;
static const Word ED_TRANSBASIC_SUPERIMPOSE = 0x1229;
static const Word ED_TRANSBASIC_END_STOP_ACTION = 0x122a;
static const Word ED_TRANSBASIC_RECORD_FORMAT = 0x122b;
static const Word ED_RECORD_FORMAT_SP = 0x122c;
static const Word ED_RECORD_FORMAT_LP = 0x122d;
static const Word ED_RECORD_FORMAT_EP = 0x122e;
static const Word ED_TRANSBASIC_STEP_COUNT = 0x122f;
static const Word ED_TRANSBASIC_STEP_UNIT = 0x1230;
static const Word ED_STEP_FIELD = 0x1231;
static const Word ED_STEP_FRAME = 0x1232;
static const Word ED_STEP_3_2 = 0x1233;
static const Word ED_TRANSBASIC_PREROLL = 0x1234;
static const Word ED_TRANSBASIC_RECPREROLL = 0x1235;
static const Word ED_TRANSBASIC_POSTROLL = 0x1236;
static const Word ED_TRANSBASIC_EDIT_DELAY = 0x1237;
static const Word ED_TRANSBASIC_PLAYTC_DELAY = 0x1238;
static const Word ED_TRANSBASIC_RECTC_DELAY = 0x1239;
static const Word ED_TRANSBASIC_EDIT_FIELD = 0x123a;
static const Word ED_TRANSBASIC_FRAME_SERVO = 0x123b;
static const Word ED_TRANSBASIC_CF_SERVO = 0x123c;
static const Word ED_TRANSBASIC_SERVO_REF = 0x123d;
static const Word ED_REF_EXTERNAL = 0x123e;
static const Word ED_REF_INPUT = 0x123f;
static const Word ED_REF_INTERNAL = 0x1240;
static const Word ED_REF_AUTO = 0x1241;
static const Word ED_TRANSBASIC_WARN_GL = 0x1242;
static const Word ED_TRANSBASIC_SET_TRACKING = 0x1243;
static const Word ED_TRACKING_PLUS = 0x1244;
static const Word ED_TRACKING_MINUS = 0x1245;
static const Word ED_TRACKING_RESET = 0x1246;
static const Word ED_TRANSBASIC_SET_FREEZE_TIMEOUT = 0x1247;
static const Word ED_TRANSBASIC_VOLUME_NAME = 0x1248;
static const Word ED_TRANSBASIC_BALLISTIC_1 = 0x1249;
static const Word ED_TRANSBASIC_BALLISTIC_2 = 0x124a;
static const Word ED_TRANSBASIC_BALLISTIC_3 = 0x124b;
static const Word ED_TRANSBASIC_BALLISTIC_4 = 0x124c;
static const Word ED_TRANSBASIC_BALLISTIC_5 = 0x124d;
static const Word ED_TRANSBASIC_BALLISTIC_6 = 0x124e;
static const Word ED_TRANSBASIC_BALLISTIC_7 = 0x124f;
static const Word ED_TRANSBASIC_BALLISTIC_8 = 0x1250;
static const Word ED_TRANSBASIC_BALLISTIC_9 = 0x1251;
static const Word ED_TRANSBASIC_BALLISTIC_10 = 0x1252;
static const Word ED_TRANSBASIC_BALLISTIC_11 = 0x1253;
static const Word ED_TRANSBASIC_BALLISTIC_12 = 0x1254;
static const Word ED_TRANSBASIC_BALLISTIC_13 = 0x1255;
static const Word ED_TRANSBASIC_BALLISTIC_14 = 0x1256;
static const Word ED_TRANSBASIC_BALLISTIC_15 = 0x1257;
static const Word ED_TRANSBASIC_BALLISTIC_16 = 0x1258;
static const Word ED_TRANSBASIC_BALLISTIC_17 = 0x1259;
static const Word ED_TRANSBASIC_BALLISTIC_18 = 0x125a;
static const Word ED_TRANSBASIC_BALLISTIC_19 = 0x125b;
static const Word ED_TRANSBASIC_BALLISTIC_20 = 0x125c;
static const Word ED_TRANSBASIC_SETCLOCK = 0x125d;
static const Word ED_TRANSBASIC_SET_COUNTER_FORMAT = 0x125e;
static const Word ED_TRANSBASIC_SET_COUNTER_VALUE = 0x125f;
static const Word ED_TRANSBASIC_SETTUNER_CH_UP = 0x1260;
static const Word ED_TRANSBASIC_SETTUNER_CH_DN = 0x1261;
static const Word ED_TRANSBASIC_SETTUNER_SK_UP = 0x1262;
static const Word ED_TRANSBASIC_SETTUNER_SK_DN = 0x1263;
static const Word ED_TRANSBASIC_SETTUNER_CH = 0x1264;
static const Word ED_TRANSBASIC_SETTUNER_NUM = 0x1265;
static const Word ED_TRANSBASIC_SETTIMER_EVENT = 0x1266;
static const Word ED_TRANSBASIC_SETTIMER_STARTDAY = 0x1267;
static const Word ED_TRANSBASIC_SETTIMER_STARTTIME = 0x1268;
static const Word ED_TRANSBASIC_SETTIMER_STOPDAY = 0x1269;
static const Word ED_TRANSBASIC_SETTIMER_STOPTIME = 0x126a;
static const Word ED_TRANSVIDEO_SET_OUTPUT = 0x1276;
static const Word ED_E2E = 0x1277;
static const Word ED_PLAYBACK = 0x1278;
static const Word ED_OFF = 0x1279;
static const Word ED_TRANSVIDEO_SET_SOURCE = 0x127a;
static const Word ED_TRANSAUDIO_ENABLE_OUTPUT = 0x1280;
static const Word ED_TRANSAUDIO_ENABLE_RECORD = 0x1282;
static const Word ED_TRANSAUDIO_ENABLE_SELSYNC = 0x1283;
static const Word ED_TRANSAUDIO_SET_SOURCE = 0x1284;
static const Word ED_TRANSAUDIO_SET_MONITOR = 0x1285;
static const Word ED_INVALID = 0x128c;
static const Word ED_EXECUTING = 0x128d;
static const Word ED_REGISTER = 0x128e;
static const Word ED_DELETE = 0x128f;
static const Word ED_EDIT_HEVENT = 0x1290;
static const Word ED_EDIT_TEST = 0x1291;
static const Word ED_EDIT_IMMEDIATE = 0x1292;
static const Word ED_EDIT_MODE = 0x1293;
static const Word ED_EDIT_MODE_ASSEMBLE = 0x1294;
static const Word ED_EDIT_MODE_INSERT = 0x1295;
static const Word ED_EDIT_MODE_CRASH_RECORD = 0x1296;
static const Word ED_EDIT_MODE_BOOKMARK_TIME = 0x1297;
static const Word ED_EDIT_MODE_BOOKMARK_CHAPTER = 0x1298;
static const Word ED_EDIT_MASTER = 0x129a;
static const Word ED_EDIT_TRACK = 0x129b;
static const Word ED_EDIT_SRC_INPOINT = 0x129c;
static const Word ED_EDIT_SRC_OUTPOINT = 0x129d;
static const Word ED_EDIT_REC_INPOINT = 0x129e;
static const Word ED_EDIT_REC_OUTPOINT = 0x129f;
static const Word ED_EDIT_REHEARSE_MODE = 0x12a0;
static const Word ED_EDIT_BVB = 0x12a1;
static const Word ED_EDIT_VBV = 0x12a2;
static const Word ED_EDIT_VVV = 0x12a3;
static const Word ED_EDIT_PERFORM = 0x12a4;
static const Word ED_EDIT_ABORT = 0x12a5;
static const Word ED_EDIT_TIMEOUT = 0x12a6;
static const Word ED_EDIT_SEEK = 0x12a7;
static const Word ED_EDIT_SEEK_MODE = 0x12a8;
static const Word ED_EDIT_SEEK_EDIT_IN = 0x12a9;
static const Word ED_EDIT_SEEK_EDIT_OUT = 0x12aa;
static const Word ED_EDIT_SEEK_PREROLL = 0x12ab;
static const Word ED_EDIT_SEEK_PREROLL_CT = 0x12ac;
static const Word ED_EDIT_SEEK_BOOKMARK = 0x12ad;
static const Word ED_EDIT_OFFSET = 0x12ae;
static const Word ED_ERR_DEVICE_NOT_READY = 0x12bc;
static const Word ED_TRANSCAP_FWD_VARIABLE_MIN = 0x1320;
static const Word ED_TRANSCAP_REV_VARIABLE_MIN = 0x1321;
static const Word ED_TRANSCAP_FWD_SHUTTLE_MAX = 0x1322;
static const Word ED_TRANSCAP_FWD_SHUTTLE_MIN = 0x1323;
static const Word ED_TRANSCAP_REV_SHUTTLE_MAX = 0x1324;
static const Word ED_TRANSCAP_REV_SHUTTLE_MIN = 0x1325;
static const Word ED_TRANSCAP_MULTIPLE_EDITS = 0x1326;
static const Word ED_TRANSCAP_IS_MASTER = 0x1327;
static const Word ED_MODE_NOTIFY_ENABLE = 0x132a;
static const Word ED_MODE_NOTIFY_DISABLE = 0x132b;
static const Word ED_MODE_SHOT_SEARCH = 0x132c;
static const Word ED_TRANSCAP_HAS_DT = 0x132e;
static const Word ED_EDIT_PREREAD = 0x132f;
static const Word ED_DEVTYPE_CAMERA = 0x1384;
static const Word ED_DEVTYPE_TUNER = 0x1385;
static const Word ED_DEVTYPE_DVHS = 0x1386;
static const Word ED_DEVTYPE_UNKNOWN = 0x1387;
static const Word ED_CAPABILITY_UNKNOWN = 0x138e;
static const Word ED_RAW_EXT_DEV_CMD = 0x1398;
static const Word ED_MEDIA_VHSC = 0x139d;
static const Word ED_MEDIA_UNKNOWN = 0x139e;
static const Word ED_MEDIA_NOT_PRESENT = 0x139f;
static const Word ED_CONTROL_HEVENT_GET = 0x13a0;
static const Word ED_CONTROL_HEVENT_RELEASE = 0x13a1;
static const Word ED_NOTIFY_HEVENT_GET = 0x13a2;
static const Word ED_NOTIFY_HEVENT_RELEASE = 0x13a3;
static const Word ED_MODE_CHANGE_NOTIFY = 0x13a4;
static const Word ED_MODE_PLAY_FASTEST_FWD = 0x13a5;
static const Word ED_MODE_PLAY_SLOWEST_FWD = 0x13a6;
static const Word ED_MODE_PLAY_FASTEST_REV = 0x13a7;
static const Word ED_MODE_PLAY_SLOWEST_REV = 0x13a8;
static const Word ED_MODE_WIND = 0x13a9;
static const Word ED_MODE_REW_FASTEST = 0x13aa;
static const Word ED_MODE_REV_PLAY = 0x13ab;
static const Word ED_DEV_REMOVED_HEVENT_GET = 0x13c0;
static const Word ED_DEV_REMOVED_HEVENT_RELEASE = 0x13c1;
static const Word ED_TRANSBASIC_INPUT_SIGNAL = 0x13ac;
static const Word ED_TRANSBASIC_OUTPUT_SIGNAL = 0x13ad;
static const Word ED_TRANSBASIC_SIGNAL_525_60_SD = 0x13ae;
static const Word ED_TRANSBASIC_SIGNAL_525_60_SDL = 0x13af;
static const Word ED_TRANSBASIC_SIGNAL_625_50_SD = 0x13b0;
static const Word ED_TRANSBASIC_SIGNAL_625_50_SDL = 0x13b1;
static const Word ED_TRANSBASIC_SIGNAL_MPEG2TS = 0x13b2;
static const Word ED_DEVCAP_TIMECODE_SEEK = 0x13b6;
static const Word ED_DEVCAP_ATN_READ = 0x13b7;
static const Word ED_DEVCAP_ATN_SEEK = 0x13b8;
static const Word ED_DEVCAP_ATN_WRITE = 0x13b9;
static const Word ED_DEVCAP_RTC_READ = 0x13ba;
static const Word ED_DEVCAP_RTC_SEEK = 0x13bb;
static const Word ED_DEVCAP_RTC_WRITE = 0x13bc;
static const Word ED_TIMEREF_ATN = 0x13be;
static const Shortint ED_AUDIO_1 = 0x1;
static const Shortint ED_AUDIO_2 = 0x2;
static const Shortint ED_AUDIO_3 = 0x4;
static const Shortint ED_AUDIO_4 = 0x8;
static const Shortint ED_AUDIO_5 = 0x10;
static const Shortint ED_AUDIO_6 = 0x20;
static const Shortint ED_AUDIO_7 = 0x40;
static const Byte ED_AUDIO_8 = 0x80;
static const Word ED_AUDIO_9 = 0x100;
static const Word ED_AUDIO_10 = 0x200;
static const Word ED_AUDIO_11 = 0x400;
static const Word ED_AUDIO_12 = 0x800;
static const Word ED_AUDIO_13 = 0x1000;
static const Word ED_AUDIO_14 = 0x2000;
static const Word ED_AUDIO_15 = 0x4000;
static const Word ED_AUDIO_16 = 0x8000;
static const int ED_AUDIO_17 = 0x10000;
static const int ED_AUDIO_18 = 0x20000;
static const int ED_AUDIO_19 = 0x40000;
static const int ED_AUDIO_20 = 0x80000;
static const int ED_AUDIO_21 = 0x100000;
static const int ED_AUDIO_22 = 0x200000;
static const int ED_AUDIO_23 = 0x400000;
static const int ED_AUDIO_24 = 0x800000;
static const int ED_VIDEO = 0x2000000;
static const int ED_AUDIO_ALL = 0x10000000;
static const Word BT878_DEFAULT_AMP = 0x1388;
static const Shortint BT878_MIN_AMP = 0x0;
static const Word BT878_MAX_AMP = 0x2710;
static const Shortint bt_enable = 0x0;
static const Shortint bt_brightness = 0x1;
static const Shortint bt_contrast = 0x2;
static const Shortint bt_hue = 0x3;
static const Shortint bt_saturation = 0x4;
static const Shortint CHARS_IN_GUID = 0x27;
static const Byte MAX_PIN_NAME = 0x80;
static const Byte MAX_FILTER_NAME = 0x80;
static const Shortint AM_SEEKING_NoPositioning = 0x0;
static const Shortint AM_SEEKING_AbsolutePositioning = 0x1;
static const Shortint AM_SEEKING_RelativePositioning = 0x2;
static const Shortint AM_SEEKING_IncrementalPositioning = 0x3;
static const Shortint AM_SEEKING_PositioningBitsMask = 0x3;
static const Shortint AM_SEEKING_SeekToKeyFrame = 0x4;
static const Shortint AM_SEEKING_ReturnTime = 0x8;
static const Shortint AM_SEEKING_Segment = 0x10;
static const Shortint AM_SEEKING_NoFlush = 0x20;
static const Shortint AM_SEEKING_CanSeekAbsolute = 0x1;
static const Shortint AM_SEEKING_CanSeekForwards = 0x2;
static const Shortint AM_SEEKING_CanSeekBackwards = 0x4;
static const Shortint AM_SEEKING_CanGetCurrentPos = 0x8;
static const Shortint AM_SEEKING_CanGetStopPos = 0x10;
static const Shortint AM_SEEKING_CanGetDuration = 0x20;
static const Shortint AM_SEEKING_CanPlayBackwards = 0x40;
static const Byte AM_SEEKING_CanDoSegments = 0x80;
static const Word AM_SEEKING_Source = 0x100;
static const Shortint AM_MEDIAEVENT_NONOTIFY = 0x1;
static const Shortint REG_PINFLAG_B_ZERO = 0x1;
static const Shortint REG_PINFLAG_B_RENDERER = 0x2;
static const Shortint REG_PINFLAG_B_MANY = 0x4;
static const Shortint REG_PINFLAG_B_OUTPUT = 0x8;
static const Shortint AM_RENDEREX_RENDERTOEXISTINGRENDERERS = 0x1;
static const Shortint AM_STREAM_INFO_START_DEFINED = 0x1;
static const Shortint AM_STREAM_INFO_STOP_DEFINED = 0x2;
static const Shortint AM_STREAM_INFO_DISCARDING = 0x4;
static const Shortint AM_STREAM_INFO_STOP_SEND_EXTRA = 0x10;
static const Shortint CompressionCaps_CanQuality = 0x1;
static const Shortint CompressionCaps_CanCrunch = 0x2;
static const Shortint CompressionCaps_CanKeyFrame = 0x4;
static const Shortint CompressionCaps_CanBFrame = 0x8;
static const Shortint CompressionCaps_CanWindow = 0x10;
static const Shortint AMTUNER_EVENT_CHANGED = 0x1;
static const Shortint PhysConn_Video_Tuner = 0x1;
static const Shortint PhysConn_Video_Composite = 0x2;
static const Shortint PhysConn_Video_SVideo = 0x3;
static const Shortint PhysConn_Video_RGB = 0x4;
static const Shortint PhysConn_Video_YRYBY = 0x5;
static const Shortint PhysConn_Video_SerialDigital = 0x6;
static const Shortint PhysConn_Video_ParallelDigital = 0x7;
static const Shortint PhysConn_Video_SCSI = 0x8;
static const Shortint PhysConn_Video_AUX = 0x9;
static const Shortint PhysConn_Video_1394 = 0xa;
static const Shortint PhysConn_Video_USB = 0xb;
static const Shortint PhysConn_Video_VideoDecoder = 0xc;
static const Shortint PhysConn_Video_VideoEncoder = 0xd;
static const Shortint PhysConn_Video_SCART = 0xe;
static const Shortint PhysConn_Video_Black = 0xf;
static const Word PhysConn_Audio_Tuner = 0x1000;
static const Word PhysConn_Audio_Line = 0x1001;
static const Word PhysConn_Audio_Mic = 0x1002;
static const Word PhysConn_Audio_AESDigital = 0x1003;
static const Word PhysConn_Audio_SPDIFDigital = 0x1004;
static const Word PhysConn_Audio_SCSI = 0x1005;
static const Word PhysConn_Audio_AUX = 0x1006;
static const Word PhysConn_Audio_1394 = 0x1007;
static const Word PhysConn_Audio_USB = 0x1008;
static const Word PhysConn_Audio_AudioDecoder = 0x1009;
static const unsigned VFW_E_INVALIDMEDIATYPE = 0x80040200;
static const unsigned VFW_E_INVALIDSUBTYPE = 0x80040201;
static const unsigned VFW_E_NEED_OWNER = 0x80040202;
static const unsigned VFW_E_ENUM_OUT_OF_SYNC = 0x80040203;
static const unsigned VFW_E_ALREADY_CONNECTED = 0x80040204;
static const unsigned VFW_E_FILTER_ACTIVE = 0x80040205;
static const unsigned VFW_E_NO_TYPES = 0x80040206;
static const unsigned VFW_E_NO_ACCEPTABLE_TYPES = 0x80040207;
static const unsigned VFW_E_INVALID_DIRECTION = 0x80040208;
static const unsigned VFW_E_NOT_CONNECTED = 0x80040209;
static const unsigned VFW_E_NO_ALLOCATOR = 0x8004020a;
static const unsigned VFW_E_RUNTIME_ERROR = 0x8004020b;
static const unsigned VFW_E_BUFFER_NOTSET = 0x8004020c;
static const unsigned VFW_E_BUFFER_OVERFLOW = 0x8004020d;
static const unsigned VFW_E_BADALIGN = 0x8004020e;
static const unsigned VFW_E_ALREADY_COMMITTED = 0x8004020f;
static const unsigned VFW_E_BUFFERS_OUTSTANDING = 0x80040210;
static const unsigned VFW_E_NOT_COMMITTED = 0x80040211;
static const unsigned VFW_E_SIZENOTSET = 0x80040212;
static const unsigned VFW_E_NO_CLOCK = 0x80040213;
static const unsigned VFW_E_NO_SINK = 0x80040214;
static const unsigned VFW_E_NO_INTERFACE = 0x80040215;
static const unsigned VFW_E_NOT_FOUND = 0x80040216;
static const unsigned VFW_E_CANNOT_CONNECT = 0x80040217;
static const unsigned VFW_E_CANNOT_RENDER = 0x80040218;
static const unsigned VFW_E_CHANGING_FORMAT = 0x80040219;
static const unsigned VFW_E_NO_COLOR_KEY_SET = 0x8004021a;
static const unsigned VFW_E_NOT_OVERLAY_CONNECTION = 0x8004021b;
static const unsigned VFW_E_NOT_SAMPLE_CONNECTION = 0x8004021c;
static const unsigned VFW_E_PALETTE_SET = 0x8004021d;
static const unsigned VFW_E_COLOR_KEY_SET = 0x8004021e;
static const unsigned VFW_E_NO_COLOR_KEY_FOUND = 0x8004021f;
static const unsigned VFW_E_NO_PALETTE_AVAILABLE = 0x80040220;
static const unsigned VFW_E_NO_DISPLAY_PALETTE = 0x80040221;
static const unsigned VFW_E_TOO_MANY_COLORS = 0x80040222;
static const unsigned VFW_E_STATE_CHANGED = 0x80040223;
static const unsigned VFW_E_NOT_STOPPED = 0x80040224;
static const unsigned VFW_E_NOT_PAUSED = 0x80040225;
static const unsigned VFW_E_NOT_RUNNING = 0x80040226;
static const unsigned VFW_E_WRONG_STATE = 0x80040227;
static const unsigned VFW_E_START_TIME_AFTER_END = 0x80040228;
static const unsigned VFW_E_INVALID_RECT = 0x80040229;
static const unsigned VFW_E_TYPE_NOT_ACCEPTED = 0x8004022a;
static const unsigned VFW_E_SAMPLE_REJECTED = 0x8004022b;
static const unsigned VFW_E_SAMPLE_REJECTED_EOS = 0x8004022c;
static const unsigned VFW_E_DUPLICATE_NAME = 0x8004022d;
static const int VFW_S_DUPLICATE_NAME = 0x4022d;
static const unsigned VFW_E_TIMEOUT = 0x8004022e;
static const unsigned VFW_E_INVALID_FILE_FORMAT = 0x8004022f;
static const unsigned VFW_E_ENUM_OUT_OF_RANGE = 0x80040230;
static const unsigned VFW_E_CIRCULAR_GRAPH = 0x80040231;
static const unsigned VFW_E_NOT_ALLOWED_TO_SAVE = 0x80040232;
static const unsigned VFW_E_TIME_ALREADY_PASSED = 0x80040233;
static const unsigned VFW_E_ALREADY_CANCELLED = 0x80040234;
static const unsigned VFW_E_CORRUPT_GRAPH_FILE = 0x80040235;
static const unsigned VFW_E_ADVISE_ALREADY_SET = 0x80040236;
static const int VFW_S_STATE_INTERMEDIATE = 0x40237;
static const unsigned VFW_E_NO_MODEX_AVAILABLE = 0x80040238;
static const unsigned VFW_E_NO_ADVISE_SET = 0x80040239;
static const unsigned VFW_E_NO_FULLSCREEN = 0x8004023a;
static const unsigned VFW_E_IN_FULLSCREEN_MODE = 0x8004023b;
static const unsigned VFW_E_UNKNOWN_FILE_TYPE = 0x80040240;
static const unsigned VFW_E_CANNOT_LOAD_SOURCE_FILTER = 0x80040241;
static const int VFW_S_PARTIAL_RENDER = 0x40242;
static const unsigned VFW_E_FILE_TOO_SHORT = 0x80040243;
static const unsigned VFW_E_INVALID_FILE_VERSION = 0x80040244;
static const int VFW_S_SOME_DATA_IGNORED = 0x40245;
static const int VFW_S_CONNECTIONS_DEFERRED = 0x40246;
static const unsigned VFW_E_INVALID_CLSID = 0x80040247;
static const unsigned VFW_E_INVALID_MEDIA_TYPE = 0x80040248;
static const unsigned VFW_E_BAD_KEY = 0x800403f2;
static const int VFW_S_NO_MORE_ITEMS = 0x40103;
static const unsigned VFW_E_SAMPLE_TIME_NOT_SET = 0x80040249;
static const int VFW_S_RESOURCE_NOT_NEEDED = 0x40250;
static const unsigned VFW_E_MEDIA_TIME_NOT_SET = 0x80040251;
static const unsigned VFW_E_NO_TIME_FORMAT_SET = 0x80040252;
static const unsigned VFW_E_MONO_AUDIO_HW = 0x80040253;
static const int VFW_S_MEDIA_TYPE_IGNORED = 0x40254;
static const unsigned VFW_E_NO_AUDIO_HARDWARE = 0x80040256;
static const int VFW_S_VIDEO_NOT_RENDERED = 0x40257;
static const int VFW_S_AUDIO_NOT_RENDERED = 0x40258;
static const unsigned VFW_E_RPZA = 0x80040259;
static const int VFW_S_RPZA = 0x4025a;
static const unsigned VFW_E_PROCESSOR_NOT_SUITABLE = 0x8004025b;
static const unsigned VFW_E_UNSUPPORTED_AUDIO = 0x8004025c;
static const unsigned VFW_E_UNSUPPORTED_VIDEO = 0x8004025d;
static const unsigned VFW_E_MPEG_NOT_CONSTRAINED = 0x8004025e;
static const unsigned VFW_E_NOT_IN_GRAPH = 0x8004025f;
static const int VFW_S_ESTIMATED = 0x40260;
static const unsigned VFW_E_NO_TIME_FORMAT = 0x80040261;
static const unsigned VFW_E_READ_ONLY = 0x80040262;
static const int VFW_S_RESERVED = 0x40263;
static const unsigned VFW_E_BUFFER_UNDERFLOW = 0x80040264;
static const unsigned VFW_E_UNSUPPORTED_STREAM = 0x80040265;
static const unsigned VFW_E_NO_TRANSPORT = 0x80040266;
static const int VFW_S_STREAM_OFF = 0x40267;
static const int VFW_S_CANT_CUE = 0x40268;
static const unsigned VFW_E_BAD_VIDEOCD = 0x80040269;
static const int VFW_S_NO_STOP_TIME = 0x40270;
static const unsigned VFW_E_OUT_OF_VIDEO_MEMORY = 0x80040271;
static const unsigned VFW_E_VP_NEGOTIATION_FAILED = 0x80040272;
static const unsigned VFW_E_DDRAW_CAPS_NOT_SUITABLE = 0x80040273;
static const unsigned VFW_E_NO_VP_HARDWARE = 0x80040274;
static const unsigned VFW_E_NO_CAPTURE_HARDWARE = 0x80040275;
static const unsigned VFW_E_DVD_OPERATION_INHIBITED = 0x80040276;
static const unsigned VFW_E_DVD_INVALIDDOMAIN = 0x80040277;
static const unsigned VFW_E_DVD_GRAPHNOTREADY = 0x80040279;
static const unsigned VFW_E_DVD_RENDERFAIL = 0x8004027a;
static const unsigned VFW_E_DVD_DECNOTENOUGH = 0x8004027b;
static const unsigned VFW_E_DDRAW_VERSION_NOT_SUITABLE = 0x8004027c;
static const unsigned VFW_E_COPYPROT_FAILED = 0x8004027d;
static const int VFW_S_NOPREVIEWPIN = 0x4027e;
static const unsigned VFW_E_TIME_EXPIRED = 0x8004027f;
static const int VFW_S_DVD_NON_ONE_SEQUENTIAL = 0x40280;
static const unsigned VFW_E_DVD_WRONG_SPEED = 0x80040281;
static const unsigned VFW_E_DVD_MENU_DOES_NOT_EXIST = 0x80040282;
static const unsigned VFW_E_DVD_CMD_CANCELLED = 0x80040283;
static const unsigned VFW_E_DVD_STATE_WRONG_VERSION = 0x80040284;
static const unsigned VFW_E_DVD_STATE_CORRUPT = 0x80040285;
static const unsigned VFW_E_DVD_STATE_WRONG_DISC = 0x80040286;
static const unsigned VFW_E_DVD_INCOMPATIBLE_REGION = 0x80040287;
static const unsigned VFW_E_DVD_NO_ATTRIBUTES = 0x80040288;
static const unsigned VFW_E_DVD_NO_GOUP_PGC = 0x80040289;
static const unsigned VFW_E_DVD_LOW_PARENTAL_LEVEL = 0x8004028a;
static const unsigned VFW_E_DVD_NOT_IN_KARAOKE_MODE = 0x8004028b;
static const int VFW_S_DVD_CHANNEL_CONTENTS_NOT_AVAILABLE = 0x4028c;
static const int VFW_S_DVD_NOT_ACCURATE = 0x4028d;
static const unsigned VFW_E_FRAME_STEP_UNSUPPORTED = 0x8004028e;
static const unsigned VFW_E_DVD_STREAM_DISABLED = 0x8004028f;
static const unsigned VFW_E_DVD_TITLE_UNKNOWN = 0x80040290;
static const unsigned VFW_E_DVD_INVALID_DISC = 0x80040291;
static const unsigned VFW_E_DVD_NO_RESUME_INFORMATION = 0x80040292;
static const unsigned VFW_E_PIN_ALREADY_BLOCKED_ON_THIS_THREAD = 0x80040293;
static const unsigned VFW_E_PIN_ALREADY_BLOCKED = 0x80040294;
static const unsigned VFW_E_CERTIFICATION_FAILURE = 0x80040295;
static const Shortint VfwCompressDialog_Config = 0x1;
static const Shortint VfwCompressDialog_About = 0x2;
static const Shortint VfwCompressDialog_QueryConfig = 0x4;
static const Shortint VfwCompressDialog_QueryAbout = 0x8;
static const Shortint VfwCaptureDialog_Source = 0x1;
static const Shortint VfwCaptureDialog_Format = 0x2;
static const Shortint VfwCaptureDialog_Display = 0x4;
static const Shortint KSPROPERTY_SUPPORT_GET = 0x1;
static const Shortint KSPROPERTY_SUPPORT_SET = 0x2;
extern PACKAGE GUID AM_KSCATEGORY_CAPTURE;
static const Shortint CameraControl_Flags_Auto = 0x1;
static const Shortint CameraControl_Flags_Manual = 0x2;
static const Word DVDECODERRESOLUTION_720x480 = 0x3e8;
static const Word DVDECODERRESOLUTION_360x240 = 0x3e9;
static const Word DVDECODERRESOLUTION_180x120 = 0x3ea;
static const Word DVDECODERRESOLUTION_88x60 = 0x3eb;
static const Word DVRESOLUTION_FULL = 0x3e8;
static const Word DVRESOLUTION_HALF = 0x3e9;
static const Word DVRESOLUTION_QUARTER = 0x3ea;
static const Word DVRESOLUTION_DC = 0x3eb;
static const Shortint AMOVERFX_NOFX = 0x0;
static const Shortint AMOVERFX_MIRRORLEFTRIGHT = 0x2;
static const Shortint AMOVERFX_MIRRORUPDOWN = 0x4;
static const Shortint AMOVERFX_DEINTERLACE = 0x8;
static const Shortint iMAXBITS = 0x8;
static const Shortint iEGA_COLORS = 0x10;
static const Shortint iMASK_COLORS = 0x3;
static const Shortint iPALETTE = 0x8;
static const Word iPALETTE_COLORS = 0x100;
static const Shortint iTRUECOLOR = 0x10;
static const Shortint iRED = 0x0;
static const Shortint iGREEN = 0x1;
static const Shortint iBLUE = 0x2;
static const Shortint EC_SYSTEMBASE = 0x0;
static const Word EC_USER = 0x8000;
static const Shortint EC_COMPLETE = 0x1;
static const Shortint EC_USERABORT = 0x2;
static const Shortint EC_ERRORABORT = 0x3;
static const Shortint EC_TIME = 0x4;
static const Shortint EC_REPAINT = 0x5;
static const Shortint EC_STREAM_ERROR_STOPPED = 0x6;
static const Shortint EC_STREAM_ERROR_STILLPLAYING = 0x7;
static const Shortint EC_ERROR_STILLPLAYING = 0x8;
static const Shortint EC_PALETTE_CHANGED = 0x9;
static const Shortint EC_VIDEO_SIZE_CHANGED = 0xa;
static const Shortint EC_QUALITY_CHANGE = 0xb;
static const Shortint EC_SHUTTING_DOWN = 0xc;
static const Shortint EC_CLOCK_CHANGED = 0xd;
static const Shortint EC_PAUSED = 0xe;
static const Shortint EC_OPENING_FILE = 0x10;
static const Shortint EC_BUFFERING_DATA = 0x11;
static const Shortint EC_FULLSCREEN_LOST = 0x12;
static const Shortint EC_ACTIVATE = 0x13;
static const Shortint EC_NEED_RESTART = 0x14;
static const Shortint EC_WINDOW_DESTROYED = 0x15;
static const Shortint EC_DISPLAY_CHANGED = 0x16;
static const Shortint EC_STARVATION = 0x17;
static const Shortint EC_OLE_EVENT = 0x18;
static const Shortint EC_NOTIFY_WINDOW = 0x19;
static const Shortint EC_STREAM_CONTROL_STOPPED = 0x1a;
static const Shortint EC_STREAM_CONTROL_STARTED = 0x1b;
static const Shortint EC_END_OF_SEGMENT = 0x1c;
static const Shortint EC_SEGMENT_STARTED = 0x1d;
static const Shortint EC_LENGTH_CHANGED = 0x1e;
static const Shortint EC_DEVICE_LOST = 0x1f;
static const Shortint EC_STEP_COMPLETE = 0x24;
static const Shortint EC_SKIP_FRAMES = 0x25;
static const Shortint EC_TIMECODE_AVAILABLE = 0x30;
static const Shortint EC_EXTDEVICE_MODE_CHANGE = 0x31;
static const Shortint EC_GRAPH_CHANGED = 0x50;
static const Shortint EC_CLOCK_UNSET = 0x51;
static const Word EC_WMT_EVENT_BASE = 0x251;
static const Word EC_WMT_INDEX_EVENT = 0x251;
extern PACKAGE GUID CLSID_AviSplitter;
extern PACKAGE GUID CLSID_CaptureGraphBuilder2;
extern PACKAGE GUID CLSID_CaptureProperties;
extern PACKAGE GUID CLSID_FilterGraph;
extern PACKAGE GUID CLSID_Proxy;
extern PACKAGE GUID CLSID_VfwCapture;
extern PACKAGE GUID CLSID_VideoRenderer;
extern PACKAGE GUID CLSID_AudioRender;
extern PACKAGE GUID CLSID_AVIDec;
extern PACKAGE GUID CLSID_DVVideoCodec;
extern PACKAGE GUID CLSID_DVSplitter;
extern PACKAGE GUID CLSID_OverlayMixer;
extern PACKAGE GUID CLSID_OverlayMixer2;
extern PACKAGE GUID CLSID_SystemDeviceEnum;
extern PACKAGE GUID CLSID_VideoInputDeviceCategory;
extern PACKAGE GUID CLSID_VideoCompressorCategory;
extern PACKAGE GUID CLSID_AudioCompressorCategory;
extern PACKAGE GUID CLSID_AudioInputDeviceCategory;
extern PACKAGE GUID CLSID_DvdGraphBuilder;
extern PACKAGE GUID CLSID_DVDNavigator;
extern PACKAGE GUID CLSID_DVDState;
extern PACKAGE GUID CLSID_SmartTee;
extern PACKAGE GUID CLSID_InfTee;
extern PACKAGE GUID CLSID_MediaDet;
extern PACKAGE GUID CLSID_SampleGrabber;
extern PACKAGE GUID CLSID_NullRenderer;
extern PACKAGE GUID GUID_NULL;
extern PACKAGE GUID MEDIATYPE_NULL;
extern PACKAGE GUID MEDIASUBTYPE_NULL;
extern PACKAGE GUID MEDIATYPE_Video;
extern PACKAGE GUID MEDIATYPE_Audio;
extern PACKAGE GUID MEDIATYPE_Text;
extern PACKAGE GUID MEDIATYPE_Midi;
extern PACKAGE GUID MEDIATYPE_Stream;
extern PACKAGE GUID MEDIATYPE_Interleaved;
extern PACKAGE GUID MEDIATYPE_File;
extern PACKAGE GUID MEDIATYPE_ScriptCommand;
extern PACKAGE GUID MEDIATYPE_AUXLine21Data;
extern PACKAGE GUID MEDIATYPE_Timecode;
extern PACKAGE GUID MEDIATYPE_LMRT;
extern PACKAGE GUID MEDIATYPE_URL_STREAM;
extern PACKAGE GUID MEDIASUBTYPE_CLPL;
extern PACKAGE GUID MEDIASUBTYPE_YUYV;
extern PACKAGE GUID MEDIASUBTYPE_IYUV;
extern PACKAGE GUID MEDIASUBTYPE_YVU9;
extern PACKAGE GUID MEDIASUBTYPE_Y411;
extern PACKAGE GUID MEDIASUBTYPE_Y41P;
extern PACKAGE GUID MEDIASUBTYPE_YUY2;
extern PACKAGE GUID MEDIASUBTYPE_YVYU;
extern PACKAGE GUID MEDIASUBTYPE_UYVY;
extern PACKAGE GUID MEDIASUBTYPE_Y211;
extern PACKAGE GUID MEDIASUBTYPE_YV12;
extern PACKAGE GUID MEDIASUBTYPE_CLJR;
extern PACKAGE GUID MEDIASUBTYPE_IF09;
extern PACKAGE GUID MEDIASUBTYPE_CPLA;
extern PACKAGE GUID MEDIASUBTYPE_MJPG;
extern PACKAGE GUID MEDIASUBTYPE_TVMJ;
extern PACKAGE GUID MEDIASUBTYPE_WAKE;
extern PACKAGE GUID MEDIASUBTYPE_CFCC;
extern PACKAGE GUID MEDIASUBTYPE_IJPG;
extern PACKAGE GUID MEDIASUBTYPE_Plum;
extern PACKAGE GUID MEDIASUBTYPE_DVCS;
extern PACKAGE GUID MEDIASUBTYPE_DVSD;
extern PACKAGE GUID MEDIASUBTYPE_MDVF;
extern PACKAGE GUID MEDIASUBTYPE_RGB1;
extern PACKAGE GUID MEDIASUBTYPE_RGB4;
extern PACKAGE GUID MEDIASUBTYPE_RGB8;
extern PACKAGE GUID MEDIASUBTYPE_RGB565;
extern PACKAGE GUID MEDIASUBTYPE_RGB555;
extern PACKAGE GUID MEDIASUBTYPE_RGB24;
extern PACKAGE GUID MEDIASUBTYPE_RGB32;
extern PACKAGE GUID MEDIASUBTYPE_ARGB32;
extern PACKAGE GUID MEDIASUBTYPE_Overlay;
extern PACKAGE GUID MEDIASUBTYPE_MPEG1Packet;
extern PACKAGE GUID MEDIASUBTYPE_MPEG1Payload;
extern PACKAGE GUID MEDIASUBTYPE_MPEG1AudioPayload;
extern PACKAGE GUID MEDIATYPE_MPEG1SystemStream;
extern PACKAGE GUID MEDIASUBTYPE_MPEG1System;
extern PACKAGE GUID MEDIASUBTYPE_MPEG1VideoCD;
extern PACKAGE GUID MEDIASUBTYPE_MPEG1Video;
extern PACKAGE GUID MEDIASUBTYPE_MPEG1Audio;
extern PACKAGE GUID MEDIASUBTYPE_Avi;
extern PACKAGE GUID MEDIASUBTYPE_Asf;
extern PACKAGE GUID MEDIASUBTYPE_QTMovie;
extern PACKAGE GUID MEDIASUBTYPE_QTRpza;
extern PACKAGE GUID MEDIASUBTYPE_QTSmc;
extern PACKAGE GUID MEDIASUBTYPE_QTRle;
extern PACKAGE GUID MEDIASUBTYPE_QTJpeg;
extern PACKAGE GUID MEDIASUBTYPE_PCMAudio_Obsolete;
extern PACKAGE GUID MEDIASUBTYPE_PCM;
extern PACKAGE GUID MEDIASUBTYPE_WAVE;
extern PACKAGE GUID MEDIASUBTYPE_AU;
extern PACKAGE GUID MEDIASUBTYPE_AIFF;
extern PACKAGE GUID MEDIASUBTYPE_dvsd_;
extern PACKAGE GUID MEDIASUBTYPE_dvhd;
extern PACKAGE GUID MEDIASUBTYPE_dvsl;
extern PACKAGE GUID MEDIASUBTYPE_Line21_BytePair;
extern PACKAGE GUID MEDIASUBTYPE_Line21_GOPPacket;
extern PACKAGE GUID MEDIASUBTYPE_Line21_VBIRawData;
extern PACKAGE GUID MEDIASUBTYPE_DRM_Audio;
extern PACKAGE GUID MEDIASUBTYPE_IEEE_FLOAT;
extern PACKAGE GUID MEDIASUBTYPE_DOLBY_AC3_SPDIF;
extern PACKAGE GUID MEDIASUBTYPE_RAW_SPORT;
extern PACKAGE GUID MEDIASUBTYPE_SPDIF_TAG_241h;
extern PACKAGE GUID MEDIASUBTYPE_DssVideo;
extern PACKAGE GUID MEDIASUBTYPE_DssAudio;
extern PACKAGE GUID MEDIASUBTYPE_VPVideo;
extern PACKAGE GUID MEDIASUBTYPE_VPVBI;
extern PACKAGE GUID FORMAT_VideoInfo;
extern PACKAGE GUID FORMAT_VideoInfo2;
extern PACKAGE GUID FORMAT_WaveFormatEx;
extern PACKAGE GUID FORMAT_MPEGVideo;
extern PACKAGE GUID FORMAT_MPEGStreams;
extern PACKAGE GUID FORMAT_DvInfo;
extern PACKAGE GUID MEDIATYPE_AnalogVideo;
extern PACKAGE GUID MEDIASUBTYPE_AnalogVideo_NTSC_M;
extern PACKAGE GUID MEDIASUBTYPE_AnalogVideo_PAL_B;
extern PACKAGE GUID MEDIASUBTYPE_AnalogVideo_PAL_D;
extern PACKAGE GUID MEDIASUBTYPE_AnalogVideo_PAL_G;
extern PACKAGE GUID MEDIASUBTYPE_AnalogVideo_PAL_H;
extern PACKAGE GUID MEDIASUBTYPE_AnalogVideo_PAL_I;
extern PACKAGE GUID MEDIASUBTYPE_AnalogVideo_PAL_M;
extern PACKAGE GUID MEDIASUBTYPE_AnalogVideo_PAL_N;
extern PACKAGE GUID MEDIASUBTYPE_AnalogVideo_PAL_N_COMBO;
extern PACKAGE GUID MEDIASUBTYPE_AnalogVideo_SECAM_B;
extern PACKAGE GUID MEDIASUBTYPE_AnalogVideo_SECAM_D;
extern PACKAGE GUID MEDIASUBTYPE_AnalogVideo_SECAM_G;
extern PACKAGE GUID MEDIASUBTYPE_AnalogVideo_SECAM_H;
extern PACKAGE GUID MEDIASUBTYPE_AnalogVideo_SECAM_K;
extern PACKAGE GUID MEDIASUBTYPE_AnalogVideo_SECAM_K1;
extern PACKAGE GUID MEDIASUBTYPE_AnalogVideo_SECAM_L;
extern PACKAGE GUID MEDIATYPE_AnalogAudio;
extern PACKAGE GUID AMPROPSETID_Pin;
extern PACKAGE GUID PIN_CATEGORY_CAPTURE;
extern PACKAGE GUID PIN_CATEGORY_PREVIEW;
extern PACKAGE GUID PIN_CATEGORY_ANALOGVIDEOIN;
extern PACKAGE GUID PIN_CATEGORY_VBI;
extern PACKAGE GUID PIN_CATEGORY_VIDEOPORT;
extern PACKAGE GUID PIN_CATEGORY_NABTS;
extern PACKAGE GUID PIN_CATEGORY_EDS;
extern PACKAGE GUID PIN_CATEGORY_TELETEXT;
extern PACKAGE GUID PIN_CATEGORY_CC;
extern PACKAGE GUID PIN_CATEGORY_STILL;
extern PACKAGE GUID PIN_CATEGORY_TIMECODE;
extern PACKAGE GUID PIN_CATEGORY_VIDEOPORT_VBI;
extern PACKAGE GUID KSMEDIUMSETID_Standard;
extern PACKAGE GUID KSPROPSETID_Pin;
static const Shortint KSMETHOD_TYPE_NONE = 0x0;
static const Shortint KSMETHOD_TYPE_READ = 0x1;
static const Shortint KSMETHOD_TYPE_WRITE = 0x2;
static const Shortint KSMETHOD_TYPE_MODIFY = 0x3;
static const Shortint KSMETHOD_TYPE_SOURCE = 0x4;
static const Shortint KSMETHOD_TYPE_SEND = 0x1;
static const Word KSMETHOD_TYPE_SETSUPPORT = 0x100;
static const Word KSMETHOD_TYPE_BASICSUPPORT = 0x200;
static const int KSMETHOD_TYPE_TOPOLOGY = 0x10000000;
static const Shortint KSPROPERTY_TYPE_GET = 0x1;
static const Shortint KSPROPERTY_TYPE_SET = 0x2;
static const Word KSPROPERTY_TYPE_SETSUPPORT = 0x100;
static const Word KSPROPERTY_TYPE_BASICSUPPORT = 0x200;
static const Word KSPROPERTY_TYPE_RELATIONS = 0x400;
static const Word KSPROPERTY_TYPE_SERIALIZESET = 0x800;
static const Word KSPROPERTY_TYPE_UNSERIALIZESET = 0x1000;
static const Word KSPROPERTY_TYPE_SERIALIZERAW = 0x2000;
static const Word KSPROPERTY_TYPE_UNSERIALIZERAW = 0x4000;
static const Word KSPROPERTY_TYPE_SERIALIZESIZE = 0x8000;
static const int KSPROPERTY_TYPE_DEFAULTVALUES = 0x10000;
static const int KSPROPERTY_TYPE_TOPOLOGY = 0x10000000;
static const Shortint SAMPLEGRABBER_L_PAUSE_GRAPH = 0x0;
static const Shortint SAMPLEGRABBER_L_CONTINUE_GRAPH = 0x1;
static const Shortint SAMPLEGRABBER_W_NO_COPYBITMAP = 0x0;
static const Shortint SAMPLEGRABBER_W_COPYBITMAP = 0x1;
#define DEBUGFILE "debug.log"
static const Shortint MAXAUDIORATEGROUPS = 0x10;
static const Shortint MAXVIDEORATEGROUPS = 0x12;
#define PREALLOCFILENAME "prealloc.avi"
extern PACKAGE __int64 MAX_TIME;
static const Word WM_CAPTURE_BITMAP = 0x8001;
static const Word WM_FGNOTIFY = 0x8002;
extern PACKAGE TDevices* _AudioCompressors;
extern PACKAGE TDevices* _AudioDevices;
extern PACKAGE TDevices* _VideoDevices;
extern PACKAGE TDevices* _VideoCompressors;
extern PACKAGE TDevicesManager* _DevicesManager;
extern PACKAGE Extended __fastcall StrToFloatDef(const AnsiString S, const Extended Default);
extern PACKAGE void __fastcall BuildDevicesLists(void);
extern PACKAGE void __fastcall Register(void);

}	/* namespace Vidgrab */
#if !defined(NO_IMPLICIT_NAMESPACE_USE)
using namespace Vidgrab;
#endif
#pragma option pop	// -w-
#pragma option pop	// -Vx

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif	// VidGrab
