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

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

?? sconnectex.pas

?? 一般的數(shù)據(jù)庫(kù)管理系統(tǒng) uses Classes, SConnectEx, TltConst, ExtCtrls, MMSystem, Types, windows, TltLogic , Sy
?? PAS
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
    List.Free;
  end;
end;

function TStreamedConnection.GetHandle: THandle;
begin
  if FHandle = 0 then
    FHandle := AllocateHwnd(WndProc);
  Result := FHandle;
end;

procedure TStreamedConnection.WndProc(var Message: TMessage);
begin
  try
    Dispatch(Message);
  except
    if Assigned(ApplicationHandleException) then
      ApplicationHandleException(Self);
  end;
end;

procedure TStreamedConnection.ThreadReceivedStream(var Message: TMessage);
var
  Data: IDataBlock;
begin
  Data := IDataBlock(Message.lParam);
  Data._Release;
  Interpreter.InterpretData(Data);
end;

procedure TStreamedConnection.ThreadException(var Message: TMessage);
begin
  DoError(Exception(Message.lParam));
end;

procedure TStreamedConnection.DoError(E: Exception);
begin
  raise E;
end;

procedure TStreamedConnection.TransportTerminated(Sender: TObject);
begin
  FTransport := nil;
  SetConnected(False);
end;

procedure TStreamedConnection.DoConnect;
var
  TempStr: string;
begin
  try
    InternalOpen;
//    FConnected := (Interpreter as ).CallGetIDsOfNames()
  except
    InternalClose;
    raise;
  end;
end;

procedure TStreamedConnection.DoDisconnect;
begin
//  inherited DoDisconnect;
  InternalClose;
end;

function TStreamedConnection.CreateTransport: ITransport;
begin
  Result := nil;
end;

function TStreamedConnection.GetInterpreter: TCustomDataBlockInterpreter;
begin
  if not Assigned(FInterpreter) then
    FInterpreter := TDataBlockInterpreter.Create(Self, SSockets);
  Result := FInterpreter;
end;

{ TStreamedConnection.IUnknown }

function TStreamedConnection.QueryInterface(const IID: TGUID; out Obj): HResult;
begin
  if GetInterface(IID, Obj) then Result := 0 else Result := E_NOINTERFACE;
end;

function TStreamedConnection._AddRef: Integer;
begin
  Inc(FRefCount);
  Result := FRefCount;
end;

function TStreamedConnection._Release: Integer;
begin
  Dec(FRefCount);
  Result := FRefCount;
end;

{ TStreamedConnection.ISendDataBlock }

function TStreamedConnection.Send(const Data: IDataBlock; WaitForResult: Boolean): IDataBlock;
var
  Msg: TMsg;
  Context: Integer;
begin
  if FSupportCallbacks then
  begin
    if not Assigned(FTransport) then Exit;
    Data._AddRef;
    PostThreadMessage(FTransport.ThreadID, THREAD_SENDSTREAM, Ord(WaitForResult),
      Integer(Pointer(Data)));
    if WaitForResult then
      while True do
      begin
        if GetMessage(Msg, FHandle, THREAD_RECEIVEDSTREAM, THREAD_EXCEPTION) then
        begin
          if Msg.message = THREAD_RECEIVEDSTREAM then
          begin
            Result := IDataBlock(Msg.lParam);
            Result._Release;
            if (Result.Signature and ResultSig) = ResultSig then
              break else
              Interpreter.InterpretData(Result);
          end else
            DoError(Exception(Msg.lParam));
        end else
          raise Exception.CreateRes(@SReturnError);
      end
    else
      GetMessage(Msg, FHandle, THREAD_SENDNOTIFY, THREAD_SENDNOTIFY);
  end else
  begin
    if not Assigned(FTransIntf) then Exit;
    Context := FTransIntf.Send(Data);
    Result := FTransIntf.Receive(WaitForResult, Context);
  end;
  if Assigned(Result) and ((Result.Signature and asMask) = asError) then
    Interpreter.InterpretData(Result);
end;

