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

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

?? icqworks.pas

?? 本程序是轉載的
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
    Exit;
  end;
  PktInt(Pkt, Length(S), 2);
  PktStr(Pkt, S);
end;

procedure PktDWStr(Pkt: PRawPkt; const S: String);
begin
  PktLInt(Pkt, Length(S), 4);
  PktStr(Pkt, S);
end;

procedure PktLNTS(Pkt: PRawPkt; const S: String);
begin
  if Length(S) = 0 then
  begin
    PktInt(Pkt, 0, 2);
    Exit;
  end;
  PktLInt(Pkt, Length(S) + 1, 2);
  PktStr(Pkt, S);
  PktInt(Pkt, 0, 1);
end;

procedure PktLLNTS(Pkt: PRawPkt; const S: String);
begin
  if Length(S) = 0 then
  begin
    PktInt(Pkt, 0, 2);
    Exit;
  end;
  PktLInt(Pkt, Length(S) + 3, 2);
  PktLNTS(Pkt, S);
end;



{--}
function GetInt(Pkt: PRawPkt; IntSize: Byte): LongWord;
var
  i: Word;
begin
  Result := 0;
  if IntSize = 0 then Exit;
  if Pkt^.Len > 8100 then Exit;
  for i := Pkt^.Len to Pkt^.Len + IntSize - 1 do
    Inc(Result, PByte(LongWord(Pkt) + i)^ shl ((Pkt^.Len + IntSize - 1 - i) * 8));
  Inc(Pkt^.Len, IntSize);
end;

function GetLInt(Pkt: PRawPkt; IntSize: Byte): LongWord;
var
  i, c: Word;
begin
  Result := 0; c := 0;
  if IntSize = 0 then Exit;
  if Pkt^.Len > 8100 then Exit;
  for i := Pkt^.Len to Pkt^.Len + IntSize - 1 do
  begin
    Inc(Result, PByte(LongWord(Pkt) + Pkt^.Len + IntSize - c - 1)^ shl ((Pkt^.Len + IntSize - 1 - i) * 8));
    Inc(c);
  end;
  Inc(Pkt^.Len, IntSize);
end;

function GetStr(Pkt: PRawPkt; StrLen: Word): String;
begin
  Result := '';
  while StrLen > 0 do
  begin
    Result := Result + PChar(LongWord(Pkt) + Pkt^.Len)^;
    Inc(Pkt^.Len);
    Dec(StrLen);
    if Pkt^.Len > 8100 then Exit;
  end;
end;

function GetTLVStr(Pkt: PRawPkt; var T: Word): String;
var
  ISize: Word;
begin
  T := GetInt(Pkt, 2);          //Get type
  ISize := GetInt(Pkt, 2);      //Get data length
  Result := GetStr(Pkt, ISize); //Get data
end;

function GetTLVInt(Pkt: PRawPkt; var T: Word): LongWord;
var
  ISize: Word;
begin
  T := GetInt(Pkt, 2);          //Get type
  ISize := GetInt(Pkt, 2);      //Get data length
  Result := GetInt(Pkt, ISize); //Get data
end;

procedure GetSnac(Pkt: PRawPkt; var Snac: TSnacHdr);
begin
  Snac := PSnacHdr(LongWord(Pkt) + Pkt^.Len)^;
  Snac.Family := Swap16(Snac.Family);
  Snac.SubType := Swap16(Snac.SubType);
  Snac.ReqID := Swap32(Snac.ReqID);
  Snac.Flags := Swap16(Snac.Flags);
  Inc(Pkt^.Len, TSNACSZ);
end;

function GetLStr(Pkt: PRawPkt): String;
begin
  Result := GetStr(Pkt, GetInt(Pkt, 1));
end;

function GetWStr(Pkt: PRawPkt): String;
begin
  Result := GetStr(Pkt, GetInt(Pkt, 2));
end;

function GetDWStr(Pkt: PRawPkt): String;
begin
  Result := GetStr(Pkt, GetLInt(Pkt, 4));
end;

function GetLNTS(Pkt: PRawPkt): String;
begin
  Result := GetStr(Pkt, GetLInt(Pkt, 2) - 1);
  Inc(Pkt^.Len, 1);
end;


