⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ieds.pas

📁 ·ImageEn 2.3.0 ImageEn一组用于图像处理、查看和分析的Delphi控件。能够保存几种图像格式
💻 PAS
📖 第 1 页 / 共 5 页
字号:
(*
Copyright (c) 1998-2007 by HiComponents. All rights reserved.

This software comes without express or implied warranty.
In no case shall the author be liable for any damage or unwanted behavior of any
computer hardware and/or software.

HiComponents grants you the right to include the compiled component
in your application, whether COMMERCIAL, SHAREWARE, or FREEWARE,
BUT YOU MAY NOT DISTRIBUTE THIS SOURCE CODE OR ITS COMPILED .DCU IN ANY FORM.

ImageEn, IEvolution and ImageEn ActiveX may not be included in any commercial,
shareware or freeware libraries or components.

email: support@hicomponents.com

http://www.hicomponents.com
*)

unit ieds;

{$R-}
{$Q-}

{$I ie.inc}

interface

{$IFDEF IEINCLUDEDIRECTSHOW}

uses Windows, Classes, Sysutils, Graphics, hyieutils, hyiedefs, iewia, imageenproc, dialogs;

const
  IEEC_COMPLETE = $01;
  IEEC_USERABORT = $02;
  IEEC_ERRORABORT = $03;
  IEEC_TIME = $04;
  IEEC_REPAINT = $05;
  IEEC_STREAM_ERROR_STOPPED = $06;
  IEEC_STREAM_ERROR_STILLPLAYING = $07;
  IEEC_ERROR_STILLPLAYING = $08;
  IEEC_PALETTE_CHANGED = $09;
  IEEC_VIDEO_SIZE_CHANGED = $0A;
  IEEC_QUALITY_CHANGE = $0B;
  IEEC_SHUTTING_DOWN = $0C;
  IEEC_CLOCK_CHANGED = $0D;
  IEEC_PAUSED = $0E;
  IEEC_OPENING_FILE = $10;
  IEEC_BUFFERING_DATA = $11;
  IEEC_FULLSCREEN_LOST = $12;
  IEEC_ACTIVATE = $13;
  IEEC_NEED_RESTART = $14;
  IEEC_WINDOW_DESTROYED = $15;
  IEEC_DISPLAY_CHANGED = $16;
  IEEC_STARVATION = $17;
  IEEC_OLE_EVENT = $18;
  IEEC_NOTIFY_WINDOW = $19;
  IEEC_STREAM_CONTROL_STOPPED = $1A;
  IEEC_STREAM_CONTROL_STARTED = $1B;
  IEEC_END_OF_SEGMENT = $1C;
  IEEC_SEGMENT_STARTED = $1D;
  IEEC_LENGTH_CHANGED = $1E;
  IEEC_DEVICE_LOST = $1F;
  IEEC_STEP_COMPLETE = $24;
  IEEC_SKIP_FRAMES = $25;
  IEEC_TIMECODE_AVAILABLE = $30;
  IEEC_EXTDEVICE_MODE_CHANGE = $31;
  IEEC_GRAPH_CHANGED = $50;
  IEEC_CLOCK_UNSET = $51;

type

{!!
<FS>TIETVStandard

<FM>Declaration<FC>
}
  TIETVStandard = (ievsNONE, ievsNTSC_M, ievsNTSC_M_J, ievsNTSC_433, ievsPAL_B, ievsPAL_D, ievsPAL_H, ievsPAL_I, ievsPAL_M, ievsPAL_N, ievsPAL_60, ievsSECAM_B, ievsSECAM_D, ievsSECAM_G, ievsSECAM_H, ievsSECAM_K, ievsSECAM_K1, ievsSECAM_L, ievsSECAM_L1, ievsPAL_N_COMBO);
{!!}

