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

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

?? baseclass.pas

?? 一套及時(shí)通訊的原碼
?? PAS
?? 第 1 頁 / 共 5 頁
字號(hào):
    constructor Create(Name: String; Unk: IUnKnown; Form: TFormPropertyPage);
    destructor  Destroy; override;
    procedure SetPageDirty;

    { IPropertyPage }
    function SetPageSite(const pageSite: IPropertyPageSite): HResult; stdcall;
    function Activate(hwndParent: HWnd; const rc: TRect; bModal: BOOL): HResult; stdcall;
    function Deactivate: HResult; stdcall;
    function GetPageInfo(out pageInfo: TPropPageInfo): HResult; stdcall;
    function SetObjects(cObjects: Longint; pUnkList: PUnknownList): HResult; stdcall;
    function Show(nCmdShow: Integer): HResult; stdcall;
    function Move(const rect: TRect): HResult; stdcall;
    function IsPageDirty: HResult; stdcall;
    function Apply: HResult; stdcall;
    function Help(pszHelpDir: POleStr): HResult; stdcall;
    function TranslateAccelerator(msg: PMsg): HResult; stdcall;
  end;

  TOnConnect = procedure(sender: Tobject; Unknown: IUnknown) of object;

  TFormPropertyPage = class(TForm, IUnKnown, IPropertyPage)
  private
    FPropertyPage: TBCBasePropertyPage;
    procedure MyWndProc(var aMsg: TMessage);
  public
    constructor Create(AOwner: TComponent); override;
  published
    function OnConnect(Unknown: IUnknown): HRESULT; virtual;
    function OnDisconnect: HRESULT; virtual;
    function OnApplyChanges: HRESULT; virtual;
    property PropertyPage   : TBCBasePropertyPage read FPropertyPage implements IUnKnown, IPropertyPage;
  end;

  TBCBaseDispatch = class{IDispatch}
  protected
    FTI: ITypeInfo;
  public
    // IDispatch methods
    function GetTypeInfoCount(out Count: Integer): HResult; stdcall;
    function GetTypeInfo(const iid: TGUID; info: Cardinal; lcid: LCID; out tinfo): HRESULT; stdcall;
    function GetIDsOfNames(const IID: TGUID; Names: Pointer;
      NameCount, LocaleID: Integer; DispIDs: Pointer): HResult; stdcall;
  end;

  TBCMediaControl = class(TBCUnknown, IDispatch)
  public
    FBaseDisp: TBCBaseDispatch;
    constructor Create(name: string; unk: IUnknown);
    destructor Destroy; override;

    // IDispatch methods
    function GetTypeInfoCount(out Count: Integer): HResult; stdcall;
    function GetTypeInfo(Index, LocaleID: Integer; out TypeInfo): HResult; stdcall;
    function GetIDsOfNames(const IID: TGUID; Names: Pointer;
      NameCount, LocaleID: Integer; DispIDs: Pointer): HResult; stdcall;
    function Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
      Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HResult; stdcall;
  end;

  TBCMediaEvent = class(TBCUnknown, IDisPatch{,IMediaEventEx})
  protected
    FBasedisp: TBCBaseDispatch;
  public
    constructor Create(Name: string; Unk: IUnknown);
    destructor destroy; override;
    // IDispatch methods
    function GetTypeInfoCount(out Count: Integer): HResult; stdcall;
    function GetTypeInfo(Index, LocaleID: Integer; out TypeInfo): HResult; stdcall;
    function GetIDsOfNames(const IID: TGUID; Names: Pointer;
      NameCount, LocaleID: Integer; DispIDs: Pointer): HResult; stdcall;
    function Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
      Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HResult; stdcall;
  end;

  TBCMediaPosition = class(TBCUnknown, IDispatch {IMediaPosition})
  protected
    FBaseDisp: TBCBaseDispatch;
  public
    constructor Create(Name: String; Unk: IUnknown); overload;
    constructor Create(Name: String; Unk: IUnknown; out hr: HRESULT); overload;
    destructor Destroy; override;
    // IDispatch methods
    function GetTypeInfoCount(out Count: Integer): HResult; stdcall;
    function GetTypeInfo(Index, LocaleID: Integer; out TypeInfo): HResult; stdcall;
    function GetIDsOfNames(const IID: TGUID; Names: Pointer;
      NameCount, LocaleID: Integer; DispIDs: Pointer): HResult; stdcall;
    function Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
      Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HResult; stdcall;
  end;