function TStreamedConnection.GetConnected: Boolean;
begin
  if SupportCallbacks then
  begin
    Result := (FTransport<>nil) and (FTransport.FTransport<>nil) and(FTransport.FTransport.Connected);
  end
  else
    Result := (FTransIntf<>nil) and( FTransIntf.Connected);
end;

{ TSocketTransport }

constructor TSocketTransport.Create;
begin
  inherited Create;
  FInterceptor := nil;
  FEvent := 0;
end;

destructor TSocketTransport.Destroy;
begin
  FInterceptor := nil;
  SetConnected(False);
  inherited Destroy;
end;

function TSocketTransport.GetWaitEvent: THandle;
begin
  FEvent := WSACreateEvent;
  WSAEventSelect(FSocket.SocketHandle, FEvent, FD_READ or FD_CLOSE);
  Result := FEvent;
end;

function TSocketTransport.GetConnected: Boolean;
begin
  Result := (FSocket <> nil) and (FSocket.Connected);
end;

procedure TSocketTransport.SetConnected(Value: Boolean);
begin
  if GetConnected = Value then Exit;
  if Value then
  begin
    if (FAddress = '') and (FHost = '') then
      raise ESocketConnectionError.CreateRes(@SNoAddress);
    FClientSocket := TClientSocket.Create(nil);
    FClientSocket.ClientType := ctBlocking;
    FSocket := FClientSocket.Socket;
    FClientSocket.Port := FPort;

    if FAddress <> '' then
      FClientSocket.Address := FAddress else
      FClientSocket.Host := FHost;
    FClientSocket.Open;
  end else
  begin
    FSocket.Close;
    FClientSocket.Free;
    if FEvent <> 0 then WSACloseEvent(FEvent);
  end;
end;

function TSocketTransport.Receive(WaitForInput: Boolean; Context: Integer): IDataBlock;
var
  RetLen, Sig, StreamLen: Integer;
  P: Pointer;
  FDSet: TFDSet;
  TimeVal: PTimeVal;
  RetVal: Integer;
begin
  Result := nil;
  TimeVal := nil;
  FD_ZERO(FDSet);
  FD_SET(FSocket.SocketHandle, FDSet);
  if not WaitForInput then
  begin
    New(TimeVal);
    TimeVal.tv_sec := 0;
    TimeVal.tv_usec := 1;
  end;
  RetVal := select(0, @FDSet, nil, nil, TimeVal);
  if Assigned(TimeVal) then
    FreeMem(TimeVal);
  if RetVal = SOCKET_ERROR then
    raise ESocketConnectionError.Create(SysErrorMessage(WSAGetLastError));
  if (RetVal = 0) then Exit;
  RetLen := FSocket.ReceiveBuf(Sig, SizeOf(Sig));
  if RetLen <> SizeOf(Sig) then
    raise ESocketConnectionError.CreateRes(@SSocketReadError);
  if (Sig and CallSig <> CallSig) and
     (Sig and ResultSig <> ResultSig) then
    raise Exception.CreateRes(@SInvalidDataPacket);
  RetLen := FSocket.ReceiveBuf(StreamLen, SizeOf(StreamLen));
  if RetLen = 0 then
    raise ESocketConnectionError.CreateRes(@SSocketReadError);
  if RetLen <> SizeOf(StreamLen) then
    raise ESocketConnectionError.CreateRes(@SSocketReadError);
  Result := TDataBlock.Create as IDataBlock;
  Result.Size := StreamLen;
  Result.Signature := Sig;
  P := Result.Memory;
  Inc(Integer(P), Result.BytesReserved);
  while StreamLen > 0 do
  begin
    RetLen := FSocket.ReceiveBuf(P^, StreamLen);
    if RetLen = 0 then
      raise ESocketConnectionError.CreateRes(@SSocketReadError);
    if RetLen > 0 then
    begin
      Dec(StreamLen, RetLen);
      Inc(Integer(P), RetLen);
    end;
  end;
  if StreamLen <> 0 then
    raise ESocketConnectionError.CreateRes(@SInvalidDataPacket);
  InterceptIncoming(Result);
end;

