📄 ieds.pas
字号:
IAMClockSlave = interface(IUnknown)
['{9FD52741-176D-4b36-8F51-CA8F933223BE}']
function SetErrorTolerance(dwTolerance:DWORD):HRESULT; stdcall;
function GetErrorTolerance(pdwTolerance:PDWORD):HRESULT; stdcall;
end;
IID_IAMClockSlave = IAMClockSlave;
const
IEMAX_FILTER_NAME = 128;
type
FILTER_INFO = record
achName: array[0..IEMAX_FILTER_NAME - 1] of WideChar;
pGraph: IFilterGraph;
end;
type
PIN_INFO = record
pFilter: IBaseFilter;
dir: integer;
achName: array[0..IEMAX_FILTER_NAME - 1] of WideChar;
end;
IGraphBuilder = interface(IFilterGraph)
['{56a868a9-0ad4-11ce-b03a-0020af0ba770}']
function Connect(ppinOut:IPin; ppinIn:IPin): HRESULT; stdcall;
function Render(ppinOut:IPin): HRESULT; stdcall;
function RenderFile: HRESULT; stdcall;
function AddSourceFilter(lpwstrFileName: PWideChar; lpwstrFilterName: PWideChar; var ppFilter: IBaseFilter): HRESULT; stdcall;
function SetLogFile: HRESULT; stdcall;
function Abort: HRESULT; stdcall;
function ShouldOperationContinue: HRESULT; stdcall;
end;
IID_IGraphBuilder = IGraphBuilder;
IFilterGraph2 = interface(IGraphBuilder)
['{36b73882-c2c8-11cf-8b46-00805f6cef60}']
function AddSourceFilterForMoniker: HRESULT; stdcall;
function ReconnectEx(ppin:IPin; pmt:PIEAM_MEDIA_TYPE): HRESULT; stdcall;
function RenderEx(pPinOut:IPin; dwFlags:DWORD; pvContext:PDWORD): HRESULT; stdcall;
end;
IID_IFilterGraph2 = IFilterGraph2;
IFileSinkFilter = interface(IUnknown)
['{a2104830-7c70-11cf-8bce-00aa00a3f1a6}']
function SetFileName: HRESULT; stdcall;
function GetCurFile: HRESULT; stdcall;
end;
IVideoWindow = interface(IDispatch)
['{56a868b4-0ad4-11ce-b03a-0020af0ba770}']
function put_Caption: HRESULT; stdcall;
function get_Caption: HRESULT; stdcall;
function put_WindowStyle: HRESULT; stdcall;
function get_WindowStyle: HRESULT; stdcall;
function put_WindowStyleEx: HRESULT; stdcall;
function get_WindowStyleEx: HRESULT; stdcall;
function put_AutoShow(AutoShow:integer ): HRESULT; stdcall;
function get_AutoShow: HRESULT; stdcall;
function put_WindowState: HRESULT; stdcall;
function get_WindowState: HRESULT; stdcall;
function put_BackgroundPalette: HRESULT; stdcall;
function get_BackgroundPalette: HRESULT; stdcall;
function put_Visible: HRESULT; stdcall;
function get_Visible: HRESULT; stdcall;
function put_Left: HRESULT; stdcall;
function get_Left: HRESULT; stdcall;
function put_Width: HRESULT; stdcall;
function get_Width: HRESULT; stdcall;
function put_Top: HRESULT; stdcall;
function get_Top: HRESULT; stdcall;
function put_Height: HRESULT; stdcall;
function get_Height: HRESULT; stdcall;
function put_Owner: HRESULT; stdcall;
function get_Owner: HRESULT; stdcall;
function put_MessageDrain: HRESULT; stdcall;
function get_MessageDrain: HRESULT; stdcall;
function get_BorderColor: HRESULT; stdcall;
function put_BorderColor: HRESULT; stdcall;
function get_FullScreenMode: HRESULT; stdcall;
function put_FullScreenMode: HRESULT; stdcall;
function SetWindowForeground: HRESULT; stdcall;
function NotifyOwnerMessage: HRESULT; stdcall;
function SetWindowPosition: HRESULT; stdcall;
function GetWindowPosition: HRESULT; stdcall;
function GetMinIdealImageSize: HRESULT; stdcall;
function GetMaxIdealImageSize: HRESULT; stdcall;
function GetRestorePosition: HRESULT; stdcall;
function HideCursor: HRESULT; stdcall;
function IsCursorHidden: HRESULT; stdcall;
end;
IID_IVideoWindow=IVideoWindow;
ICaptureGraphBuilder2 = interface(IUnknown)
['{93E5A4E0-2D50-11d2-ABFA-00A0C9C6E38D}']
function SetFiltergraph(pfg: IGraphBuilder): HRESULT; stdcall;
function GetFiltergraph: HRESULT; stdcall;
function SetOutputFileName(const pType: TGUID; lpwstrFile: PWideChar; var ppf: IBaseFilter; var pSink: IFileSinkFilter): HRESULT; stdcall;
function FindInterface(pCategory, pType: PGUID; pf: IBaseFilter; const riid: TGUID; var ppint: IUnknown): HRESULT; stdcall;
function RenderStream(pCategory: PGUID; pType: PGUID; pSource: IUnknown; pIntermediate: IBaseFilter; pSink: IBaseFilter): HRESULT; stdcall;
function ControlStream(pCategory: PGUID; pType: PGUID; pFilter: IBaseFilter; pstart: PIEREFERENCE_TIME; pstop: PIEREFERENCE_TIME; wStartCookie: word; wStopCookie: word): HRESULT; stdcall;
function AllocCapFile: HRESULT; stdcall;
function CopyCaptureFile: HRESULT; stdcall;
function FindPin(pSource: IUnknown; pindir: integer; pCategory: PGUID; pType: PGUID; fUnconnected: longbool; num: integer; var ppPin: IPin): HRESULT; stdcall;
end;
IID_ICaptureGraphBuilder2 = ICaptureGraphBuilder2;
{!!
<FS>TIEDirectShowState
<FM>Declaration<FC>
}
TIEDirectShowState = (gsStopped, gsPaused, gsRunning);
{!!}
IMediaControl = interface(IDispatch)
['{56a868b1-0ad4-11ce-b03a-0020af0ba770}']
function Run: HRESULT; stdcall;
function Pause: HRESULT; stdcall;
function Stop: HRESULT; stdcall;
function GetState(msTimeout: dword; var pfs: TIEDirectShowState): HRESULT; stdcall;
function RenderFile: HRESULT; stdcall;
function AddSourceFilter: HRESULT; stdcall;
function get_FilterCollection: HRESULT; stdcall;
function get_RegFilterCollection: HRESULT; stdcall;
function StopWhenReady: HRESULT; stdcall;
end;
IID_IMediaControl = IMediaControl;
IMediaSeeking = interface(IUnknown)
['{36b73880-c2c8-11cf-8b46-00805f6cef60}']
function GetCapabilities: HRESULT; stdcall;
function CheckCapabilities: HRESULT; stdcall;
function IsFormatSupported: HRESULT; stdcall;
function QueryPreferredFormat: HRESULT; stdcall;
function GetTimeFormat(pFormat: PGUID): HRESULT; stdcall;
function IsUsingTimeFormat: HRESULT; stdcall;
function SetTimeFormat(pFormat: PGUID): HRESULT; stdcall;
function GetDuration(pDuration: PIEREFERENCE_TIME): HRESULT; stdcall;
function GetStopPosition: HRESULT; stdcall;
function GetCurrentPosition(pCurrent: PIEREFERENCE_TIME): HRESULT; stdcall;
function ConvertTimeFormat(pTarget:PIEREFERENCE_TIME; pTargetFormat:PGUID; Source:PIEREFERENCE_TIME; pSourceFormat:PGUID): HRESULT; stdcall;
function SetPositions(pCurrent: PIEREFERENCE_TIME; dwCurrentFlags: dword; pStop: PIEREFERENCE_TIME; dwStopFlags: dword): HRESULT; stdcall;
function GetPositions(pCurrent: PIEREFERENCE_TIME; pStop: PIEREFERENCE_TIME): HRESULT; stdcall;
function GetAvailable: HRESULT; stdcall;
function SetRate(dRate: double): HRESULT; stdcall;
function GetRate(dRate: pdouble): HRESULT; stdcall;
function GetPreroll: HRESULT; stdcall;
end;
IID_IMediaSeeking = IMediaSeeking;
IMediaEvent = interface(IDispatch)
['{56a868b6-0ad4-11ce-b03a-0020af0ba770}']
function GetEventHandle: HRESULT; stdcall;
function GetEvent(var lEventCode: integer; var lParam1: integer; var lParam2: integer; msTimeout: integer): HRESULT; stdcall;
function WaitForCompletion(msTimeout: integer; var pEvCode: integer): HRESULT; stdcall;
function CancelDefaultHandling: HRESULT; stdcall;
function RestoreDefaultHandling: HRESULT; stdcall;
function FreeEventParams(lEventCode: integer; lParam1: integer; lParam2: integer): HRESULT; stdcall;
end;
IID_IMediaEvent = IMediaEvent;
IMediaEventEx = interface(IMediaEvent)
['{56a868c0-0ad4-11ce-b03a-0020af0ba770}']
function SetNotifyWindow(hwnd: THandle; lMsg: integer; lInstanceData: integer): HRESULT; stdcall;
function SetNotifyFlags: HRESULT; stdcall;
function GetNotifyFlags: HRESULT; stdcall;
end;
IID_IMediaEventEx = IMediaEventEx;
IEVIDEOINFOHEADER = record
rcSource: TRect;
rcTarget: TRect;
dwBitRate: dword;
dwBitErrorRate: dword;
AvgTimePerFrame: IEREFERENCE_TIME;
bmiHeader: TBITMAPINFOHEADER;
end;
PIEVIDEOINFOHEADER = ^IEVIDEOINFOHEADER;
IMediaSample = interface(IUnknown)
['{56a8689a-0ad4-11ce-b03a-0020af0ba770}']
function GetPointer: HRESULT; stdcall;
function GetSize: integer; stdcall;
function GetTime: HRESULT; stdcall;
function SetTime: HRESULT; stdcall;
function IsSyncPoint: HRESULT; stdcall;
function SetSyncPoint: HRESULT; stdcall;
function IsPreroll: HRESULT; stdcall;
function SetPreroll: HRESULT; stdcall;
function GetActualDataLength: integer; stdcall;
function SetActualDataLength: HRESULT; stdcall;
function GetMediaType: HRESULT; stdcall;
function SetMediaType: HRESULT; stdcall;
function IsDiscontinuity: HRESULT; stdcall;
function SetDiscontinuity: HRESULT; stdcall;
function GetMediaTime: HRESULT; stdcall;
function SetMediaTime: HRESULT; stdcall;
end;
ISampleGrabberCB = interface(IUnknown)
['{0579154A-2B53-4994-B0D0-E773148EFF85}']
function SampleCB(SampleTime: double; pSample: IMediaSample): HRESULT; stdcall;
function BufferCB(SampleTime: double; pBuffer: pbyte; BufferLen: integer): HRESULT; stdcall;
end;
ISampleGrabber = interface(IUnknown)
['{6B652FFF-11FE-4fce-92AD-0266B5D7C78F}']
function SetOneShot: HRESULT; stdcall;
function SetMediaType(pType: PIEAM_MEDIA_TYPE): HRESULT; stdcall;
function GetConnectedMediaType(pType: PIEAM_MEDIA_TYPE): HRESULT; stdcall;
function SetBufferSamples(BufferThem: longbool): HRESULT; stdcall;
function GetCurrentBuffer(pBufferSize: pinteger; pBuffer: pointer): HRESULT; stdcall;
function GetCurrentSample: HRESULT; stdcall;
function SetCallback(pCallback: ISampleGrabberCB; WhichMethodToCallback: integer): HRESULT; stdcall;
end;
IID_ISampleGrabber = ISampleGrabber;
{!!
<FS>TIETimeFormat
<FM>Declaration<FC>
}
TIETimeFormat = (tfNone, tfFrame, tfSample, tfField, tfByte, tfTime);
{!!}
TIESampleGrabberCB = class(TInterfacedObject, ISampleGrabberCB)
private
fOwner: TObject; // a TIEDirectShow object
public
constructor Create(Owner: TObject);
destructor Destroy; override;
function SampleCB(SampleTime: double; pSample: IMediaSample): HRESULT; stdcall;
function BufferCB(SampleTime: double; pBuffer: pbyte; BufferLen: integer): HRESULT; stdcall;
end;
IAMStreamConfig = interface(IUnknown)
['{C6E13340-30AC-11d0-A18C-00A0C9118956}']
function SetFormat(pmt: PIEAM_MEDIA_TYPE): HRESULT; stdcall;
function GetFormat(var ppmt: PIEAM_MEDIA_TYPE): HRESULT; stdcall;
function GetNumberOfCapabilities(var piCount, piSize: Integer): HRESULT; stdcall;
function GetStreamCaps(iIndex: Integer; var ppmt: PIEAM_MEDIA_TYPE; pSCC: pointer): HRESULT; stdcall;
end;
IID_IAMStreamConfig = IAMStreamConfig;
IAMCrossbar = interface(IUnknown)
['{C6E13380-30AC-11d0-A18C-00A0C9118956}']
function get_PinCounts(var OutputPinCount: integer; var InputPinCount: integer): HRESULT; stdcall;
function CanRoute(OutputPinIndex: integer; InputPinIndex: integer): HRESULT; stdcall;
function Route(OutputPinIndex: integer; InputPinIndex: integer): HRESULT; stdcall;
function get_IsRoutedTo(OutputPinIndex: integer; var InputPinIndex: integer): HRESULT; stdcall;
function get_CrossbarPinInfo(IsInputPin: longbool; PinIndex: integer; var PinIndexRelated: integer; var PhysicalType: integer): HRESULT; stdcall;
end;
IID_IAMCrossBar = IAMCrossBar;
IAMTuner = interface(IUnknown)
['{211A8761-03AC-11d1-8D13-00AA00BD8339}']
function put_Channel(lChannel: integer; lVideoSubChannel: integer; lAudioSubChannel: integer): HRESULT; stdcall;
function get_Channel(var plChannel: integer; var plVideoSubChannel: integer; var plAudioSubChannel: integer): HRESULT; stdcall;
function ChannelMinMax: HRESULT; stdcall;
function put_CountryCode: HRESULT; stdcall;
function get_CountryCode: HRESULT; stdcall;
function put_TuningSpace(lTuningSpace: integer): HRESULT; stdcall;
function get_TuningSpace: HRESULT; stdcall;
function Logon: HRESULT; stdcall;
function Logout: HRESULT; stdcall;
function SignalPresent(var plSignalStrength: integer): HRESULT; stdcall;
function put_Mode: HRESULT; stdcall;
function get_Mode: HRESULT; stdcall;
function GetAvailableModes: HRESULT; stdcall;
function RegisterNotificationCallBack: HRESULT; stdcall;
function UnRegisterNotificationCallBack: HRESULT; stdcall;
end;
IID_IAMTuner = IAMTuner;
IAMTVTuner = interface(IAMTuner)
['{211A8766-03AC-11d1-8D13-00AA00BD8339}']
function get_AvailableTVFormats: HRESULT; stdcall;
function get_TVFormat: HRESULT; stdcall;
function AutoTune(lChannel: integer; var plFoundSignal: integer): HRESULT; stdcall;
function StoreAutoTune: HRESULT; stdcall;
function get_NumInputConnections: HRESULT; stdcall;
function put_InputType: HRESULT; stdcall;
function get_InputType: HRESULT; stdcall;
function put_ConnectInput: HRESULT; stdcall;
function get_ConnectInput: HRESULT; stdcall;
function get_VideoFrequency: HRESULT; stdcall;
function get_AudioFrequency: HRESULT; stdcall;
end;
IID_IAMTVTuner = IAMTVTuner;
IVideoFrameStep = interface(IUnknown)
['{e46a9787-2b71-444d-a4b5-1fab7b708d6a}']
function Step(dwFrames:DWORD; pStepObject:IUnknown):HRESULT; stdcall;
function CanStep(bMultiple:integer; pStepObject:IUnknown):HRESULT; stdcall;
function CancelStep:HRESULT; stdcall;
end;
IID_IVideoFrameStep = IVideoFrameStep;
IMediaDet = interface(IUnknown)
['{65BD0710-24D2-4ff7-9324-ED2E5D3ABAFA}']
function get_Filter(var pVal:IUnknown):HRESULT; stdcall;
function put_Filter(newVal:IUnknown ):HRESULT; stdcall;
function get_OutputStreams(pVal:pinteger):HRESULT; stdcall;
function get_CurrentStream(pVal:pinteger):HRESULT; stdcall;
function put_CurrentStream(newVal:integer):HRESULT; stdcall;
function get_StreamType(pVal:PGUID):HRESULT; stdcall;
function get_StreamTypeB(var pVal:PWideChar):HRESULT; stdcall;
function get_StreamLength(pVal:pdouble):HRESULT; stdcall;
function get_Filename(var pVal:PWideChar):HRESULT; stdcall;
function put_Filename(newVal:PWideChar):HRESULT; stdcall;
function GetBitmapBits(
StreamTime:double;
pBufferSize:pinteger;
pBuffer:pchar;
Width:integer;
Height:integer):HRESULT; stdcall;
function WriteBitmapBits(
StreamTime:double;
Width:integer;
Height:integer;
Filename:PWideChar):HRESULT; stdcall;
function get_StreamMediaType(pVal:PIEAM_MEDIA_TYPE):HRESULT; stdcall;
function GetSampleGrabber(var ppVal:ISampleGrabber):HRESULT; stdcall;
function get_FrameRate(pVal:pdouble):HRESULT; stdcall;
function EnterBitmapGrabMode(SeekTime:double):HRESULT; stdcall;
end;
IID_IMediaDet = IMediaDet;
IVMRWindowlessControl = interface(IUnknown)
['{0eb1088c-4dcd-46f0-878f-39dae86a51b7}']
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -