-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathplugin.dpr
113 lines (99 loc) · 3.15 KB
/
plugin.dpr
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
{
! Ïðî÷èòàéòå è íå óäàëÿéòå ýòîò êîììåíòàðèé, ïðîÿâèòå óâàæåíèå ê åãî àâòîðó :)
Mafia CommFort 5 Plugin
Âû ìîæåòå èñïîëüçîâàòü äàííûé èñõîäíûé êîä â ëþáûõ çàêîííûõ öåëÿõ, íî íå çàáûâàéòå óêàçûâàòü îðèãèíàëüíîãî àâòîðà :)
Ñëåäèòå çà îáíîâëåíèÿìè òóò: http://commfort.com/ru/forum/viewtopic.php?f=28&t=6386
Åñëè Âû èñïðàâèëè îøèáêó èëè äîáàâèëè ïîëåçíóþ ôóíêöèþ, ëó÷øå ïîäåëèòüñÿ ðåøåíèåì ñî âñåìè, ïèøèòå ñþäà: http://commfort.com/ru/forum/ucp.php?i=pm&mode=compose&u=14755
Âêëàä â ñîçäàíèå è ðàçâèòèå ïëàãèíà âíåñëè:
Àâòîð ñêåëåòà ïëàãèíà äëÿ CommFort 4 - sonic
Ïðåâðàùåíèå ñêåëåòà â ìàôèþ è ïîðòèðîâàíèå ïîä CommFort 5 - KGB
Ñîâåòû ïî âîçìîæíîñòÿì ïëàãèíà - DENS, sasha
Ñîâåòû ïî óëó÷øåíèþ êîäà - -=SJ=-
Òåðïåíèå - Maxim Mirgorodsky
È, êîíå÷íî, âñå ïîëüçîâàòåëè, òåñòèðóþùèå ïëàãèí è ñîîáùàþùèå îá îøèáêàõ:)
}
// JCL_DEBUG_EXPERT_GENERATEJDBG ON
// JCL_DEBUG_EXPERT_INSERTJDBG ON
library mafia_plugin;
uses
Windows,
SysUtils,
Classes,
ExceptionJCLSupport,
MyIniFiles in 'MyIniFiles.pas',
comm_info in 'comm_info.pas',
comm_plugin in 'comm_plugin.pas',
comm_data in 'comm_data.pas',
mafia in 'mafia.pas',
libfunc in 'libfunc.pas',
libstat in 'libstat.pas',
libqueue in 'libqueue.pas',
settings in 'settings.pas' {frmSettings},
mafia_data in 'mafia_data.pas',
about in 'about.pas' {frmAbout},
libuserdata in 'libuserdata.pas';
{$E cfplug}
function PluginStart(dwThisPluginID : DWORD; func1 : TtypeCommFortProcess; func2: TtypeCommFortGetData) : Boolean; stdcall;
begin
ThisPlugin := TCommPlugin.Create(dwThisPluginID, @func1, @func2);
result := true;
end;
function PluginStop : Byte; stdcall;
begin
ThisPlugin.Free;
Result :=1;
end;
procedure PluginProcess(dwMessageID : DWORD; bMessage : TBytes; dwMessageLength : DWORD); stdcall;
begin
ThisPlugin.CorePlugin.Process(dwMessageID, bMessage, dwMessageLength);
end;
function PluginGetData(dwMessageID : DWORD; bInBuffer : PString; inBufferLength : DWORD; bOutBuffer : PAnsiChar; outBufferLength : DWORD): DWORD; stdcall;
var
name: string;
i: DWORD;
begin
Result:=0;
case dwMessageID of
GD_PLUGIN_SERVER_OR_CLIENT:
begin
if outBufferLength>0 then
begin
I:=0;
CopyMemory(bOutBuffer, @I, 4);
end;
end;
GD_PLUGIN_NAME:
begin
Result:=Length(PLU_NAME)*2+4;
if outBufferLength>0 then
begin
I:=Length(PLU_NAME);
name:= PLU_NAME;
CopyMemory(bOutBuffer, @I, 4);
CopyMemory(bOutBuffer+4, @name[1], I*2);
end;
end;
end;
end;
procedure PluginShowOptions();
begin
if not Assigned(frmSettings) then
begin
frmSettings:=TfrmSettings.Create(nil);
frmSettings.Show;
end;
end;
procedure PluginShowAbout();
begin
if not Assigned(frmAbout) then
begin
frmAbout:=TFrmAbout.Create(nil);
frmAbout.Show;
end;
end;
//function PluginPremoderation(dwMessageID : DWORD; bMessage : PCHAR; dwMessageLength : PDWORD) : boolean; stdcall;
//begin
// result := ThisPlugin.CorePlugin.Premoderation(dwMessageID, bMessage, dwMessageLength);
//end;
exports PluginStart, PluginStop, PluginProcess, PluginGetData, PluginShowOptions, PluginShowAbout;
end.