Код: Выделить всё
function AskUsersInChannel(Name, Channel: String; var UserList: TUsers):DWord;
var
Buf, msg: TBytes;
iSize, len: DWord;
I: DWord;
J: DWord;
begin
len:=Length(Name)*2+Length(Channel)*2+8;
SetLength(msg, len);
len:=Length(Name);
CopyMemory(@msg[0], @len, 4);
CopyMemory(@msg[4], PChar(Name), len*2);
i:=4+len*2;
len:=Length(Channel);
CopyMemory(@msg[i], @len, 4);
CopyMemory(@msg[i+4], PChar(Channel), len*2);
i:=i+len*2+4;
iSize := CommFortGetData(dwPluginID, 1081, nil, 0, PChar(msg), i);
SetLength(Buf, iSize);
if iSize=0 then
begin
Result:=0;
Exit;
end;
CommFortGetData(dwPluginID, 1081, Buf, iSize, PCHAR(msg), i);
CopyMemory(@Result, @Buf[0], 4);
I:=4;
setLength(UserList, Result + 1);
for J := 1 to Result do
begin
UserList[J].Name:=TEncoding.Unicode.GetString(Buf, I+4, Dword(Buf[I])*2);
I:=I+Dword(Buf[I])*2+4;
UserList[J].IP:=TEncoding.Unicode.GetString(Buf, I+4, Dword(Buf[I])*2);
I:=I+Dword(Buf[I])*2+4;
UserList[J].sex:=Dword(Buf[I]);
I:=I+4;
end;
end;
Пожалуйста объясните чайнику программирования!