// A utility class that handles IMediaPosition and IMediaSeeking on behalf
// of single-input pin renderers, or transform filters.
//
// Renderers will expose this from the filter; transform filters will
// expose it from the output pin and not the renderer.
//
// Create one of these, giving it your IPin* for your input pin, and delegate
// all IMediaPosition methods to it. It will query the input pin for
// IMediaPosition and respond appropriately.
//
// Call ForceRefresh if the pin connection changes.
//
// This class no longer caches the upstream IMediaPosition or IMediaSeeking
// it acquires it on each method call. This means ForceRefresh is not needed.
// The method is kept for source compatibility and to minimise the changes
// if we need to put it back later for performance reasons.

  TBCPosPassThru = class(TBCMediaPosition, IMediaSeeking)
  protected
    FPin: IPin;
    function GetPeer(out MP: IMediaPosition): HRESULT;
    function GetPeerSeeking(out MS: IMediaSeeking): HRESULT;
  public

    constructor Create(name: String; Unk: IUnknown; out hr: HRESULT; Pin: IPin);
    function ForceRefresh: HRESULT;{return S_OK;}

    // override to return an accurate current position
    function GetMediaTime(out StartTime, EndTime: int64): HRESULT; virtual;

    // IMediaSeeking methods
    function GetCapabilities(out pCapabilities: DWORD): HRESULT; stdcall;
    function CheckCapabilities(var pCapabilities: DWORD): HRESULT; stdcall;
    function IsFormatSupported(const pFormat: TGUID): HRESULT; stdcall;
    function QueryPreferredFormat(out pFormat: TGUID): HRESULT; stdcall;
    function GetTimeFormat(out pFormat: TGUID): HRESULT; stdcall;
    function IsUsingTimeFormat(const pFormat: TGUID): HRESULT; stdcall;
    function SetTimeFormat(const pFormat: TGUID): HRESULT; stdcall;
    function GetDuration(out pDuration: int64): HRESULT; stdcall;
    function GetStopPosition(out pStop: int64): HRESULT; stdcall;
    function GetCurrentPosition(out pCurrent: int64): HRESULT; stdcall;
    function ConvertTimeFormat(out pTarget: int64; pTargetFormat: PGUID;
               Source: int64; pSourceFormat: PGUID): HRESULT; stdcall;
    function SetPositions(var pCurrent: int64; dwCurrentFlags: DWORD;
               var pStop: int64; dwStopFlags: DWORD): HRESULT; stdcall;
    function GetPositions(out pCurrent, pStop: int64): HRESULT; stdcall;
    function GetAvailable(out pEarliest, pLatest: int64): HRESULT; stdcall;
    function SetRate(dRate: double): HRESULT; stdcall;
    function GetRate(out pdRate: double): HRESULT; stdcall;
    function GetPreroll(out pllPreroll: int64): HRESULT; stdcall;

    // IMediaPosition properties
    function get_Duration(out plength: TRefTime): HResult; stdcall;
    function put_CurrentPosition(llTime: TRefTime): HResult; stdcall;
    function get_CurrentPosition(out pllTime: TRefTime): HResult; stdcall;
    function get_StopTime(out pllTime: TRefTime): HResult; stdcall;
    function put_StopTime(llTime: TRefTime): HResult; stdcall;
    function get_PrerollTime(out pllTime: TRefTime): HResult; stdcall;
    function put_PrerollTime(llTime: TRefTime): HResult; stdcall;
    function put_Rate(dRate: double): HResult; stdcall;
    function get_Rate(out pdRate: double): HResult; stdcall;
    function CanSeekForward(out pCanSeekForward: Longint): HResult; stdcall;
    function CanSeekBackward(out pCanSeekBackward: Longint): HResult; stdcall;
  end;

  TBCRendererPosPassThru = class(TBCPosPassThru)
  protected
    FPositionLock: TBCCritSec; // Locks access to our position
    FStartMedia  : Int64;      // Start media time last seen
    FEndMedia    : Int64;      // And likewise the end media
    FReset       : boolean;    // Have media times been set
  public
    // Used to help with passing media times through graph
    constructor Create(name: String; Unk: IUnknown; out hr: HRESULT; Pin: IPin); reintroduce;
    destructor destroy; override;

    function RegisterMediaTime(MediaSample: IMediaSample): HRESULT; overload;
    function RegisterMediaTime(StartTime, EndTime: int64): HRESULT; overload;
    function GetMediaTime(out StartTime, EndTime: int64): HRESULT; override;
    function ResetMediaTime: HRESULT;
    function EOS: HRESULT;
  end;

  // wrapper for event objects
  TBCAMEvent = class
  protected
    FEvent: THANDLE;
  public
    constructor Create(ManualReset: boolean = false);
    destructor destroy; override;
    property Handle: THandle read FEvent;
    procedure SetEv;
    function Wait(Timeout: Cardinal = INFINITE): boolean;
    procedure Reset;
    function Check: boolean;
  end;

  TBCTimeoutEvent = TBCAMEvent;

  // wrapper for event objects that do message processing
  // This adds ONE method to the CAMEvent object to allow sent
  // messages to be processed while waiting
  TBCAMMsgEvent = class(TBCAMEvent)
  public
    // Allow SEND messages to be processed while waiting
    function WaitMsg(Timeout: DWord = INFINITE): boolean;
  end;

  // support for a worker thread
  // simple thread class supports creation of worker thread, synchronization
  // and communication. Can be derived to simplify parameter passing
  TThreadProc = function: DWORD of object;

  TBCAMThread = class
  private
    FEventSend: TBCAMEvent;
    FEventComplete: TBCAMEvent;
    FParam: DWord;
    FReturnVal: DWord;
    FThreadProc: TThreadProc;
  protected
    FThread: THandle;

    // thread will run this function on startup
    // must be supplied by derived class
    function ThreadProc: DWord; virtual;
  public
    FAccessLock: TBCCritSec; // locks access by client threads
    FWorkerLock: TBCCritSec; // locks access to shared objects
    constructor Create;
    destructor Destroy; override;


    // thread initially runs this. param is actually 'this'. function
    // just gets this and calls ThreadProc
    function InitialThreadProc(p: Pointer): DWORD; virtual; stdcall;  // WINAPI;

    // start thread running  - error if already running
    function Create_: boolean;

    // signal the thread, and block for a response
    //
    function CallWorker(Param: DWORD): DWORD;

    // accessor thread calls this when done with thread (having told thread
    // to exit)
    procedure Close;

    // ThreadExists
    // Return True if the thread exists. FALSE otherwise
    function ThreadExists: boolean; // const

    // wait for the next request
    function GetRequest: DWORD;

    // is there a request?
    function CheckRequest(Param: PDWORD): boolean;

    // reply to the request
    procedure Reply(v: DWORD);

    // If you want to do WaitForMultipleObjects you'll need to include
    // this handle in your wait list or you won't be responsive
    function GetRequestHandle: THANDLE;

    // Find out what the request was
    function GetRequestParam: DWORD;

    // call CoInitializeEx (COINIT_DISABLE_OLE1DDE) if
    // available. S_FALSE means it's not available.
    class function CoInitializeHelper: HRESULT;
  end;



  TBCRenderedInputPin = class(TBCBaseInputPin)
  private
    procedure DoCompleteHandling;
  protected
    // Member variables to track state
    FAtEndOfStream    : boolean; // Set by EndOfStream
    FCompleteNotified : boolean; // Set when we notify for EC_COMPLETE
  public
    constructor Create(ObjectName: string; Filter: TBCBaseFilter;
      Lock: TBCCritSec; out hr: HRESULT; Name: WideString);

    // Override methods to track end of stream state
    function EndOfStream: HRESULT; override; stdcall;
    function EndFlush: HRESULT; override; stdcall;

    function Active: HRESULT; override;
    function Run(Start: TReferenceTime): HRESULT; override;
  end;


