亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? main.pas

?? 一套及時(shí)通訊的原碼
?? PAS
字號:
// *****************************************************************************
// Author: komarov andrey.
// Email: komar@elecard.net.ru
// This filter is a useful debugging tool. For example, you can verify,
// bit by bit, the results of a transform filter. You can build a graph
// manually by using GraphEdit, and connect the Dump filter to the output
// of a transform filter or any other output pin.
// *****************************************************************************

unit Main;

interface
uses BaseClass, DirectShow9, ActiveX, Windows, classes, Dialogs, Sysutils;

const CLSID_DumpNew : TGUID = '{62E78A56-7B3A-4CF0-B751-712B00C8E578}';

MyPinType: TRegPinTypes =
    (clsMajorType: @MEDIATYPE_NULL;
     clsMinorType: @MEDIASUBTYPE_NULL);

MyPins : array[0..0] of TRegFilterPins =
    ((strName: 'Input'; bRendered: FALSE; bOutput: FALSE; bZero: FALSE; bMany: FALSE;
      oFilter: nil; strConnectsToPin: nil; nMediaTypes: 1; lpMediaType: @MyPinType));

Type
  TDump = class;

  TMyPin = Class (TBCRenderedInputPin)  //TBCBasePin
  private
    FLast: TReferenceTime;
  {$IFDEF DEBUG}
    FDump: TDump;
  {$ENDIF}
    FFile: integer;
  public
    mF:string;
    constructor Create(ObjectName: string; pUnk: IUnKnown; Filter: TBCBaseFilter;
      Lock: TBCCritSec; out hr: HRESULT; Name: WideString; mpFileN:string);
    function CheckMediaType(mt: PAMMediaType): HRESULT; override;
    function Receive(pSample: IMediaSample): HRESULT; override;
    function EndOfStream: HRESULT; override;
    function BreakConnect: HRESULT; override;
    procedure OpenFile;
    Procedure CloseFile;
  end;

  /////////////////// Dump Class ////////////////////
  TDump = class (TBCBaseFilter,IFileSinkFilter)
  private
    xxx: integer;
    yyy: integer;
    FPin: TMyPin;
    FfileName: String;
  protected
    function SetFileName(pszFileName: PWideChar; pmt: PAMMediaType): HRESULT; stdcall;
    function GetCurFile(out ppszFileName: PWideChar; pmt: PAMMediaType): HRESULT; stdcall;
  public
    function Stop: HRESULT; override;
    function Run(tStart: TReferenceTime): HRESULT; override;
    function GetPin(n: Integer): TBCBasePin; override;
    constructor Create(Name: string;           // Object description
                      Unk : IUnKnown;         // IUnknown of delegating object
                      Lock: TBCCritSec;       // Object who maintains lock
                      const clsid: TGUID      // The clsid to be used to serialize this filter
                      );
    function GetPinCount: integer; override;
  end;

implementation

procedure TMyPin.CloseFile;
begin
  FileClose(FFile);
end;

procedure TMyPin.OpenFile;
begin
  FFile := FileCreate(mF);
end;

constructor TMyPin.Create(ObjectName: string;pUnk: IUnKnown; Filter: TBCBaseFilter;
      Lock: TBCCritSec; out hr: HRESULT; Name: WideString; mpFileN:string);
begin
  inherited Create(ObjectName, Filter, Lock, hr, Name);
  mF := mpFileN;
  OpenFile;
  CloseFile;
  FLast := 0;
end;

function TMyPin.BreakConnect: HRESULT;
begin
  result := inherited BreakConnect;
end;

function TDump.Stop: HRESULT;
begin
  FPin.CloseFile;
  result := inherited Stop;
end;

function TMyPin.EndOfStream: HRESULT;
begin
 result := inherited EndOfStream;
end;

function TDump.Run(tStart: TReferenceTime): HRESULT;
begin
  FPin.OpenFile;
  result := inherited Run(tStart);
end;

function TMyPin.Receive(pSample: IMediaSample): HRESULT;
var
  pbData: PBYTE;
  tStart, tStop: TREFERENCETIME;
begin
  pSample.GetTime(tStart,tStop);
{$IFDEF DEBUG}
  DbgLog(FDump,'Komar');
{$ENDIF}
  pSample.GetPointer(pbData);
  FileWrite(FFile, pbData^, pSample.GetActualDataLength);
  result := S_OK;
end;

