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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
|
{
IEView Plugin for Miranda IM
Copyright (C) 2005 Piotr Piastucki
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_IEVIEW}
{$DEFINE M_IEVIEW}
const
MS_IEVIEW_WINDOW = 'IEVIEW/NewWindow';
MS_IEVIEW_EVENT = 'IEVIEW/Event';
MS_IEVIEW_NAVIGATE = 'IEVIEW/Navigate';
ME_IEVIEW_OPTIONSCHANGED = 'IEVIEW/OptionsChanged';
(*
MS_IEVIEW_UTILS = 'IEVIEW/Utils';
MS_IEVIEW_SHOWSMILEYSELECTION = 'IEVIEW/ShowSmileySelection';
ME_IEVIEW_NOTIFICATION = 'IEVIEW/Notification';
*)
IEW_CREATE = 1; // create new window (control)
IEW_DESTROY = 2; // destroy control
IEW_SETPOS = 3; // set window position and size
IEW_SCROLLBOTTOM = 4; // scroll text to bottom
IEWM_SRMM = 0; // regular SRMM
IEWM_TABSRMM = 1; // TabSRMM-compatible HTML builder
IEWM_HTML = 2; // HTML
IEWM_SCRIVER = 3; // HTML
IEWM_MUCC = 4; // MUCC group chats GUI
IEWM_CHAT = 5; // chat.dll group chats GUI
IEWM_HISTORY = 6; // history viewer
IEWM_BROWSER = 256; // empty browser window
type
PIEVIEWWINDOW = ^TIEVIEWWINDOW;
TIEVIEWWINDOW = record
cbSize : int; // size of the strusture
iType : int; // one of IEW_* values
dwMode : dword; // compatibility mode - one of IEWM_* values
dwFlags: dword; // flags, one of IEWF_* values
parent : HWND; // parent window HWND
hwnd : HWND; // IEW_CREATE returns WebBrowser control's HWND here
x : int; // IE control horizontal position
y : int; // IE control vertical position
cx : int; // IE control horizontal size
cy : int; // IE control vertical size
end;
const
IEEDF_UNICODE = 1; // if set pszText is a pointer to wchar_t string instead of AnsiChar string
IEEDF_UNICODE_TEXT = 1; // if set pszText is a pointer to wchar_t string instead of AnsiChar string
IEEDF_UNICODE_NICK = 2; // if set pszNick is a pointer to wchar_t string instead of AnsiChar string
IEEDF_UNICODE_TEXT2 = 4; // if set pszText2 is a pointer to wchar_t string instead of AnsiChar string
// The following flags are valid only for message events (IEED_EVENT_MESSAGE)
IEEDF_FORMAT_FONT = $00000100; // if set pszFont (font name) is valid and should be used
IEEDF_FORMAT_SIZE = $00000200; // if set fontSize is valid and should be used
IEEDF_FORMAT_COLOR = $00000400; // if set color is valid and should be used
IEEDF_FORMAT_STYLE = $00000800; // if set fontSize is valid and should be used
IEEDF_READ = $00001000; // if set
IEEDF_SENT = $00002000; // if set
IEEDF_RTL = $00004000; // if set
IEED_EVENT_MESSAGE = $0001; // message
IEED_EVENT_STATUSCHANGE = $0002; // status change
IEED_EVENT_FILE = $0003; // file
IEED_EVENT_URL = $0004; // url
IEED_EVENT_ERRMSG = $0005; // error message
IEED_EVENT_SYSTEM = $0006; // system event
IEED_MUCC_EVENT_MESSAGE = $0001; // message
IEED_MUCC_EVENT_TOPIC = $0002; // topic change
IEED_MUCC_EVENT_JOINED = $0003; // user joined
IEED_MUCC_EVENT_LEFT = $0004; // user left
IEED_MUCC_EVENT_ERROR = $0005; // error
// MUCC-related dwData bit flags
IEEDD_MUCC_SHOW_NICK = $00000001;
IEEDD_MUCC_MSG_ON_NEW_LINE = $00000002;
IEEDD_MUCC_SHOW_DATE = $00000010;
IEEDD_MUCC_SHOW_TIME = $00000020;
IEEDD_MUCC_SECONDS = $00000040;
IEEDD_MUCC_LONG_DATE = $00000080;
IEED_GC_EVENT_HIGHLIGHT = $8000;
IEED_GC_EVENT_MESSAGE = $0001;
IEED_GC_EVENT_TOPIC = $0002;
IEED_GC_EVENT_JOIN = $0003;
IEED_GC_EVENT_PART = $0004;
IEED_GC_EVENT_QUIT = $0006;
IEED_GC_EVENT_NICK = $0007;
IEED_GC_EVENT_ACTION = $0008;
IEED_GC_EVENT_KICK = $0009;
IEED_GC_EVENT_NOTICE = $000A;
IEED_GC_EVENT_INFORMATION = $000B;
IEED_GC_EVENT_ADDSTATUS = $000C;
IEED_GC_EVENT_REMOVESTATUS = $000D;
// GC-related dwData bit flags
IEEDD_GC_SHOW_NICK = $00000001;
IEEDD_GC_SHOW_TIME = $00000002;
IEEDD_GC_SHOW_ICON = $00000004;
IEEDD_GC_MSG_ON_NEW_LINE = $00001000;
IE_FONT_BOLD = $000100; // Bold font flag
IE_FONT_ITALIC = $000200; // Italic font flag
IE_FONT_UNDERLINE = $000400; // Underlined font flags
type
PtagIEVIEWEVENTDATA = ^TtagIEVIEWEVENTDATA;
TtagIEVIEWEVENTDATA = record
cbSize :int;
iType :int; // Event type, one of MUCC_EVENT_* values
dwFlags :dword; // Event flags - IEEF_*
fontName :PAnsiChar; // Text font name
fontSize :int; // Text font size (in pixels)
fontStyle:int; // Text font style (combination of IE_FONT_* flags)
color :TCOLORREF; // Text color
Nick :TChar; // Nick, usage depends on type of event
Text :TChar; // Text, usage depends on type of event
dwData :dword; // dword data e.g. status
bIsMe :bool; // TRUE if the event is related to the user
time :dword; // Time of the event
next :PtagIEVIEWEVENTDATA;
Text2 :TChar; // Text, usage depends on type of event
end;
PIEVIEWEVENTDATA = PtagIEVIEWEVENTDATA;
TIEVIEWEVENTDATA = TtagIEVIEWEVENTDATA;
const
IEE_LOG_DB_EVENTS = 1; // log specified number of DB events
IEE_CLEAR_LOG = 2; // clear log
IEE_GET_SELECTION = 3; // get selected text
IEE_SAVE_DOCUMENT = 4; // save current document
IEE_LOG_MEM_EVENTS = 5; // log specified number of IEView events
IEEF_RTL = 1; // turn on RTL support
IEEF_NO_UNICODE = 2; // disable Unicode support
IEEF_NO_SCROLLING = 4; // do not scroll logs to bottom
const
IEVIEWEVENT_SIZE_V1 = 28;
IEVIEWEVENT_SIZE_V2 = 32;
IEVIEWEVENT_SIZE_V3 = 36;
type
tagIEVIEWEVENT = record
case byte of
0: (hDbEventFirst: THANDLE);
1: (eventData :PIEVIEWEVENTDATA);
end;
PIEVIEWEVENT = ^TIEVIEWEVENT;
TIEVIEWEVENT = record
cbSize :int; // size of the strusture
iType :int; // one of IEE_* values
dwFlags :dword; // one of IEEF_* values
hwnd :HWND; // HWND returned by IEW_CREATE
hContact :TMCONTACT; // contact
Event :tagIEVIEWEVENT; // first event to log, when IEE_LOG_EVENTS
// returns it will contain the last event
// actually logged or NULL if no event was logged
count :int; // number of events to log
codepage :int; // ANSI codepage
pszProto :PAnsiChar;
end;
(*
type
PIEVIEWSHOWSMILEYSEL = ^TIEVIEWSHOWSMILEYSEL;
TIEVIEWSHOWSMILEYSEL = record
cbSize : int; // size of the structure
Protocolname : PAnsiChar; // protocol to use... if you have defined a protocol,
// u can use your own protocol name. Smiley add will
// automatically select the smileypack that is
// defined for your protocol. Or, use "Standard" for
// standard smiley set. Or "ICQ", "MSN" if you
// prefer those icons. If not found or NULL:
// "Standard" will be used
xPosition : int; // Postition to place the selectwindow
yPosition : int;
Direction : int; // Direction (i.e. size upwards/downwards/etc) of
// the window 0, 1, 2, 3
hwndTarget : HWND; // Window, where to send the message when smiley is
// selected.
targetMessage: dword; // Target message, to be sent.
targetWParam : LPARAM; // Target WParam to be sent (LParam will be AnsiChar*
// to select smiley) see the example file.
end;
*)
const
IEN_NAVIGATE = 1; // navigate to the given destination
IENF_UNICODE = 1; // if set urlW is used instead of urlW
type
IEVIEWNAVIGATE = record
cbSize :int; // size of the strusture
iType :int; // one of IEN_* values
dwFlags:dword; // one of IEEF_* values
hwnd :HWND; // HWND returned by IEW_CREATE
url :TChar; // Text, usage depends on type of event
end;
{$ENDIF}
|