function TSocketTransport.Send(const Data: IDataBlock): Integer;
var
  P: Pointer;
begin
  Result := 0;
  InterceptOutgoing(Data);
  P := Data.Memory;
  FSocket.SendBuf(P^, Data.Size + Data.BytesReserved);
end;

function TSocketTransport.CheckInterceptor: Boolean;
var
  GUID: TGUID;
begin
  if not Assigned(FInterceptor) and (FInterceptGUID <> '') then
    if not FCreateAttempted then
    try
      FCreateAttempted := True;
      Guid := StringToGuid(FInterceptGUID);
      FInterceptor := CreateComObject(Guid) as IDataIntercept;
    except
      { raise no exception if the creating failed }
    end;
  Result := Assigned(FInterceptor);
end;

procedure TSocketTransport.InterceptIncoming(const Data: IDataBlock);
begin
  if CheckInterceptor then
    FInterceptor.DataIn(Data);
end;

procedure TSocketTransport.InterceptOutgoing(const Data: IDataBlock);
begin
  if CheckInterceptor then
    FInterceptor.DataOut(Data);
end;

{ TSocketConnection }

constructor TSocketConnection.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  FPort := 211;
end;

function TSocketConnection.IsAddressStored: Boolean;
begin
  Result := (Address <> '');
end;

procedure TSocketConnection.SetAddress(Value: string);
begin
  if Value <> '' then
    FHost := '';
  FAddress := Value;
end;

function TSocketConnection.IsHostStored: Boolean;
begin
  Result :=(Host <> '');
end;

procedure TSocketConnection.SetHost(Value: string);
begin
  if Value <> '' then
    FAddress := '';
  FHost := Value;
end;

function TSocketConnection.CreateTransport: ITransport;
var
  SocketTransport: TSocketTransport;
begin
  if SupportCallbacks then
    if not LoadWinSock2 then raise Exception.CreateRes(@SNoWinSock2);
  if (FAddress = '') and (FHost = '') then
    raise ESocketConnectionError.CreateRes(@SNoAddress);
  SocketTransport := TSocketTransport.Create;
  SocketTransport.Host := FHost;
  SocketTransport.Address := FAddress;
  SocketTransport.Port := FPort;
  SocketTransport.InterceptGUID := InterceptGUID;
  Result := SocketTransport as ITransport;
end;

procedure TSocketConnection.DoConnect;
var
  Comp: string;
  p, i: Integer;
begin
//  if (ObjectBroker <> nil) then
  begin
    repeat
      if FAddress <> '' then
        Comp := FAddress else
      if FHost <> '' then
        Comp := FHost;
      try
        {p := ObjectBroker.GetPortForComputer(Comp);
        if p > 0 then
          FPort := p;}
        p := 0;
        for i := 1 to Length(Comp) do
          if (Comp[i] in ['0'..'9', '.']) then
            Inc(p, Ord(Comp[i] = '.')) else
            break;
        if p <> 3 then
          Host := Comp else
          Address := Comp;
        inherited DoConnect;
//        ObjectBroker.SetConnectStatus(Comp, True);
      except
//        ObjectBroker.SetConnectStatus(Comp, False);
        FAddress := '';
        FHost := '';
      end;
    until (Connected or SupportCallbacks);
  end
  // else
   // inherited DoConnect;
end;


{ TPacketInterceptFactory }

procedure TPacketInterceptFactory.UpdateRegistry(Register: Boolean);
var
  CatReg: ICatRegister;
  Rslt: HResult;
  CatInfo: TCATEGORYINFO;
  Description: string;