function TMyPin.CheckMediaType(mt: PAMMediaType): HRESULT;
begin
  result := S_OK;
end;

function TDump.GetPinCount: integer;
begin
  result := 1;
end;

constructor TDump.Create(Name: string;         // Object description
                       Unk : IUnKnown;         // IUnknown of delegating object
                       Lock: TBCCritSec;       // Object who maintains lock
                       const clsid: TGUID      // The clsid to be used to serialize this filter
                       );
begin
  inherited create(Name,Unk,Lock,CLSID_DumpNew);
end;

function TDump.GetPin(n: Integer): TBCBasePin;
var
  hr: HRESULT;
begin
  if (xxx = 0) then
  begin
    xxx := 1;
    FPin := TMyPin.Create('Null input pin', GetOwner, self, TBCCritSec.Create, hr, 'Input', FfileName);//,PINDIR_INPUT);
  end;
  result := FPin;
end;

function TDump.SetFileName(pszFileName: PWideChar; pmt: PAMMediaType): HRESULT;
begin
  if Length(pszFileName) > MAX_PATH then
  begin
    result := ERROR_FILENAME_EXCED_RANGE;
    exit;
  end;
  FFileName := copy(pszFileName, 1, Length(pszFileName));
  if (yyy > 0) then
  begin
    FPin.CloseFile;
    FPin.mF := FFileName;
    FPin.OpenFile;
    FPin.CloseFile;
  end;
  inc(YYY);
  if FfileName = '' then
    Result := E_OUTOFMEMORY
  else
    result:=S_OK;
end;

function TDump.GetCurFile(out ppszFileName: PWideChar; pmt: PAMMediaType): HRESULT;
begin
  ppszFileName := StringToOleStr(copy(FfileName, 1, Length(FfileName)));
  pmt.majortype := MEDIATYPE_NULL;
  pmt.subtype := MEDIASUBTYPE_NULL;
  result := S_OK;
end;

initialization
  TBCClassFactory.CreateFilter(TDump, 'Dump New', CLSID_DumpNew,
    CLSID_LegacyAmFilterCategory, MERIT_DO_NOT_USE, 1, @MyPins);