{--------}
procedure PktTLV(Pkt: PRawPkt; T, L: Word; V: LongWord); overload;
begin
  PktInt(Pkt, T, 2);  //Add type
  PktInt(Pkt, L, 2);  //Add length
  PktInt(Pkt, V, L);  //Add value
end;

procedure PktTLV(Pkt: PRawPkt; T: Word; const V: String); overload;
begin
  PktInt(Pkt, T, 2);            //Add type
  PktInt(Pkt, Length(V), 2);    //Add length
  PktStr(Pkt, V);               //Add value
end;

procedure PktTLV(Pkt: PRawPkt; T, L: Word; V: Pointer); overload; //for arrays
begin
  PktInt(Pkt, T, 2);            //Add type
  PktInt(Pkt, L, 2);            //Add length
  PktAddArrBuf(Pkt, V, L);      //Add value
end;

procedure PktInit(Pkt: PRawPkt; Channel: Byte; var Seq: Word);
begin
  Pkt^.Len := 0;                //Starting size of packet to 0
  PktInt(Pkt, $2A, 1);          //Ident, always $2A
  PktInt(Pkt, Channel, 1);      //Channel
  PktInt(Pkt, SEQ, 2); Inc(SEQ);//Seq
  PktInt(Pkt, 0, 2);            //Reserved for size
end;


{$IFDEF USE_ASM}
procedure PktInitRaw(Pkt: PRawPkt); assembler;
asm
  mov   word ptr[eax + MAX_DATA_LEN],0          //Default size of the packet
end;
{$ELSE}
procedure PktInitRaw(Pkt: PRawPkt);
begin
  Pkt^.Len := 0;                                //Default size of the packet
end;
{$ENDIF}


//Used with PktInit only
{$IFDEF USE_ASM}
procedure PktFinal(Pkt: PRawPkt); assembler;
asm
  mov   cx,word ptr[eax + MAX_DATA_LEN]
  sub   cx,TFLAPSZ
  rol   cx,8
  mov   word ptr[eax + 4],cx   //Store the packet size (without flap header size)
end;
{$ELSE}
procedure PktFinal(Pkt: PRawPkt);
begin
  PWord(LongWord(Pkt) + 4)^ := Swap16(Pkt.Len - TFLAPSZ); //Store the packet size (without flap header size)
end;
{$ENDIF}

procedure PktSnac(Pkt: PRawPkt; Family, SubType: Word; ID: LongWord; Flags: Word);
begin
  PktInt(Pkt, Family, 2);       //Snac family
  PktInt(Pkt, SubType, 2);      //Snac subtype
  PktInt(Pkt, Flags, 2);        //Snac flags
  PktInt(Pkt, ID, 4);           //Snac reference
end;

{@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@}
function StrToLanguageI(const Value: String): Word;
var
  i: Word;
begin
  for i := Low(Languages) to High(Languages) do
    if Languages[i].Value = Value then
    begin
      Result := Languages[i].Ident;
      Exit;
    end;
  Result := 0;
end;

function StrToCountryI(const Value: String): Word;
var
  i: Word;
begin
  for i := Low(Countries) to High(Countries) do
    if Countries[i].Value = Value then
    begin
      Result := Countries[i].Ident;
      Exit;
    end;
  Result := 0;
end;

function StrToInterestI(const Value: String): Word;
var
  i: Word;
begin
  for i := Low(Interests) to High(Interests) do
    if Interests[i].Value = Value then
    begin
      Result := Interests[i].Ident;
      Exit;
    end;
  Result := 0;
end;

function StrToOccupationI(const Value: String): Word;
var
  i: Word;
begin
  for i := Low(Occupations) to High(Occupations) do
    if Occupations[i].Value = Value then
    begin
      Result := Occupations[i].Ident;
      Exit;
    end;
  Result := 0;
end;

function StrToPastI(const Value: String): Word;
var
  i: Word;
begin
  for i := Low(Pasts) to High(Pasts) do
    if Pasts[i].Value = Value then
    begin
      Result := Pasts[i].Ident;
      Exit;
    end;
  Result := 0;
end;

function StrToOrganizationI(const Value: String): Word;
var
  i: Word;
begin
  for i := Low(Organizations) to High(Organizations) do
    if Organizations[i].Value = Value then
    begin
      Result := Organizations[i].Ident;
      Exit;
    end;
  Result := 0;