begin
  inherited UpdateRegistry(Register);

  Rslt := CoCreateInstance(CLSID_StdComponentCategoryMgr, nil,
    CLSCTX_INPROC_SERVER, ICatRegister, CatReg);
  if Succeeded(Rslt) then
  begin
    if Register then
    begin
      CatInfo.catid := CATID_MIDASInterceptor;
      CatInfo.lcid := $0409;
      StringToWideChar(MIDASInterceptor_CatDesc, CatInfo.szDescription,
        Length(MIDASInterceptor_CatDesc) + 1);
      OleCheck(CatReg.RegisterCategories(1, @CatInfo));
      OleCheck(CatReg.RegisterClassImplCategories(ClassID, 1, @CATID_MIDASInterceptor));
    end else
    begin
      OleCheck(CatReg.UnRegisterClassImplCategories(ClassID, 1, @CATID_MIDASInterceptor));
      DeleteRegKey(Format(SClsid + SCatImplBaseKey, [GUIDToString(ClassID)]));
    end;
  end else
  begin
    if Register then
    begin
      CreateRegKey('Component Categories\' + GUIDToString(CATID_MIDASInterceptor), '409', MIDASInterceptor_CatDesc);
      CreateRegKey(Format(SClsid + SCatImplKey, [GUIDToString(ClassID), GUIDToString(CATID_MIDASInterceptor)]), '', '');
    end else
    begin
      DeleteRegKey(Format(SClsid + SCatImplKey, [GUIDToString(ClassID), GUIDToString(CATID_MIDASAppServer)]));
      DeleteRegKey(Format(SClsid + SCatImplBaseKey, [GUIDToString(ClassID)]));
    end;
  end;
  if Register then
  begin
    Description := GetRegStringValue(SClsid + GUIDToString(ClassID), '');
    CreateRegKey('AppID\' + GUIDToString(ClassID), '', Description);

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产乱码最新视频| 亚洲国产激情av| 男女激情视频一区| 911精品产国品一二三产区| 蜜桃久久久久久久| 久久精品免费在线观看| 成人午夜在线视频| 亚洲精品免费播放| 欧美日韩国产123区| 激情伊人五月天久久综合| 国产免费观看久久| 色婷婷久久一区二区三区麻豆| 亚洲成av人片一区二区| 日韩欧美国产系列| 99国产欧美久久久精品| 午夜精品视频一区| 久久综合一区二区| 色狠狠一区二区三区香蕉| 日本一道高清亚洲日美韩| 久久午夜羞羞影院免费观看| 97久久超碰精品国产| 麻豆国产91在线播放| 中文字幕日韩一区| 91精品国产入口| 北岛玲一区二区三区四区| 天堂va蜜桃一区二区三区| 久久久久高清精品| 欧美日韩一级大片网址| 国产精品一区免费在线观看| 一区二区三区欧美日韩| 26uuuu精品一区二区| 欧美性做爰猛烈叫床潮| 国产露脸91国语对白| 午夜久久久影院| 国产精品免费人成网站| 日韩免费看网站| 欧美综合亚洲图片综合区| 国产成人av电影在线| 日本午夜精品视频在线观看 | 91精品国产综合久久福利软件| 国产精一品亚洲二区在线视频| 亚洲午夜精品久久久久久久久| 欧美激情自拍偷拍| 日韩免费一区二区| 欧美日韩一区二区三区高清 | 久久精品国产一区二区三| 久久婷婷一区二区三区| av激情综合网| 国内外成人在线| 亚洲444eee在线观看| 亚洲日本在线天堂| 久久久久成人黄色影片| 欧美成人女星排行榜| 欧美性色黄大片手机版| 色综合天天综合网天天看片| 丁香六月久久综合狠狠色| 久久99国内精品| 婷婷久久综合九色综合伊人色| 亚洲手机成人高清视频| 国产精品国产三级国产aⅴ原创 | 丁香五精品蜜臀久久久久99网站| 久久精品国产色蜜蜜麻豆| 日韩精品成人一区二区三区| 亚洲自拍欧美精品| 亚洲精品水蜜桃| 最新国产精品久久精品| 中文字幕在线不卡视频| 中文文精品字幕一区二区| 亚洲精品一区二区三区精华液| 欧美第一区第二区| 精品国内片67194| 精品久久久久香蕉网| 日韩欧美国产一区二区三区| 这里是久久伊人| 欧美一级一区二区| 日韩欧美亚洲国产精品字幕久久久| 欧美日本一区二区| 欧美艳星brazzers| 欧美性高清videossexo| 欧美裸体bbwbbwbbw| 欧美精品丝袜中出| 日韩一区二区三区在线观看| 日韩欧美aaaaaa| 久久久久久久久久久久久夜| 亚洲国产精品精华液2区45| 国产精品三级视频| 亚洲品质自拍视频| 午夜精品久久久久久久久| 青青草国产精品97视觉盛宴| 精品在线你懂的| 成人激情av网| 色哟哟欧美精品| 欧美一区二区三区日韩| 精品成人一区二区三区| 国产精品免费视频观看| 亚洲最大成人综合| 蜜桃91丨九色丨蝌蚪91桃色| 国产精品性做久久久久久| 99在线精品一区二区三区| 欧美三级视频在线| 欧美成人一区二区三区| 欧美激情中文不卡| 亚洲电影你懂得| 国产精品911| 91黄色免费版| 精品99一区二区| 日韩一区在线免费观看| 欧美aaaaaa午夜精品| 成人黄色国产精品网站大全在线免费观看| 91丝袜美腿高跟国产极品老师 | 亚洲精品一区二区精华| 国产精品国产精品国产专区不蜜 | 亚洲欧洲国产日韩| 日韩二区三区在线观看| 国产精品自拍av| 欧美在线观看视频一区二区| 精品精品国产高清a毛片牛牛| 中文字幕亚洲欧美在线不卡| 秋霞成人午夜伦在线观看| av午夜精品一区二区三区| 欧美一二三区在线观看| 亚洲欧美乱综合| 久久电影国产免费久久电影| 91黄色激情网站| 国产亚洲一区二区在线观看| 性久久久久久久| 成人av在线播放网址| 欧美一区日韩一区| 亚洲精品免费在线| 国产凹凸在线观看一区二区| 7777精品伊人久久久大香线蕉经典版下载 | 91一区二区三区在线观看| xfplay精品久久| 婷婷成人激情在线网| thepron国产精品| 精品美女一区二区| 日韩国产欧美在线播放| 99re免费视频精品全部| 久久久久久夜精品精品免费| 舔着乳尖日韩一区| 日本福利一区二区| 国产精品国产a| 国产激情视频一区二区在线观看 | 欧美三级日韩三级| 亚洲视频你懂的| 丁香网亚洲国际| 久久综合五月天婷婷伊人| 日韩电影在线观看一区| 欧美美女一区二区| 亚洲男同性视频| 91亚洲精品一区二区乱码| 国产精品无遮挡| 国产精品自在在线| 久久久久久黄色| 国产一区二区免费在线| 久久在线观看免费| 国产一区二区在线看| 精品国产一区二区三区久久久蜜月| 日韩黄色在线观看| 51午夜精品国产| 日韩成人一级大片| 91精品在线免费观看| 首页亚洲欧美制服丝腿| 欧美肥大bbwbbw高潮| 午夜精品久久久久久久 | 精品国产网站在线观看| 蜜臀精品久久久久久蜜臀| 欧美美女视频在线观看| 日韩1区2区3区| 欧美一区二区三区免费视频| 裸体健美xxxx欧美裸体表演| 欧美va亚洲va在线观看蝴蝶网| 精品在线亚洲视频| 国产拍揄自揄精品视频麻豆| 国产成人日日夜夜| 自拍偷拍国产精品| 欧美在线观看视频一区二区三区 | 精品噜噜噜噜久久久久久久久试看 | www日韩大片| 国产福利电影一区二区三区| 欧美国产日韩在线观看| 99久久精品免费看| 亚洲第一狼人社区| 欧美一区二区三区四区五区 | 色婷婷久久综合| 亚洲国产成人高清精品| 日韩视频123| 不卡高清视频专区| 亚洲综合免费观看高清在线观看| 欧美日韩国产高清一区| 精品写真视频在线观看| 国产精品色哟哟| 欧美日韩二区三区| 久久成人免费电影| 亚洲欧洲在线观看av| 欧美亚洲国产一区二区三区va| 蜜桃视频一区二区三区| 一色屋精品亚洲香蕉网站| 欧美久久久一区| 成人免费视频网站在线观看|