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
114
115
116
117
|
{
Miranda IM: the free IM client for Microsoft* Windows*
Copyright 2000-2003 Miranda ICQ/IM project,
all portions of this codebase are copyrighted to the people
listed in contributors.txt.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
}
{$IFNDEF M_PROTOMOD}
{$DEFINE M_PROTOMOD}
{$IFNDEF M_PROTOCOLS}
{$INCLUDE m_protocols.inc}
{$ENDIF}
const
{
wParam : 0
lParam : Pointer to a initalised TPROTOCOLDESCRIPTOR structure
Affect : Register a protocol module, see notes
Returns: 0 on success, [non zero] on failure
Notes : This service MUST be called from your module's Load() function
TPROTOCOLDESCRIPTOR.type can be a value other than PROTOTYPE_*
which are used to provide a more precise positioning information
for the contact protocol lists.
-
Relative values to the constants can be given, but this MUST NOT
be done for PROTOTYPE_PROTOCOL.
}
MS_PROTO_REGISTERMODULE:PAnsiChar = 'Proto/RegisterModule';
{
wParam : HCONTACT
lParam : protocol_name_string
Affect : Add the given protocol module to the chain for a contact, see notes
Returns: 0 success, [non zero] on failure
Notes : The module is added to the correct positioning according to it's
registered type.
}
MS_PROTO_ADDTOCONTACT:PAnsiChar = 'Proto/AddToContact';
{
wParam : HCONTACT
lParam : protocol_name_string
Affect : Remove the given protocol name from the chain for the given contact
Returns: 0 on success, [non zero] on failure
}
MS_PROTO_REMOVEFROMCONTACT:PAnsiChar = 'Proto/RemoveFromContact';
{ see m_globaldefs.pas for CreateProtoServiceFunction }
{
wParam : wParam [arg]
lParam : lParam [arg]
Affect : Call the next service in the chain for the send operation, see notes
Return : Return value should be returned by CallService(MS_PROTO_CHAINSEND,wParam,lParam)
Notes : wParam MUST remain untouched, lParam is a pointer to a CSSDATA structure
and can be modified or copid if needed.
wParam and lParam should be the values passed to your service,
typically your service should return ASAP.
}
MS_PROTO_CHAINSEND:PAnsiChar = 'Proto/ChainSend';
{
wParam : wParam [arg]
lParam : lParam [arg]
Affect : Call the next service in the chain in this receive operation, see notes
Return : Return value should be returned by CallService(MS_PROTO_CHAINRECV,wParam,lParam)
Notes : wParam MUST remain untouched, lParam is a pointer to a CSSDATA structure
and can be modified or copied if needed.
wParam and lParam should be the values passed to your service,
typically your service should return ASAP.
-
MS_PROTO_CHAINRECV is thread safe since 0.1.2.0 -- calls
are translated to the main thread and passed from there.
}
MS_PROTO_CHAINRECV:PAnsiChar = 'Proto/ChainRecv';
{
wParam : 0
lParam : Pointer to an initalised ACKDATA
Affect : Broadcast a ME_PROTO_ACK event, see notes
Returns: The return value of the NotifyEventHooks() call
Notes : ME_PROTO_ACK is completely thread safe since 01.2.0
see notes in core/modules.h under NotifyEventHooks()
}
MS_PROTO_BROADCASTACK:PAnsiChar = 'Proto/BroadcastAck';
// -- Added during 0.3.4 (2004/09/27) development! -----
{
wParam: (HANDLE)hContact
lParam: 0
Affect: Given a hContact, return the protocol that is registered for it, or NULL if no such protocol exists,
the returned string does not have to be freed and is valid even for multiple threads.
Note: Prior to 2004/09/28 this service WAS NOT THREAD SAFE and was slower
Note: Prior to 2004/09/28 this service would return NULL for a hContact if the protocol module
associated with the hContact was not currently loaded, no such check is performed now.
Version: 0.3.4 (2004/09/28)
}
const
MS_PROTODIR_PROTOFROMCONTACT = MS_PROTO_GETCONTACTBASEPROTO;
{$ENDIF}
|