summaryrefslogtreecommitdiff
path: root/include/delphi/m_userinfoex.inc
diff options
context:
space:
mode:
Diffstat (limited to 'include/delphi/m_userinfoex.inc')
-rw-r--r--include/delphi/m_userinfoex.inc363
1 files changed, 363 insertions, 0 deletions
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}