@ -0,0 +1,618 @@
|
||||
unit CallExec; |
||||
|
||||
interface |
||||
uses |
||||
plugin, |
||||
pluginutil, |
||||
Types, |
||||
Graphics, |
||||
Windows; |
||||
|
||||
type |
||||
{$IFNDEF UNICODE} |
||||
RawByteString = AnsiString; |
||||
{$ENDIF UNICODE} |
||||
|
||||
ContactInfo=record |
||||
UIN:integer; |
||||
Status:byte; |
||||
Invisible:boolean; |
||||
DisplayedName, First, Last:AnsiString |
||||
end; |
||||
|
||||
var |
||||
callback:TpluginFun; // &RQ callback function |
||||
plugsendflag: boolean = false; |
||||
|
||||
function str2comm(s:RawByteString):pointer; |
||||
function callStr(s:RawByteString):pointer; |
||||
|
||||
{####################################} |
||||
// --=== Commands ===-- |
||||
procedure RQ_SendMsg(uin, Flag:integer; msg:AnsiString); |
||||
|
||||
function RQ_GetRoasterList:TIntegerDynArray; |
||||
function RQ_GetIgnoreList:TIntegerDynArray; |
||||
function RQ_GetChatWindow(var wnd:HWND; var left, top, width, height:integer):integer; |
||||
function RQ_GetRoasterWindow(var wnd:HWND; var left, top, width, height:integer):integer; |
||||
function RQ_GetPrefWindow(var wnd:HWND; var left, top, width, height:integer):integer; |
||||
|
||||
procedure RQ_SendContacts(uin, Flag:integer; contacts:TIntegerDynArray); |
||||
procedure RQ_SendAddedYou(uin:integer); |
||||
function RQ_AddToList(List:integer; uins:TIntegerDynArray):integer; |
||||
function RQ_RemoveFromList(List:integer; uins:TIntegerDynArray):integer; |
||||
procedure RQ_SetStatus(Status:byte); |
||||
procedure RQ_SetVisibility(Visibility:byte); |
||||
procedure RQ_Quit; |
||||
procedure RQ_Connect; |
||||
procedure RQ_Disconnect; |
||||
procedure RQ_SetAutoMessage(AutoMessage:AnsiString); |
||||
procedure RQ_SendAutoMessageRequest(uin:integer); |
||||
// - |
||||
function RQ_CreateChatButton(buttonProc:pointer; buttonIcon: hIcon; |
||||
buttonHint:AnsiString; PicName : AnsiString = ''):integer; |
||||
procedure RQ_ChangeChatButton(buttonAddr:Integer; buttonIcon: hIcon; |
||||
buttonHint:AnsiString; PicName : AnsiString = ''); |
||||
procedure RQ_DeleteChatButton(var buttonAddr:Integer); |
||||
{####################################} |
||||
// --=== Get ===-- |
||||
function RQ_GetTime:Double; |
||||
function RQ_GetList(List:integer):TIntegerDynArray; |
||||
function RQ_GetContactInfo(uin:integer):ContactInfo; |
||||
function RQ_GetName(uin:integer): AnsiString; |
||||
function RQ_GetDisplayedName(uin:integer):AnsiString; |
||||
function RQ_GetAwayTime:double; |
||||
function RQ_GetAndrqPath:AnsiString; |
||||
function RQ_GetUserPath:AnsiString; |
||||
function RQ_GetAndrqVersion:integer; |
||||
function RQ_GetRnQVersion: Integer; |
||||
function RQ_GetAndrqVersionAsString:AnsiString; |
||||
function RQ_GetCurrentUser:integer; |
||||
function RQ_GetUserTime:double; |
||||
function RQ_GetConnectionState:integer; |
||||
function RQ_GetWindow(window:integer; var wnd:HWND; var left, top, width, height:integer):integer; |
||||
function RQ_GetAutoMessage:AnsiString; |
||||
function RQ_GetChatUIN:integer; |
||||
{####################################} |
||||
procedure RQ__ParseInitString(data:Pointer; var callback:TpluginFun; var apiVersion:integer; |
||||
var andrqPath, userPath:AnsiString; var currentUIN:integer); |
||||
procedure RQ__ParseMsgGotString(data:pointer; var uin, flags:integer; var when:TDateTime; |
||||
var msg:AnsiString); |
||||
procedure RQ__ParseMsgSentString(data:pointer; var uin, flags:integer; var msg:AnsiString); |
||||
procedure RQ__ParseURLGotString(data:Pointer; var uin, flags:integer; var when:TDateTime; var URL, text:AnsiString); |
||||
procedure RQ__ParseAddedYouSentString(data:Pointer; var uin:integer); |
||||
procedure RQ__ParseAddedYouGotString(data:Pointer; var uin, flags:integer; var when:TDateTime); |
||||
procedure RQ__ParseContactsSentString(data:Pointer; var uin, flags:integer; var contacts:TIntegerDynArray); |
||||
procedure RQ__ParseContactsGotString(data:Pointer; var uin, flags:integer; var when:TDateTime; |
||||
var contacts:TIntegerDynArray); |
||||
procedure RQ__ParseAuthSentString(data:Pointer; var uin:integer); |
||||
procedure RQ__ParseAuthRequestGotString(data:Pointer; var uin, flags:integer; var when:TDateTime; var text:AnsiString); |
||||
procedure RQ__ParseAuthDeniedSentString(data:Pointer; var uin:integer; var text:AnsiString); |
||||
procedure RQ__ParseAutoMessageSentString(data:Pointer; var uin:integer; var text:AnsiString); |
||||
procedure RQ__ParseAutoMessageGotString(data:Pointer; var uin:integer; var text:AnsiString); |
||||
procedure RQ__ParseAutoMessageRequestSentString(data:Pointer; var uin:integer); |
||||
procedure RQ__ParseAutoMessageRequestGotString(data:Pointer; var uin:integer); |
||||
procedure RQ__ParseVisibilityChanged(data:Pointer; var contact:integer); |
||||
procedure RQ__ParseUserinfoChanged(data:Pointer; var uin:integer); |
||||
procedure RQ__ParseStatusChanged(data:Pointer; var uin:integer; var newStatus, oldStatus:byte; |
||||
var newInvisibleState, oldInvisibleState:Boolean); |
||||
procedure RQ__ParseListAddString(data:Pointer; var list:byte; var uins:TIntegerDynArray); |
||||
procedure RQ__ParseListRemoveString(data:Pointer; var list:byte; var uins:TIntegerDynArray); |
||||
{####################################} |
||||
|
||||
implementation |
||||
|
||||
uses |
||||
SysUtils; |
||||
|
||||
// convert a string to a "plugin communication" |
||||
function str2comm(s:RawByteString):pointer; |
||||
var outBuffer:RawByteString; |
||||
begin |
||||
outBuffer:=_int(length(s))+s; |
||||
result:=@outBuffer[1]; |
||||
end; // str2comm |
||||
|
||||
// execute callback on a string instead of pointer |
||||
function callStr(s:RawByteString):pointer; |
||||
begin |
||||
result:=callback(str2comm( s )) |
||||
end; |
||||
|
||||
{##############################################################################} |
||||
|
||||
procedure RQ_SendMsg(uin, Flag:integer; msg:AnsiString); |
||||
{ Flag: |
||||
Single =0 |
||||
Multi =1 } |
||||
begin |
||||
PlugSendFlag := false; |
||||
callStr(AnsiChar(PM_CMD)+AnsiChar(PC_SEND_MSG)+_int(uin)+_int(Flag)+_istring(msg)); |
||||
end; |
||||
|
||||
procedure RQ_SendContacts(uin, Flag:integer; contacts:TIntegerDynArray); |
||||
begin |
||||
callStr(AnsiChar(PM_CMD)+AnsiChar(PC_SEND_CONTACTS)+_int(uin)+_int(Flag)+_intlist(contacts)); |
||||
end; |
||||
|
||||
procedure RQ_SendAddedYou(uin:integer); |
||||
begin |
||||
callStr(AnsiChar(PM_CMD)+AnsiChar(PC_SEND_ADDEDYOU)+_int(uin)); |
||||
end; |
||||
|
||||
function RQ_AddToList(List:integer; uins:TIntegerDynArray):integer; |
||||
begin |
||||
callStr(AnsiChar(PM_CMD)+AnsiChar(PC_LIST_ADD)+AnsiChar(List)+_intlist(uins)); |
||||
result := 0; |
||||
end; |
||||
|
||||
function RQ_RemoveFromList(List:integer; uins:TIntegerDynArray):integer; |
||||
begin |
||||
callStr(AnsiChar(PM_CMD)+AnsiChar(PC_LIST_REMOVE)+AnsiChar(List)+_intlist(uins)); |
||||
result := 0; |
||||
end; |
||||
|
||||
procedure RQ_SetStatus(Status:byte); |
||||
{ PS_ONLINE, PS_OCCUPIED, PS_DND |
||||
PS_NA, PS_AWAY, PS_F4C, PS_OFFLINE, PS_UNKNOWN } |
||||
begin |
||||
callStr(AnsiChar(PM_CMD)+AnsiChar(PC_SET_STATUS)+AnsiChar(Status)); |
||||
end; |
||||
|
||||
procedure RQ_SetVisibility(Visibility:byte); |
||||
{ PV_ALL, PV_NORMAL, PV_PRIVACY, PV_INVISIBLE } |
||||
begin |
||||
callStr(AnsiChar(PM_CMD)+AnsiChar(PC_SET_VISIBILITY)+AnsiChar(Visibility)); |
||||
end; |
||||
|
||||
procedure RQ_Quit; |
||||
begin |
||||
callStr(AnsiChar(PM_CMD)+AnsiChar(PC_QUIT)); |
||||
end; |
||||
|
||||
procedure RQ_Connect; |
||||
begin |
||||
callStr(AnsiChar(PM_CMD)+AnsiChar(PC_CONNECT)); |
||||
end; |
||||
|
||||
procedure RQ_Disconnect; |
||||
begin |
||||
callStr(AnsiChar(PM_CMD)+AnsiChar(PC_DISCONNECT)); |
||||
end; |
||||
|
||||
procedure RQ_SetAutoMessage(AutoMessage:AnsiString); |
||||
begin |
||||
callStr(AnsiChar(PM_CMD)+AnsiChar(PC_SET_AUTOMSG)+_istring(AutoMessage)); |
||||
end; |
||||
|
||||
procedure RQ_SendAutoMessageRequest(uin:integer); |
||||
begin |
||||
callStr(AnsiChar(PM_CMD)+AnsiChar(PC_SEND_AUTOMSG_REQ)+_int(uin)); |
||||
end; |
||||
|
||||
{##############################################################################} |
||||
|
||||
function RQ_GetTime:Double; |
||||
var |
||||
data:Pointer; |
||||
begin |
||||
data:=CallStr(AnsiChar(PM_GET)+AnsiChar(PG_TIME)); |
||||
if _byte_at(data, 4) = PM_DATA then try Result:=_double(data,5) except Result := 0 end else Result := 0; |
||||
end; |
||||
|
||||
function RQ_GetList(List:integer):TIntegerDynArray; |
||||
{ |
||||
PL_ROASTER, PL_VISIBLELIST, PL_INVISIBLELIST, PL_TEMPVISIBLELIST, |
||||
PL_IGNORELIST, PL_DB, PL_NIL. |
||||
} |
||||
var |
||||
data:Pointer; |
||||
begin |
||||
if _byte_at(data, 4) = PM_DATA then try Result:=_intlist_at(data,5) except Result := nil end else Result := nil; |
||||
end; |
||||
|
||||
function RQ_GetContactInfo(uin:integer):ContactInfo; |
||||
var |
||||
data:Pointer; |
||||
tempCI:ContactInfo; |
||||
a:array[0..50]of AnsiChar; |
||||
i:integer; |
||||
begin |
||||
tempCI.UIN := 0; |
||||
tempCI.Status := 0; |
||||
tempCI.Invisible := false; |
||||
tempCI.DisplayedName := ''; |
||||
tempCI.First:= ''; |
||||
tempCI.Last := ''; |
||||
data:=CallStr(AnsiChar(PM_GET)+AnsiChar(PG_CONTACTINFO)+_int(uin)); |
||||
if _byte_at(data, 4) = PM_DATA then |
||||
try |
||||
for i:=0 to 50 do begin |
||||
a[i]:=AnsiChar(_byte_at(data,i)); |
||||
end; |
||||
with tempCI do begin |
||||
UIN:=_int_at(data,9); |
||||
Status:=_byte_at(data,13); |
||||
Invisible:=boolean(_byte_at(data,14)); |
||||
DisplayedName:=_istring_at(data,15); |
||||
i:=15+4+Length(DisplayedName); |
||||
First:=_istring_at(data,i); |
||||
i:=i+4+Length(First); |
||||
Last:=_istring_at(data,i); |
||||
end; |
||||
Result.UIN:=length(a); |
||||
Result:=tempCI; |
||||
except Result := tempCI end else Result := tempCI; |
||||
end; |
||||
|
||||
function RQ_GetDisplayedName(uin:integer):AnsiString; |
||||
var |
||||
data:Pointer; |
||||
begin |
||||
data:=CallStr(AnsiChar(PM_GET)+AnsiChar(PG_DISPLAYED_NAME)+_int(uin)); |
||||
if _byte_at(data, 4) = PM_DATA then |
||||
try Result:=_istring_at(data,5) except Result:='ERROR' end else Result:='ERROR'; |
||||
end; |
||||
|
||||
function RQ_GetAwayTime:double; |
||||
var |
||||
data:Pointer; |
||||
begin |
||||
data:=CallStr(AnsiChar(PM_GET)+AnsiChar(PG_AWAYTIME)); |
||||
if _byte_at(data, 4) = PM_DATA then try result:=_double(data, 5); |
||||
except Result:=0 end else Result:=0; |
||||
end; |
||||
|
||||
function RQ_GetAndrqPath:AnsiString; |
||||
var |
||||
data:Pointer; |
||||
begin |
||||
data:=CallStr(AnsiChar(PM_GET)+AnsiChar(PG_ANDRQ_PATH)); |
||||
if _byte_at(data, 4) = PM_DATA then |
||||
try Result:=_istring_at(data,5) except Result:='ERROR' end else Result:='ERROR'; |
||||
end; |
||||
|
||||
function RQ_GetUserPath:AnsiString; |
||||
var |
||||
data:Pointer; |
||||
begin |
||||
data:=CallStr(AnsiChar(PM_GET)+AnsiChar(PG_USER_PATH)); |
||||
if _byte_at(data, 4) = PM_DATA then |
||||
try Result:=_istring_at(data,5) except Result:='ERROR' end else Result:='ERROR'; |
||||
end; |
||||
|
||||
function RQ_GetAndrqVersion:integer; |
||||
var |
||||
data:Pointer; |
||||
begin |
||||
data:=CallStr(AnsiChar(PM_GET)+AnsiChar(PG_ANDRQ_VER)); |
||||
if _byte_at(data, 4) = PM_DATA then |
||||
try result:=_int_at(data, 5) except Result:=0 end else Result:=0; |
||||
end; |
||||
|
||||
function RQ_GetRnQVersion: Integer; |
||||
var |
||||
data: Pointer; |
||||
begin |
||||
data := CallStr(AnsiChar(PM_GET)+AnsiChar(PG_RNQ_BUILD)); |
||||
if _byte_at(data, 4) = PM_DATA then |
||||
try Result := _int_at(data,5) except Result:=0 end else Result:=0; |
||||
end; |
||||
|
||||
function RQ_GetAndrqVersionAsString:AnsiString; |
||||
var |
||||
data:Pointer; |
||||
begin |
||||
data:=CallStr(AnsiChar(PM_GET)+AnsiChar(PG_ANDRQ_VER_STR)); |
||||
if _byte_at(data, 4) = PM_DATA then |
||||
try result:=_istring_at(data, 5) except Result:='ERROR' end else Result:='ERROR'; |
||||
end; |
||||
|
||||
{ Name } |
||||
function RQ_GetName(uin:integer): AnsiString; |
||||
var |
||||
data:Pointer; |
||||
begin |
||||
data:=CallStr(AnsiChar(PM_GET)+ AnsiChar(PG_DISPLAYED_NAME)+_int(uin)); |
||||
if _byte_at(data, 4) = PM_DATA then |
||||
try result:=_istring_at(data, 5) except Result:='ERROR' end else Result:='ERROR'; |
||||
end; |
||||
|
||||
function RQ_GetCurrentUser:integer; |
||||
var |
||||
data:Pointer; |
||||
begin |
||||
data:=CallStr(AnsiChar(PM_GET)+AnsiChar(PG_USER)); |
||||
if _byte_at(data, 4) = PM_DATA then |
||||
try Result := _int_at(data,5) except Result:=0 end else Result:=0; |
||||
end; |
||||
|
||||
function RQ_GetUserTime:double; |
||||
var |
||||
data:Pointer; |
||||
begin |
||||
data:=CallStr(AnsiChar(PM_GET)+AnsiChar(PG_USERTIME)); |
||||
if _byte_at(data, 4) = PM_DATA then |
||||
try Result := _int_at(data,5) except Result:=0 end else Result:=0; |
||||
end; |
||||
|
||||
function RQ_GetConnectionState:integer; |
||||
var |
||||
data:Pointer; |
||||
begin |
||||
data:=CallStr(AnsiChar(PM_GET)+AnsiChar(PG_CONNECTIONSTATE )); |
||||
if _byte_at(data, 4) = PM_DATA then |
||||
try Result := _int_at(data,5) except Result:=-1 end else Result:=-1; |
||||
end; |
||||
|
||||
function RQ_GetWindow(window:integer; var wnd:HWND; var left, top, width, height:integer):integer; |
||||
{ PW_ROASTER, PW_CHAT, PW_PREFERENCES } |
||||
var |
||||
data:Pointer; |
||||
begin |
||||
data:=callStr( AnsiChar(PM_GET)+AnsiChar(PG_WINDOW)+AnsiChar(PW_CHAT)); |
||||
if _byte_at(data,4) = PM_DATA then try |
||||
wnd:=_int_at(data, 5); |
||||
left:=_int_at(data, 9); |
||||
top:=_int_at(data, 13); |
||||
width:=_int_at(data, 17); |
||||
height:=_int_at(data, 21); |
||||
result := 1; |
||||
except result := 0 end else result := 0; |
||||
end; |
||||
|
||||
function RQ_GetAutoMessage:AnsiString; |
||||
var |
||||
data:Pointer; |
||||
begin |
||||
data:=CallStr(AnsiChar(PM_GET)+AnsiChar(PG_AUTOMSG)); |
||||
if _byte_at(data, 4) = PM_DATA then |
||||
try result:=_istring_at(data, 5) except Result:='ERROR' end else Result:='ERROR'; |
||||
end; |
||||
|
||||
function RQ_GetChatUIN:integer; |
||||
var |
||||
data:Pointer; |
||||
begin |
||||
data:=CallStr(AnsiChar(PM_GET)+AnsiChar(PG_CHAT_UIN)); |
||||
if _byte_at(data, 4) = PM_DATA then |
||||
try Result := _int_at(data,5) except Result:=0 end else Result:=0; |
||||
end; |
||||
|
||||
function RQ_CreateChatButton(buttonProc:Pointer; buttonIcon: hIcon; |
||||
buttonHint:AnsiString; PicName : AnsiString = ''):integer; |
||||
var |
||||
data:Pointer; |
||||
begin// |
||||
data:=callStr(AnsiChar(PM_CMD)+ AnsiChar(PC_ADDBUTTON)+ |
||||
_int(integer(buttonProc))+_int(integer(buttonIcon))+ |
||||
_istring(buttonHint)+_istring(PicName)); |
||||
Result:=_int_at(data, 4); |
||||
end; |
||||
|
||||
procedure RQ_ChangeChatButton(buttonAddr:Integer; buttonIcon: hIcon; |
||||
buttonHint:AnsiString; PicName : AnsiString = ''); |
||||
begin// |
||||
callStr(AnsiChar(PM_CMD)+ AnsiChar(PC_MODIFY_BUTTON) |
||||
+_int(integer(buttonAddr))+_int(integer(buttonIcon)) |
||||
+_istring(buttonHint)+_istring(PicName)); |
||||
end; |
||||
|
||||
procedure RQ_DeleteChatButton(var buttonAddr:Integer); |
||||
begin// |
||||
callStr(AnsiChar(PM_CMD)+ AnsiChar(PC_DELBUTTON)+_int(integer(buttonAddr))); |
||||
buttonAddr:=0; |
||||
end; |
||||
|
||||
{++++++++++++++++++++++++++++++++++++} |
||||
|
||||
procedure RQ__ParseInitString(data:Pointer; var callback:TpluginFun; var apiVersion:integer; |
||||
var andrqPath, userPath:AnsiString; var currentUIN:integer); |
||||
|
||||
var |
||||
i:integer; |
||||
begin |
||||
callback:=_ptr_at(data,6); |
||||
apiVersion:=_int_at(data, 10); |
||||
andrqPath:=_istring_at(data, 14); |
||||
i:=14+4+length(andrqPath); |
||||
userPath:=_istring_at(data, i); |
||||
i:=i+4+length(userPath); |
||||
currentUIN:=_int_at(data, i); |
||||
end; |
||||
|
||||
procedure RQ__ParseMsgGotString(data:pointer; var uin, flags:integer; var when:TDateTime; |
||||
var msg:AnsiString); |
||||
begin |
||||
uin:=_int_at(data, 6); |
||||
flags:=_int_at(data, 10); |
||||
when:=_double(data, 14); |
||||
msg:=_istring_at(data, 22); |
||||
end; |
||||
|
||||
procedure RQ__ParseMsgSentString(data:pointer; var uin, flags:integer; var msg:AnsiString); |
||||
begin |
||||
uin:=_int_at(data, 6); |
||||
flags:=_int_at(data, 10); |
||||
msg:=_istring_at(data, 14); |
||||
end; |
||||
|
||||
procedure RQ__ParseURLGotString(data:Pointer; var uin, flags:integer; var when:TDateTime; var URL, text:AnsiString); |
||||
var |
||||
i:integer; |
||||
begin |
||||
uin:=_int_at(data, 6); |
||||
flags:=_int_at(data, 10); |
||||
when:=_double(data, 14); |
||||
URL:=_istring_at(data, 22); |
||||
i:=22+4+length(URL); |
||||
text:=_istring_at(data, i); |
||||
end; |
||||
|
||||
procedure RQ__ParseAddedYouSentString(data:Pointer; var uin:integer); |
||||
begin |
||||
uin:=_int_at(data, 6); |
||||
end; |
||||
|
||||
procedure RQ__ParseAddedYouGotString(data:Pointer; var uin, flags:integer; var when:TDateTime); |
||||
begin |
||||
uin:=_int_at(data, 6); |
||||
flags:=_int_at(data, 10); |
||||
when:=_double(data, 14); |
||||
end; |
||||
|
||||
procedure RQ__ParseContactsSentString(data:pointer; var uin, flags:integer; var contacts:TIntegerDynArray); |
||||
begin |
||||
uin:=_int_at(data, 6); |
||||
flags:=_int_at(data, 10); |
||||
contacts:=_intlist_at(data, 14); |
||||
end; |
||||
|
||||
procedure RQ__ParseContactsGotString(data:Pointer; var uin, flags:integer; var when:TDateTime; var contacts:TIntegerDynArray); |
||||
begin |
||||
uin:=_int_at(data, 6); |
||||
flags:=_int_at(data, 10); |
||||
when:=_double(data, 14); |
||||
contacts:=_intlist_at(data, 22); |
||||
end; |
||||
|
||||
procedure RQ__ParseAuthSentString(data:Pointer; var uin:integer); |
||||
begin |
||||
uin:=_int_at(data, 6); |
||||
end; |
||||
|
||||
procedure RQ__ParseAuthRequestGotString(data:Pointer; var uin, flags:integer; var when:TDateTime; var text:AnsiString); |
||||
begin |
||||
uin:=_int_at(data, 6); |
||||
flags:=_int_at(data, 10); |
||||
when:=_double(data, 14); |
||||
text:=_istring_at(data, 22); |
||||
end; |
||||
|
||||
procedure RQ__ParseAuthDeniedSentString(data:Pointer; var uin:integer; var text:AnsiString); |
||||
begin |
||||
uin:=_int_at(data, 6); |
||||
text:=_istring_at(data, 10); |
||||
end; |
||||
|
||||
procedure RQ__ParseAutoMessageSentString(data:Pointer; var uin:integer; var text:AnsiString); |
||||
begin |
||||
uin:=_int_at(data, 6); |
||||
text:=_istring_at(data, 10); |
||||
end; |
||||
|
||||
procedure RQ__ParseAutoMessageGotString(data:Pointer; var uin:integer; var text:AnsiString); |
||||
begin |
||||
uin:=_int_at(data, 6); |
||||
text:=_istring_at(data, 10); |
||||
end; |
||||
|
||||
procedure RQ__ParseAutoMessageRequestSentString(data:Pointer; var uin:integer); |
||||
begin |
||||
uin:=_int_at(data, 6); |
||||
end; |
||||
|
||||
procedure RQ__ParseAutoMessageRequestGotString(data:Pointer; var uin:integer); |
||||
begin |
||||
uin:=_int_at(data, 6); |
||||
end; |
||||
|
||||
procedure RQ__ParseVisibilityChanged(data:Pointer; var contact:integer); |
||||
{ if contact = 0 - all contacts } |
||||
begin |
||||
contact:=_int_at(data, 6); |
||||
end; |
||||
|
||||
procedure RQ__ParseUserinfoChanged(data:Pointer; var uin:integer); |
||||
begin |
||||
uin:=_int_at(data, 6); |
||||
end; |
||||
|
||||
procedure RQ__ParseStatusChanged(data:Pointer; var uin:integer; var newStatus, oldStatus:byte; |
||||
var newInvisibleState, oldInvisibleState:Boolean); |
||||
begin |
||||
uin:=_int_at(data, 6); |
||||
newStatus:=_byte_at(data, 10); |
||||
oldStatus:=_byte_at(data, 11); |
||||
newInvisibleState:=boolean(_byte_at(data, 12)); |
||||
oldInvisibleState:=boolean(_byte_at(data, 13)); |
||||
end; |
||||
|
||||
procedure RQ__ParseListAddString(data:Pointer; var list:byte; var uins:TIntegerDynArray); |
||||
begin |
||||
list:=_byte_at(data, 6); |
||||
uins:=_intlist_at(data, 7); |
||||
end; |
||||
|
||||
procedure RQ__ParseListRemoveString(data:Pointer; var list:byte; var uins:TIntegerDynArray); |
||||
begin |
||||
list:=_byte_at(data, 6); |
||||
uins:=_intlist_at(data, 7); |
||||
end; |
||||
|
||||
{ RoasterList } |
||||
function RQ_GetRoasterList:TIntegerDynArray; |
||||
var |
||||
data:Pointer; |
||||
begin |
||||
data:=CallStr(AnsiChar(PM_GET)+ AnsiChar(PG_LIST)+ AnsiChar(PL_ROASTER)); |
||||
if _byte_at(data, 4) = PM_DATA then |
||||
try Result := _intlist_at(data, 5) except Result:=nil end else Result:=nil; |
||||
end; |
||||
|
||||
{ IgnoreList } |
||||
function RQ_GetIgnoreList:TIntegerDynArray; |
||||
var |
||||
data:Pointer; |
||||
begin |
||||
data:=CallStr(AnsiChar(PM_GET)+ AnsiChar(PG_LIST)+ AnsiChar(PL_IGNORELIST)); |
||||
if _byte_at(data, 4) = PM_DATA then |
||||
try Result := _intlist_at(data, 5) except Result:=nil end else Result:=nil; |
||||
end; |
||||
|
||||
function RQ_GetChatWindow(var wnd:HWND; var left, top, width, height:integer):integer; |
||||
var |
||||
data:Pointer; |
||||
begin |
||||
data:=callStr( AnsiChar(PM_GET)+ AnsiChar(PG_WINDOW)+ AnsiChar(PW_CHAT)); |
||||
if _byte_at(data,4) = PM_DATA then try |
||||
wnd:=_int_at(data, 5); |
||||
left:=_int_at(data, 9); |
||||
top:=_int_at(data, 13); |
||||
width:=_int_at(data, 17); |
||||
height:=_int_at(data, 21); |
||||
result := 1; |
||||
except result := 0; end else result := 0; |
||||
end; |
||||
|
||||
function RQ_GetRoasterWindow(var wnd:HWND; var left, top, width, height:integer):integer; |
||||
var |
||||
data:Pointer; |
||||
begin |
||||
data:=callStr( AnsiChar(PM_GET)+ AnsiChar(PG_WINDOW)+ AnsiChar(PW_ROASTER)); |
||||
if _byte_at(data,4) = PM_DATA then try |
||||
wnd:=_int_at(data, 5); |
||||
left:=_int_at(data, 9); |
||||
top:=_int_at(data, 13); |
||||
width:=_int_at(data, 17); |
||||
height:=_int_at(data, 21); |
||||
result := 1; |
||||
except result := 0; end else result := 0; |
||||
end; |
||||
|
||||
function RQ_GetPrefWindow(var wnd:HWND; var left, top, width, height:integer):integer; |
||||
var |
||||
data:Pointer; |
||||
begin |
||||
data:=callStr( AnsiChar(PM_GET)+ AnsiChar(PG_WINDOW)+ AnsiChar(PW_PREFERENCES)); |
||||
if _byte_at(data,4) = PM_DATA then try |
||||
wnd:=_int_at(data, 5); |
||||
left:=_int_at(data, 9); |
||||
top:=_int_at(data, 13); |
||||
width:=_int_at(data, 17); |
||||
height:=_int_at(data, 21); |
||||
result := 1; |
||||
except result := 0; end else result := 0; |
||||
end; |
||||
|
||||
end. |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.1 KiB |
@ -0,0 +1,35 @@
|
||||
-$A8 |
||||
-$B- |
||||
-$C+ |
||||
-$D+ |
||||
-$E- |
||||
-$F- |
||||
-$G+ |
||||
-$H+ |
||||
-$I+ |
||||
-$J- |
||||
-$K- |
||||
-$L+ |
||||
-$M- |
||||
-$N+ |
||||
-$O+ |
||||
-$P+ |
||||
-$Q- |
||||
-$R- |
||||
-$S- |
||||
-$T- |
||||
-$U- |
||||
-$V+ |
||||
-$W- |
||||
-$X+ |
||||
-$YD |
||||
-$Z1 |
||||
-cg |
||||
-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; |
||||
-H+ |
||||
-W+ |
||||
-M |
||||
-$M16384,1048576 |
||||
-K$00400000 |
||||
-LE"c:\program files\borland\delphi7\Projects\Bpl" |
||||
-LN"c:\program files\borland\delphi7\Projects\Bpl" |
@ -0,0 +1,121 @@
|
||||
[FileVersion] |
||||
Version=7.0 |
||||
[Compiler] |
||||
A=8 |
||||
B=0 |
||||
C=1 |
||||
D=1 |
||||
E=0 |
||||
F=0 |
||||
G=1 |
||||
H=1 |
||||
I=1 |
||||
J=0 |
||||
K=0 |
||||
L=1 |
||||
M=0 |
||||
N=1 |
||||
O=1 |
||||
P=1 |
||||
Q=0 |
||||
R=0 |
||||
S=0 |
||||
T=0 |
||||
U=0 |
||||
V=1 |
||||
W=0 |
||||
X=1 |
||||
Y=1 |
||||
Z=1 |
||||
ShowHints=1 |
||||
ShowWarnings=1 |
||||
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; |
||||
NamespacePrefix= |
||||
SymbolDeprecated=1 |
||||
SymbolLibrary=1 |
||||
SymbolPlatform=1 |
||||
UnitLibrary=1 |
||||
UnitPlatform=1 |
||||
UnitDeprecated=1 |
||||
HResultCompat=1 |
||||
HidingMember=1 |
||||
HiddenVirtual=1 |
||||
Garbage=1 |
||||
BoundsError=1 |
||||
ZeroNilCompat=1 |
||||
StringConstTruncated=1 |
||||
ForLoopVarVarPar=1 |
||||
TypedConstVarPar=1 |
||||
AsgToTypedConst=1 |
||||
CaseLabelRange=1 |
||||
ForVariable=1 |
||||
ConstructingAbstract=1 |
||||
ComparisonFalse=1 |
||||
ComparisonTrue=1 |
||||
ComparingSignedUnsigned=1 |
||||
CombiningSignedUnsigned=1 |
||||
UnsupportedConstruct=1 |
||||
FileOpen=1 |
||||
FileOpenUnitSrc=1 |
||||
BadGlobalSymbol=1 |
||||
DuplicateConstructorDestructor=1 |
||||
InvalidDirective=1 |
||||
PackageNoLink=1 |
||||
PackageThreadVar=1 |
||||
ImplicitImport=1 |
||||
HPPEMITIgnored=1 |
||||
NoRetVal=1 |
||||
UseBeforeDef=1 |
||||
ForLoopVarUndef=1 |
||||
UnitNameMismatch=1 |
||||
NoCFGFileFound=1 |
||||
MessageDirective=1 |
||||
ImplicitVariants=1 |
||||
UnicodeToLocale=1 |
||||
LocaleToUnicode=1 |
||||
ImagebaseMultiple=1 |
||||
SuspiciousTypecast=1 |
||||
PrivatePropAccessor=1 |
||||
UnsafeType=1 |
||||
UnsafeCode=1 |
||||
UnsafeCast=1 |
||||
[Linker] |
||||
MapFile=0 |
||||
OutputObjs=0 |
||||
ConsoleApp=1 |
||||
DebugInfo=0 |
||||
RemoteSymbols=0 |
||||
MinStackSize=16384 |
||||
MaxStackSize=1048576 |
||||
ImageBase=4194304 |
||||
ExeDescription= |
||||
[Directories] |
||||
OutputDir= |
||||
UnitOutputDir= |
||||
PackageDLLOutputDir= |
||||
PackageDCPOutputDir= |
||||
SearchPath= |
||||
Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;FreeRep7;tdbf |
||||
Conditionals= |
||||
DebugSourceDirs= |
||||
UsePackages=0 |
||||
[Parameters] |
||||
RunParams= |
||||
HostApplication=C:\Progs\Inet\Chat\R&Q 1100\plugins\RnQEyeSrc\TestRnQ\R&Q.exe |
||||
Launcher= |
||||
UseLauncher=0 |
||||
DebugCWD=C:\Progs\Inet\Chat\R&Q 1100\plugins\RnQEyeSrc\TestRnQ\plugins |
||||
[Version Info] |
||||
IncludeVerInfo=0 |
||||
AutoIncBuild=0 |
||||
MajorVer=1 |
||||
MinorVer=0 |
||||
Release=0 |
||||
Build=0 |
||||
Debug=0 |
||||
PreRelease=0 |
||||
Special=0 |
||||
Private=0 |
||||
DLL=0 |
||||
Locale=1049 |
||||
CodePage=1251 |
@ -0,0 +1,355 @@
|
||||
library RnQEye; |
||||
|
||||
uses |
||||
Types, |
||||
Classes, |
||||
Windows, |
||||
Messages, |
||||
plugin, |
||||
pluginutil, |
||||
CallExec, |
||||
Dialogs, |
||||
SysUtils, |
||||
Graphics, |
||||
MMSystem, |
||||
IdMultipartFormData, |
||||
IdExceptionCore, |
||||
idHTTP, |
||||
MyOver, |
||||
sform in 'sform.pas' {SetForm}; |
||||
|
||||
{$SETPEFLAGS IMAGE_FILE_LINE_NUMS_STRIPPED or IMAGE_FILE_LOCAL_SYMS_STRIPPED} |
||||
{$WEAKLINKRTTI ON} |
||||
{$RTTI EXPLICIT METHODS([]) FIELDS([]) PROPERTIES([])} |
||||
|
||||
type |
||||
TPOSTThread = class(TThread) |
||||
protected |
||||
procedure Execute; override; |
||||
end; |
||||
|
||||
var |
||||
userPath, andrqPath: AnsiString; |
||||
vApiVersion, currentUIN: Integer; |
||||
|
||||
POST: TThread; |
||||
action: boolean; |
||||
|
||||
{$R icons.res} |
||||
|
||||
// ========================================================== |
||||
|
||||
function EngToRus(statuseng: string): string; |
||||
begin |
||||
if statuseng = 'Online' then result:='Â ñåòè'; |
||||
if statuseng = 'Occupied' then result:='Çàíÿò'; |
||||
if statuseng = 'DND' then result:='Íå áåñïîêîèòü'; |
||||
if statuseng = 'N/A' then result:='Íåäîñòóïåí'; |
||||
if statuseng = 'Away' then result:='Óø¸ë'; |
||||
if statuseng = '' then result:='Ñâîáîäåí'; |
||||
if statuseng = 'Offline' then result:='Îòêëþ÷åí'; |
||||
if statuseng = 'Unknown' then result:='Íåèçâåñòåí'; |
||||
if statuseng = 'Invisible' then result:='Íåâèäèìûé'; |
||||
// if statuseng = '' then result:='Îøèáêà! Ïîâòîðèòå çàïðîñ'; |
||||
end; |
||||
|
||||
procedure OnButtonClickEx(uintocheck: integer); |
||||
var i: integer; |
||||
finish, found: boolean; |
||||
|
||||
procedure ExceptionProxy(ExcpMsg: string); |
||||
begin |
||||
if (SetForm.AvoidBan.checked = true) and |
||||
(SetForm.UseProxy.checked = true) |
||||
and (SetForm.ListBox1.Items.Count >= 2) then |
||||
begin |
||||
if action = true then |
||||
if (GlobalProxy = StartProxy - 1) or ((GlobalProxy = 0) and (StartProxy = 0)) then |
||||
begin |
||||
ifPOST := false; |
||||
showmessage('Íå óäàëîñü ïîäêëþ÷èòüñÿ íè ÷åðåç îäèí èç óêàçàííûõ ïðîêñè'); |
||||
POST.Free; |
||||
exit; |
||||
end; |
||||
SetForm.ExecAntiBan; |
||||
action := true; |
||||
OnButtonClickEx(uintocheck); |
||||
end |
||||
else |
||||
begin |
||||
ifPOST := false; |
||||
showmessage('Îøèáêà îñíîâíîãî ïðîêñè:'+#13+ExcpMsg+#13#13+'Ñïèñîê ïåðåáîðà ïóñò èëè ïåðåáîð ïðîêñè âûêëþ÷åí'); |
||||
end; |
||||
end; |
||||
|
||||
begin |
||||
if uintocheck = -1 then uintocheck := RQ_GetChatUIN; |
||||
if uintocheck <= 0 then exit; |
||||
try |
||||
if SetForm.TurnedOn.Checked = false then |
||||
begin |
||||
SetForm.Show; |
||||
exit; |
||||
end; |
||||
|
||||
finish := false; |
||||
if GlobalProxy > SetForm.ListBox1.Items.Count -1 then GlobalProxy := 0; |
||||
if action = false then StartProxy := GlobalProxy; |
||||
|
||||
if SetForm.UseProxy.Checked = true then |
||||
begin |
||||
if SetForm.ListBox1.Items.Count = 0 then |
||||
begin |
||||
ReadTMTnotice := false; |
||||
ifPOST := false; |
||||
showmessage('Âêëþ÷åíî èñïîëüçîâàíèå ïðîêñè, íî ñàì ïðîêñè (èëè èõ ñïèñîê) íå çàäàí'); |
||||
// POST.Free; |
||||
exit; |
||||
end |
||||
else |
||||
with SetForm do |
||||
if (SetForm.AvoidBan.Checked = true) then |
||||
begin |
||||
idH.ProxyParams.ProxyServer := ExtractWord(1, ListBox1.items[GlobalProxy], delimq); |
||||
idH.ProxyParams.ProxyPort := StrToInt(ExtractWord(2, ListBox1.items[GlobalProxy], delimq)); |
||||
end |
||||
else |
||||
begin |
||||
idH.ProxyParams.ProxyServer := ExtractWord(1, ListBox1.items[0], delimq); |
||||
idH.ProxyParams.ProxyPort := StrToInt(ExtractWord(2, ListBox1.items[0], delimq)); |
||||
end; |
||||
end; |
||||
|
||||
mpf := TIdMultiPartFormDataStream.Create; |
||||
if SetForm.CheckService.ItemIndex = 0 then |
||||
begin |
||||
mpf.AddFormField(SetForm.ikey.text, '1'); |
||||
if SetForm.YouAreAdded.checked = true then |
||||
mpf.AddFormField('youwereadded', 'on'); |
||||
end; |
||||
mpf.AddFormField('uin', IntToStr(uintocheck)); |
||||
|
||||
repeat |
||||
ifPOST := true; |
||||
try |
||||
if SetForm.CheckService.ItemIndex = 0 then |
||||
gotcha := idH.post('http://kanicq.ru/invisible/pda/?method=2', mpf) |
||||
else |
||||
gotcha := idH.post('http://inviznet.ru/inviz_check.php', mpf); |
||||
except end; |
||||
|
||||
if pos('Your have exceeded', gotcha) > 0 then |
||||
begin |
||||
|
||||
if (SetForm.AvoidBan.checked = true) and (SetForm.AvoidBan.Enabled = true) then |
||||
begin |
||||
SetForm.ExecAntiBan; |
||||
continue; |
||||
end |
||||
else |
||||
begin |
||||
mpf.free; |
||||
ShowMessage('Îòâåò ñ ñàéòà: '+ |
||||
copy(gotcha, pos('Your have exceeded', gotcha), |
||||
pos('<form', gotcha) - pos('Your have exceeded', gotcha))); |
||||
ReadTMTnotice := false; |
||||
ifPOST := false; |
||||
POST.Free; |
||||
exit; |
||||
end; |
||||
end; |
||||
|
||||
if pos('The service is currently overflooded', gotcha) > 0 then |
||||
begin |
||||
mpf.free; |
||||
ShowMessage('Îòâåò ñ ñàéòà: '+ |
||||
copy(gotcha, pos('The service is currently overflooded', gotcha), |
||||
pos('<form', gotcha) - pos('The service is currently overflooded', gotcha))); |
||||
ReadTMTnotice := false; |
||||
ifPOST := false; |
||||
POST.Free; |
||||
exit; |
||||
end; |
||||
|
||||
finish := true; |
||||
until finish = true; |
||||
|
||||
if SetForm.CheckService.ItemIndex = 0 then |
||||
begin |
||||
gotcha := copy(gotcha, pos('Result:', gotcha), 200); |
||||
num := IntToStr(uintocheck); |
||||
status := EngToRus(copy(gotcha, pos('"> ',gotcha)+3, pos('</b',gotcha)-pos('"> ',gotcha)-3)); |
||||
end |
||||
else |
||||
if SetForm.CheckService.ItemIndex = 1 then |
||||
begin |
||||
gotcha := copy(gotcha, pos('red !important;"><center>', gotcha), 100); |
||||
num := IntToStr(uintocheck); |
||||
status := (copy(gotcha, pos(';"><center>',gotcha)+12, pos('</center>',gotcha)-pos(';"><center>',gotcha)-12)); |
||||
if pos('íåâèäèìîñò', status) > 0 then status := 'Íåâèäèìûé' |
||||
else if pos('Â ñåòè', status) > 0 then status := 'Â ñåòè' |
||||
else if pos('Íå â ñåòè', status) > 0 then status := 'Îòêëþ÷åí'; |
||||
end; |
||||
gdt := FormatDateTime('hh:nn:ss dd.mm.yyyy', now); |
||||
|
||||
found := false; |
||||
for i := 2 to glst.Count-1 do |
||||
if pos(num, glst[i]) = 1 then |
||||
begin |
||||
glst[i] := num+'|'+status+'|'+gdt; |
||||
found := true; |
||||
end; |
||||
|
||||
if (StrToInt(num) > 0) and (found = false) then glst.Add(num+'|'+status+'|'+gdt); |
||||
glst.SaveToFile(string(RQ_GetUserPath + stname)); |
||||
|
||||
mpf.Free; |
||||
|
||||
ReadTMTnotice := false; |
||||
ifPOST := false; |
||||
POST.Free; |
||||
except |
||||
on E: EIdConnectTimeout do ExceptionProxy(E.Message); |
||||
on E: EIdReadTimeout do |
||||
begin |
||||
ReadTMTnotice := true; |
||||
ExceptionProxy(E.Message); |
||||
end; |
||||
|
||||
on E: Exception do |
||||
begin |
||||
if (pos('# 10061', E.Message) > 0) or |
||||
(pos('# 10065', E.Message) > 0) or |
||||
(pos('# 10054', E.Message) > 0) or |
||||
(pos('timeout', E.Message) > 0) then ExceptionProxy(E.Message) |
||||
else showmessage(E.Message); |
||||
end; |
||||
|
||||
end; |
||||
end; |
||||
|
||||
procedure TPOSTThread.Execute; |
||||
begin |
||||
action := false; |
||||
ReadTMTnotice := false; |
||||
OnButtonClickEx(-1); |
||||
end; |
||||
|
||||
procedure OnButtonClick(iButton: integer); |
||||
var |
||||
State : TKeyboardState; |
||||
begin |
||||
case iButton of |
||||
0: begin |
||||
GetKeyboardState(State); |
||||
if (State[vk_Control] and 128) <> 0 then |
||||
RQ_SendMsg(765000, 0, AnsiString(IntToStr(RQ_GetChatUIN))) |
||||
else |
||||
POST := TPOSTThread.Create(False); |
||||
end; |
||||
1: SetForm.Show; |
||||
2: smsg(VersionText); |
||||
end; |
||||
end; |
||||
|
||||
function pluginFun(data:pointer):pointer; stdcall; |
||||
begin |
||||
result:=NIL; |
||||
if (data=NIL) or (_int_at(data)=0) then exit; |
||||
case _byte_at(data,4) of |
||||
PM_EVENT: |
||||
case _byte_at(data,5) of |
||||
// PE_PROPERTIES_CHANGED: smsg(its(_int_at(data,6)){ + ' | ' + _istring_at(data,7)}); |
||||
PE_INITIALIZE: |
||||
begin |
||||
RQ__ParseInitString(data, callback, vapiVersion, andrqPath, userPath, currentUIN); |
||||
if RQ_GetRnQVersion < 1074 then |
||||
begin |
||||
MessageBox(0, PChar('Èçâèíèòå, íî ýòîò ïëàãèí íå ìîæåò ðàáîòàòü ñ äàííîé âåðñèåé RnQ.'+ |
||||
#13'Ïîæàëóéñòà, îáíîâèòå ïðîãðàììó è ñíèìèòå ãàëêó ñ ïëàãèíà InvisCheck.dll '), PChar('InvisChecker'), MB_ICONHAND); |
||||
Exit; |
||||
end; |
||||
|
||||
IdH := TIdHTTP.Create(nil); |
||||
IdH.ReadTimeout := 3000; |
||||
IdH.AllowCookies := true; |
||||
IdH.HandleRedirects := true; |
||||
IdH.MaxAuthRetries := 3; |
||||
IdH.ProxyParams.BasicAuthentication := false; |
||||
IdH.Request.Accept := 'text/html, */*'; |
||||
IdH.Request.BasicAuthentication := false; |
||||
|
||||
//data := callStr(ansichar(PM_GET) + ansichar(PG_WINDOW) + ansichar(PW_CHAT)); |
||||
SetForm := TSetForm.Create(nil); |
||||
glst := TStringList.Create; |
||||
|
||||
if fileexists(string(RQ_GetUserPath + stname)) then |
||||
begin |
||||
glst.LoadFromFile(string(RQ_GetUserPath + stname)); |
||||
if glst.count > 0 then |
||||
try |
||||
if pos('|', glst[0]) = 0 then glst[0] := glst[0] + '|'; |
||||
|
||||
if SetForm.ExtractWord(1, glst[0], delims) <> '' then |
||||
SetForm.YouAreAdded.Checked := StrToBool(SetForm.ExtractWord(1, glst[0], delims)); |
||||
|
||||
if SetForm.ExtractWord(2, glst[0], delims) <> '' then |
||||
SetForm.ikey.Text := SetForm.ExtractWord(2, glst[0], delims); |
||||
|
||||
if SetForm.ExtractWord(3, glst[0], delims) <> '' then |
||||
SetForm.CheckService.ItemIndex := StrToInt(SetForm.ExtractWord(3, glst[0], delims)); |
||||
except end; |
||||
|
||||
if glst.count > 1 then SetForm.TurnedOn.Checked := StrToBool(glst[1]); |
||||
end else |
||||
begin |
||||
glst.Add('0'); |
||||
glst.Add('1'); |
||||
end; |
||||
|
||||
hico1 := TIcon.Create; |
||||
hico2 := TIcon.Create; |
||||
hico3 := TIcon.Create; |
||||
hico4 := TIcon.Create; |
||||
hico5 := TIcon.Create; |
||||
hico1.Handle := LoadIcon(HInstance, 'ICON_1'); |
||||
hico2.Handle := LoadIcon(HInstance, 'ICON_2'); |
||||
hico3.Handle := LoadIcon(HInstance, 'ICON_3'); |
||||
hico4.Handle := LoadIcon(HInstance, 'ICON_4'); |
||||
hico5.Handle := LoadIcon(HInstance, 'ICON_5'); |
||||
ba := RQ_CreateChatButton(@OnButtonClick, hico2.Handle, 'InvisChecker'); |
||||
|
||||
SetForm.StartTimer; |
||||
|
||||
result:=str2comm(ansichar(PM_DATA)+_istring(namepl)+_int(APIversion)); |
||||
end; |
||||
|
||||
PE_PREFERENCES: |
||||
begin |
||||
SetForm.Show; |
||||
end; |
||||
|
||||
PE_FINALIZE: |
||||
begin |
||||
IdH.Free; |
||||
if MegaTimer <> 0 then TimeKillEvent(MegaTimer); |
||||
if ba <> 0 then RQ_DeleteChatButton(ba); |
||||
if SetForm <> nil then SetForm.Free; |
||||
|
||||
glst.free; |
||||
hico1.free; |
||||
hico2.free; |
||||
hico3.free; |
||||
hico4.free; |
||||
hico5.free; |
||||
end; |
||||
|
||||
end;//case |
||||
end;//case |
||||
end; // pluginFun |
||||
|
||||
exports |
||||
pluginFun; |
||||
|
||||
end. |
||||
|
@ -0,0 +1,298 @@
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
||||
<PropertyGroup> |
||||
<ProjectGuid>{74D52849-BA31-4BE7-8744-1AE96C334AFF}</ProjectGuid> |
||||
<MainSource>InvisCheck.dpr</MainSource> |
||||
<Config Condition="'$(Config)'==''">Release</Config> |
||||
<DCC_DCCCompiler>DCC32</DCC_DCCCompiler> |
||||
<ProjectVersion>14.4</ProjectVersion> |
||||
<Base>True</Base> |
||||
<AppType>Library</AppType> |
||||
<FrameworkType>None</FrameworkType> |
||||
<Platform Condition="'$(Platform)'==''">Win32</Platform> |
||||
<TargetedPlatforms>1</TargetedPlatforms> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> |
||||
<Base>true</Base> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition="('$(Platform)'=='OSX32' and '$(Base)'=='true') or '$(Base_OSX32)'!=''"> |
||||
<Base_OSX32>true</Base_OSX32> |
||||
<CfgParent>Base</CfgParent> |
||||
<Base>true</Base> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''"> |
||||
<Base_Win32>true</Base_Win32> |
||||
<CfgParent>Base</CfgParent> |
||||
<Base>true</Base> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> |
||||
<Cfg_1>true</Cfg_1> |
||||
<CfgParent>Base</CfgParent> |
||||
<Base>true</Base> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win32)'!=''"> |
||||
<Cfg_1_Win32>true</Cfg_1_Win32> |
||||
<CfgParent>Cfg_1</CfgParent> |
||||
<Cfg_1>true</Cfg_1> |
||||
<Base>true</Base> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> |
||||
<Cfg_2>true</Cfg_2> |
||||
<CfgParent>Base</CfgParent> |
||||
<Base>true</Base> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition="('$(Platform)'=='OSX32' and '$(Cfg_2)'=='true') or '$(Cfg_2_OSX32)'!=''"> |
||||
<Cfg_2_OSX32>true</Cfg_2_OSX32> |
||||
<CfgParent>Cfg_2</CfgParent> |
||||
<Cfg_2>true</Cfg_2> |
||||
<Base>true</Base> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''"> |
||||
<Cfg_2_Win32>true</Cfg_2_Win32> |
||||
<CfgParent>Cfg_2</CfgParent> |
||||
<Cfg_2>true</Cfg_2> |
||||
<Base>true</Base> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition="'$(Base)'!=''"> |
||||
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> |
||||
<DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;Winapi;Vcl;Vcl.Samples;$(DCC_Namespace)</DCC_Namespace> |
||||
<VerInfo_Locale>1049</VerInfo_Locale> |
||||
<DCC_StrictVarStrings>false</DCC_StrictVarStrings> |
||||
<DCC_DependencyCheckOutputName>InvisCheck.dll</DCC_DependencyCheckOutputName> |
||||
<GenDll>true</GenDll> |
||||
<DCC_ImageBase>00400000</DCC_ImageBase> |
||||
<DCC_Platform>x86</DCC_Platform> |
||||
<DCC_UnitSearchPath>$(DELPHI)\Lib\Debug;$(DCC_UnitSearchPath)</DCC_UnitSearchPath> |
||||
<DCC_UsePackage>vcl;rtl;vclx;indy;dbrtl;vcldb;bdertl;vclie;visualclx;vclshlctrls;dclOfficeXP;tdbf;vclactnband;adortl;vcldbx;visualdbclx;dsnap;dsnapcon;dbexpress;dss;inet;xmlrtl;inetdbbde;inetdbxpress;webdsnap;VclSmp;soaprtl;dbxcds;inetdb;websnap;ibxpress;qrpt;FlatStyle_D5;IndyCore;IndySystem;IndyProtocols;$(DCC_UsePackage)</DCC_UsePackage> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition="'$(Base_OSX32)'!=''"> |
||||
<Icns_MainIcns>$(BDS)\bin\delphi_PROJECTICNS.icns</Icns_MainIcns> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition="'$(Base_Win32)'!=''"> |
||||
<Debugger_HostApplication>C:\SpeedProgs\Inet\Chat\RnQ\R&Q.exe</Debugger_HostApplication> |
||||
<VerInfo_Locale>1033</VerInfo_Locale> |
||||
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> |
||||
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> |
||||
<Debugger_CWD>C:\SpeedProgs\Inet\Chat\RnQ\plugins</Debugger_CWD> |
||||
<DCC_Namespace>System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition="'$(Cfg_1)'!=''"> |
||||
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=0.5.1.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=0.5.1.0;Comments=</VerInfo_Keys> |
||||
<VerInfo_MajorVer>0</VerInfo_MajorVer> |
||||
<VerInfo_MinorVer>5</VerInfo_MinorVer> |
||||
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> |
||||
<VerInfo_DLL>true</VerInfo_DLL> |
||||
<VerInfo_Release>1</VerInfo_Release> |
||||
<Manifest_File>None</Manifest_File> |
||||
<DCC_MapFile>3</DCC_MapFile> |
||||
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> |
||||
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> |
||||
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> |
||||
<DCC_DebugInformation>false</DCC_DebugInformation> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition="'$(Cfg_1_Win32)'!=''"> |
||||
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> |
||||
<DCC_DebugInformation>true</DCC_DebugInformation> |
||||
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> |
||||
<VerInfo_Locale>1033</VerInfo_Locale> |
||||
<DCC_MapFile>3</DCC_MapFile> |
||||
<Manifest_File>None</Manifest_File> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition="'$(Cfg_2)'!=''"> |
||||
<Manifest_File>None</Manifest_File> |
||||
<DCC_MapFile>3</DCC_MapFile> |
||||
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> |
||||
<DCC_Define>DEBUG;EUREKALOG;EUREKALOG_VER6;$(DCC_Define)</DCC_Define> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition="'$(Cfg_2_OSX32)'!=''"> |
||||
<Icns_MainIcns>$(BDS)\bin\delphi_PROJECTICNS.icns</Icns_MainIcns> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition="'$(Cfg_2_Win32)'!=''"> |
||||
<DCC_Define>_VER7;$(DCC_Define)</DCC_Define> |
||||
</PropertyGroup> |
||||
<ItemGroup> |
||||
<DelphiCompile Include="$(MainSource)"> |
||||
<MainSource>MainSource</MainSource> |
||||
</DelphiCompile> |
||||
<DCCReference Include="sform.pas"> |
||||
<Form>SetForm</Form> |
||||
</DCCReference> |
||||
<BuildConfiguration Include="Debug"> |
||||
<Key>Cfg_2</Key> |
||||
<CfgParent>Base</CfgParent> |
||||
</BuildConfiguration> |
||||
<BuildConfiguration Include="Base"> |
||||
<Key>Base</Key> |
||||
</BuildConfiguration> |
||||
<BuildConfiguration Include="Release"> |
||||
<Key>Cfg_1</Key> |
||||
<CfgParent>Base</CfgParent> |
||||
</BuildConfiguration> |
||||
</ItemGroup> |
||||
<Import Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')" Project="$(BDS)\Bin\CodeGear.Delphi.Targets"/> |
||||
<Import Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')" Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj"/> |
||||
<ProjectExtensions> |
||||
<Borland.Personality>Delphi.Personality.12</Borland.Personality> |
||||
<Borland.ProjectType>VCLApplication</Borland.ProjectType> |
||||
<BorlandProject> |
||||
<Delphi.Personality> |
||||
<Source> |
||||
<Source Name="MainSource">InvisCheck.dpr</Source> |
||||
</Source> |
||||
<Parameters> |
||||
<Parameters Name="HostApplication">C:\SpeedProgs\Inet\Chat\RnQ\R&Q.exe</Parameters> |
||||
<Parameters Name="DebugCWD">C:\SpeedProgs\Inet\Chat\RnQ\plugins</Parameters> |
||||
</Parameters> |
||||
<VersionInfo> |
||||
<VersionInfo Name="IncludeVerInfo">False</VersionInfo> |
||||
<VersionInfo Name="AutoIncBuild">False</VersionInfo> |
||||
<VersionInfo Name="MajorVer">1</VersionInfo> |
||||
<VersionInfo Name="MinorVer">0</VersionInfo> |
||||
<VersionInfo Name="Release">0</VersionInfo> |
||||
<VersionInfo Name="Build">0</VersionInfo> |
||||
<VersionInfo Name="Debug">False</VersionInfo> |
||||
<VersionInfo Name="PreRelease">False</VersionInfo> |
||||
<VersionInfo Name="Special">False</VersionInfo> |
||||
<VersionInfo Name="Private">False</VersionInfo> |
||||
<VersionInfo Name="DLL">False</VersionInfo> |
||||
<VersionInfo Name="Locale">1049</VersionInfo> |
||||
<VersionInfo Name="CodePage">1251</VersionInfo> |
||||
</VersionInfo> |
||||
<VersionInfoKeys> |
||||
<VersionInfoKeys Name="CompanyName"/> |
||||
<VersionInfoKeys Name="FileDescription"/> |
||||
<VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> |
||||
<VersionInfoKeys Name="InternalName"/> |
||||
<VersionInfoKeys Name="LegalCopyright"/> |
||||
<VersionInfoKeys Name="LegalTrademarks"/> |
||||
<VersionInfoKeys Name="OriginalFilename"/> |
||||
<VersionInfoKeys Name="ProductName"/> |
||||
<VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> |
||||
<VersionInfoKeys Name="Comments"/> |
||||
</VersionInfoKeys> |
||||
<Excluded_Packages> |
||||
<Excluded_Packages Name="$(BDSBIN)\dcloffice2k160.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages> |
||||
</Excluded_Packages> |
||||
</Delphi.Personality> |
||||
<Platforms> |
||||
<Platform value="OSX32">False</Platform> |
||||
<Platform value="Win32">True</Platform> |
||||
<Platform value="Win64">False</Platform> |
||||
</Platforms> |
||||
</BorlandProject> |
||||
<ProjectFileVersion>12</ProjectFileVersion> |
||||
</ProjectExtensions> |
||||
</Project> |
||||
|
||||
<!-- EurekaLog First Line |
||||
[Exception Log] |
||||
EurekaLog Version=7001 |
||||
Activate=0 |
||||
atVCL=1 |
||||
AutoCrashOperation=2 |
||||
boHandleSafeCallExceptions=1 |
||||
boUseMainModuleOptions=1 |
||||
csoAllowedRenderMethods=64 |
||||
csoShowWindowsThreads=1 |
||||
DeleteMapAfterCompile=0 |
||||
dpJCL=1 |
||||
edoSendErrorReportChecked=0 |
||||
edoShowSendErrorReportOption=0 |
||||
Email Address="" |
||||
Email Object="" |
||||
Encrypt Password="" |
||||
Errors Number=32 |
||||
Errors Terminate=3 |
||||
Freeze Timeout=1 |
||||
idEurekaLog=1 |
||||
idEurekaLogDetailed=1 |
||||
idMSClassic=1 |
||||
idStepsToReproduce=1 |
||||
loCatchLeaks=0 |
||||
loEnableMMDebugMode=0 |
||||
loFreeAllLeaks=1 |
||||
loHideRTLLeaks=0 |
||||
loMaxLeaks=0 |
||||
loOnlyUnderIDE=0 |
||||
loProcessesSection=1 |
||||
Output Path="" |
||||
ProjectID="{9B39764C-3722-49C3-B2A6-6BBDC15F97A8}" |
||||
SMTP From="eurekalog@email.com" |
||||
SMTP Host="" |
||||
SMTP UserID="" |
||||
sndAddDateInFileName=0 |
||||
sndBugZillaLogin="" |
||||
sndBugZillaPort=0 |
||||
sndBugZillaURL="" |
||||
sndFogBugzHost="" |
||||
sndFogBugzLogin="" |
||||
sndFogBugzPort=0 |
||||
sndFTPLogin="" |
||||
sndFTPPort=0 |
||||
sndFTPURL="" |
||||
sndHTTPPort=0 |
||||
sndHTTPURL="" |
||||
sndMantisLogin="" |
||||
sndMantisPort=0 |
||||
sndMantisURL="" |
||||
sndMAPISubject="" |
||||
sndMAPITarget="" |
||||
sndShellRecepient="" |
||||
sndShellSubject="" |
||||
sndShowFailureMsg=1 |
||||
sndSMAPISubject="" |
||||
sndSMAPITarget="" |
||||
sndSMTPClientFrom="eurekalog@email.com" |
||||
sndSMTPClientHost="" |
||||
sndSMTPClientLogin="" |
||||
sndSMTPClientSubject="" |
||||
sndSMTPClientTarget="" |
||||
sndSMTPServerFrom="eurekalog@email.com" |
||||
sndSMTPServerSubject="" |
||||
sndSMTPServerTarget="" |
||||
soActCtlsControlClass=1 |
||||
soActCtlsControlText=1 |
||||
soActCtlsFormClass=1 |
||||
soActCtlsFormText=1 |
||||
soAppCompilationDate=1 |
||||
soAppName=1 |
||||
soAppParameters=1 |
||||
soAppStartDate=1 |
||||
soAppUpTime=1 |
||||
soAppVersionNumber=1 |
||||
soCmpDisplayDPI=1 |
||||
soCmpDisplayMode=1 |
||||
soCmpFreeDisk=1 |
||||
soCmpFreeMemory=1 |
||||
soCmpName=1 |
||||
soCmpPrinter=1 |
||||
soCmpProcessor=1 |
||||
soCmpSysUpTime=1 |
||||
soCmpTotalDisk=1 |
||||
soCmpTotalMemory=1 |
||||
soCmpVideoCard=1 |
||||
soCustomData=1 |
||||
soExcCount=1 |
||||
soExcDate=1 |
||||
soExcModuleName=1 |
||||
soExcModuleVersion=1 |
||||
soExcNote=1 |
||||
soExcStatus=1 |
||||
soNetDHCP=1 |
||||
soNetDNS1=1 |
||||
soNetDNS2=1 |
||||
soNetGateway=1 |
||||
soNetIP=1 |
||||
soNetSubmask=1 |
||||
soOSBuildN=1 |
||||
soOSCharset=1 |
||||
soOSLanguage=1 |
||||
soOSType=1 |
||||
soOSUpdate=1 |
||||
soUserCompany=1 |
||||
soUserID=1 |
||||
soUserPrivileges=1 |
||||
TextsCollection="" |
||||
TrakerUser="" |
||||
WebPort=0 |
||||
WebURL="" |
||||
EurekaLog Last Line --> |
@ -0,0 +1,108 @@
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
||||
<PropertyGroup> |
||||
<ProjectGuid>{74D52849-BA31-4BE7-8744-1AE96C334AFF}</ProjectGuid> |
||||
<MainSource>InvisCheck.dpr</MainSource> |
||||
<Config Condition="'$(Config)'==''">Debug</Config> |
||||
<DCC_DCCCompiler>DCC32</DCC_DCCCompiler> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> |
||||
<Base>true</Base> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> |
||||
<Cfg_1>true</Cfg_1> |
||||
<CfgParent>Base</CfgParent> |
||||
<Base>true</Base> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> |
||||
<Cfg_2>true</Cfg_2> |
||||
<CfgParent>Base</CfgParent> |
||||
<Base>true</Base> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition="'$(Base)'!=''"> |
||||
<DCC_DependencyCheckOutputName>InvisCheck.dll</DCC_DependencyCheckOutputName> |
||||
<GenDll>true</GenDll> |
||||
<DCC_RangeChecking>true</DCC_RangeChecking> |
||||
<DCC_IntegerOverflowCheck>true</DCC_IntegerOverflowCheck> |
||||
<DCC_ImageBase>00400000</DCC_ImageBase> |
||||
<DCC_UnitAlias>WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;$(DCC_UnitAlias)</DCC_UnitAlias> |
||||
<DCC_Platform>x86</DCC_Platform> |
||||
<DCC_UnitSearchPath>$(DELPHI)\Lib\Debug;$(DCC_UnitSearchPath)</DCC_UnitSearchPath> |
||||
<DCC_UsePackage>vcl;rtl;vclx;indy;dbrtl;vcldb;bdertl;vclie;visualclx;vclshlctrls;dclOfficeXP;tdbf;vclactnband;adortl;vcldbx;visualdbclx;dsnap;dsnapcon;dbexpress;dss;inet;xmlrtl;inetdbbde;inetdbxpress;webdsnap;VclSmp;soaprtl;dbxcds;inetdb;websnap;ibxpress;qrpt;FlatStyle_D5;IndyCore;IndySystem;IndyProtocols</DCC_UsePackage> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition="'$(Cfg_1)'!=''"> |
||||
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> |
||||
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> |
||||
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> |
||||
<DCC_DebugInformation>false</DCC_DebugInformation> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition="'$(Cfg_2)'!=''"> |
||||
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> |
||||
</PropertyGroup> |
||||
<ItemGroup> |
||||
<DelphiCompile Include="InvisCheck.dpr"> |
||||
<MainSource>MainSource</MainSource> |
||||
</DelphiCompile> |
||||
<DCCReference Include="CallExec.pas"/> |
||||
<DCCReference Include="sform.pas"> |
||||
<Form>SetForm</Form> |
||||
</DCCReference> |
||||
<BuildConfiguration Include="Base"> |
||||
<Key>Base</Key> |
||||
</BuildConfiguration> |
||||
<BuildConfiguration Include="Debug"> |
||||
<Key>Cfg_2</Key> |
||||
<CfgParent>Base</CfgParent> |
||||
</BuildConfiguration> |
||||
<BuildConfiguration Include="Release"> |
||||
<Key>Cfg_1</Key> |
||||
<CfgParent>Base</CfgParent> |
||||
</BuildConfiguration> |
||||
</ItemGroup> |
||||
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> |
||||
<ProjectExtensions> |
||||
<Borland.Personality>Delphi.Personality.12</Borland.Personality> |
||||
<Borland.ProjectType>VCLApplication</Borland.ProjectType> |
||||
<BorlandProject> |
||||
<Delphi.Personality> |
||||
<Source> |
||||
<Source Name="MainSource">InvisCheck.dpr</Source> |
||||
</Source> |
||||
<Parameters> |
||||
<Parameters Name="HostApplication">C:\Progs\Inet\Chat\R&Q 1100\plugins\RnQEyeSrc\TestRnQ\R&Q.exe</Parameters> |
||||
<Parameters Name="UseLauncher">False</Parameters> |
||||
<Parameters Name="DebugCWD">C:\Progs\Inet\Chat\R&Q 1100\plugins\RnQEyeSrc\TestRnQ\plugins</Parameters> |
||||
<Parameters Name="LoadAllSymbols">True</Parameters> |
||||
<Parameters Name="LoadUnspecifiedSymbols">False</Parameters> |
||||
</Parameters> |
||||
<VersionInfo> |
||||
<VersionInfo Name="IncludeVerInfo">False</VersionInfo> |
||||
<VersionInfo Name="AutoIncBuild">False</VersionInfo> |
||||
<VersionInfo Name="MajorVer">1</VersionInfo> |
||||
<VersionInfo Name="MinorVer">0</VersionInfo> |
||||
<VersionInfo Name="Release">0</VersionInfo> |
||||
<VersionInfo Name="Build">0</VersionInfo> |
||||
<VersionInfo Name="Debug">False</VersionInfo> |
||||
<VersionInfo Name="PreRelease">False</VersionInfo> |
||||
<VersionInfo Name="Special">False</VersionInfo> |
||||
<VersionInfo Name="Private">False</VersionInfo> |
||||
<VersionInfo Name="DLL">False</VersionInfo> |
||||
<VersionInfo Name="Locale">1049</VersionInfo> |
||||
<VersionInfo Name="CodePage">1251</VersionInfo> |
||||
</VersionInfo> |
||||
<VersionInfoKeys> |
||||
<VersionInfoKeys Name="CompanyName"/> |
||||
<VersionInfoKeys Name="FileDescription"/> |
||||
<VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> |
||||
<VersionInfoKeys Name="InternalName"/> |
||||
<VersionInfoKeys Name="LegalCopyright"/> |
||||
<VersionInfoKeys Name="LegalTrademarks"/> |
||||
<VersionInfoKeys Name="OriginalFilename"/> |
||||
<VersionInfoKeys Name="ProductName"/> |
||||
<VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> |
||||
<VersionInfoKeys Name="Comments"/> |
||||
</VersionInfoKeys> |
||||
</Delphi.Personality> |
||||
</BorlandProject> |
||||
<ProjectFileVersion>12</ProjectFileVersion> |
||||
</ProjectExtensions> |
||||
</Project> |
@ -0,0 +1,185 @@
|
||||
Unit plugin; |
||||
interface |
||||
const |
||||
APIversion = 5; |
||||
|
||||
// whatlist |
||||
PL_ROASTER =1; |
||||
PL_VISIBLELIST =2; |
||||
PL_INVISIBLELIST =3; |
||||
PL_TEMPVISIBLELIST =4; |
||||
PL_IGNORELIST =5; |
||||
PL_DB =6; |
||||
PL_NIL =7; // not in list |
||||
|
||||
// connection state |
||||
PCS_DISCONNECTED =1; |
||||
PCS_CONNECTED =2; |
||||
PCS_CONNECTING =3; |
||||
|
||||
// whatwindow |
||||
PW_ROASTER =1; |
||||
PW_CHAT =2; |
||||
PW_PREFERENCES =3; |
||||
|
||||
// status |
||||
PS_ONLINE =0; |
||||
PS_OCCUPIED =1; |
||||
PS_DND =2; |
||||
PS_NA =3; |
||||
PS_AWAY =4; |
||||
PS_F4C =5; // free for chat |
||||
PS_OFFLINE =6; |
||||
PS_UNKNOWN =7; |
||||
PS_EVIL =8; |
||||
PS_DEPRESSION =9; |
||||
|
||||
// visibility |
||||
PV_INVISIBLE =0; |
||||
PV_PRIVACY =1; |
||||
PV_NORMAL =2; |
||||
PV_ALL =3; |
||||
PV_CL =4; |
||||
|
||||
// messages |
||||
PM_GET =1; // asking data |
||||
PM_DATA =2; // posting datas (reply) |
||||
PM_EVENT =3; // event notification |
||||
PM_ABORT =4; // abort event (reply) |
||||
PM_CMD =5; // exec command |
||||
PM_ACK =6; // ack to request (reply) |
||||
PM_ERROR =7; // error (reply) |
||||
|
||||
// events |
||||
PE_INITIALIZE =01; |
||||
PE_FINALIZE =02; |
||||
PE_PREFERENCES =03; |
||||
PE_CONNECTED =04; |
||||
PE_DISCONNECTED =05; |
||||
PE_MSG_GOT =06; |
||||
PE_MSG_SENT =07; |
||||
PE_CONTACTS_GOT =08; |
||||
PE_CONTACTS_SENT =09; |
||||
PE_URL_GOT =10; |
||||
PE_URL_SENT =11; |
||||
PE_ADDEDYOU_GOT =12; |
||||
PE_ADDEDYOU_SENT =13; |
||||
PE_AUTHREQ_GOT =14; |
||||
PE_AUTHREQ_SENT =15; |
||||
PE_AUTH_GOT =16; |
||||
PE_AUTH_SENT =17; |
||||
PE_AUTHDENIED_GOT =18; |
||||
PE_AUTHDENIED_SENT =19; |
||||
PE_GCARD_GOT =20; |
||||
PE_GCARD_SENT =21; |
||||
PE_AUTOMSG_GOT =22; |
||||
PE_AUTOMSG_SENT =23; |
||||
PE_AUTOMSG_REQ_GOT =24; |
||||
PE_AUTOMSG_REQ_SENT =25; |
||||
PE_EMAILEXP_GOT =26; |
||||
PE_EMAILEXP_SENT =27; |
||||
PE_LIST_ADD =28; |
||||
PE_LIST_REMOVE =29; |
||||
PE_STATUS_CHANGED =30; |
||||
PE_USERINFO_CHANGED =31; |
||||
PE_VISIBILITY_CHANGED =32; |
||||
PE_WEBPAGER_GOT =33; |
||||
PE_WEBPAGER_SENT =34; |
||||
PE_FROM_MIRABILIS =35; |
||||
PE_UPDATE_INFO =36; |
||||
PE_XSTATUSMSG_SENT = 223; |
||||
PE_XSTATUS_REQ_GOT = 224; |
||||
|
||||
PE_SELECTTAB =50; |
||||
PE_DESELECTTAB =51; |
||||
PE_CLOSETAB =52; |
||||
PE_QUIT =255; |
||||
|
||||
// get |