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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? netwrite.pas

?? 一套及時通訊的原碼
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
      exit;
    end;

    result := m_pReader.Start(0, 0, 1.0, nil);
    if (FAILED(result)) then
    begin
      writeln(format('Could not start IWMReader (hr=$%x)',[result]));
      exit;
    end;

   // not usefull with Windowed app
  { // Wait for it to finish
    WaitForSingleObject(m_hEvent, INFINITE);
    if (FAILED(m_hrAsync)) then
    begin
      result := m_hrAsync;
      exit; // Net writing failed  ????? not logic for hresult
    end;}
  end;

  function TWMFNetWrite.CloseAll: HRESULT;
  begin

    // Stop stuff
    if assigned(m_pReader) then
    begin
      result := m_pReader.Stop;
      if (FAILED(result)) then
      begin
        writeln(format('Could not Stop IWMReader (hr=$%x)',[result]));
        exit;
      end; // Could not Stop IWMReader
    end;

    if assigned(m_pWriter) then
    begin
      result := m_pWriter.Flush;
      if (FAILED(result)) then
      begin
        writeln(format('Could not Flush on IWMWriter (hr=$%x)',[result]));
        exit;
      end;
      result := m_pWriter.EndWriting;
      if (FAILED(result)) then
      begin
        writeln(format('Could not EndWriting on IWMWriter (hr=$%x)',[result]));
        exit;
      end;
    end;

    if assigned(m_pReader) then
    begin
      result := m_pReader.Close;
      if (FAILED(result)) then
      begin
        writeln(format('Could not close the file (hr=$%x)',[result]));
        exit;
      end; 
    end;

    if assigned(m_pWriterAdvanced) then
    begin
      result := m_pWriterAdvanced.RemoveSink(m_pNetSink);
      if (FAILED(result)) then
      begin
        writeln(format('Could not remove the Network Sink (hr=$%x)',[result]));
        exit;
      end;
    end;

    if assigned(m_pNetSink) then
    begin
      result := m_pNetSink.Close;
      if (FAILED(result)) then
      begin
        writeln(format('Could not close on IWMWriterNetworkSink (hr=$%x)',[result]));
        exit;
      end;
    end;

    result := s_ok;
    //Wait for sometime till all the data gets read from the port
    //Sleep(20000);
  end;

  function TWMFNetWrite.Init: HRESULT;
  begin
    // Create the reader, writer and network sink.
    result := WMCreateReader( nil, 0, m_pReader);
    if (FAILED(result)) then
    begin
      writeln(format('Could not create reader (hr=$%x)',[result]));
      exit;
    end; 

    result := m_pReader.QueryInterface(IID_IWMReaderAdvanced, m_pReaderAdvanced);
    if (FAILED(result)) then
    begin
      writeln(format('Could not QI for IWMReaderAdvanced (hr=$%x)',[result]));
      exit;
    end;

    result := WMCreateWriter(nil, m_pWriter);
    if (FAILED(result)) then
    begin
      writeln(format('Could not create Writer (hr=$%x)',[result]));
      exit;
    end;

    result := m_pWriter.QueryInterface(IID_IWMWriterAdvanced, m_pWriterAdvanced);
    if (FAILED(result)) then
    begin
      writeln(format('Could not QI for IWMWriterAdvanced (hr=$%x)',[result]));
      exit;
    end;  

    result := WMCreateWriterNetworkSink(m_pNetSink);
    if (FAILED(result)) then
    begin
      writeln(format('Could not create Writer Network Sink (hr=$%x)',[result]));
      exit;
    end; 

    result := m_pReader.QueryInterface(IID_IWMHeaderInfo, m_pReaderHeaderInfo);
    if (FAILED(result)) then
    begin
      writeln(format('Could not QI for IWMHeaderInfo (hr=$%x)',[result]));
      exit;
    end;

    result := m_pWriter.QueryInterface(IID_IWMHeaderInfo, m_pWriterHeaderInfo);
    if (FAILED(result)) then
    begin
      writeln(format('Could not QI for IWMHeaderInfo (hr=$%x)',[result]));
      exit;
    end; 
  end;

  function TWMFNetWrite.OnSample(dwOutputNum: DWORD; cnsSampleTime, cnsSampleDuration: int64;
             dwFlags: DWORD; pSample: INSSBuffer; pvContext: pointer): HRESULT;
  begin
    if (m_hEvent <> 0) then
    begin
      //The samples are expected in OnStreamSample
      writeln('Error: Received a decompressed sample from the reader');
      m_hrAsync := E_UNEXPECTED;
      SetEvent(m_hEvent);
    end;
    result := S_OK;
  end;

  function TWMFNetWrite.OnStatus(Status: TWMTSTATUS; hr: HRESULT; dwType: TWMTATTRDATATYPE;
             pValue: PBYTE; pvContext: pointer): HRESULT;
  begin
    case Status of
      WMT_OPENED:
        begin
          m_hrAsync := hr;
          SetEvent(m_hEvent);
        end;
      WMT_END_OF_FILE:
        begin
          m_bEOF := true;
          writeln('EndOfStream detected in reader');
          m_hrAsync := hr;
          SetEvent(m_hEvent);
        end;
      WMT_STARTED:
        begin
          //Ask for the specific duration of the stream to be delivered
          m_qwTime := 0;
          m_qwTime := m_qwTime + (1000 * 10000);
          hr := m_pReaderAdvanced.DeliverTime(m_qwTime);
          assert(SUCCEEDED(hr));
        end;
      end;
      result :=  S_OK;
  end;

  function TWMFNetWrite.OnStreamSample(wStreamNum: WORD; cnsSampleTime, cnsSampleDuration: int64;
               dwFlags: DWORD; pSample: INSSBuffer; pvContext: pointer): HRESULT;
  begin
     writeln(format('StreamSample: num=%d, time=%d, duration=%d, flags=%d',
                     [wStreamNum, cnsSampleTime, cnsSampleDuration, dwFlags]));
    //We've got a sample. Lets write it
    m_pWriterAdvanced.WriteStreamSample( wStreamNum, cnsSampleTime, 0, cnsSampleDuration, dwFlags, pSample);
    result := S_OK;
  end;

  function TWMFNetWrite.OnTime(cnsCurrentTime: int64; pvContext: pointer): HRESULT;
  begin
    //Keep asking for the specific duration of the stream till EOF
    if( not m_bEOF) then
    begin
      m_qwTime := m_qwTime + 10000000;
      m_pReaderAdvanced.DeliverTime(m_qwTime);
    end;
    result := S_OK;
  end;

  function TWMFNetWrite.OnStreamSelection( wStreamCount: Word; pStreamNumbers: PWORD;
               pSelections: PWMTSTREAMSELECTION; pvContext: pointer): HRESULT;
  begin
    result := S_OK;
  end;

  function TWMFNetWrite.OnOutputPropsChanged(dwOutputNum: DWORD; pMediaType: PWMMEDIATYPE;
               pvContext: pointer): HRESULT;
  begin
    result := S_OK;
  end;

  function TWMFNetWrite.AllocateForStream(wStreamNum: WORD; cbBuffer: DWORD; out ppBuffer: INSSBuffer;
             pvContext: pointer): HRESULT;
  begin
    result := E_NOTIMPL;
  end;

  function TWMFNetWrite.AllocateForOutput(dwOutputNum, cbBuffer: DWORD; out ppBuffer: INSSBuffer;
             pvContext: pointer): HRESULT;
  begin
    result := E_NOTIMPL;
  end;

  function TWMFNetWrite.WriteHeader (const pwszName: PWideChar): HRESULT;
  var
    nstreamNum : WORD;
    cbLength   : WORD;
    _type      : TWMTAttrDataType;
    hr         : HRESULT;
    pValue     : PBYTE;
  begin
    nstreamNum := 0;
    cbLength   := 0;
    result     := S_OK;
    pValue     := nil;

    // Get the no of bytes to be allocated for pValue
    result := m_pReaderHeaderInfo.GetAttributeByName(nstreamNum, pwszName, _type, nil, cbLength);
    if (FAILED(result) and (result <> longint(ASF_E_NOTFOUND))) then
    begin
      writeln(format('GetAttributeByName failed for Attribute name %s (hr=$%x)',[pwszName, result]));
      exit;
    end;

    if ((cbLength = 0) or (result = longint(ASF_E_NOTFOUND))) then
    begin
      result := S_OK;
      exit;
    end;

    getmem(pValue, cbLength);
    if (pValue = nil) then
    begin
      writeln(format('Unable to allocate memory for the Attribute name %s', [pwszName]));
      result := E_OUTOFMEMORY; 
      exit;
    end;

    //Dummy do-while loop
    repeat
      // Get the value
      hr := m_pReaderHeaderInfo.GetAttributeByName(nstreamNum, pwszName, _type, pValue, cbLength);
      if (FAILED(hr)) then
      begin
        writeln(format('GetAttributeByName failed for Attribute name %s (hr=$%x)', [pwszName, hr]));
        break;
      end; 

      // Set the attribute
      hr := m_pWriterHeaderInfo.SetAttribute(nstreamNum, pwszName, _type, pValue, cbLength);
      if (FAILED(hr)) then
      begin
        writeln(format('SetAttribute failed for Attribute name %s (hr=$%x)',[pwszName, hr]));
        break;
      end; 
    until (FALSE);

    freemem(pValue);
    pValue := nil;
    result := hr;
  end;

  function TWMFNetWrite.WriteScript: HRESULT;
  var
    hr            : HRESULT;
    pwszCommand   : PWideChar;
    pwszType      : PWideChar;
    cnsScriptTime : int64;
    cScript       : WORD;
    cchTypeLen    : WORD;
    cchCommandLen : WORD;
    i             : integer;
  begin
    hr            := S_OK;
    pwszCommand   := nil;
    pwszType      := nil;
    cnsScriptTime := 0;
    cScript       := 0;
    cchTypeLen    := 0;
    cchCommandLen := 0;


    result := m_pReaderHeaderInfo.GetScriptCount(cScript);
    if (FAILED(result)) then
    begin
      writeln(format('GetScriptCount failed (hr=$%x)',[result]));
      exit;
    end;

    for i := 0 to cScript - 1 do
    begin
      // Get the memory reqd for this script
      hr := m_pReaderHeaderInfo.GetScript(i, nil, cchTypeLen, nil, cchCommandLen, cnsScriptTime);
      if (FAILED(hr)) then
      begin
        writeln(format('GetScript failed for Script no %d (hr=$%x)',[i, hr]));
        break;
      end;

      getmem(pwszType, cchTypeLen * sizeof(WORD));
      getmem(pwszCommand, cchCommandLen * sizeof(WORD));

      if ((pwszType = nil) or (pwszCommand = nil)) then
      begin
        hr := E_OUTOFMEMORY;
        break;
      end;

      // Now, get the script
      hr := m_pReaderHeaderInfo.GetScript(i, pwszType, cchTypeLen, pwszCommand, cchCommandLen, cnsScriptTime);
      if (FAILED(hr)) then
      begin
        writeln(format('GetScript failed for Script no %d (hr=$%x)', [i, hr]));
        break;
      end;  // GetScript failed for Script no %d

      // Add the script to the writer
      hr := m_pWriterHeaderInfo.AddScript(pwszType, pwszCommand, cnsScriptTime);
      if (FAILED(hr)) then
      begin
        Writeln(format('AddScript failed for Script no %d (hr=$%x)', [i, hr]));
        break;
      end;

      if pwszType <> nil then freemem(pwszType);
      if pwszCommand <> nil then freemem(pwszCommand);
      pwszType    := nil;
      pwszCommand := nil;
      cchTypeLen    := 0 ;
      cchCommandLen := 0 ;
    end;

    if pwszType <> nil then freemem(pwszType);
    if pwszCommand <> nil then freemem(pwszCommand);
    pwszType    := nil;
    pwszCommand := nil;
    result := hr;
  end;

  function TWMFNetWrite.QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
  begin
    if IsEqualGUID(IID, IID_IWMReaderCallback) then
       IWMReaderCallback(Obj) := self
    else
      if IsEQualGUID(IID, IID_IWMReaderCallbackAdvanced) then
        IWMReaderCallbackAdvanced(obj) := self
      else
      begin
        result := E_NOINTERFACE;
        exit;
      end;
    result := S_OK;
  end;

  function TWMFNetWrite._AddRef: Integer; stdcall;
  begin
    result := 1;
  end;

  function TWMFNetWrite._Release: Integer; stdcall;
  begin
    result := 1;
  end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91久久精品网| 日韩一区精品字幕| 日本一区二区三区在线不卡| 欧美剧在线免费观看网站| 99这里都是精品| av在线播放不卡| 91捆绑美女网站| 色婷婷激情一区二区三区| 一本色道**综合亚洲精品蜜桃冫| 99久久婷婷国产精品综合| 成人美女视频在线看| 成人av网址在线| 97se亚洲国产综合自在线观| proumb性欧美在线观看| 99麻豆久久久国产精品免费优播| av一区二区三区四区| 色素色在线综合| 欧美精品一二三| 精品久久久久香蕉网| 中文字幕第一区综合| 日韩一区中文字幕| 日韩极品在线观看| 国产精品一级在线| 99久久99久久综合| 欧美日韩免费高清一区色橹橹| 3atv在线一区二区三区| 337p日本欧洲亚洲大胆精品| 欧美国产禁国产网站cc| 亚洲色图第一区| 奇米精品一区二区三区在线观看| 久久99国内精品| 97精品超碰一区二区三区| 91.xcao| 久久久影视传媒| 亚洲精品视频在线看| 美女性感视频久久| 91免费视频观看| 精品久久久久久无| 亚洲一区在线观看网站| 国产美女一区二区| 欧美三级电影在线观看| 久久久久久久综合狠狠综合| 一区二区三区免费看视频| 久久99精品国产麻豆婷婷洗澡| 99精品久久99久久久久| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 日韩精品一区二区三区老鸭窝| 国产精品美女www爽爽爽| 亚洲黄色av一区| 美洲天堂一区二卡三卡四卡视频| 久久精品国产免费| 色综合久久中文字幕综合网| 岛国精品在线播放| 色综合网色综合| 日韩欧美在线网站| 亚洲蜜臀av乱码久久精品| 美女视频一区二区三区| 99视频一区二区| 2020国产精品久久精品美国| 中文字幕一区二区三中文字幕| 亚洲激情图片一区| 国产福利一区二区| 欧美精品一级二级三级| 国产精品久久久一本精品| 亚洲欧美另类小说| 大胆亚洲人体视频| 日韩欧美一区二区免费| 亚洲精品成a人| 国产不卡在线视频| 欧美一区二区播放| 夜夜操天天操亚洲| jvid福利写真一区二区三区| 欧美v日韩v国产v| 亚洲国产视频直播| 成人精品免费网站| 欧洲国内综合视频| 国产欧美精品在线观看| 麻豆精品视频在线观看视频| 91蜜桃网址入口| 国产精品人人做人人爽人人添 | 亚洲欧洲日韩av| 亚洲国产精品久久人人爱蜜臀| 国产老妇另类xxxxx| 欧美一区2区视频在线观看| 怡红院av一区二区三区| 97久久精品人人做人人爽 | 日韩美女一区二区三区| 亚洲一区二区综合| 欧美专区在线观看一区| 亚洲欧美一区二区三区极速播放| 国产成人在线免费观看| 欧美不卡一区二区| 午夜精品一区二区三区免费视频| av欧美精品.com| 久久影视一区二区| 成人的网站免费观看| 欧美激情中文字幕一区二区| 国产91精品一区二区麻豆网站| 国产午夜精品美女毛片视频| 激情欧美日韩一区二区| 精品理论电影在线观看| 精品亚洲成a人在线观看 | 91麻豆精品国产91久久久久久久久 | 久久国产精品第一页| 色哦色哦哦色天天综合| 五月激情综合婷婷| 欧美一区二区黄色| 国产一区二区三区观看| 日本一区二区在线不卡| 99久久精品国产一区二区三区 | 91视频免费播放| 亚洲蜜臀av乱码久久精品| 欧美日韩中文精品| 久久成人精品无人区| 久久一区二区三区四区| 成人av在线电影| 亚洲一区在线电影| 欧美videofree性高清杂交| 国模少妇一区二区三区| 国产精品国产三级国产aⅴ原创| 一本色道久久综合亚洲aⅴ蜜桃 | 中文字幕中文字幕一区二区| 99精品热视频| 秋霞av亚洲一区二区三| 8v天堂国产在线一区二区| 国内精品伊人久久久久av影院| 国产视频911| 欧美亚洲一区二区在线| 另类小说欧美激情| 1024精品合集| 欧美色图免费看| 国产精品伊人色| 亚洲午夜一区二区三区| 欧美卡1卡2卡| 成人av中文字幕| 日韩黄色片在线观看| 中文在线资源观看网站视频免费不卡 | 精品日韩在线观看| 99国内精品久久| 九九精品一区二区| 亚洲妇熟xx妇色黄| 亚洲国产精品高清| 精品国产乱码久久| 91视频一区二区三区| 国产精品99久久久久久久女警| 亚洲日本在线观看| 久久免费视频一区| 欧美精品一级二级| 在线亚洲人成电影网站色www| 激情综合网av| 免费成人在线播放| 亚洲电影视频在线| 国产精品国产三级国产有无不卡 | 欧美日韩高清在线播放| 高清不卡一区二区在线| 免费成人av资源网| 午夜久久久影院| 一区二区在线观看视频在线观看| 久久免费午夜影院| www亚洲一区| 欧美电视剧免费全集观看 | 一区二区三区蜜桃网| 精品国内二区三区| 91精品国模一区二区三区| 99精品国产热久久91蜜凸| av资源网一区| 成人av第一页| 成人午夜视频福利| 国产69精品久久777的优势| 国产尤物一区二区在线| 极品少妇一区二区三区精品视频| 亚洲精品成人少妇| 亚洲一区视频在线| 午夜成人免费视频| 精油按摩中文字幕久久| 国内精品视频666| 国内成人自拍视频| 国产真实乱偷精品视频免| 精品无码三级在线观看视频| 国模娜娜一区二区三区| 国产高清精品久久久久| 国产风韵犹存在线视精品| 国产精品一级黄| 99re这里都是精品| 欧美性色aⅴ视频一区日韩精品| 欧洲人成人精品| 日韩三级伦理片妻子的秘密按摩| 日韩免费高清电影| 国产欧美精品区一区二区三区 | 国产成人aaa| 日本国产一区二区| 欧美精品色综合| 精品日韩成人av| 国产精品美女久久久久久久| 国产日韩欧美一区二区三区乱码 | 欧美男男青年gay1069videost| 91麻豆精品国产91久久久久久久久| 欧美一级久久久| 2020国产成人综合网| 亚洲女女做受ⅹxx高潮|