end;

{Parse contacts responses.}
procedure ParseContacts(Value: String; var List: TStringList);
var
  i, l: Word;
  FName, FUIN: String;
begin
  l := 0; FName := ''; FUIN := '';
  if Length(Value) > Pos(#$fe, Value) + 1 then
    for i := Pos(#$fe, Value) + 1 to Length(Value) do
    begin
      if Value[i] = #$fe then
        Inc(l)
      else
      begin
        if l mod 2 = 0 then
          FName := FName + Value[i]
        else
          FUIN := FUIN + Value[i];
      end;
      if l = 2 then
      begin
        if (FName <> '') and (FUIN <> '') then
          List.Add(FName + '=' + FUIN);
        FName := '';
        FUIN := '';
        l := 0;
      end;
    end;
end;

{Create string representation of list with contacts.}
function MakeContactsStr(Contacts: TStringList): String;
var
  i, count: Word;
  S: String;
begin
  count := 0;
  S := '';
  if Contacts.Count > 0 then
    for i := 0 to Contacts.Count - 1 do
    begin
      if ExtractName(Contacts.Strings[i]) <> '' then
      begin
        S := S + ExtractName(Contacts.Strings[i]) + #$fe;
        if ExtractValue(Contacts.Strings[i]) = '' then
          S := S + ExtractName(Contacts.Strings[i]) + #$fe
        else
          S := S + ExtractValue(Contacts.Strings[i]) + #$fe;
        Inc(count);
      end;
    end;
  Result := IntToStr(count) + #$fe + S;
end;

{-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=}
{The first packet sent by the client after connecting and receiving
the SRV_HELLO packet from the server. The packet basiclly identifies
what kind and version of client is connecting along with the user's
UIN and password.}
procedure CreateCLI_IDENT(Pkt: PRawPkt; UIN: LongWord; Password: String; var Seq: Word);
begin

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
8v天堂国产在线一区二区| 激情综合色播五月| 欧美—级在线免费片| 日韩欧美国产综合一区| 欧美日本一区二区三区四区| 91老师片黄在线观看| 九一久久久久久| 久久精品国产**网站演员| 日韩电影免费在线| 偷窥少妇高潮呻吟av久久免费 | 香港成人在线视频| 亚洲一区视频在线观看视频| 一区二区三区久久| 亚洲国产你懂的| 日韩国产在线一| 六月丁香综合在线视频| 久久精品久久精品| 国模大尺度一区二区三区| 国内精品伊人久久久久影院对白| 精一区二区三区| 国产一区二区h| 成人精品一区二区三区四区 | 91丨porny丨户外露出| 色综合久久天天综合网| 在线观看日韩电影| 67194成人在线观看| 日韩美女一区二区三区四区| www国产精品av| 国产精品精品国产色婷婷| 亚洲素人一区二区| 亚洲va韩国va欧美va精品 | 成人性色生活片免费看爆迷你毛片| 国产精品一区二区三区网站| 成人黄色在线视频| 日本韩国一区二区三区| 欧美日韩国产美| 欧美刺激午夜性久久久久久久| 久久免费电影网| 成人免费在线播放视频| 午夜一区二区三区视频| 久久国产福利国产秒拍| 成人成人成人在线视频| 欧美在线一区二区| 日韩美女主播在线视频一区二区三区 | 99热精品国产| 9191精品国产综合久久久久久| 精品区一区二区| 亚洲视频免费看| 美女视频黄久久| 99精品视频在线免费观看| 欧美美女一区二区| 国产精品久久一级| 天天综合天天做天天综合| 免费看日韩a级影片| 欧美日韩成人综合天天影院| 欧美一级一区二区| 国模套图日韩精品一区二区| 色又黄又爽网站www久久| 精品久久免费看| 一区二区三区加勒比av| 国产在线精品一区二区| 欧美综合在线视频| 欧美高清在线精品一区| 日韩精品欧美成人高清一区二区| 国产69精品久久久久777| 欧美日韩视频专区在线播放| 日本一二三不卡| 免播放器亚洲一区| 91福利在线播放| 国产欧美日韩另类一区| 免费在线观看精品| 欧美色欧美亚洲另类二区| 国产精品系列在线| 经典三级视频一区| 欧美久久婷婷综合色| 亚洲欧美偷拍三级| 国产91在线观看丝袜| 日韩精品一区二区在线观看| 亚洲最大的成人av| 成人av网址在线| 久久蜜桃一区二区| 国内精品在线播放| 日韩一区二区在线播放| 亚洲成av人在线观看| 91丝袜高跟美女视频| 中文字幕va一区二区三区| 久久电影国产免费久久电影| 欧美视频在线观看一区二区| 亚洲欧洲精品一区二区三区| 国产乱妇无码大片在线观看| 日韩美女视频在线| 日本美女视频一区二区| 欧美日本韩国一区二区三区视频 | 欧美一区二区三区公司| 亚洲一区二区三区在线| 97久久精品人人做人人爽 | 日韩成人午夜电影| 欧美日韩国产a| 亚洲一区二区三区四区中文字幕| 91在线播放网址| 亚洲天堂成人网| 99精品久久久久久| 亚洲欧洲日韩av| 色综合久久88色综合天天 | 国产在线精品免费| 精品国产伦一区二区三区免费| 久久精品av麻豆的观看方式| 国产精品亚洲第一| 精品国产sm最大网站| 麻豆国产精品777777在线| 6080午夜不卡| 蜜桃av一区二区| 精品久久久久久亚洲综合网| 狠狠网亚洲精品| 久久免费电影网| 成人黄色电影在线| 亚洲欧洲99久久| 91成人免费在线| 亚洲超碰97人人做人人爱| 欧美福利一区二区| 美腿丝袜一区二区三区| 精品国产在天天线2019| 国产毛片精品视频| 国产精品久久免费看| 色哟哟一区二区在线观看| 亚洲一区视频在线| 在线综合亚洲欧美在线视频| 美女脱光内衣内裤视频久久影院| 欧美精品一区二区久久婷婷 | 欧美日韩国产美| 日韩成人dvd| 福利电影一区二区| 久久99精品国产91久久来源| 精品福利一二区| jlzzjlzz亚洲日本少妇| 伊人开心综合网| 欧美一区二区三区精品| 国产黄色精品网站| 尤物在线观看一区| 欧美一级二级三级蜜桃| 国产一区二区三区美女| 亚洲日本一区二区三区| 欧美日韩精品一区视频| 激情综合色综合久久综合| 国产精品网站在线| 欧美日韩一区二区不卡| 国产一区日韩二区欧美三区| 中文字幕中文字幕一区二区| 欧美日韩精品福利| 国产精品一区不卡| 亚洲一区二区三区中文字幕在线| 精品国产乱子伦一区| 一道本成人在线| 激情欧美一区二区三区在线观看| 亚洲欧洲av在线| 精品国产乱码久久久久久久| 91免费观看视频| 久久不见久久见免费视频7 | 夜夜揉揉日日人人青青一国产精品| 欧美一级视频精品观看| av午夜精品一区二区三区| 蜜臀va亚洲va欧美va天堂| 亚洲欧洲精品天堂一级| 精品国精品国产| 欧美日韩美女一区二区| 国产不卡在线一区| 日本不卡高清视频| 亚洲日本护士毛茸茸| 久久先锋影音av| 欧美日韩在线电影| av一区二区三区在线| 毛片不卡一区二区| 亚洲一区二区三区国产| 日本一区二区三区在线不卡| 欧美一区二区三区系列电影| 91老司机福利 在线| 丁香婷婷深情五月亚洲| 麻豆免费精品视频| 亚洲国产人成综合网站| 中文字幕一区二区三区精华液| 日韩精品中文字幕在线不卡尤物| 91久久精品一区二区三区| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 国产精品视频看| 日韩精品在线网站| 欧美精选一区二区| 色偷偷一区二区三区| 高清不卡在线观看av| 毛片不卡一区二区| 日本视频在线一区| 亚洲成av人综合在线观看| 亚洲精品菠萝久久久久久久| 国产精品免费视频一区| 久久亚洲精精品中文字幕早川悠里| 欧美欧美午夜aⅴ在线观看| 91久久精品网| 97久久精品人人做人人爽50路 | 国产午夜精品美女毛片视频| 日韩午夜中文字幕| 91精品国产全国免费观看 |