{!!
<FS>TIETVStandards

<FM>Declaration<FC>
TIETVStandards = set of <A TIETVStandard>;
!!}
  TIETVStandards = set of TIETVStandard;

  IEREFERENCE_TIME = packed record
    lo32: dword;
    hi32: dword;
  end;
  PIEREFERENCE_TIME = ^IEREFERENCE_TIME;

  IEAM_MEDIA_TYPE = record
    majortype: TGUID;
    subtype: TGUID;
    bFixedSizeSamples: longbool;
    bTemporalCompression: longbool;
    lSampleSize: dword;
    formattype: TGUID;
    pUnk: IUnknown;
    cbFormat: dword;
    pbFormat: pbyte;
  end;

  PIEAM_MEDIA_TYPE = ^IEAM_MEDIA_TYPE;

  IIESequentialStream = interface(IUnknown)
    ['{0c733a30-2a1c-11ce-ade5-00aa0044773d}']
    function Read: HResult; stdcall;
    function Write: HResult; stdcall;
  end;

  IIEStream = interface(IIESequentialStream)
    ['{0000000C-0000-0000-C000-000000000046}']
    function Seek: HResult; stdcall;
    function SetSize: HResult; stdcall;
    function CopyTo: HResult; stdcall;
    function Commit: HResult; stdcall;
    function Revert: HResult; stdcall;
    function LockRegion: HResult; stdcall;
    function UnlockRegion: HResult; stdcall;
    function Stat: HResult; stdcall;
    function Clone: HResult; stdcall;
  end;

  IIEStorage = interface(IUnknown)
    ['{0000000B-0000-0000-C000-000000000046}']
    function CreateStream(pwcsName: PWideChar; grfMode: Longint; reserved1: Longint; reserved2: Longint; out stm: IIEStream): HResult; stdcall;
    function OpenStream: HResult; stdcall;
    function CreateStorage: HResult; stdcall;
    function OpenStorage: HResult; stdcall;
    function CopyTo: HResult; stdcall;
    function MoveElementTo: HResult; stdcall;
    function Commit(grfCommitFlags: Longint): HResult; stdcall;
    function Revert: HResult; stdcall;
    function EnumElements: HResult; stdcall;
    function DestroyElement: HResult; stdcall;
    function RenameElement: HResult; stdcall;
    function SetElementTimes: HResult; stdcall;
    function SetClass: HResult; stdcall;
    function SetStateBits: HResult; stdcall;
    function Stat: HResult; stdcall;
  end;

  IIEPersist = interface(IUnknown)
    ['{0000010C-0000-0000-C000-000000000046}']
    function GetClassID (*(out classID: TCLSID)*): HResult; stdcall;
  end;

  IIEPersistStream = interface(IIEPersist)
    ['{00000109-0000-0000-C000-000000000046}']
    function IsDirty: HResult; stdcall;
    function Load(const stm: IIEStream): HResult; stdcall;
    function Save(const stm: IIEStream; fClearDirty: BOOL): HResult; stdcall;
    function GetSizeMax: HResult; stdcall;
  end;
  IID_IIEPersistStream = IIEPersistStream;

  IIEEnumMoniker = interface(IUnknown)
    ['{00000102-0000-0000-C000-000000000046}']
    function Next(celt: Longint; out elt; pceltFetched: pointer(*PLongint*)): HResult; stdcall;
    function Skip (*(celt: Longint)*): HResult; stdcall;
    function Reset: HResult; stdcall;
    function Clone (*(out enm: IEnumMoniker)*): HResult; stdcall;
  end;

  IIEBindCtx = interface(IUnknown)
    ['{0000000E-0000-0000-C000-000000000046}']
    function RegisterObjectBound (*(const unk: IUnknown)*): HResult; stdcall;
    function RevokeObjectBound (*(const unk: IUnknown)*): HResult; stdcall;
    function ReleaseBoundObjects: HResult; stdcall;
    function SetBindOptions (*(const bindopts: TBindOpts)*): HResult; stdcall;
    function GetBindOptions (*(var bindopts: TBindOpts)*): HResult; stdcall;
    function GetRunningObjectTable (*(out rot: IRunningObjectTable)*): HResult; stdcall;
    function RegisterObjectParam (*(pszKey: POleStr; const unk: IUnknown)*): HResult; stdcall;
    function GetObjectParam (*(pszKey: POleStr; out unk: IUnknown)*): HResult; stdcall;
    function EnumObjectParam (*(out Enum: IEnumString)*): HResult; stdcall;
    function RevokeObjectParam (*(pszKey: POleStr)*): HResult; stdcall;
  end;

  IIEMoniker = interface(IIEPersistStream)
    ['{0000000F-0000-0000-C000-000000000046}']
    function BindToObject(const bc: IIEBindCtx; const mkToLeft: IIEMoniker; const iidResult: TGUID; out vResult): HResult; stdcall;
    function BindToStorage(const bc: IIEBindCtx; const mkToLeft: IIEMoniker; const iid: TGUID; out vObj): HResult; stdcall;
    function Reduce (*(const bc: IBindCtx; dwReduceHowFar: Longint; mkToLeft: PIMoniker; out mkReduced: IMoniker)*): HResult; stdcall;
    function ComposeWith (*(const mkRight: IMoniker; fOnlyIfNotGeneric: BOOL; out mkComposite: IMoniker)*): HResult; stdcall;
    function Enum (*(fForward: BOOL; out enumMoniker: IEnumMoniker)*): HResult; stdcall;
    function IsEqual (*(const mkOtherMoniker: IMoniker)*): HResult; stdcall;
    function Hash (*(out dwHash: Longint)*): HResult; stdcall;
    function IsRunning (*(const bc: IBindCtx; const mkToLeft: IMoniker; const mkNewlyRunning: IMoniker)*): HResult; stdcall;
    function GetTimeOfLastChange (*(const bc: IBindCtx; const mkToLeft: IMoniker; out filetime: TFileTime)*): HResult; stdcall;
    function Inverse (*(out mk: IMoniker)*): HResult; stdcall;
    function CommonPrefixWith (*(const mkOther: IMoniker; out mkPrefix: IMoniker)*): HResult; stdcall;
    function RelativePathTo (*(const mkOther: IMoniker; out mkRelPath: IMoniker)*): HResult; stdcall;
    function GetDisplayName (*(const bc: IBindCtx; const mkToLeft: IMoniker; out pszDisplayName: POleStr)*): HResult; stdcall;
    function ParseDisplayName (*(const bc: IBindCtx; const mkToLeft: IMoniker; pszDisplayName: POleStr; out chEaten: Longint; out mkOut: IMoniker)*): HResult; stdcall;
    function IsSystemMoniker (*(out dwMksys: Longint)*): HResult; stdcall;
  end;

  IIECreateDevEnum = interface(IUnknown)
    ['{29840822-5B84-11D0-BD3B-00A0C911CE86}']
    function CreateClassEnumerator(const clsidDeviceClass: TGUID; var ppEnumMoniker: IIEEnumMoniker; dwFlags: DWORD): HRESULT; stdcall;
  end;
  IID_IIECreateDevEnum = IIECreateDevEnum;

  IIEErrorLog = interface
    ['{3127CA40-446E-11CE-8135-00AA004BB851}']
    function AddError (*(pszPropName: POleStr; pExcepInfo: PExcepInfo)*): HResult; stdcall;
  end;

  TIECAGUID = record
    cElems: Longint;
    pElems: pointer;
  end;

  IIESpecifyPropertyPages = interface(IUnknown)
    ['{B196B28B-BAB4-101A-B69C-00AA00341D07}']
    function GetPages(out pages: TIECAGUID): HResult; stdcall;
  end;
  IID_IIESpecifyPropertyPages = IIESpecifyPropertyPages;

  IAMVideoCompression = interface(IUnknown)
    ['{C6E13343-30AC-11d0-A18C-00A0C9118956}']
    function put_KeyFrameRate(KeyFrameRate: integer): HRESULT; stdcall;
    function get_KeyFrameRate(var pKeyFrameRate: integer): HRESULT; stdcall;
    function put_PFramesPerKeyFrame: HRESULT; stdcall;
    function get_PFramesPerKeyFrame: HRESULT; stdcall;
    function put_Quality(Quality: double): HRESULT; stdcall;
    function get_Quality(var pQuality: double): HRESULT; stdcall;
    function put_WindowSize: HRESULT; stdcall;
    function get_WindowSize: HRESULT; stdcall;
    function GetInfo: HRESULT; stdcall;
    function OverrideKeyFrame: HRESULT; stdcall;
    function OverrideFrameSize: HRESULT; stdcall;
  end;
  IID_IAMVideoCompression = IAMVideoCompression;

  IReferenceClock = interface(IUnknown)
    ['{56a86897-0ad4-11ce-b03a-0020af0ba770}']
    function GetTime:HRESULT; stdcall;
    function AdviseTime:HRESULT; stdcall;
    function AdvisePeriodic:HRESULT; stdcall;
    function Unadvise:HRESULT; stdcall;
  end;
  IID_IReferenceClock = IReferenceClock;

  IIEPropertyBag = interface
    ['{55272A00-42CB-11CE-8135-00AA004BB851}']
    function Read(pszPropName: PWideChar; var pvar: OleVariant; const pErrorLog: IIEErrorLog): HResult; stdcall;
    function Write (*(pszPropName: POleStr; const pvar: OleVariant)*): HResult; stdcall;
  end;
  IID_IIEPropertyBag = IIEPropertyBag;

  IMediaFilter = interface(IIEPersist)
    ['{56a86899-0ad4-11ce-b03a-0020af0ba770}']
    function Stop: HRESULT; stdcall;
    function Pause: HRESULT; stdcall;
    function Run: HRESULT; stdcall;
    function GetState: HRESULT; stdcall;
    function SetSyncSource(pClock:IReferenceClock): HRESULT; stdcall;
    function GetSyncSource: HRESULT; stdcall;
  end;
  IID_IMediaFilter = IMediaFilter;

  IPin = interface(IUnknown)
    ['{56a86891-0ad4-11ce-b03a-0020af0ba770}']
    function Connect(pReceivePin:IPin; pmt:PIEAM_MEDIA_TYPE): HRESULT; stdcall;
    function ReceiveConnection: HRESULT; stdcall;
    function Disconnect: HRESULT; stdcall;
    function ConnectedTo(var ppPin:IPin): HRESULT; stdcall;
    function ConnectionMediaType(pmt:PIEAM_MEDIA_TYPE): HRESULT; stdcall;
    function QueryPinInfo(pInfo: pointer): HRESULT; stdcall;
    function QueryDirection: HRESULT; stdcall;
    function QueryId: HRESULT; stdcall;
    function QueryAccept: HRESULT; stdcall;
    function EnumMediaTypes: HRESULT; stdcall;
    function QueryInternalConnections: HRESULT; stdcall;
    function EndOfStream: HRESULT; stdcall;
    function BeginFlush: HRESULT; stdcall;
    function EndFlush: HRESULT; stdcall;
    function NewSegment: HRESULT; stdcall;
  end;

  IEnumPins = interface(IUnknown)
    ['{56a86892-0ad4-11ce-b03a-0020af0ba770}']
    function Next(cPins: integer; var ppPins: IPin; var pcFetched: integer): HRESULT; stdcall;
    function Skip: HRESULT; stdcall;
    function Reset: HRESULT; stdcall;
    function Clone: HRESULT; stdcall;
  end;

  IBaseFilter = interface(IMediaFilter)
    ['{56a86895-0ad4-11ce-b03a-0020af0ba770}']
    function EnumPins(var ppEnum: IEnumPins): HRESULT; stdcall;
    function FindPin: HRESULT; stdcall;
    function QueryFilterInfo(pInfo: pointer): HRESULT; stdcall;
    function JoinFilterGraph: HRESULT; stdcall;
    function QueryVendorInfo: HRESULT; stdcall;
  end;
  IID_BaseFilter = IBaseFilter;

  IFilterGraph = interface(IUnknown)
    ['{56a8689f-0ad4-11ce-b03a-0020af0ba770}']
    function AddFilter(pFilter: IBaseFilter; pName: PWideChar): HRESULT; stdcall;
    function RemoveFilter(pFilter:IBaseFilter): HRESULT; stdcall;
    function EnumFilters: HRESULT; stdcall;
    function FindFilterByName(pName:PWideChar; var ppFilter:IBaseFilter): HRESULT; stdcall;
    function ConnectDirect(ppinOut:IPin; ppinIn:IPin; pmt:PIEAM_MEDIA_TYPE): HRESULT; stdcall;
    function Reconnect(ppin:IPin): HRESULT; stdcall;
    function Disconnect(ppin:IPin): HRESULT; stdcall;
    function SetDefaultSyncSource: HRESULT; stdcall;
  end;
  IID_IFilterGraph = IFilterGraph;

  IAMAnalogVideoDecoder = interface(IUnknown)
    ['{C6E13350-30AC-11d0-A18C-00A0C9118956}']
    function get_AvailableTVFormats( lAnalogVideoStandard:plongint):HRESULT; stdcall;
    function put_TVFormat( lAnalogVideoStandard:longint):HRESULT; stdcall;
    function get_TVFormat( plAnalogVideoStandard:plongint):HRESULT; stdcall;
    function get_HorizontalLocked( plLocked:plongint):HRESULT; stdcall;
    function put_VCRHorizontalLocking( lVCRHorizontalLocking:longint):HRESULT; stdcall;
    function get_VCRHorizontalLocking( plVCRHorizontalLocking:plongint):HRESULT; stdcall;
    function get_NumberOfLines( plNumberOfLines:plongint):HRESULT; stdcall;
    function put_OutputEnable( lOutputEnable:longint):HRESULT; stdcall;
    function get_OutputEnable( plOutputEnable:plongint):HRESULT; stdcall;
  end;
  IID_IAMAnalogVideoDecoder = IAMAnalogVideoDecoder;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -