From 65e002b63efdb00571d0ba4ec1a73b14e1d7d3a0 Mon Sep 17 00:00:00 2001 From: Alexey Kulakov Date: Wed, 4 Jul 2012 20:10:29 +0000 Subject: Pascal headers moved to include\delphi directory (with small updates) removed deprecated m_mwclc.h file and link on it in AutoShutdown plugin git-svn-id: http://svn.miranda-ng.org/main/trunk@763 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- include/delphi/m_userinfoex.inc | 363 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 363 insertions(+) create mode 100644 include/delphi/m_userinfoex.inc (limited to 'include/delphi/m_userinfoex.inc') diff --git a/include/delphi/m_userinfoex.inc b/include/delphi/m_userinfoex.inc new file mode 100644 index 0000000000..b4aff7e7e8 --- /dev/null +++ b/include/delphi/m_userinfoex.inc @@ -0,0 +1,363 @@ +{ +Miranda IM: the free IM client for Microsoft* Windows* + +Copyright 2000-2006 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_USERINFOEX} +{$DEFINE M_USERINFOEX} + +{************************************************************* + * Interfaces Module +} + +const MIID_UIUSERINFOEX:MUUID='{9C23A24B-E6AA-43c6-B0B8-D6C36D2F7B57}'; +const MIID_CONTACTINFO :MUUID='{17DBD7C9-450E-4000-BFB4-908A7EF4CE72}'; +const MIID_REMINDER :MUUID='{02E890BD-278D-4890-918D-AB2CF5DC50BD}'; + +{************************************************************* + * PropertySheetPage Module +} + +{ UserInfo/AddPage v0.1.0.0+ +If the hIcon member of te optiondialogpage is valid, the tree show it for nicer look. +Otherwise the default icon is displayed for this treeitem. +} +const +// ODPF_UNICODE = 8; // string fields in OPTIONSDIALOGPAGE are WCHAR* + ODPF_ICON = 64; // the hIcon member of the option dialog page is valid + +{ Handling notifications v0.1.0.4+ +A dialogbox should call SetWindowLongPtr(hDlg, DWL_MSGRESULT, PSP_CHANGED) on a PSN_INFOCHANGED notification if +there are unsafed changes and apply button should keep enabled. Otherwise the changed status +of the dialogbox is resetted as well as the changed status of the details dialog box itself if no page +called this message. Because UserinfoEx now looks for changes in the settings of a user to keep the +shown inforamtion up to date. +} + PSP_CHANGED = 2; + PSN_ICONCHANGED = 2000; + +{ PSM_GETBOLDFONT v0.1.0.3+ +wParam=NULL +lParam=(HFONT*)&hFont +get bold dialog font. wParam is pointer to a handle that retrieves the boldfont. +You can also call GetWindowLong(hDlg, DWL_MSGRESULT) to get the font. +This function returns TRUE on success or FALSE otherwise. +} +//!! PSM_GETBOLDFONT = WM_USER+102; //defined in m_options.inc + +{ PSM_ISLOCKED v0.1.0.4+ +Returns state of propertysheet. If it is locked, The PSM_CHANGED messages sent by a propertysheetpage does not +have any effect. To aVOID editcontrols, ... to check for changes on redrawing at a load of settings from database or +if another propertysheetpage is selected, a plugin should check this state and skip those checks to reduce stressing +the database if such a test if control's content changed does so. +wParam=NULL +lParam=NULL +You can also call GetWindowLong(hDlg, DWL_MSGRESULT) to get the handle. +This function returns TRUE if the PropertySheet is locked or FALSE otherwise. + +Example: +__inline BOOLEAN PspIsLocked(HWND hPsp) + + HWND hPs = GetParent(hPsp); + return ((BOOLEAN)SendMessage((hPs), PSM_ISLOCKED, 0, 0) || GetWindowLongPtr((hPs), DWL_MSGRESULT) != 0); +} + PSM_ISLOCKED = WM_USER+901; + +{ PSM_GETCONTACT v0.1.0.4+ +You can get the handle to the contact the propertysheet is associated with by calling PSM_GETCONTACT +to the parent of your propertysheetpage - the propertysheet. +wParam=NULL +lParam=(HANDLE*)&hContact +You can also call GetWindowLong(hDlg, DWL_MSGRESULT) to get the handle. +This function returns TRUE on success or FALSE otherwise. +} + PSM_GETCONTACT = WM_USER+903; + +{ PSM_GETBASEPROTO v0.1.0.4+ +You can get a pointer to the basic protocol module by sending PSM_GETBASEPROTO to the parent of your propertysheetpage. +wParam=NULL +lParam=(LPCSTR*)&szBaseProto +The propertysheet loads the basic contact protocol on creation for a better handling +of owners (ICQ) protocol used for changing details on the server. Should also reduce database traffic. +You can also call GetWindowLong(hDlg, DWL_MSGRESULT) to get the protocol. +This function returns TRUE on success or FALSE otherwise. +} + PSM_GETBASEPROTO = WM_USER+905; + + INDEX_CURPAGE = -1; + +{ PSM_GETPAGEHWND v0.1.1.1+ +retrieve the windowhandle for a propertysheetpage identified by its id +wParam=idDlg +lParam=hInstance +} + PSM_GETPAGEHWND = WM_USER+906; + +{ PSM_DLGMESSAGE v0.1.1.1+ +Send a message to a specified propertypage of the details dialog. +This enables communication between propertypages without the need to know +the window handles of each page. +} +type + PDLGCOMMAND = ^TDLGCOMMAND; + TDLGCOMMAND = record + hInst :HINST; + idDlg :word; + idDlgItem:word; + uMsg :uint; + wParam :WPARAM; + lParam :LPARAM; + end; + +const + PSM_DLGMESSAGE = WM_USER+907; + +(* PSM_ISAEROMODE v0.8.2.1+ +This message can be sent to the propertysheet (details dialog) to examine, +whether the aero adaption mode is enabled or not. This message should be used in +each propertysheet page's dialog procedure as follows: + + ... + switch (msg) { + ... + case WM_CTLCOLORSTATIC: + case WM_CTLCOLORDLG: + if (PSIsAeroMode(hDlg)) + return (INT_PTR)GetStockBrush(WHITE_BRUSH); + break; + ... + +This will draw a propertysheet page with white background, if aero adaption is enabled. +wParam=not used +lParam=pointer to boolean bIsAero +*) + PSM_ISAEROMODE = (WM_USER+908); + +{************************************************************* + * vCard Module +} + +// UserInfo/vCardExport v0.1.0.4+ + + MS_USERINFO_VCARD_IMPORT:PAnsiChar = 'UserInfo/vCard/Import'; + + MS_USERINFO_VCARD_IMPORTALL:PAnsiChar = 'UserInfo/vCard/ImportAll'; + +// UserInfo/vCardImport v0.1.0.4+ + + MS_USERINFO_VCARD_EXPORT:PAnsiChar = 'UserInfo/vCard/Export'; + +// UserInfo/vCardImport v0.1.0.4+ + + MS_USERINFO_VCARD_EXPORTALL:PAnsiChar = 'UserInfo/vCard/ExportAll'; + +{************************************************************* + * time Module +} + +{ UserInfo/LocalTime v0.1.0.3+ +Computes the local time for the desired contact and writes it to lpst. +wParam=(WPARAM)hContact +lParam=(LPSYSTEMTIME)lpst +The service gets your windows box's local time, reads your timezoneinformation (Windows setting) +and hContact's timezone from his user details. With these information contact's local time is computed +considering daylightsaving time. +Return values are TRUE for success and FALSE if anything went wrong. +} + MS_USERINFO_LOCALTIME:PAnsiChar = 'UserInfo/LocalTime'; + +{ UserInfo/LocalTime v0.7.0.1+ +This service provides the timezone information for a given contact +as known by windows, too. All but the DaylightName and StandardName members +of the class are filled out and can be used. The values are read +from the windows registry and therefore keep up to date if the latest +windows hotfixes are installed. There is no default API in the windows SDK +to solve this problem. +wParam=(WPARAM)hContact +lParam=(TIME_ZONE_INFORMATION*)tzi +Return values are 0 for success and 1 if no valid timezone is set for the contact. +} + MS_USERINFO_TIMEZONEINFO:PAnsiChar = 'UserInfo/TimezoneInfo'; + +{************************************************************* + * Reminder module +} + +{ UserInfo/Reminder/Check v0.1.0.4+ +This service checks if one of your contacts has birthday in the next few days +wParam = lParam = not used +} + MS_USERINFO_REMINDER_CHECK:PAnsiChar = 'UserInfo/Reminder/Check'; + +{ UserInfo/Reminder/Check v0.1.1.1+ +This service creates a dialog, that lists all of the anniversaries +wParam = lParam = not used +} + MS_USERINFO_REMINDER_LIST:PAnsiChar = 'UserInfo/Reminder/List'; + + +{ UserInfo/Reminder/Check v0.1.2.16+ +This service compares birthday date which is set by the protocol module of each contact +to the first found custom set birthday date. If a difference is detected, the user is asked +whether to update the custom set birthday by the one of the protocol or not. + +If no custom birthday is set yet and the protocol contains a valid birthday, it is copied to +primary custom module (e.g.: mBirthday or UserInfo). +wParam = handle to single contact or NULL to backup all +lParam = not used +} + MS_USERINFO_REMINDER_AGGRASIVEBACKUP:PAnsiChar = 'UserInfo/Reminder/AggrassiveBackup'; + +{ UserInfo/Refresh v0.7.0.1+ +This service calls PSS_GETINFO for all contacts in the contact list +wParam = not used +lParam = not used +} + MS_USERINFO_REFRESH:PAnsiChar = 'UserInfo/Refresh'; + +{************************************************************* + * Uinfobuttonclass module +} + +// button styles + MBS_DEFBUTTON = $00001000; // default button + MBS_PUSHBUTTON = $00002000; // toggle button + MBS_FLAT = $00004000; // flat button + MBS_DOWNARROW = $00008000; // has arrow on the right + + MBF_UNICODE = 1; + +// BUTTONADDTOOLTIP +// use lParam=MBF_UNICODE to set unicode tooltips +// for lParam=0 the string is interpreted as ansi + +// message to explicitly translate the buttons text, +// as it is not done by default translation routine +// wParam=lParam=NULL + BUTTONTRANSLATE = WM_USER+6; + +{ UserInfo/MsgBox v0.1.0.4+ +Slightly modified version of MButtonClass, to draw both text and icon in a button control +} + UINFOBUTTONCLASS = 'UInfoButtonClass'; + +(*!! DELETED +{************************************************************* + * Messagebox module +} + +{ UserInfo/MsgBox v0.1.0.3+ +Some little changed message box for nicer look of miranda's messages or questions :-) +wParam=hContact - can be null +lParam=(TMsgBox* )pMsg - structure that holds information about the look of the message dialog +uType member of TMsgBox can be a combination of the following values, where most of them are defined in winuser.h: +MB_OK +MB_OKCANCEL +MB_YESALLNO +MB_YESNO +For valid icon values use one of the following MB_ICON_... +Funktion returns: IDOK, IDYES, IDALL, IDNO or IDCANCEL +} + MB_YESALLNO = $00000007; + MB_UNICODE = $10000000; + +{ +valid predefined icon values +} + MB_ICON_NONE = $00000000; + MB_ICON_ERROR = $00000010; + MB_ICON_QUESTION = $00000020; + MB_ICON_WARNING = $00000030; + MB_ICON_INFO = $00000040; + MB_ICON_OTHER = $000000F0; // use icon TMsgBox->hiMsg + +type + PMsgBox = ^TMsgBox; + TMsgBox = record + uSize :uint; // size of this structure + uType :uint; // parameters + hiLogo :HICON; // right upper icon of the info bar + hiMsg :HICON; // icon left next to the message text + szTitle :TCHAR; // dialog window title text + szInfoText:TCHAR; // text of the infobar on the top of the dialog + szMsg :TCHAR; // the message text + hParent :hwnd; // parent window for the messagebox + end; + +const + MS_MSGBOX:PAnsiChar = 'UserInfo/MsgBox'; +*) +{************************************************************* + * contact info module +} + +// additional information which can be retrieved with this service + CNF_COPHONE = 55; // returns company phone (string) + CNF_COFAX = 40; // returns company fax (string) + CNF_COCELLULAR = 41; // returns company cellular (string) + CNF_COEMAIL = 42; // returns company email address (string) + +{ CNF_BIRTHDATE v0.1.2.18+ +returns a formated string with the birthdate in it +wParam - 1 for long dateformat, 0 for short dateformat +lParam - CONTACTINFO structure as for all other fields, too +returns 0 on success and 1 on failure +} + CNF_BIRTHDATE = 43; // returns date of birth (string) + +{************************************************************* + * extended integration module +} + +{ UserInfo/Homepage/OpenURL v0.1.2.19+ +This service reads the contact's homepage from UserInfo module or contact's protocol module +and opens the default browser to show it. +wParam=hContact - handle to contact whose homepage is to show +lParam=not used +} + MS_USERINFO_HOMEPAGE_OPENURL:PAnsiChar = 'UserInfo/Homepage/OpenURL'; + + +{************************************************************* + * extended database module + *} + +{ DB/Contact/GetSettingStrEx v0.7.0.1+ +This service function reads a database setting from USERINFO module. +If the setting does not exist, it is looked up in 'pszProto'. +If 'hContact' points to a MetaContact, the setting is recursivly +searched in all sub contacts, too, starting with the default contact, +if the MetaContact does not directly provide the setting. +This service can directly replace the default MS_DB_CONTACT_GETSETTING_STR +for reading contact information from the database. +There will be no difference for the user but the possible source of information. + +This service can be used to retrieve all kinds of settings! +Some versions of the default MS_DB_CONTACT_GETSETTING_STR service return +an error for BYTE, WORD and DWORD values if cgs.pValue->type is not 0. + +wParam = (WPARAM)(HANDLE)hContact +lParam = (LPARAM)(DBCONTACTGETSETTING*)&cgs + +This service returns one of the results of MS_DB_CONTACT_GETSETTING_STR! +} + MS_DB_CONTACT_GETSETTING_STR_EX:PAnsiChar = 'DB/Contact/GetSettingStrEx'; + +{$ENDIF} -- cgit v1.2.3