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
|
/*
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_INCLUDED
#define M_IEVIEW_INCLUDED
#define MS_IEVIEW_WINDOW "IEVIEW/NewWindow"
#define MS_IEVIEW_EVENT "IEVIEW/Event"
#define MS_IEVIEW_NAVIGATE "IEVIEW/Navigate"
#define ME_IEVIEW_OPTIONSCHANGED "IEVIEW/OptionsChanged"
/* IEView window commands */
#define IEW_CREATE 1 // create new window (control)
#define IEW_DESTROY 2 // destroy control
#define IEW_SETPOS 3 // set window position and size
#define IEW_SCROLLBOTTOM 4 // scroll text to bottom
/* IEView window type/mode */
#define IEWM_TABSRMM 1 // TabSRMM-compatible HTML builder
#define IEWM_SCRIVER 3 // Scriver-compatible HTML builder
#define IEWM_MUCC 4 // MUCC group chats GUI
#define IEWM_CHAT 5 // chat.dll group chats GUI
#define IEWM_HISTORY 6 // history viewer
#define IEWM_BROWSER 256 // empty browser window
typedef struct {
int cbSize; // size of the strusture
int iType; // one of IEW_* values
DWORD dwMode; // compatibility mode - one of IEWM_* values
DWORD dwFlags; // flags, one of IEWF_* values
HWND parent; // parent window HWND
HWND hwnd; // IEW_CREATE returns WebBrowser control's HWND here
int x; // IE control horizontal position
int y; // IE control vertical position
int cx; // IE control horizontal size
int cy; // IE control vertical size
} IEVIEWWINDOW;
#define IEEDF_UNICODE 0x00000001 // if set pszText is a pointer to wchar_t string instead of char string
#define IEEDF_UNICODE_TEXT 0x00000001 // if set pszText is a pointer to wchar_t string instead of char string
#define IEEDF_UNICODE_NICK 0x00000002 // if set pszNick is a pointer to wchar_t string instead of char string
#define IEEDF_UNICODE_TEXT2 0x00000004 // if set pszText2 is a pointer to wchar_t string instead of char string
/* The following flags are valid only for message events (IEED_EVENT_MESSAGE) */
#define IEEDF_FORMAT_FONT 0x00000100 // if set pszFont (font name) is valid and should be used
#define IEEDF_FORMAT_SIZE 0x00000200 // if set fontSize is valid and should be used
#define IEEDF_FORMAT_COLOR 0x00000400 // if set color is valid and should be used
#define IEEDF_FORMAT_STYLE 0x00000800 // if set fontSize is valid and should be used
#define IEEDF_READ 0x00001000 // if set
#define IEEDF_SENT 0x00002000 // if set
#define IEEDF_RTL 0x00004000 // if set
#define IEED_EVENT_MESSAGE 0x0001 // message
#define IEED_EVENT_STATUSCHANGE 0x0002 // status change
#define IEED_EVENT_FILE 0x0003 // file
#define IEED_EVENT_ERRMSG 0x0005 // error message
#define IEED_EVENT_SYSTEM 0x0006 // system event
#define IEED_MUCC_EVENT_MESSAGE 0x0001 // message
#define IEED_MUCC_EVENT_TOPIC 0x0002 // topic change
#define IEED_MUCC_EVENT_JOINED 0x0003 // user joined
#define IEED_MUCC_EVENT_LEFT 0x0004 // user left
#define IEED_MUCC_EVENT_ERROR 0x0005 // error
/* MUCC-related dwData bit flags */
#define IEEDD_MUCC_SHOW_NICK 0x00000001
#define IEEDD_MUCC_MSG_ON_NEW_LINE 0x00000002
#define IEEDD_MUCC_SHOW_DATE 0x00000010
#define IEEDD_MUCC_SHOW_TIME 0x00000020
#define IEEDD_MUCC_SECONDS 0x00000040
#define IEEDD_MUCC_LONG_DATE 0x00000080
#define IEED_GC_EVENT_HIGHLIGHT 0x8000
#define IEED_GC_EVENT_MESSAGE 0x0001
#define IEED_GC_EVENT_TOPIC 0x0002
#define IEED_GC_EVENT_JOIN 0x0003
#define IEED_GC_EVENT_PART 0x0004
#define IEED_GC_EVENT_QUIT 0x0006
#define IEED_GC_EVENT_NICK 0x0007
#define IEED_GC_EVENT_ACTION 0x0008
#define IEED_GC_EVENT_KICK 0x0009
#define IEED_GC_EVENT_NOTICE 0x000A
#define IEED_GC_EVENT_INFORMATION 0x000B
#define IEED_GC_EVENT_ADDSTATUS 0x000C
#define IEED_GC_EVENT_REMOVESTATUS 0x000D
/* GC-related dwData bit flags */
#define IEEDD_GC_SHOW_NICK 0x00000001
#define IEEDD_GC_SHOW_TIME 0x00000002
#define IEEDD_GC_SHOW_ICON 0x00000004
#define IEEDD_GC_MSG_ON_NEW_LINE 0x00001000
#define IE_FONT_BOLD 0x000100 // Bold font flag
#define IE_FONT_ITALIC 0x000200 // Italic font flag
#define IE_FONT_UNDERLINE 0x000400 // Underlined font flags
typedef struct tagIEVIEWEVENTDATA {
int cbSize;
int iType; // Event type, one of MUCC_EVENT_* values
DWORD dwFlags; // Event flags - IEEF_*
const char *fontName; // Text font name
int fontSize; // Text font size (in pixels)
int fontStyle; // Text font style (combination of IE_FONT_* flags)
COLORREF color; // Text color
union {
const TCHAR *ptszNick; // Nick, usage depends on type of event
const char *pszNick; // Nick - ANSII
const wchar_t *pszNickW; // Nick - Unicode
};
union {
const TCHAR *ptszText; // Text, usage depends on type of event
const char *pszText; // Text - ANSII
const wchar_t *pszTextW; // Text - Unicode
};
DWORD dwData; // DWORD data e.g. status see IEEDD_* values
BOOL bIsMe; // TRUE if the event is related to the user
DWORD time; // Time of the event
struct tagIEVIEWEVENTDATA *next;
union {
const TCHAR *ptszText2; // Text2, usage depends on type of event
const char *pszText2; // Text2 - ANSII
const wchar_t *pszText2W; // Text2 - Unicode
};
} IEVIEWEVENTDATA;
/* IEView events */
#define IEE_LOG_DB_EVENTS 1 // log specified number of DB events
#define IEE_CLEAR_LOG 2 // clear log
#define IEE_GET_SELECTION 3 // get selected text
#define IEE_SAVE_DOCUMENT 4 // save current document
#define IEE_LOG_MEM_EVENTS 5 // log specified number of IEView events
/* IEView event flags */
#define IEEF_RTL 1 // turn on RTL support
#define IEEF_NO_UNICODE 2 // disable Unicode support - valid for IEE_LOG_DB_EVENTS and IEE_GET_SELECTION events
#define IEVIEWEVENT_SIZE_V1 28
#define IEVIEWEVENT_SIZE_V2 32
#define IEVIEWEVENT_SIZE_V3 36
typedef struct {
int cbSize; // size of the strusture
int iType; // one of IEE_* values
DWORD dwFlags; // one of IEEF_* values
HWND hwnd; // HWND returned by IEW_CREATE
MCONTACT hContact; // contact
union {
MEVENT hDbEventFirst; // first event to log, when IEE_LOG_EVENTS returns it will contain
// the last event actually logged or NULL if no event was logged (IEE_LOG_EVENTS)
IEVIEWEVENTDATA *eventData; // the pointer to an array of IEVIEWEVENTDATA objects (IEE_LOG_IEV_EVENTS)
};
int count; // number of events to log
int codepage; // ANSI codepage
const char *pszProto; // Name of the protocol
} IEVIEWEVENT;
#define IEN_NAVIGATE 1 // navigate to the given destination
#define IENF_UNICODE 1 // if set urlW is used instead of urlW
typedef struct {
int cbSize; // size of the strusture
int iType; // one of IEN_* values
DWORD dwFlags; // one of IEEF_* values
HWND hwnd; // HWND returned by IEW_CREATE
union {
const char *url; // Text, usage depends on type of event
const wchar_t *urlW; // Text - Unicode
};
} IEVIEWNAVIGATE;
#endif
|