(* 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_CLUI} {$DEFINE M_CLUI} {<>} const { wParam : 0 lParam : 0 Affects: Returns a window handle for the contact list window, see notes Returns: "" Notes : This call has a very specific purpose internally Miranda and shouldn't be used gratuitously, in almost all cases there's another call to do whatever it is that you're trying to do. } MS_CLUI_GETHWND = 'CLUI/GetHwnd'; { wParam : new status lParam : null terminated string to a protocol ID Affects: Change the protocol specific status indicators, see notes! Returns: 0 on success, [non zero] on failure Notes : protocol modules don't want to call this, they want clist/protocolstatuschanged instead } MS_CLUI_PROTOCOLSTATUSCHANGED = 'CLUI/ProtocolStatusChanged'; { wParam : Handle to a group lParam : 1 or 0 Affect : A new group was created, add it to the list, see notes Notes : lParam is set to 1 or 0 if the user just created the group or not. - this is also called when the contact list is being rebuilt, new groups are always created with the name 'New group' } MS_CLUI_GROUPADDED = 'CLUI/GroupCreated'; { wParam : HCONTACT lParam : ICON_ID Affect : Change the icon for a contact, see notes Returns: 0 on success, [non zero] on failure Notes : ICON_ID is an offset in the imagelist, see clist/geticonsimagelist } MS_CLUI_CONTACTSETICON = 'CLUI/ContactSetIcon'; { wParam : HCONTACT lParam : 0 Affect : Remove a contact from the list, see notes Returns: 0 on success, [non zereo] on failure Notes : this contact is NOT actually being deleted, since if a contact goes offline while 'hide offline' option is sset, this service will be called then ALSO } MS_CLUI_CONTACTDELETED = 'CLUI/ContactDeleted'; { wParam : HCONTACT lParam : ICON_ID Affect : Add a contact to the list, see note returns: 0 on success, [non zero] on failure Notes : the caller processes the 'hide offline' setting, so the callee should not do further processing based on the value of this setting - WARNING: this will be called to re-add a contact when they come online if 'hide offline' is on, but it cannot determine if the contact is already on the list, so you may get requests to add a contact when it is already on the list, which you should ignore. - You'll also get this whenever an event is added for a contact, since if the contact was offline, it needs to be shown to display the mesage, even if 'hide offlines' is on. - you should not resort the list on this call, a seperate resort request will be sent. - ICON_ID is an offset in the image list, see clist/geticonsimagelist } MS_CLUI_CONTACTADDED = 'CLUI/ContactAdded'; { wParam : HCONTACT lParam : 0 Affect : Reename a contact in the lists, see notes Returns: 0 on success, [non zero] on failure Notes : You should not re-sort the list on this call, a separate resort request will be sent, you can get the new name from clist/getcontactdisplayname } MS_CLUI_CONTACTRENAMED = 'CLUI/ContactRenamed'; { wParam : 0 lParam : 0 Affect : Start a rebuild of the contact list, see notes Returns: 0 on success, [non zero] on failure Notes : this is the cue to clear the existing content of the list expect to get a series of : clui/groupadded clui/contactadded clui/resortlist } MS_CLUI_LISTBEGINREBUILD = 'CLUI/ListBeginRebuild'; { wParam : 0 lParam : 0 Affect : End a rebuild of the contact list, see notes Returns: 0 on success, [non zero] on error Notes : if you dissplayed an hourglass in beginbuild, set it back here, you do not need to explicitly sort the list } MS_CLUI_LISTENDREBUILD = 'CLUI/ListEndRebuild'; { wParam : 0 lParam : 0 Affect : Sort the contact list now, see notes Returns: 0 success, [non zero] on failure Notes : Sorts are buffered so you won't get this message lots of times if the lists needs to be resorted many times rapidly } MS_CLUI_SORTLIST = 'CLUI/SortList'; { wParam : CLUICAPS_* lParam : 0 Affect : Gets a load of capabilites for the loaded CLUI, see notes Returns: the requested value, 0 of wParam is unknown -- if this service is not implemented it is assumed all return values will be 0. Version: v0.1.2.1+ } { can only provide this flag to return the following set of caps, the strings show the database setting/type to store the list option, changing the value does not reflect what the change is, i.e. ontop can only be affected with a call to SetWindowPos() } CLUICAPS_FLAGS1 = 0; { empty groups aren't shown, 'CList/HideEmptyGroups' (byte) [changes make the list reload] } CLUIF_HIDEEMPTYGROUPS = 1; { groups can be disabled, lists can be merged into one seamlessly, (byte) 'CList/UseGroups' } CLUIF_DISABLEGROUPS = 2; { list can be displayed 'on top' of all other windows, 4 (byte) 'CList/OnTop' } CLUIF_HASONTOPOPTION = 4; { can disappear after a while of inactive use, (byte) 'CList/AutoHide' (word) 'CList/HideTime' } CLUIF_HASAUTOHIDEOPTION = 8; MS_CLUI_GETCAPS = 'CLUI/GetCaps'; { wParam : HCONTACT lParam : MAKELPARAM(screenX, screenY) Affect : A contact is being dragged outside the main window Return : return [non zero] to show the drag cursor as "accepting" the drag or zero to show the circle/slash 'not allowed' Version: v0.1.2.0+ } ME_CLUI_CONTACTDRAGGING = 'CLUI/ContactDragging'; { wParam : HCONTACT lParam : MAKELPARAM(screenX, screenY) Affect : a contact has just been dropped outside the main window, see notes Notes : return non zero to stop other hooks processing this event. Version: v0.1.2.0+ } ME_CLUI_CONTACTDROPPED = 'CLUI/ContactDropped'; { wParam : HCONTACT lParam : 0 Affect : A contact that *was* being dragged outside the main window has gone back to the main window Return : always return 0 Version: v0.1.2.1+ } ME_CLUI_CONTACTDRAGSTOP = 'CLUI/ContactDragStop'; {$ENDIF}