(* A generic list of pointers to objects.
   No storage management or copying is

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
综合久久久久久| 激情欧美一区二区三区在线观看| 中文字幕高清一区| 色欲综合视频天天天| 97精品国产露脸对白| 不卡一区二区中文字幕| 本田岬高潮一区二区三区| 国产一区二区精品久久91| 美女网站一区二区| 国产在线观看一区二区| 国内精品伊人久久久久av一坑| 视频一区视频二区中文字幕| 日韩av电影免费观看高清完整版| 五月婷婷综合在线| 天天影视涩香欲综合网| 亚洲精品videosex极品| 亚洲欧美国产77777| 最新热久久免费视频| 国产精品色在线观看| 国产精品久久久久久久久久久免费看| 国产亚洲午夜高清国产拍精品| 亚洲国产激情av| 中文字幕日韩精品一区| 综合网在线视频| 亚洲欧美视频一区| 亚洲最新视频在线播放| 亚洲午夜一区二区| 婷婷丁香激情综合| 久88久久88久久久| 国产精品一区二区三区四区| 国产成人午夜精品5599| 日本亚洲三级在线| 国产美女视频91| av网站免费线看精品| 欧美日韩另类一区| 欧美一区二区三区视频免费| 精品国产a毛片| 日韩美女啊v在线免费观看| 亚洲女同ⅹxx女同tv| 亚洲黄色免费网站| 久久狠狠亚洲综合| 国产精品亚洲成人| 成人免费毛片aaaaa**| 欧洲一区二区av| 欧美一级日韩免费不卡| 欧美一区二区三区影视| xfplay精品久久| 中文字幕视频一区| 日韩国产欧美在线视频| 国产精品一级在线| 97国产精品videossex| 日韩欧美中文一区| 中文字幕国产一区二区| 成人欧美一区二区三区| 日韩av网站在线观看| 风间由美一区二区三区在线观看| 色88888久久久久久影院野外| 777奇米成人网| 久久精品日韩一区二区三区| 亚洲午夜精品网| 国产精品一级片在线观看| 欧美在线观看禁18| 国产日韩综合av| 亚洲成人午夜影院| 国产69精品久久久久毛片| 欧美在线不卡视频| 欧美精品自拍偷拍动漫精品| 国产日韩高清在线| 亚洲成人av在线电影| 99久免费精品视频在线观看| 51精品秘密在线观看| 国产精品免费视频一区| 日韩中文字幕91| 成人免费视频视频| 日韩一区二区在线观看视频 | 亚洲一区在线观看网站| 卡一卡二国产精品| 99vv1com这只有精品| 欧美精品一区二区三区视频| 亚洲va韩国va欧美va| 成人免费高清在线| 欧美一区二区三区在线观看视频| 亚洲欧美怡红院| 久久99久久精品| 欧美日韩免费不卡视频一区二区三区| 久久精品一区二区三区不卡牛牛| 日韩国产精品大片| 欧美亚洲一区二区在线观看| 26uuu久久天堂性欧美| 亚洲欧洲日产国产综合网| 激情久久五月天| 欧美日韩国产123区| 亚洲一区二区三区四区在线免费观看 | 亚洲三级免费观看| 国产综合一区二区| 精品成人一区二区三区四区| 亚洲国产精品久久一线不卡| 99精品一区二区| 日韩一区欧美小说| 成人在线视频首页| 国产日韩欧美精品在线| 国产麻豆精品一区二区| 精品久久一区二区| 国产乱码精品一区二区三| 日韩亚洲欧美综合| 亚洲制服丝袜av| 欧美在线观看一区| 一区二区三国产精华液| 欧美亚洲国产怡红院影院| 亚洲精品中文在线影院| 国产乱子轮精品视频| 久久免费的精品国产v∧| 久久国产精品一区二区| 精品国产精品一区二区夜夜嗨| 图片区小说区区亚洲影院| 欧美卡1卡2卡| 蜜桃在线一区二区三区| 7777精品伊人久久久大香线蕉经典版下载 | 91麻豆福利精品推荐| 国产精品无人区| 久久精品999| 欧美videos中文字幕| 日韩精彩视频在线观看| 欧美顶级少妇做爰| 麻豆精品在线观看| 欧美电影免费观看高清完整版在| 一个色妞综合视频在线观看| 欧美精品成人一区二区三区四区| 亚洲一二三级电影| 日韩写真欧美这视频| 免费在线观看成人| 精品久久国产字幕高潮| 国产老妇另类xxxxx| 国产精品天干天干在线综合| 91看片淫黄大片一级| 亚洲精品ww久久久久久p站| 色哟哟一区二区三区| 日韩高清不卡在线| 精品久久久久久最新网址| 久久福利视频一区二区| 久久久精品2019中文字幕之3| 国产精品一级片在线观看| 艳妇臀荡乳欲伦亚洲一区| 69堂亚洲精品首页| 亚洲国产美女搞黄色| 欧美精品一区二区三| 丰满岳乱妇一区二区三区| 亚洲最大成人网4388xx| 7777精品伊人久久久大香线蕉| 久久国产精品99精品国产| 中文字幕亚洲视频| 欧美日韩中文一区| 国产一区二区h| 亚洲欧美区自拍先锋| 日韩亚洲欧美一区二区三区| 国产成人免费9x9x人网站视频| 国产精品丝袜在线| 欧美一区二视频| 精品一区二区国语对白| 一区二区三区四区乱视频| 欧美videos中文字幕| 欧美精品一区二区蜜臀亚洲| 成人免费视频app| 亚洲一区影音先锋| 久久这里只有精品首页| 91在线高清观看| 一区二区三区四区亚洲| 精品美女在线观看| 91香蕉国产在线观看软件| 亚洲18女电影在线观看| 久久久久久99精品| av午夜精品一区二区三区| 免费成人在线观看视频| 亚洲人成精品久久久久久| 久久久久久黄色| 欧美日韩午夜精品| 91碰在线视频| 国产一区二区福利视频| 日韩美女视频19| 国产精品网站在线观看| 日韩视频免费直播| 欧美日韩国产小视频在线观看| 国产成人aaa| 久久成人精品无人区| 一区二区在线观看不卡| 日韩欧美一区中文| 欧美精品一级二级| 97aⅴ精品视频一二三区| 福利一区福利二区| 老司机精品视频在线| 国产精品剧情在线亚洲| 精品日韩欧美在线| 欧美在线999| 欧美性猛交一区二区三区精品| 国产盗摄女厕一区二区三区| 亚洲午夜久久久久久久久电影院| 国产精品入口麻豆九色| 欧美三级电影网| 欧美日韩在线观看一区二区 | 国产在线不卡一区|