main.pas
上传用户:hylc_2004
上传日期:2014-01-23
资源大小:46800k
文件大小:1k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1. unit main;
  2. interface
  3. uses BaseClass, ActiveX, DirectShow9, Windows;
  4. const
  5.   CLSID_MyClass : TGUID = '{90A70CF4-A445-4211-B962-308054E93023}';
  6.   MyPinTypes : TRegPinTypes =
  7.     (clsMajorType: @MEDIATYPE_NULL;
  8.      clsMinorType: @MEDIASUBTYPE_NULL);
  9.   MyPins : array[0..1] of TRegFilterPins =
  10.     ((strName: 'Input'; bRendered: FALSE; bOutput: FALSE; bZero: FALSE; bMany: FALSE; oFilter: nil; strConnectsToPin: nil; nMediaTypes: 1; lpMediaType: @MyPinTypes),
  11.      (strName: 'Output'; bRendered: FALSE; bOutput: TRUE; bZero: FALSE; bMany: FALSE; oFilter: nil; strConnectsToPin: nil; nMediaTypes: 1; lpMediaType: @MyPinTypes));
  12. type
  13.   TMyClass = class(TBCTransInPlaceFilter)
  14.     // Overrides the PURE virtual Transform of CTransInPlaceFilter base class
  15.     // This is where the "real work" is done by altering *pSample.
  16.     // We do the Null transform by leaving it alone.
  17.     function Transform(Sample: IMediaSample): HRESULT; override;
  18.     // We accept any input type.  We'd return S_FALSE for any we didn't like.
  19.     function CheckInputType(mtin: PAMMediaType): HRESULT; override;
  20.   end;
  21. implementation
  22. { TMyClass }
  23. function TMyClass.CheckInputType(mtin: PAMMediaType): HRESULT;
  24. begin
  25.   result := S_OK;
  26. end;
  27. function TMyClass.Transform(Sample: IMediaSample): HRESULT;
  28. begin
  29.   result := NOERROR;
  30. end;
  31. initialization
  32.   TBCClassFactory.CreateFilter(TMyClass, 'Null-Null', CLSID_MyClass,
  33.     CLSID_LegacyAmFilterCategory, MERIT_DO_NOT_USE, 2, @MyPins);
  34. end.