{ 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 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_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 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 type tagIEVIEWEVENT = record case byte of 0: (hDbEventFirst:TMEVENT); 1: (eventData :PIEVIEWEVENTDATA); end; PIEVIEWEVENT = ^TIEVIEWEVENT; TIEVIEWEVENT = record 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 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}