end.

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久综合色综合88| 成人av资源网站| 亚洲综合av网| 国产精品国产三级国产aⅴ入口| 精品国产电影一区二区| 欧美一区二区播放| 欧美一区二区福利视频| 日韩欧美中文字幕公布| 久久综合久久99| 国产精品乱人伦| 最近中文字幕一区二区三区| 日韩毛片高清在线播放| 艳妇臀荡乳欲伦亚洲一区| 亚洲一区二区四区蜜桃| 亚洲福利一二三区| 卡一卡二国产精品 | 亚洲欧美日韩国产手机在线 | 欧美最新大片在线看| 在线观看日韩av先锋影音电影院| 成人av电影在线观看| 99久久99久久精品国产片果冻| 成人小视频在线观看| 一本一本大道香蕉久在线精品 | 亚洲国产视频在线| 不卡的av电影在线观看| 色婷婷精品久久二区二区蜜臀av| 欧美日韩一区不卡| 久久免费看少妇高潮| 亚洲色图一区二区| 视频一区视频二区在线观看| 国产老妇另类xxxxx| 色94色欧美sute亚洲线路二| 3d动漫精品啪啪一区二区竹菊| 久久久综合视频| 亚洲激情六月丁香| 国产麻豆精品一区二区| 在线免费观看视频一区| 久久精品男人天堂av| 亚洲人成网站精品片在线观看| 蜜桃在线一区二区三区| av中文字幕一区| 日韩美女在线视频| 亚洲一区二区三区在线播放| 国产一区二区三区免费在线观看| 色八戒一区二区三区| 久久久国际精品| 秋霞电影网一区二区| 91国产精品成人| 中文字幕高清一区| 精品一区二区三区香蕉蜜桃| 色一区在线观看| 欧美国产日韩亚洲一区| www.成人网.com| 久久婷婷国产综合精品青草 | 麻豆精品视频在线观看| 色偷偷久久人人79超碰人人澡 | 色播五月激情综合网| 日本一区二区三区高清不卡 | 91丨九色丨蝌蚪丨老版| 国产亚洲精品中文字幕| 午夜伦欧美伦电影理论片| 91丨porny丨户外露出| 久久久不卡网国产精品一区| 久久黄色级2电影| 日韩一区二区三区视频在线观看| 亚洲一区二区3| 色香色香欲天天天影视综合网| 国产精品视频一区二区三区不卡| 奇米精品一区二区三区四区| 精品视频在线看| 亚洲午夜激情网页| 91网上在线视频| 国产精品美女久久久久aⅴ| 国产91在线看| 国产精品久久久久一区二区三区| 国产一区二区三区四| 欧美日韩在线播放| 日韩av一区二| 欧美一级午夜免费电影| 天天亚洲美女在线视频| 欧美一级高清片| 国产一区二区女| 国产亚洲欧美色| 国产91高潮流白浆在线麻豆| 中文幕一区二区三区久久蜜桃| 成人免费黄色大片| 日韩一区欧美一区| 欧美色男人天堂| 欧美aaaaa成人免费观看视频| 欧美视频精品在线观看| 全部av―极品视觉盛宴亚洲| 2021国产精品久久精品| 国产精品69毛片高清亚洲| 国产精品国产自产拍高清av王其| av日韩在线网站| 亚洲成人一二三| 精品国产髙清在线看国产毛片| 粉嫩av一区二区三区粉嫩| 国产精品久久久久久久蜜臀| 在线观看亚洲精品| 久久99日本精品| 亚洲日本va午夜在线电影| 欧美美女一区二区在线观看| 久久se精品一区精品二区| 欧美激情综合五月色丁香| 色噜噜狠狠色综合中国| 久久精品久久综合| 亚洲少妇中出一区| 日韩午夜av电影| 91在线视频免费91| 老司机午夜精品| 亚洲精品综合在线| 久久久青草青青国产亚洲免观| 97se亚洲国产综合在线| 美腿丝袜亚洲综合| 亚洲激情中文1区| 国产日本欧美一区二区| 欧美日韩三级在线| 国产suv精品一区二区6| 无码av免费一区二区三区试看 | 欧美色男人天堂| 国产高清不卡一区| 日本sm残虐另类| 亚洲一区在线播放| www.一区二区| 日韩国产在线一| 一区二区三区在线视频观看58| 91精品国产入口| 欧美性色黄大片手机版| 成人国产免费视频| 精品一区二区三区不卡 | 久久亚洲捆绑美女| 91精品欧美福利在线观看| 色嗨嗨av一区二区三区| 夫妻av一区二区| 国产剧情一区二区三区| 秋霞电影一区二区| 亚洲电影中文字幕在线观看| 综合久久久久久| 欧美国产禁国产网站cc| 国产亚洲欧洲一区高清在线观看| 日韩一区国产二区欧美三区| 欧美精品视频www在线观看| 色噜噜久久综合| 在线观看精品一区| 波多野结衣中文一区| 亚洲国产精品久久艾草纯爱| 国产精品福利影院| **欧美大码日韩| 亚洲少妇屁股交4| 亚洲另类一区二区| 夜夜揉揉日日人人青青一国产精品| 综合在线观看色| 一区二区三区四区在线免费观看| 亚洲欧洲另类国产综合| 亚洲伦理在线免费看| 亚洲美女区一区| 亚洲成人av资源| 麻豆freexxxx性91精品| 久久国产精品免费| 国产精品一区二区久久不卡| 国产不卡在线播放| www.欧美.com| 欧美性xxxxxx少妇| 4438成人网| 中文字幕免费不卡在线| 亚洲美女少妇撒尿| 日韩专区中文字幕一区二区| 麻豆视频观看网址久久| 国产伦精一区二区三区| aaa欧美日韩| 欧美精品丝袜久久久中文字幕| 日韩视频免费观看高清完整版| 精品国产网站在线观看| 国产女人aaa级久久久级 | 久久综合综合久久综合| 福利电影一区二区三区| 91极品视觉盛宴| 精品欧美黑人一区二区三区| 中日韩免费视频中文字幕| 亚洲成在线观看| 国产91精品欧美| 欧美福利一区二区| 国产精品视频你懂的| 亚洲成人综合网站| 国产a区久久久| 欧美电影在哪看比较好| 久久精品人人爽人人爽| 亚洲www啪成人一区二区麻豆| 国产精品一卡二| 欧美精品在线一区二区| 国产精品免费看片| 日本 国产 欧美色综合| 91免费观看国产| 久久久综合激的五月天| 亚洲高清免费观看高清完整版在线观看| 国产美女av一区二区三区| 欧美日韩黄色一区二区| 国产精品福利一区| 国产麻豆精品95视频|