|
@@ -0,0 +1,12330 @@
|
|
|
+Unit CommCtrl;
|
|
|
+{
|
|
|
+ $Id$
|
|
|
+ This file is part of the Free Pascal run time library.
|
|
|
+ Copyright (c) 1999-2004 by Marco van de Voort
|
|
|
+ member of the Free Pascal development team.
|
|
|
+
|
|
|
+ See the file COPYING.FPC, included in this distribution,
|
|
|
+ for details about the copyright.
|
|
|
+
|
|
|
+ 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.
|
|
|
+
|
|
|
+ Original copyright statement follows.
|
|
|
+
|
|
|
+ **************************************************************************
|
|
|
+ * *
|
|
|
+ * commctrl.h - - Interface for the Windows Common Controls *
|
|
|
+ * *
|
|
|
+ * Version 1.2 *
|
|
|
+ * *
|
|
|
+ * Copyright (c) Microsoft Corporation. All rights reserved. *
|
|
|
+ * *
|
|
|
+ **************************************************************************
|
|
|
+
|
|
|
+ Note: This is an initial translation, and probably _full_ of bugs, this
|
|
|
+ is because my conversion tool was flawed, and a lot of postediting
|
|
|
+ was needed, which is bound to introduce bugs and inconsequencies
|
|
|
+
|
|
|
+ This is an huge unit, and its maintenance and compability is not
|
|
|
+ a top-priority.
|
|
|
+ I prefer patches as bugfix over bugreports, and
|
|
|
+ preferably patches with lots of fixes at once.
|
|
|
+
|
|
|
+ If you can't make a patch, at least research the bug thoroughly,
|
|
|
+ and provide as much info as possible (which windows version,
|
|
|
+ the C prototype from the sdk, etc)
|
|
|
+
|
|
|
+ Help the FPC team, and try to do as much as possible yourself.
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+Interface
|
|
|
+
|
|
|
+{$Mode ObjFPC}
|
|
|
+Uses Windows,ActiveX;
|
|
|
+
|
|
|
+// --------------------
|
|
|
+
|
|
|
+TYPE CINT = Longint;
|
|
|
+ CUINT= CARDINAL;
|
|
|
+
|
|
|
+ DWORD_PTR = ^DWORD;
|
|
|
+ PDWORD_PTR = ^DWORD_PTR;
|
|
|
+ ULONG_PTR = ^ULONG;
|
|
|
+ INT_PTR = ^CINT;
|
|
|
+ UINT_PTR = ^UINT;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+// --------------------
|
|
|
+CONST CommCtrlDLL = 'commctrl.dll';
|
|
|
+
|
|
|
+// Some reasonal defaults.
|
|
|
+// for XP only set NT to $%0501 and IE to $0600
|
|
|
+//
|
|
|
+// The NT conditional is only used for XP/no XP.
|
|
|
+
|
|
|
+{$DEFINE WIN32_IE=$0500}
|
|
|
+{$DEFINE IE3PLUS}
|
|
|
+{$DEFINE IE4PLUS}
|
|
|
+{$define IE5plus}
|
|
|
+{$DEFINE WIN32XP}
|
|
|
+
|
|
|
+
|
|
|
+{$DEFINE WIN32_WINNT=0} // NO XP
|
|
|
+{$DEFINE __IStream_INTERFACE_DEFINED__} // lpstream defined in activex afaik.
|
|
|
+
|
|
|
+// Sanity check in source. Not translated:
|
|
|
+//if (WIN32_IE < $0400) && defined(WIN32_WINNT) && (WIN32_WINNT >= $0500)}
|
|
|
+// #error _WIN32_IE setting conflicts with _WIN32_WINNT setting
|
|
|
+
|
|
|
+//
|
|
|
+// Users of this header may define any number of these constants to avoid
|
|
|
+// the definitions of each functional group.
|
|
|
+//
|
|
|
+// NOTOOLBAR Customizable bitmap-button toolbar control.
|
|
|
+// NOUPDOWN Up and Down arrow increment/decrement control.
|
|
|
+// NOSTATUSBAR Status bar control.
|
|
|
+// NOMENUHELP APIs to help manage menus, especially with a status bar.
|
|
|
+// NOTRACKBAR Customizable column-width tracking control.
|
|
|
+// NODRAGLIST APIs to make a listbox source and sink drag&drop actions.
|
|
|
+// NOPROGRESS Progress gas gauge.
|
|
|
+// NOHOTKEY HotKey control
|
|
|
+// NOHEADER Header bar control.
|
|
|
+// NOIMAGEAPIS ImageList apis.
|
|
|
+// NOLISTVIEW ListView control.
|
|
|
+// NOTREEVIEW TreeView control.
|
|
|
+// NOTABCONTROL Tab control.
|
|
|
+// NOANIMATE Animate control.
|
|
|
+// NOBUTTON Button control.
|
|
|
+// NOSTATIC Static control.
|
|
|
+// NOEDIT Edit control.
|
|
|
+// NOLISTBOX Listbox control.
|
|
|
+// NOCOMBOBOX Combobox control.
|
|
|
+// NOSCROLLBAR Scrollbar control.
|
|
|
+//
|
|
|
+//=============================================================================
|
|
|
+
|
|
|
+// include <prsht.h>
|
|
|
+
|
|
|
+Procedure InitCommonControls; external commctrldll name 'InitCommonControls';
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagINITCOMMONCONTROLSEX = Record
|
|
|
+ dwSize : DWORD; // size of this structure
|
|
|
+ dwICC : DWORD; // flags indicating which classes to be initialized
|
|
|
+ END;
|
|
|
+ _INITCOMMONCONTROLSEX = tagINITCOMMONCONTROLSEX;
|
|
|
+ LPINITCOMMONCONTROLSEX = ^tagINITCOMMONCONTROLSEX;
|
|
|
+ TINITCOMMONCONTROLSEX = tagINITCOMMONCONTROLSEX;
|
|
|
+ PINITCOMMONCONTROLSEX = ^tagINITCOMMONCONTROLSEX;
|
|
|
+
|
|
|
+CONST
|
|
|
+ ICC_LISTVIEW_CLASSES = $00000001; // listview, header
|
|
|
+ ICC_TREEVIEW_CLASSES = $00000002; // treeview, tooltips
|
|
|
+ ICC_BAR_CLASSES = $00000004; // toolbar, statusbar, trackbar, tooltips
|
|
|
+ ICC_TAB_CLASSES = $00000008; // tab, tooltips
|
|
|
+ ICC_UPDOWN_CLASS = $00000010; // updown
|
|
|
+ ICC_PROGRESS_CLASS = $00000020; // progress
|
|
|
+ ICC_HOTKEY_CLASS = $00000040; // hotkey
|
|
|
+ ICC_ANIMATE_CLASS = $00000080; // animate
|
|
|
+ ICC_WIN95_CLASSES = $000000FF;
|
|
|
+ ICC_DATE_CLASSES = $00000100; // month picker, date picker, time picker, updown
|
|
|
+ ICC_USEREX_CLASSES = $00000200; // comboex
|
|
|
+ ICC_COOL_CLASSES = $00000400; // rebar (coolbar) control
|
|
|
+{$ifdef ie4plus}
|
|
|
+ ICC_INTERNET_CLASSES = $00000800;
|
|
|
+ ICC_PAGESCROLLER_CLASS = $00001000; // page scroller
|
|
|
+ ICC_NATIVEFNTCTL_CLASS = $00002000; // native font control
|
|
|
+{$ENDIF}
|
|
|
+{$ifdef WIN32XP}
|
|
|
+ ICC_STANDARD_CLASSES = $00004000;
|
|
|
+ ICC_LINK_CLASS = $00008000;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+function InitCommonControlsEx(var rec : TINITCOMMONCONTROLSEX):BOOL; external commctrldll name 'InitCommonControlsEx';
|
|
|
+{$ENDIF} // _WIN32_IE >= 0x0300
|
|
|
+
|
|
|
+CONST
|
|
|
+ ODT_HEADER = 100;
|
|
|
+ ODT_TAB = 101;
|
|
|
+ ODT_LISTVIEW = 102;
|
|
|
+
|
|
|
+//====== WM_NOTIFY codes (NMHDR.code values) ==================================
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ NM_FIRST = (0- 0); // generic to all controls
|
|
|
+ NM_LAST = (0- 99);
|
|
|
+
|
|
|
+ LVN_FIRST = (0-100); // listview
|
|
|
+ LVN_LAST = (0-199);
|
|
|
+
|
|
|
+// Property sheet reserved (0U-200U) - (0U-299U) - see prsht.h
|
|
|
+
|
|
|
+ HDN_FIRST = (0-300); // header
|
|
|
+ HDN_LAST = (0-399);
|
|
|
+
|
|
|
+ TVN_FIRST = (0-400); // treeview
|
|
|
+ TVN_LAST = (0-499);
|
|
|
+
|
|
|
+ TTN_FIRST = (0-520); // tooltips
|
|
|
+ TTN_LAST = (0-549);
|
|
|
+
|
|
|
+ TCN_FIRST = (0-550); // tab control
|
|
|
+ TCN_LAST = (0-580);
|
|
|
+
|
|
|
+// Shell reserved (0U-580U) - (0U-589U)
|
|
|
+
|
|
|
+ CDN_FIRST = (0-601); // common dialog (new)
|
|
|
+ CDN_LAST = (0-699);
|
|
|
+
|
|
|
+ TBN_FIRST = (0-700); // toolbar
|
|
|
+ TBN_LAST = (0-720);
|
|
|
+
|
|
|
+ UDN_FIRST = (0-721); // updown
|
|
|
+ UDN_LAST = (0-740);
|
|
|
+{$ifdef ie3plus}
|
|
|
+ MCN_FIRST = (0-750); // monthcal
|
|
|
+ MCN_LAST = (0-759);
|
|
|
+
|
|
|
+ DTN_FIRST = (0-760); // datetimepick
|
|
|
+ DTN_LAST = (0-799);
|
|
|
+
|
|
|
+ CBEN_FIRST = (0-800); // combo box ex
|
|
|
+ CBEN_LAST = (0-830);
|
|
|
+
|
|
|
+ RBN_FIRST = (0-831); // rebar
|
|
|
+ RBN_LAST = (0-859);
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ifdef ie4plus}
|
|
|
+ IPN_FIRST = (0-860); // internet address
|
|
|
+ IPN_LAST = (0-879); // internet address
|
|
|
+
|
|
|
+ SBN_FIRST = (0-880); // status bar
|
|
|
+ SBN_LAST = (0-899);
|
|
|
+
|
|
|
+ PGN_FIRST = (0-900); // Pager Control
|
|
|
+ PGN_LAST = (0-950);
|
|
|
+
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ifdef ie5plus}
|
|
|
+{$IFNDEF WMN_FIRST}
|
|
|
+ WMN_FIRST = (0-1000);
|
|
|
+ WMN_LAST = (0-1200);
|
|
|
+{$ENDIF}
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ifdef Win32XP}
|
|
|
+ BCN_FIRST = (0-1250);
|
|
|
+ BCN_LAST = (0-1350);
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+ MSGF_COMMCTRL_BEGINDRAG = $4200;
|
|
|
+ MSGF_COMMCTRL_SIZEHEADER = $4201;
|
|
|
+ MSGF_COMMCTRL_DRAGSELECT = $4202;
|
|
|
+ MSGF_COMMCTRL_TOOLBARCUST = $4203;
|
|
|
+
|
|
|
+//====== Ranges for control message IDs =======================================
|
|
|
+
|
|
|
+ LVM_FIRST = $1000; // ListView messages
|
|
|
+ TV_FIRST = $1100; // TreeView messages
|
|
|
+ HDM_FIRST = $1200; // Header messages
|
|
|
+ TCM_FIRST = $1300; // Tab control messages
|
|
|
+
|
|
|
+{$ifdef ie4plus}
|
|
|
+ PGM_FIRST = $1400; // Pager control messages
|
|
|
+{$ifdef win32xp}
|
|
|
+ ECM_FIRST = $1500; // Edit control messages
|
|
|
+ BCM_FIRST = $1600; // Button control messages
|
|
|
+ CBM_FIRST = $1700; // Combobox control messages
|
|
|
+{$ENDIF}
|
|
|
+ CCM_FIRST = $2000; // Common control shared messages
|
|
|
+ CCM_LAST = (CCM_FIRST + $200);
|
|
|
+
|
|
|
+
|
|
|
+ CCM_SETBKCOLOR = (CCM_FIRST + 1); // lParam is bkColor
|
|
|
+
|
|
|
+TYPE
|
|
|
+ tagCOLORSCHEME = Record
|
|
|
+ dwSize : DWORD;
|
|
|
+ clrBtnHighlight : COLORREF; // highlight color
|
|
|
+ clrBtnShadow : COLORREF; // shadow color
|
|
|
+ END;
|
|
|
+ COLORSCHEME = tagCOLORSCHEME;
|
|
|
+ LPCOLORSCHEME = ^tagCOLORSCHEME;
|
|
|
+ TCOLORSCHEME = tagCOLORSCHEME;
|
|
|
+ PCOLORSCHEME = ^tagCOLORSCHEME;
|
|
|
+
|
|
|
+CONST
|
|
|
+ CCM_SETCOLORSCHEME = (CCM_FIRST + 2); // lParam is color scheme
|
|
|
+ CCM_GETCOLORSCHEME = (CCM_FIRST + 3); // fills in COLORSCHEME pointed to by lParam
|
|
|
+ CCM_GETDROPTARGET = (CCM_FIRST + 4);
|
|
|
+ CCM_SETUNICODEFORMAT = (CCM_FIRST + 5);
|
|
|
+ CCM_GETUNICODEFORMAT = (CCM_FIRST + 6);
|
|
|
+
|
|
|
+{$ifdef ie5plus}
|
|
|
+{$ifdef win32xp}
|
|
|
+ COMCTL32_VERSION = 6;
|
|
|
+{$ELSE}
|
|
|
+ COMCTL32_VERSION = 5;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+ CCM_SETVERSION = (CCM_FIRST + $7);
|
|
|
+ CCM_GETVERSION = (CCM_FIRST + $8);
|
|
|
+ CCM_SETNOTIFYWINDOW = (CCM_FIRST + $9); // wParam == hwndParent.
|
|
|
+{$ifdef win32xp}
|
|
|
+ CCM_SETWINDOWTHEME = (CCM_FIRST + $b);
|
|
|
+ CCM_DPISCALE = (CCM_FIRST + $c); // wParam == Awareness
|
|
|
+{$ENDIF}
|
|
|
+{$ENDIF} // (_WIN32_IE >= 0x0500)
|
|
|
+
|
|
|
+{$ENDIF} // (_WIN32_IE >= 0x0400)
|
|
|
+
|
|
|
+{$ifdef ie4plus}
|
|
|
+// for tooltips
|
|
|
+ INFOTIPSIZE = 1024;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+//====== WM_NOTIFY Macros =====================================================
|
|
|
+
|
|
|
+// Macro 8
|
|
|
+Procedure HANDLE_WM_NOTIFY( hwnd : hwnd; wParam : cint;var lParam : NMHDR ;fn :Pointer);
|
|
|
+
|
|
|
+// Macro 9
|
|
|
+Function FORWARD_WM_NOTIFY( hwnd : hwnd; idFrom : cint;var pnmhdr : NMHDR ; fn :pointer ):LRESULT;
|
|
|
+
|
|
|
+//====== Generic WM_NOTIFY notification codes =================================
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ NM_OUTOFMEMORY = (NM_FIRST-1);
|
|
|
+ NM_CLICK = (NM_FIRST-2); // uses NMCLICK struct
|
|
|
+ NM_DBLCLK = (NM_FIRST-3);
|
|
|
+ NM_RETURN = (NM_FIRST-4);
|
|
|
+ NM_RCLICK = (NM_FIRST-5); // uses NMCLICK struct
|
|
|
+ NM_RDBLCLK = (NM_FIRST-6);
|
|
|
+ NM_SETFOCUS = (NM_FIRST-7);
|
|
|
+ NM_KILLFOCUS = (NM_FIRST-8);
|
|
|
+{$ifdef ie3plus}
|
|
|
+ NM_CUSTOMDRAW = (NM_FIRST-12);
|
|
|
+ NM_HOVER = (NM_FIRST-13);
|
|
|
+{$ENDIF}
|
|
|
+{$ifdef ie4plus}
|
|
|
+ NM_NCHITTEST = (NM_FIRST-14); // uses NMMOUSE struct
|
|
|
+ NM_KEYDOWN = (NM_FIRST-15); // uses NMKEY struct
|
|
|
+ NM_RELEASEDCAPTURE = (NM_FIRST-16);
|
|
|
+ NM_SETCURSOR = (NM_FIRST-17); // uses NMMOUSE struct
|
|
|
+ NM_CHAR = (NM_FIRST-18); // uses NMCHAR struct
|
|
|
+{$ENDIF}
|
|
|
+{$ifdef ie401plus}
|
|
|
+ NM_TOOLTIPSCREATED = (NM_FIRST-19); // notify of when the tooltips window is create
|
|
|
+{$ENDIF}
|
|
|
+{$ifdef ie5plus}
|
|
|
+ NM_LDOWN = (NM_FIRST-20);
|
|
|
+ NM_RDOWN = (NM_FIRST-21);
|
|
|
+ NM_THEMECHANGED = (NM_FIRST-22);
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$IFNDEF CCSIZEOF_STRUCT}
|
|
|
+
|
|
|
+// Macro 10
|
|
|
+// #define CCSIZEOF_STRUCT(structname, member) (((int)((LPBYTE)(&((structname*)0)->member) - ((LPBYTE)((structname*)0)))) + sizeof(((structname*)0)->member))
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+//====== Generic WM_NOTIFY notification structures ============================
|
|
|
+{$ifdef ie401plus}
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagNMTOOLTIPSCREATED = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ hwndToolTips : HWND;
|
|
|
+ END;
|
|
|
+ NMTOOLTIPSCREATED = tagNMTOOLTIPSCREATED;
|
|
|
+ LPNMTOOLTIPSCREATED = ^tagNMTOOLTIPSCREATED;
|
|
|
+ TNMTOOLTIPSCREATED = tagNMTOOLTIPSCREATED;
|
|
|
+ PNMTOOLTIPSCREATED = ^tagNMTOOLTIPSCREATED;
|
|
|
+
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ifdef ie4plus}
|
|
|
+Type
|
|
|
+ tagNMMOUSE = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ dwItemSpec : DWORD_PTR;
|
|
|
+ dwItemData : DWORD_PTR;
|
|
|
+ pt : POINT;
|
|
|
+ dwHitInfo : LPARAM; // any specifics about where on the item or control the mouse is
|
|
|
+ END;
|
|
|
+ NMMOUSE = tagNMMOUSE;
|
|
|
+ LPNMMOUSE = ^tagNMMOUSE;
|
|
|
+ TNMMOUSE = tagNMMOUSE;
|
|
|
+ PNMMOUSE = ^tagNMMOUSE;
|
|
|
+
|
|
|
+
|
|
|
+ NMCLICK = NMMOUSE;
|
|
|
+ LPNMCLICK = LPNMMOUSE;
|
|
|
+
|
|
|
+// Generic structure to request an object of a specific type.
|
|
|
+
|
|
|
+ tagNMOBJECTNOTIFY = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ iItem : cint;
|
|
|
+{$IFDEF __IID_DEFINED__}
|
|
|
+ piid : PIID;
|
|
|
+{$ELSE}
|
|
|
+ piid : Pointer;
|
|
|
+{$ENDIF}
|
|
|
+ pObject : Pointer;
|
|
|
+ hResult : HRESULT;
|
|
|
+ dwFlags : DWORD; // control specific flags (hints as to where in iItem it hit)
|
|
|
+ END;
|
|
|
+ NMOBJECTNOTIFY = tagNMOBJECTNOTIFY;
|
|
|
+ LPNMOBJECTNOTIFY = ^tagNMOBJECTNOTIFY;
|
|
|
+ TNMOBJECTNOTIFY = tagNMOBJECTNOTIFY;
|
|
|
+ PNMOBJECTNOTIFY = ^tagNMOBJECTNOTIFY;
|
|
|
+
|
|
|
+
|
|
|
+// Generic structure for a key
|
|
|
+
|
|
|
+ tagNMKEY = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ nVKey : UINT;
|
|
|
+ uFlags : UINT;
|
|
|
+ END;
|
|
|
+ NMKEY = tagNMKEY;
|
|
|
+ LPNMKEY = ^tagNMKEY;
|
|
|
+ TNMKEY = tagNMKEY;
|
|
|
+ PNMKEY = ^tagNMKEY;
|
|
|
+
|
|
|
+
|
|
|
+// Generic structure for a character
|
|
|
+
|
|
|
+ tagNMCHAR = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ ch : UINT;
|
|
|
+ dwItemPrev : DWORD; // Item previously selected
|
|
|
+ dwItemNext : DWORD; // Item to be selected
|
|
|
+ END;
|
|
|
+ NMCHAR = tagNMCHAR;
|
|
|
+ LPNMCHAR = ^tagNMCHAR;
|
|
|
+ TNMCHAR = tagNMCHAR;
|
|
|
+ PNMCHAR = ^tagNMCHAR;
|
|
|
+
|
|
|
+
|
|
|
+{$ENDIF} // _WIN32_IE >= 0x0400
|
|
|
+
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+//==================== CUSTOM DRAW ==========================================
|
|
|
+
|
|
|
+// custom draw return flags
|
|
|
+// values under 0x00010000 are reserved for global custom draw values.
|
|
|
+// above that are for specific controls
|
|
|
+CONST
|
|
|
+ CDRF_DODEFAULT = $00000000;
|
|
|
+ CDRF_NEWFONT = $00000002;
|
|
|
+ CDRF_SKIPDEFAULT = $00000004;
|
|
|
+
|
|
|
+
|
|
|
+ CDRF_NOTIFYPOSTPAINT = $00000010;
|
|
|
+ CDRF_NOTIFYITEMDRAW = $00000020;
|
|
|
+{$ifdef ie4plus}
|
|
|
+ CDRF_NOTIFYSUBITEMDRAW = $00000020; // flags are the same, we can distinguish by context
|
|
|
+{$ENDIF}
|
|
|
+ CDRF_NOTIFYPOSTERASE = $00000040;
|
|
|
+
|
|
|
+// drawstage flags
|
|
|
+// values under 0x00010000 are reserved for global custom draw values.
|
|
|
+// above that are for specific controls
|
|
|
+ CDDS_PREPAINT = $00000001;
|
|
|
+ CDDS_POSTPAINT = $00000002;
|
|
|
+ CDDS_PREERASE = $00000003;
|
|
|
+ CDDS_POSTERASE = $00000004;
|
|
|
+// the 0x000010000 bit means it's individual item specific
|
|
|
+ CDDS_ITEM = $00010000;
|
|
|
+ CDDS_ITEMPREPAINT = (CDDS_ITEM OR CDDS_PREPAINT);
|
|
|
+ CDDS_ITEMPOSTPAINT = (CDDS_ITEM OR CDDS_POSTPAINT);
|
|
|
+ CDDS_ITEMPREERASE = (CDDS_ITEM OR CDDS_PREERASE);
|
|
|
+ CDDS_ITEMPOSTERASE = (CDDS_ITEM OR CDDS_POSTERASE);
|
|
|
+{$ifdef ie4plus}
|
|
|
+ CDDS_SUBITEM = $00020000;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// itemState flags
|
|
|
+ CDIS_SELECTED = $0001;
|
|
|
+ CDIS_GRAYED = $0002;
|
|
|
+ CDIS_DISABLED = $0004;
|
|
|
+ CDIS_CHECKED = $0008;
|
|
|
+ CDIS_FOCUS = $0010;
|
|
|
+ CDIS_DEFAULT = $0020;
|
|
|
+ CDIS_HOT = $0040;
|
|
|
+ CDIS_MARKED = $0080;
|
|
|
+ CDIS_INDETERMINATE = $0100;
|
|
|
+{$ifdef win32xp}
|
|
|
+ CDIS_SHOWKEYBOARDCUES = $0200;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagNMCUSTOMDRAWINFO = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ dwDrawStage : DWORD;
|
|
|
+ hdc : HDC;
|
|
|
+ rc : RECT;
|
|
|
+ dwItemSpec : DWORD_PTR; // this is control specific, but it's how to specify an item. valid only with CDDS_ITEM bit set
|
|
|
+ uItemState : UINT;
|
|
|
+ lItemlParam : LPARAM;
|
|
|
+ END;
|
|
|
+ NMCUSTOMDRAW = tagNMCUSTOMDRAWINFO;
|
|
|
+ LPNMCUSTOMDRAW = ^tagNMCUSTOMDRAWINFO;
|
|
|
+ TNMCUSTOMDRAWINFO = tagNMCUSTOMDRAWINFO;
|
|
|
+ PNMCUSTOMDRAWINFO = ^tagNMCUSTOMDRAWINFO;
|
|
|
+
|
|
|
+
|
|
|
+ tagNMTTCUSTOMDRAW = Record
|
|
|
+ nmcd : NMCUSTOMDRAW;
|
|
|
+ uDrawFlags : UINT;
|
|
|
+ END;
|
|
|
+ NMTTCUSTOMDRAW = tagNMTTCUSTOMDRAW;
|
|
|
+ LPNMTTCUSTOMDRAW = ^tagNMTTCUSTOMDRAW;
|
|
|
+ TNMTTCUSTOMDRAW = tagNMTTCUSTOMDRAW;
|
|
|
+ PNMTTCUSTOMDRAW = ^tagNMTTCUSTOMDRAW;
|
|
|
+
|
|
|
+
|
|
|
+{$ENDIF} // _WIN32_IE >= 0x0300
|
|
|
+
|
|
|
+
|
|
|
+//====== IMAGE APIS ===========================================================
|
|
|
+
|
|
|
+{$IFNDEF NOIMAGEAPIS}
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ CLR_NONE = DWORD($FFFFFFFF);
|
|
|
+ CLR_DEFAULT = DWORD($FF000000);
|
|
|
+
|
|
|
+
|
|
|
+{$IFNDEF IMAGELISTDRAWPARAMS}
|
|
|
+{$ifdef ie3plus}
|
|
|
+TYPE
|
|
|
+ _IMAGELISTDRAWPARAMS = Record
|
|
|
+ cbSize : DWORD;
|
|
|
+ himl : HIMAGELIST;
|
|
|
+ i : cint;
|
|
|
+ hdcDst : HDC;
|
|
|
+ x : cint;
|
|
|
+ y : cint;
|
|
|
+ cx : cint;
|
|
|
+ cy : cint;
|
|
|
+ xBitmap : cint; // x offest from the upperleft of bitmap
|
|
|
+ yBitmap : cint; // y offset from the upperleft of bitmap
|
|
|
+ rgbBk : COLORREF;
|
|
|
+ rgbFg : COLORREF;
|
|
|
+ fStyle : UINT;
|
|
|
+ dwRop : DWORD;
|
|
|
+{$ifdef win32xp}
|
|
|
+ fState : DWORD;
|
|
|
+ Frame : DWORD;
|
|
|
+ crEffect : COLORREF;
|
|
|
+{$ENDIF}
|
|
|
+ END;
|
|
|
+ IMAGELISTDRAWPARAMS = _IMAGELISTDRAWPARAMS;
|
|
|
+ LPIMAGELISTDRAWPARAMS = ^_IMAGELISTDRAWPARAMS;
|
|
|
+ TIMAGELISTDRAWPARAMS = _IMAGELISTDRAWPARAMS;
|
|
|
+ PIMAGELISTDRAWPARAMS = ^_IMAGELISTDRAWPARAMS;
|
|
|
+
|
|
|
+// #define IMAGELISTDRAWPARAMS_V3_SIZE CCSIZEOF_STRUCT(IMAGELISTDRAWPARAMS, dwRop)
|
|
|
+
|
|
|
+{$ENDIF} // _WIN32_IE >= 0x0300
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ ILC_MASK = $00000001;
|
|
|
+ ILC_COLOR = $00000000;
|
|
|
+ ILC_COLORDDB = $000000FE;
|
|
|
+ ILC_COLOR4 = $00000004;
|
|
|
+ ILC_COLOR8 = $00000008;
|
|
|
+ ILC_COLOR16 = $00000010;
|
|
|
+ ILC_COLOR24 = $00000018;
|
|
|
+ ILC_COLOR32 = $00000020;
|
|
|
+ ILC_PALETTE = $00000800; // (not implemented)
|
|
|
+{$ifdef win32xp}
|
|
|
+ ILC_MIRROR = $00002000; // Mirror the icons contained, if the process is mirrored
|
|
|
+ ILC_PERITEMMIRROR = $00008000; // Causes the mirroring code to mirror each item when inserting a set of images, verses the whole strip
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+function ImageList_Create(cx:cint;cy:cint;flags:UINT;cInitial:cint;cGrow:cint):HIMAGELIST; external commctrldll name 'ImageList_Create';
|
|
|
+function ImageList_Destroy(himl:HIMAGELIST):BOOL; external commctrldll name 'ImageList_Destroy';
|
|
|
+
|
|
|
+function ImageList_GetImageCount(himl:HIMAGELIST):cint; external commctrldll name 'ImageList_GetImageCount';
|
|
|
+{$ifdef ie3plus}
|
|
|
+function ImageList_SetImageCount(himl:HIMAGELIST;uNewCount:UINT):BOOL; external commctrldll name 'ImageList_SetImageCount';
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+function ImageList_Add(himl:HIMAGELIST;hbmImage:HBITMAP;hbmMask:HBITMAP):cint; external commctrldll name 'ImageList_Add';
|
|
|
+
|
|
|
+function ImageList_ReplaceIcon(himl:HIMAGELIST;i:cint;hicon:HICON):cint; external commctrldll name 'ImageList_ReplaceIcon';
|
|
|
+function ImageList_SetBkColor(himl:HIMAGELIST;clrBk:COLORREF):COLORREF; external commctrldll name 'ImageList_SetBkColor';
|
|
|
+function ImageList_GetBkColor(himl:HIMAGELIST):COLORREF; external commctrldll name 'ImageList_GetBkColor';
|
|
|
+function ImageList_SetOverlayImage(himl:HIMAGELIST;iImage:cint;iOverlay:cint):BOOL; external commctrldll name 'ImageList_SetOverlayImage';
|
|
|
+
|
|
|
+// Macro 11
|
|
|
+Function ImageList_AddIcon(Himl:HIMAGELIST;hicon:HICON):cint;
|
|
|
+
|
|
|
+CONST
|
|
|
+ ILD_NORMAL = $00000000;
|
|
|
+ ILD_TRANSPARENT = $00000001;
|
|
|
+ ILD_MASK = $00000010;
|
|
|
+ ILD_IMAGE = $00000020;
|
|
|
+{$ifdef ie3plus}
|
|
|
+ ILD_ROP = $00000040;
|
|
|
+{$ENDIF}
|
|
|
+ ILD_BLEND25 = $00000002;
|
|
|
+ ILD_BLEND50 = $00000004;
|
|
|
+ ILD_OVERLAYMASK = $00000F00;
|
|
|
+
|
|
|
+// Macro 12
|
|
|
+// #define INDEXTOOVERLAYMASK(i) ((i) << 8)
|
|
|
+
|
|
|
+CONST
|
|
|
+ ILD_PRESERVEALPHA = $00001000; // This preserves the alpha channel in dest
|
|
|
+ ILD_SCALE = $00002000; // Causes the image to be scaled to cx, cy instead of clipped
|
|
|
+ ILD_DPISCALE = $00004000;
|
|
|
+
|
|
|
+ ILD_SELECTED = ILD_BLEND50;
|
|
|
+ ILD_FOCUS = ILD_BLEND25;
|
|
|
+ ILD_BLEND = ILD_BLEND50;
|
|
|
+ CLR_HILIGHT = CLR_DEFAULT;
|
|
|
+
|
|
|
+ ILS_NORMAL = $00000000;
|
|
|
+ ILS_GLOW = $00000001;
|
|
|
+ ILS_SHADOW = $00000002;
|
|
|
+ ILS_SATURATE = $00000004;
|
|
|
+ ILS_ALPHA = $00000008;
|
|
|
+
|
|
|
+function ImageList_Draw(himl:HIMAGELIST;i:cint;hdcDst:HDC;x:cint;y:cint;fStyle:UINT):BOOL; external commctrldll name 'ImageList_Draw';
|
|
|
+
|
|
|
+
|
|
|
+{$IFDEF _WIN32}
|
|
|
+
|
|
|
+function ImageList_Replace(himl:HIMAGELIST;i:cint;hbmImage:HBITMAP;hbmMask:HBITMAP):BOOL; external commctrldll name 'ImageList_Replace';
|
|
|
+
|
|
|
+function ImageList_AddMasked(himl:HIMAGELIST;hbmImage:HBITMAP;crMask:COLORREF):cint; external commctrldll name 'ImageList_AddMasked';
|
|
|
+function ImageList_DrawEx(himl:HIMAGELIST;i:cint;hdcDst:HDC;x:cint;y:cint;dx:cint;dy:cint;rgbBk:COLORREF;rgbFg:COLORREF;fStyle:UINT):BOOL; external commctrldll name 'ImageList_DrawEx';
|
|
|
+{$ifdef ie3plus}
|
|
|
+function ImageList_DrawIndirect(pimldp:PIMAGELISTDRAWPARAMS):BOOL; external commctrldll name 'ImageList_DrawIndirect';
|
|
|
+{$ENDIF}
|
|
|
+function ImageList_Remove(himl:HIMAGELIST;i:cint):BOOL; external commctrldll name 'ImageList_Remove';
|
|
|
+function ImageList_GetIcon(himl:HIMAGELIST;i:cint;flags:UINT):HICON; external commctrldll name 'ImageList_GetIcon';
|
|
|
+function ImageList_LoadImageA(hi:HINSTANCE;lpbmp:LPCSTR;cx:cint;cGrow:cint;crMask:COLORREF;uType:UINT;uFlags:UINT):HIMAGELIST; external commctrldll name 'ImageList_LoadImageA';
|
|
|
+function ImageList_LoadImageW(hi:HINSTANCE;lpbmp:LPCWSTR;cx:cint;cGrow:cint;crMask:COLORREF;uType:UINT;uFlags:UINT):HIMAGELIST; external commctrldll name 'ImageList_LoadImageW';
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+function ImageList_LoadImageW(hi:HINSTANCE;lpbmp:LPCWSTR;cx:cint;cGrow:cint;crMask:COLORREF;uType:UINT;uFlags:UINT):HIMAGELIST; external commctrldll name 'ImageList_LoadImageW';
|
|
|
+{$ELSE}
|
|
|
+function ImageList_LoadImageA(hi:HINSTANCE;lpbmp:LPCSTR;cx:cint;cGrow:cint;crMask:COLORREF;uType:UINT;uFlags:UINT):HIMAGELIST; external commctrldll name 'ImageList_LoadImageA';
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+
|
|
|
+CONST
|
|
|
+ ILCF_MOVE = ($00000000);
|
|
|
+ ILCF_SWAP = ($00000001);
|
|
|
+
|
|
|
+function ImageList_Copy(himlDst:HIMAGELIST;iDst:cint;himlSrc:HIMAGELIST;iSrc:cint;uFlags:UINT):BOOL; external commctrldll name 'ImageList_Copy';
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+function ImageList_BeginDrag(himlTrack:HIMAGELIST;iTrack:cint;dxHotspot:cint;dyHotspot:cint):BOOL; external commctrldll name 'ImageList_BeginDrag';
|
|
|
+Procedure ImageList_EndDrag; external commctrldll name 'ImageList_EndDrag';
|
|
|
+function ImageList_DragEnter(hwndLock:HWND;x:cint;y:cint):BOOL; external commctrldll name 'ImageList_DragEnter';
|
|
|
+function ImageList_DragLeave(hwndLock:HWND):BOOL; external commctrldll name 'ImageList_DragLeave';
|
|
|
+function ImageList_DragMove(x:cint;y:cint):BOOL; external commctrldll name 'ImageList_DragMove';
|
|
|
+function ImageList_SetDragCursorImage(himlDrag:HIMAGELIST;iDrag:cint;dxHotspot:cint;dyHotspot:cint):BOOL; external commctrldll name 'ImageList_SetDragCursorImage';
|
|
|
+
|
|
|
+function ImageList_DragShowNolock(fShow:BOOL):BOOL; external commctrldll name 'ImageList_DragShowNolock';
|
|
|
+function ImageList_GetDragImage(ppt:PPOINT;pptHotspot:PPOINT):HIMAGELIST; external commctrldll name 'ImageList_GetDragImage';
|
|
|
+
|
|
|
+// Macro 13
|
|
|
+Procedure ImageList_RemoveAll(himl:HIMAGELIST);
|
|
|
+
|
|
|
+// Macro 14
|
|
|
+Procedure ImageList_ExtractIcon(hi:longint; {dummy?} himl:HIMAGELIST;i:cint);
|
|
|
+
|
|
|
+
|
|
|
+// Macro 15
|
|
|
+Procedure ImageList_LoadBitmap(hi:HInstance;lpbmp:LPCTSTR;cx:cint;cGrow:cint;crMask:COLORREF);
|
|
|
+
|
|
|
+{$IFDEF __IStream_INTERFACE_DEFINED__}
|
|
|
+
|
|
|
+function ImageList_Read(pstm:LPSTREAM):HIMAGELIST; external commctrldll name 'ImageList_Read';
|
|
|
+function ImageList_Write(himl:HIMAGELIST;pstm:LPSTREAM):BOOL; external commctrldll name 'ImageList_Write';
|
|
|
+
|
|
|
+{$ifdef Win32XP}
|
|
|
+
|
|
|
+CONST
|
|
|
+ ILP_NORMAL = 0; // Writes or reads the stream using new sematics for this version of comctl32
|
|
|
+ ILP_DOWNLEVEL = 1; // Write or reads the stream using downlevel sematics.
|
|
|
+
|
|
|
+
|
|
|
+function ImageList_ReadEx(dwFlags:DWORD;pstm:LPSTREAM;riid:REFIID;ppv:PPVOID):HRESULT; external commctrldll name 'ImageList_ReadEx';
|
|
|
+function ImageList_WriteEx(himl:HIMAGELIST;dwFlags:DWORD;pstm:LPSTREAM):HRESULT; external commctrldll name 'ImageList_WriteEx';
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$IFNDEF IMAGEINFO}
|
|
|
+TYPE
|
|
|
+
|
|
|
+ _IMAGEINFO = Record
|
|
|
+ hbmImage : HBITMAP;
|
|
|
+ hbmMask : HBITMAP;
|
|
|
+ Unused1 : cint;
|
|
|
+ Unused2 : cint;
|
|
|
+ rcImage : RECT;
|
|
|
+ END;
|
|
|
+ IMAGEINFO = _IMAGEINFO;
|
|
|
+ LPIMAGEINFO = ^_IMAGEINFO;
|
|
|
+ TIMAGEINFO = _IMAGEINFO;
|
|
|
+ PIMAGEINFO = ^_IMAGEINFO;
|
|
|
+
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+function ImageList_GetIconSize(himl:HIMAGELIST;cx:Pint;cy:Pint):BOOL; external commctrldll name 'ImageList_GetIconSize';
|
|
|
+function ImageList_SetIconSize(himl:HIMAGELIST;cx:cint;cy:cint):BOOL; external commctrldll name 'ImageList_SetIconSize';
|
|
|
+function ImageList_GetImageInfo(himl:HIMAGELIST;i:cint;pImageInfo:PIMAGEINFO):BOOL; external commctrldll name 'ImageList_GetImageInfo';
|
|
|
+function ImageList_Merge(himl1:HIMAGELIST;i1:cint;himl2:HIMAGELIST;i2:cint;dx:cint;dy:cint):HIMAGELIST; external commctrldll name 'ImageList_Merge';
|
|
|
+{$ifdef ie4plus}
|
|
|
+function ImageList_Duplicate(himl:HIMAGELIST):HIMAGELIST; external commctrldll name 'ImageList_Duplicate';
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+//====== HEADER CONTROL =======================================================
|
|
|
+
|
|
|
+{$IFNDEF NOHEADER}
|
|
|
+
|
|
|
+{$IFDEF _WIN32}
|
|
|
+
|
|
|
+CONST
|
|
|
+ WC_HEADERA = 'SysHeader32';
|
|
|
+ WC_HEADERW = {L}'SysHeader32';
|
|
|
+
|
|
|
+TYPE
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ WC_HEADER = WC_HEADERW;
|
|
|
+{$ELSE}
|
|
|
+ WC_HEADER = WC_HEADERA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ELSE}
|
|
|
+
|
|
|
+CONST
|
|
|
+ WC_HEADER = 'SysHeader';
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// begin_r_commctrl
|
|
|
+
|
|
|
+ HDS_HORZ = $0000;
|
|
|
+ HDS_BUTTONS = $0002;
|
|
|
+{$ifdef ie3plus}
|
|
|
+ HDS_HOTTRACK = $0004;
|
|
|
+{$ENDIF}
|
|
|
+ HDS_HIDDEN = $0008;
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+ HDS_DRAGDROP = $0040;
|
|
|
+ HDS_FULLDRAG = $0080;
|
|
|
+{$ENDIF}
|
|
|
+{$ifdef ie5plus}
|
|
|
+ HDS_FILTERBAR = $0100;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ifdef win32xp}
|
|
|
+ HDS_FLAT = $0200;
|
|
|
+{$ENDIF}
|
|
|
+// end_r_commctrl
|
|
|
+
|
|
|
+{$ifdef ie5plus}
|
|
|
+
|
|
|
+ HDFT_ISSTRING = $0000; // HD_ITEM.pvFilter points to a HD_TEXTFILTER
|
|
|
+ HDFT_ISNUMBER = $0001; // HD_ITEM.pvFilter points to a INT
|
|
|
+
|
|
|
+ HDFT_HASNOVALUE = $8000; // clear the filter, by setting this bit
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+
|
|
|
+ _HD_TEXTFILTERA = Record
|
|
|
+ pszText : LPSTR; // [in] pointer to the buffer containing the filter (ANSI)
|
|
|
+ cchTextMax : cint; // [in] max size of buffer/edit control buffer
|
|
|
+ END;
|
|
|
+ HD_TEXTFILTERA = _HD_TEXTFILTERA;
|
|
|
+ LPHD_TEXTFILTERA = ^_HD_TEXTFILTERA;
|
|
|
+ THD_TEXTFILTERA = _HD_TEXTFILTERA;
|
|
|
+ PHD_TEXTFILTERA = ^_HD_TEXTFILTERA;
|
|
|
+
|
|
|
+
|
|
|
+ _HD_TEXTFILTERW = Record
|
|
|
+ pszText : LPWSTR; // [in] pointer to the buffer contiaining the filter (UNICODE)
|
|
|
+ cchTextMax : cint; // [in] max size of buffer/edit control buffer
|
|
|
+ END;
|
|
|
+ HD_TEXTFILTERW = _HD_TEXTFILTERW;
|
|
|
+ LPHD_TEXTFILTERW = ^_HD_TEXTFILTERW;
|
|
|
+ THD_TEXTFILTERW = _HD_TEXTFILTERW;
|
|
|
+ PHD_TEXTFILTERW = ^_HD_TEXTFILTERW;
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ HD_TEXTFILTER = HD_TEXTFILTERW;
|
|
|
+ HDTEXTFILTER = HD_TEXTFILTERW;
|
|
|
+ LPHD_TEXTFILTER = LPHD_TEXTFILTERW;
|
|
|
+ LPHDTEXTFILTER = LPHD_TEXTFILTERW;
|
|
|
+{$ELSE}
|
|
|
+ HD_TEXTFILTER = HD_TEXTFILTERA;
|
|
|
+ HDTEXTFILTER = HD_TEXTFILTERA;
|
|
|
+ LPHD_TEXTFILTER = LPHD_TEXTFILTERA;
|
|
|
+ LPHDTEXTFILTER = LPHD_TEXTFILTERA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+{$ENDIF} // _WIN32_IE >= 0x0500
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+
|
|
|
+ _HD_ITEMA = Record
|
|
|
+ mask : UINT;
|
|
|
+ cxy : cint;
|
|
|
+ pszText : LPSTR;
|
|
|
+ hbm : HBITMAP;
|
|
|
+ cchTextMax : cint;
|
|
|
+ fmt : cint;
|
|
|
+ lParam : LPARAM;
|
|
|
+{$ifdef ie3plus}
|
|
|
+ iImage : cint; // index of bitmap in ImageList
|
|
|
+ iOrder : cint; // where to draw this item
|
|
|
+{$ENDIF}
|
|
|
+{$ifdef ie5plus}
|
|
|
+ _type : UINT; // [in] filter type (defined what pvFilter is a pointer to)
|
|
|
+ pvFilter : Pointer; // [in] fillter data see above
|
|
|
+{$ENDIF}
|
|
|
+ END;
|
|
|
+ HDITEMA = _HD_ITEMA;
|
|
|
+ pHDITEMA = ^_HD_ITEMA;
|
|
|
+
|
|
|
+ LPHDITEMA = ^_HD_ITEMA;
|
|
|
+ THD_ITEMA = _HD_ITEMA;
|
|
|
+ PHD_ITEMA = ^_HD_ITEMA;
|
|
|
+
|
|
|
+
|
|
|
+// #define HDITEMA_V1_SIZE CCSIZEOF_STRUCT(HDITEMA, lParam)
|
|
|
+// #define HDITEMW_V1_SIZE CCSIZEOF_STRUCT(HDITEMW, lParam)
|
|
|
+
|
|
|
+
|
|
|
+ _HD_ITEMW = Record
|
|
|
+ mask : UINT;
|
|
|
+ cxy : cint;
|
|
|
+ pszText : LPWSTR;
|
|
|
+ hbm : HBITMAP;
|
|
|
+ cchTextMax : cint;
|
|
|
+ fmt : cint;
|
|
|
+ lParam : LPARAM;
|
|
|
+{$ifdef ie3plus}
|
|
|
+ iImage : cint; // index of bitmap in ImageList
|
|
|
+ iOrder : cint;
|
|
|
+{$ENDIF}
|
|
|
+{$ifdef ie5plus}
|
|
|
+ _type : UINT; // [in] filter type (defined what pvFilter is a pointer to)
|
|
|
+ pvFilter : Pointer; // [in] fillter data see above
|
|
|
+{$ENDIF}
|
|
|
+ END;
|
|
|
+ HDITEMW = _HD_ITEMW;
|
|
|
+ pHDITEMW = ^_HD_ITEMW;
|
|
|
+ LPHDITEMW = ^_HD_ITEMW;
|
|
|
+ THD_ITEMW = _HD_ITEMW;
|
|
|
+ PHD_ITEMW = ^_HD_ITEMW;
|
|
|
+
|
|
|
+
|
|
|
+TYPE
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ HDITEM = HDITEMW;
|
|
|
+ LPHDITEM = LPHDITEMW;
|
|
|
+// HDITEM_V1_SIZE = HDITEMW_V1_SIZE;
|
|
|
+{$ELSE}
|
|
|
+
|
|
|
+ HDITEM = HDITEMA;
|
|
|
+ LPHDITEM = LPHDITEMA;
|
|
|
+// HDITEM_V1_SIZE = HDITEMA_V1_SIZE;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+ HD_ITEM = HDITEM;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+
|
|
|
+ HDI_WIDTH = $0001;
|
|
|
+ HDI_HEIGHT = HDI_WIDTH;
|
|
|
+ HDI_TEXT = $0002;
|
|
|
+ HDI_FORMAT = $0004;
|
|
|
+ HDI_LPARAM = $0008;
|
|
|
+ HDI_BITMAP = $0010;
|
|
|
+{$ifdef ie3plus}
|
|
|
+ HDI_IMAGE = $0020;
|
|
|
+ HDI_DI_SETITEM = $0040;
|
|
|
+ HDI_ORDER = $0080;
|
|
|
+{$ENDIF}
|
|
|
+{$ifdef ie5plus}
|
|
|
+ HDI_FILTER = $0100;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+ HDF_LEFT = $0000;
|
|
|
+ HDF_RIGHT = $0001;
|
|
|
+ HDF_CENTER = $0002;
|
|
|
+ HDF_JUSTIFYMASK = $0003;
|
|
|
+ HDF_RTLREADING = $0004;
|
|
|
+
|
|
|
+ HDF_OWNERDRAW = $8000;
|
|
|
+ HDF_STRING = $4000;
|
|
|
+ HDF_BITMAP = $2000;
|
|
|
+{$ifdef ie3plus}
|
|
|
+ HDF_BITMAP_ON_RIGHT = $1000;
|
|
|
+ HDF_IMAGE = $0800;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ifdef win32xp}
|
|
|
+ HDF_SORTUP = $0400;
|
|
|
+ HDF_SORTDOWN = $0200;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+ HDM_GETITEMCOUNT = (HDM_FIRST + 0);
|
|
|
+
|
|
|
+// Macro 16
|
|
|
+Function Header_GetItemCount( hwndHD : hwnd):cint;
|
|
|
+
|
|
|
+CONST
|
|
|
+ HDM_INSERTITEMA = (HDM_FIRST + 1);
|
|
|
+ HDM_INSERTITEMW = (HDM_FIRST + 10);
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ HDM_INSERTITEM = HDM_INSERTITEMW;
|
|
|
+{$ELSE}
|
|
|
+ HDM_INSERTITEM = HDM_INSERTITEMA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// Macro 17
|
|
|
+Function Header_InsertItem( hwndHD : hwnd; i : cint;const phdi : HD_ITEM ):cint;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ HDM_DELETEITEM = (HDM_FIRST + 2);
|
|
|
+
|
|
|
+// Macro 18
|
|
|
+Function Header_DeleteItem( hwndHD : hwnd; i : cint):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ HDM_GETITEMA = (HDM_FIRST + 3);
|
|
|
+ HDM_GETITEMW = (HDM_FIRST + 11);
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ HDM_GETITEM = HDM_GETITEMW;
|
|
|
+{$ELSE}
|
|
|
+ HDM_GETITEM = HDM_GETITEMA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// Macro 19
|
|
|
+Function Header_GetItem( hwndHD : hwnd; i : cint;var phdi : HD_ITEM ):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ HDM_SETITEMA = (HDM_FIRST + 4);
|
|
|
+ HDM_SETITEMW = (HDM_FIRST + 12);
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ HDM_SETITEM = HDM_SETITEMW;
|
|
|
+{$ELSE}
|
|
|
+ HDM_SETITEM = HDM_SETITEMA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// Macro 20
|
|
|
+Function Header_SetItem( hwndHD : hwnd; i : cint;const phdi : HD_ITEM ):BOOL;
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ _HD_LAYOUT = Record
|
|
|
+ prc : PRECT;
|
|
|
+ pwpos : PWINDOWPOS;
|
|
|
+ END;
|
|
|
+ HDLAYOUT = _HD_LAYOUT;
|
|
|
+ LPHDLAYOUT = ^_HD_LAYOUT;
|
|
|
+ THD_LAYOUT = _HD_LAYOUT;
|
|
|
+ PHD_LAYOUT = ^_HD_LAYOUT;
|
|
|
+
|
|
|
+CONST
|
|
|
+ HDM_LAYOUT = (HDM_FIRST + 5);
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+TYPE
|
|
|
+ HD_LAYOUT = HDLAYOUT;
|
|
|
+{$ELSE}
|
|
|
+// HDLAYOUT = HD_LAYOUT;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+// Macro 21
|
|
|
+Function Header_Layout( hwndHD : hwnd;var playout : HD_LAYOUT ):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ HHT_NOWHERE = $0001;
|
|
|
+ HHT_ONHEADER = $0002;
|
|
|
+ HHT_ONDIVIDER = $0004;
|
|
|
+ HHT_ONDIVOPEN = $0008;
|
|
|
+{$ifdef ie5plus}
|
|
|
+ HHT_ONFILTER = $0010;
|
|
|
+ HHT_ONFILTERBUTTON = $0020;
|
|
|
+{$ENDIF}
|
|
|
+ HHT_ABOVE = $0100;
|
|
|
+ HHT_BELOW = $0200;
|
|
|
+ HHT_TORIGHT = $0400;
|
|
|
+ HHT_TOLEFT = $0800;
|
|
|
+
|
|
|
+
|
|
|
+TYPE
|
|
|
+ _HD_HITTESTINFO = Record
|
|
|
+ pt : POINT;
|
|
|
+ flags : UINT;
|
|
|
+ iItem : cint;
|
|
|
+ END;
|
|
|
+ HDHITTESTINFO = _HD_HITTESTINFO;
|
|
|
+ HD_HITTESTINFO = _HD_HITTESTINFO;
|
|
|
+ LPHDHITTESTINFO = ^_HD_HITTESTINFO;
|
|
|
+ THD_HITTESTINFO = _HD_HITTESTINFO;
|
|
|
+ PHD_HITTESTINFO = ^_HD_HITTESTINFO;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ HDM_HITTEST = (HDM_FIRST + 6);
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+
|
|
|
+ HDM_GETITEMRECT = (HDM_FIRST + 7);
|
|
|
+
|
|
|
+// Macro 22
|
|
|
+Function Header_GetItemRect( hwnd : hwnd; iItem : WPARAM; lprc : LPARAM):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ HDM_SETIMAGELIST = (HDM_FIRST + 8);
|
|
|
+
|
|
|
+// Macro 23
|
|
|
+Function Header_SetImageList( hwnd : hwnd; himl : LPARAM):HIMAGELIST;
|
|
|
+
|
|
|
+CONST
|
|
|
+ HDM_GETIMAGELIST = (HDM_FIRST + 9);
|
|
|
+
|
|
|
+// Macro 24
|
|
|
+Function Header_GetImageList( hwnd : hwnd):HIMAGELIST;
|
|
|
+
|
|
|
+CONST
|
|
|
+ HDM_ORDERTOINDEX = (HDM_FIRST + 15);
|
|
|
+
|
|
|
+// Macro 25
|
|
|
+Function Header_OrderToIndex( hwnd : hwnd; i : WPARAM):cint;
|
|
|
+
|
|
|
+CONST
|
|
|
+ HDM_CREATEDRAGIMAGE = (HDM_FIRST + 16); // wparam = which item (by index)
|
|
|
+
|
|
|
+// Macro 26
|
|
|
+Function Header_CreateDragImage( hwnd : hwnd; i : WPARAM):HIMAGELIST;
|
|
|
+
|
|
|
+CONST
|
|
|
+ HDM_GETORDERARRAY = (HDM_FIRST + 17);
|
|
|
+
|
|
|
+// Macro 27
|
|
|
+Function Header_GetOrderArray( hwnd : hwnd; iCount : WPARAM; lpi : LPARAM):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ HDM_SETORDERARRAY = (HDM_FIRST + 18);
|
|
|
+
|
|
|
+// Macro 28
|
|
|
+Function Header_SetOrderArray( hwnd : hwnd; iCount : WPARAM; lpi : LPARAM):BOOL;
|
|
|
+
|
|
|
+// lparam = int array of size HDM_GETITEMCOUNT
|
|
|
+// the array specifies the order that all items should be displayed.
|
|
|
+// e.g. { 2, 0, 1}
|
|
|
+// says the index 2 item should be shown in the 0ths position
|
|
|
+// index 0 should be shown in the 1st position
|
|
|
+// index 1 should be shown in the 2nd position
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ HDM_SETHOTDIVIDER = (HDM_FIRST + 19);
|
|
|
+
|
|
|
+// Macro 29
|
|
|
+Function Header_SetHotDivider( hwnd : hwnd; fPos : WPARAM; dw : LPARAM):cint;
|
|
|
+
|
|
|
+// convenience message for external dragdrop
|
|
|
+// wParam = BOOL specifying whether the lParam is a dwPos of the cursor
|
|
|
+// position or the index of which divider to hotlight
|
|
|
+// lParam = depends on wParam (-1 and wParm = FALSE turns off hotlight)
|
|
|
+{$ENDIF} // _WIN32_IE >= 0x0300
|
|
|
+
|
|
|
+{$ifdef ie5plus}
|
|
|
+CONST
|
|
|
+ HDM_SETBITMAPMARGIN = (HDM_FIRST + 20);
|
|
|
+
|
|
|
+// Macro 30
|
|
|
+Function Header_SetBitmapMargin( hwnd : hwnd; iWidth : WPARAM):cint;
|
|
|
+
|
|
|
+CONST
|
|
|
+ HDM_GETBITMAPMARGIN = (HDM_FIRST + 21);
|
|
|
+
|
|
|
+// Macro 31
|
|
|
+Function Header_GetBitmapMargin( hwnd : hwnd):cint;
|
|
|
+
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+{$ifdef ie4plus}
|
|
|
+
|
|
|
+CONST
|
|
|
+ HDM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
|
|
|
+
|
|
|
+// Macro 32
|
|
|
+Function Header_SetUnicodeFormat( hwnd : hwnd; fUnicode : WPARAM):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ HDM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
|
|
|
+
|
|
|
+// Macro 33
|
|
|
+Function Header_GetUnicodeFormat( hwnd : hwnd):BOOL;
|
|
|
+
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ifdef ie5plus}
|
|
|
+CONST
|
|
|
+ HDM_SETFILTERCHANGETIMEOUT = (HDM_FIRST+22);
|
|
|
+
|
|
|
+// Macro 34
|
|
|
+Function Header_SetFilterChangeTimeout( hwnd : hwnd; i : LPARAM):cint;
|
|
|
+
|
|
|
+CONST
|
|
|
+ HDM_EDITFILTER = (HDM_FIRST+23);
|
|
|
+
|
|
|
+// Macro 35
|
|
|
+Function Header_EditFilter( hwnd : hwnd; i : WPARAM; fDiscardChanges :cint ):cint;
|
|
|
+
|
|
|
+
|
|
|
+// Clear filter takes -1 as a column value to indicate that all
|
|
|
+// the filter should be cleared. When this happens you will
|
|
|
+// only receive a single filter changed notification.
|
|
|
+
|
|
|
+CONST
|
|
|
+ HDM_CLEARFILTER = (HDM_FIRST+24);
|
|
|
+
|
|
|
+// Macro 36
|
|
|
+Function Header_ClearFilter( hwnd : hwnd; i : WPARAM):cint;
|
|
|
+
|
|
|
+// Macro 37
|
|
|
+Function Header_ClearAllFilters( hwnd : hwnd):cint;
|
|
|
+
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+CONST
|
|
|
+ HDN_ITEMCHANGINGA = (HDN_FIRST-0);
|
|
|
+ HDN_ITEMCHANGINGW = (HDN_FIRST-20);
|
|
|
+ HDN_ITEMCHANGEDA = (HDN_FIRST-1);
|
|
|
+ HDN_ITEMCHANGEDW = (HDN_FIRST-21);
|
|
|
+ HDN_ITEMCLICKA = (HDN_FIRST-2);
|
|
|
+ HDN_ITEMCLICKW = (HDN_FIRST-22);
|
|
|
+ HDN_ITEMDBLCLICKA = (HDN_FIRST-3);
|
|
|
+ HDN_ITEMDBLCLICKW = (HDN_FIRST-23);
|
|
|
+ HDN_DIVIDERDBLCLICKA = (HDN_FIRST-5);
|
|
|
+ HDN_DIVIDERDBLCLICKW = (HDN_FIRST-25);
|
|
|
+ HDN_BEGINTRACKA = (HDN_FIRST-6);
|
|
|
+ HDN_BEGINTRACKW = (HDN_FIRST-26);
|
|
|
+ HDN_ENDTRACKA = (HDN_FIRST-7);
|
|
|
+ HDN_ENDTRACKW = (HDN_FIRST-27);
|
|
|
+ HDN_TRACKA = (HDN_FIRST-8);
|
|
|
+ HDN_TRACKW = (HDN_FIRST-28);
|
|
|
+{$ifdef ie3plus}
|
|
|
+ HDN_GETDISPINFOA = (HDN_FIRST-9);
|
|
|
+ HDN_GETDISPINFOW = (HDN_FIRST-29);
|
|
|
+ HDN_BEGINDRAG = (HDN_FIRST-10);
|
|
|
+ HDN_ENDDRAG = (HDN_FIRST-11);
|
|
|
+{$ENDIF}
|
|
|
+{$ifdef ie5plus}
|
|
|
+ HDN_FILTERCHANGE = (HDN_FIRST-12);
|
|
|
+ HDN_FILTERBTNCLICK = (HDN_FIRST-13);
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ HDN_ITEMCHANGING = HDN_ITEMCHANGINGW;
|
|
|
+ HDN_ITEMCHANGED = HDN_ITEMCHANGEDW;
|
|
|
+ HDN_ITEMCLICK = HDN_ITEMCLICKW;
|
|
|
+ HDN_ITEMDBLCLICK = HDN_ITEMDBLCLICKW;
|
|
|
+ HDN_DIVIDERDBLCLICK = HDN_DIVIDERDBLCLICKW;
|
|
|
+ HDN_BEGINTRACK = HDN_BEGINTRACKW;
|
|
|
+ HDN_ENDTRACK = HDN_ENDTRACKW;
|
|
|
+ HDN_TRACK = HDN_TRACKW;
|
|
|
+{$ifdef ie3plus}
|
|
|
+ HDN_GETDISPINFO = HDN_GETDISPINFOW;
|
|
|
+{$ENDIF}
|
|
|
+{$ELSE}
|
|
|
+ HDN_ITEMCHANGING = HDN_ITEMCHANGINGA;
|
|
|
+ HDN_ITEMCHANGED = HDN_ITEMCHANGEDA;
|
|
|
+ HDN_ITEMCLICK = HDN_ITEMCLICKA;
|
|
|
+ HDN_ITEMDBLCLICK = HDN_ITEMDBLCLICKA;
|
|
|
+ HDN_DIVIDERDBLCLICK = HDN_DIVIDERDBLCLICKA;
|
|
|
+ HDN_BEGINTRACK = HDN_BEGINTRACKA;
|
|
|
+ HDN_ENDTRACK = HDN_ENDTRACKA;
|
|
|
+ HDN_TRACK = HDN_TRACKA;
|
|
|
+{$ifdef ie3plus}
|
|
|
+ HDN_GETDISPINFO = HDN_GETDISPINFOA;
|
|
|
+{$ENDIF}
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+TYPE
|
|
|
+ tagNMHEADERA = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ iItem : cint;
|
|
|
+ iButton : cint;
|
|
|
+ pitem : PHDITEMA;
|
|
|
+ END;
|
|
|
+ NMHEADERA = tagNMHEADERA;
|
|
|
+ LPNMHEADERA = ^tagNMHEADERA;
|
|
|
+ TNMHEADERA = tagNMHEADERA;
|
|
|
+ PNMHEADERA = ^tagNMHEADERA;
|
|
|
+
|
|
|
+ tagNMHEADERW = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ iItem : cint;
|
|
|
+ iButton : cint;
|
|
|
+ pitem : PHDITEMW;
|
|
|
+ END;
|
|
|
+ NMHEADERW = tagNMHEADERW;
|
|
|
+ LPNMHEADERW = ^tagNMHEADERW;
|
|
|
+ TNMHEADERW = tagNMHEADERW;
|
|
|
+ PNMHEADERW = ^tagNMHEADERW;
|
|
|
+
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ NMHEADER = NMHEADERW;
|
|
|
+ LPNMHEADER = LPNMHEADERW;
|
|
|
+{$ELSE}
|
|
|
+ NMHEADER = NMHEADERA;
|
|
|
+ LPNMHEADER = LPNMHEADERA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+ HD_NOTIFYA = NMHEADERA;
|
|
|
+ HD_NOTIFYW = NMHEADERW;
|
|
|
+{$ELSE}
|
|
|
+// tagNMHEADERA = _HD_NOTIFY;
|
|
|
+// NMHEADERA = HD_NOTIFYA;
|
|
|
+// tagHMHEADERW = _HD_NOTIFYW;
|
|
|
+// NMHEADERW = HD_NOTIFYW;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+ HD_NOTIFY = NMHEADER;
|
|
|
+
|
|
|
+
|
|
|
+ tagNMHDDISPINFOW = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ iItem : cint;
|
|
|
+ mask : UINT;
|
|
|
+ pszText : LPWSTR;
|
|
|
+ cchTextMax : cint;
|
|
|
+ iImage : cint;
|
|
|
+ lParam : LPARAM;
|
|
|
+ END;
|
|
|
+ NMHDDISPINFOW = tagNMHDDISPINFOW;
|
|
|
+ LPNMHDDISPINFOW = ^tagNMHDDISPINFOW;
|
|
|
+ TNMHDDISPINFOW = tagNMHDDISPINFOW;
|
|
|
+ PNMHDDISPINFOW = ^tagNMHDDISPINFOW;
|
|
|
+
|
|
|
+
|
|
|
+ tagNMHDDISPINFOA = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ iItem : cint;
|
|
|
+ mask : UINT;
|
|
|
+ pszText : LPSTR;
|
|
|
+ cchTextMax : cint;
|
|
|
+ iImage : cint;
|
|
|
+ lParam : LPARAM;
|
|
|
+ END;
|
|
|
+ NMHDDISPINFOA = tagNMHDDISPINFOA;
|
|
|
+ LPNMHDDISPINFOA = ^tagNMHDDISPINFOA;
|
|
|
+ TNMHDDISPINFOA = tagNMHDDISPINFOA;
|
|
|
+ PNMHDDISPINFOA = ^tagNMHDDISPINFOA;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ NMHDDISPINFO = NMHDDISPINFOW;
|
|
|
+ LPNMHDDISPINFO = LPNMHDDISPINFOW;
|
|
|
+{$ELSE}
|
|
|
+ NMHDDISPINFO = NMHDDISPINFOA;
|
|
|
+ LPNMHDDISPINFO = LPNMHDDISPINFOA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ifdef ie5plus}
|
|
|
+ tagNMHDFILTERBTNCLICK = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ iItem : cint;
|
|
|
+ rc : RECT;
|
|
|
+ END;
|
|
|
+ NMHDFILTERBTNCLICK = tagNMHDFILTERBTNCLICK;
|
|
|
+ LPNMHDFILTERBTNCLICK = ^tagNMHDFILTERBTNCLICK;
|
|
|
+ TNMHDFILTERBTNCLICK = tagNMHDFILTERBTNCLICK;
|
|
|
+ PNMHDFILTERBTNCLICK = ^tagNMHDFILTERBTNCLICK;
|
|
|
+
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ENDIF} // NOHEADER
|
|
|
+
|
|
|
+
|
|
|
+//====== TOOLBAR CONTROL ======================================================
|
|
|
+
|
|
|
+{$IFNDEF NOTOOLBAR}
|
|
|
+
|
|
|
+{$IFDEF _WIN32}
|
|
|
+
|
|
|
+CONST
|
|
|
+ TOOLBARCLASSNAMEW = {L}'ToolbarWindow32';
|
|
|
+ TOOLBARCLASSNAMEA = 'ToolbarWindow32';
|
|
|
+
|
|
|
+TYPE
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ TOOLBARCLASSNAME = TOOLBARCLASSNAMEW;
|
|
|
+{$ELSE}
|
|
|
+ TOOLBARCLASSNAME = TOOLBARCLASSNAMEA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ELSE}
|
|
|
+
|
|
|
+CONST
|
|
|
+ TOOLBARCLASSNAME = 'ToolbarWindow';
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ _TBBUTTON = Record
|
|
|
+ iBitmap : cint;
|
|
|
+ idCommand : cint;
|
|
|
+ fsState : BYTE;
|
|
|
+ fsStyle : BYTE;
|
|
|
+{$IFDEF _WIN64}
|
|
|
+ bReserved : ARRAY[0..5] OF BYTE; // padding for alignment
|
|
|
+{$ELSE}
|
|
|
+{$IFDEF _WIN32}
|
|
|
+ bReserved : ARRAY[0..1] OF BYTE; // padding for alignment
|
|
|
+{$ENDIF}
|
|
|
+{$ENDIF}
|
|
|
+ dwData : DWORD_PTR;
|
|
|
+ iString : INT_PTR;
|
|
|
+ END;
|
|
|
+ TBBUTTON = _TBBUTTON;
|
|
|
+ PTBBUTTON = {NEAR} ^_TBBUTTON; // ???
|
|
|
+ LPTBBUTTON = ^_TBBUTTON;
|
|
|
+ TTBBUTTON = _TBBUTTON;
|
|
|
+// PTBBUTTON = ^_TBBUTTON;
|
|
|
+
|
|
|
+ LPCTBBUTTON = {const} ^TBBUTTON;
|
|
|
+
|
|
|
+
|
|
|
+ _COLORMAP = Record
|
|
|
+ xfrom : COLORREF;
|
|
|
+ xto : COLORREF;
|
|
|
+ END;
|
|
|
+ COLORMAP = _COLORMAP;
|
|
|
+ LPCOLORMAP = ^_COLORMAP;
|
|
|
+ TCOLORMAP = _COLORMAP;
|
|
|
+ PCOLORMAP = ^_COLORMAP;
|
|
|
+
|
|
|
+function CreateToolbarEx(hwnd:HWND;ws:DWORD;wID:UINT;nBitmaps:cint;
|
|
|
+ hBMInst:HINST;
|
|
|
+ wBMID:UINT_PTR;lpButtons:LPCTBBUTTON;iNumButtons:cint;dxButton:cint;
|
|
|
+ dyButton:cint;dxBitmap:cint;dyBitmap:cint;uStructSize:UINT):HWND; external commctrldll name 'CreateToolbarEx';
|
|
|
+
|
|
|
+function CreateMappedBitmap(hInstance:HINST;idBitmap:INT_PTR;wFlags:UINT;lpColorMap:LPCOLORMAP;iNumMaps:cint):HBITMAP; external commctrldll name 'CreateMappedBitmap';
|
|
|
+
|
|
|
+CONST
|
|
|
+ CMB_MASKED = $02;
|
|
|
+ TBSTATE_CHECKED = $01;
|
|
|
+ TBSTATE_PRESSED = $02;
|
|
|
+ TBSTATE_ENABLED = $04;
|
|
|
+ TBSTATE_HIDDEN = $08;
|
|
|
+ TBSTATE_INDETERMINATE = $10;
|
|
|
+ TBSTATE_WRAP = $20;
|
|
|
+{$ifdef ie3plus}
|
|
|
+ TBSTATE_ELLIPSES = $40;
|
|
|
+{$ENDIF}
|
|
|
+{$ifdef ie4plus}
|
|
|
+ TBSTATE_MARKED = $80;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+ TBSTYLE_BUTTON = $0000; // obsolete; use BTNS_BUTTON instead
|
|
|
+ TBSTYLE_SEP = $0001; // obsolete; use BTNS_SEP instead
|
|
|
+ TBSTYLE_CHECK = $0002; // obsolete; use BTNS_CHECK instead
|
|
|
+ TBSTYLE_GROUP = $0004; // obsolete; use BTNS_GROUP instead
|
|
|
+ TBSTYLE_CHECKGROUP = (TBSTYLE_GROUP OR TBSTYLE_CHECK);// obsolete; use BTNS_CHECKGROUP instead
|
|
|
+{$ifdef ie3plus}
|
|
|
+ TBSTYLE_DROPDOWN = $0008; // obsolete; use BTNS_DROPDOWN instead
|
|
|
+{$ENDIF}
|
|
|
+{$ifdef ie4plus}
|
|
|
+ TBSTYLE_AUTOSIZE = $0010; // obsolete; use BTNS_AUTOSIZE instead
|
|
|
+ TBSTYLE_NOPREFIX = $0020; // obsolete; use BTNS_NOPREFIX instead
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+ TBSTYLE_TOOLTIPS = $0100;
|
|
|
+ TBSTYLE_WRAPABLE = $0200;
|
|
|
+ TBSTYLE_ALTDRAG = $0400;
|
|
|
+{$ifdef ie3plus}
|
|
|
+ TBSTYLE_FLAT = $0800;
|
|
|
+ TBSTYLE_LIST = $1000;
|
|
|
+ TBSTYLE_CUSTOMERASE = $2000;
|
|
|
+{$ENDIF}
|
|
|
+{$ifdef ie4plus}
|
|
|
+ TBSTYLE_REGISTERDROP = $4000;
|
|
|
+ TBSTYLE_TRANSPARENT = $8000;
|
|
|
+ TBSTYLE_EX_DRAWDDARROWS = $00000001;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ifdef ie5plus}
|
|
|
+ BTNS_BUTTON = TBSTYLE_BUTTON; // 0x0000
|
|
|
+ BTNS_SEP = TBSTYLE_SEP; // 0x0001
|
|
|
+ BTNS_CHECK = TBSTYLE_CHECK; // 0x0002
|
|
|
+ BTNS_GROUP = TBSTYLE_GROUP; // 0x0004
|
|
|
+ BTNS_CHECKGROUP = TBSTYLE_CHECKGROUP; // (TBSTYLE_GROUP | TBSTYLE_CHECK)
|
|
|
+ BTNS_DROPDOWN = TBSTYLE_DROPDOWN; // 0x0008
|
|
|
+ BTNS_AUTOSIZE = TBSTYLE_AUTOSIZE; // 0x0010; automatically calculate the cx of the button
|
|
|
+ BTNS_NOPREFIX = TBSTYLE_NOPREFIX; // 0x0020; this button should not have accel prefix
|
|
|
+{$ifdef ie501plus}
|
|
|
+ BTNS_SHOWTEXT = $0040; // ignored unless TBSTYLE_EX_MIXEDBUTTONS is set
|
|
|
+{$ENDIF} // 0x0501
|
|
|
+ BTNS_WHOLEDROPDOWN = $0080; // draw drop-down arrow, but without split arrow section
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ifdef ie501plus}
|
|
|
+ TBSTYLE_EX_MIXEDBUTTONS = $00000008;
|
|
|
+ TBSTYLE_EX_HIDECLIPPEDBUTTONS = $00000010; // don't show partially obscured buttons
|
|
|
+{$ENDIF} // 0x0501
|
|
|
+
|
|
|
+
|
|
|
+{$ifdef win32xp}
|
|
|
+ TBSTYLE_EX_DOUBLEBUFFER = $00000080; // Double Buffer the toolbar
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ifdef ie4plus}
|
|
|
+// Custom Draw Structure
|
|
|
+TYPE
|
|
|
+
|
|
|
+ _NMTBCUSTOMDRAW = Record
|
|
|
+ nmcd : NMCUSTOMDRAW;
|
|
|
+ hbrMonoDither : HBRUSH;
|
|
|
+ hbrLines : HBRUSH; // For drawing lines on buttons
|
|
|
+ hpenLines : HPEN; // For drawing lines on buttons
|
|
|
+ clrText : COLORREF; // Color of text
|
|
|
+ clrMark : COLORREF; // Color of text bk when marked. (only if TBSTATE_MARKED)
|
|
|
+ clrTextHighlight : COLORREF; // Color of text when highlighted
|
|
|
+ clrBtnFace : COLORREF; // Background of the button
|
|
|
+ clrBtnHighlight : COLORREF; // 3D highlight
|
|
|
+ clrHighlightHotTrack : COLORREF; // In conjunction with fHighlightHotTrack
|
|
|
+
|
|
|
+ rcText : RECT; // Rect for text
|
|
|
+ nStringBkMode : cint;
|
|
|
+ nHLStringBkMode : cint;
|
|
|
+{$ifdef win32xp}
|
|
|
+ iListGap : cint;
|
|
|
+{$ENDIF}
|
|
|
+ END;
|
|
|
+ NMTBCUSTOMDRAW = _NMTBCUSTOMDRAW;
|
|
|
+ LPNMTBCUSTOMDRAW = ^_NMTBCUSTOMDRAW;
|
|
|
+ TNMTBCUSTOMDRAW = _NMTBCUSTOMDRAW;
|
|
|
+ PNMTBCUSTOMDRAW = ^_NMTBCUSTOMDRAW;
|
|
|
+
|
|
|
+
|
|
|
+// Toolbar custom draw return flags
|
|
|
+
|
|
|
+CONST
|
|
|
+ TBCDRF_NOEDGES = $00010000; // Don't draw button edges
|
|
|
+ TBCDRF_HILITEHOTTRACK = $00020000; // Use color of the button bk when hottracked
|
|
|
+ TBCDRF_NOOFFSET = $00040000; // Don't offset button if pressed
|
|
|
+ TBCDRF_NOMARK = $00080000; // Don't draw default highlight of image/text for TBSTATE_MARKED
|
|
|
+ TBCDRF_NOETCHEDEFFECT = $00100000; // Don't draw etched effect for disabled items
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ifdef ie5plus}
|
|
|
+ TBCDRF_BLENDICON = $00200000; // Use ILD_BLEND50 on the icon image
|
|
|
+ TBCDRF_NOBACKGROUND = $00400000; // Use ILD_BLEND50 on the icon image
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+CONST
|
|
|
+ TB_ENABLEBUTTON = (WM_USER + 1);
|
|
|
+ TB_CHECKBUTTON = (WM_USER + 2);
|
|
|
+ TB_PRESSBUTTON = (WM_USER + 3);
|
|
|
+ TB_HIDEBUTTON = (WM_USER + 4);
|
|
|
+ TB_INDETERMINATE = (WM_USER + 5);
|
|
|
+{$ifdef ie4plus}
|
|
|
+ TB_MARKBUTTON = (WM_USER + 6);
|
|
|
+{$ENDIF}
|
|
|
+ TB_ISBUTTONENABLED = (WM_USER + 9);
|
|
|
+ TB_ISBUTTONCHECKED = (WM_USER + 10);
|
|
|
+ TB_ISBUTTONPRESSED = (WM_USER + 11);
|
|
|
+ TB_ISBUTTONHIDDEN = (WM_USER + 12);
|
|
|
+ TB_ISBUTTONINDETERMINATE = (WM_USER + 13);
|
|
|
+{$ifdef ie4plus}
|
|
|
+ TB_ISBUTTONHIGHLIGHTED = (WM_USER + 14);
|
|
|
+{$ENDIF}
|
|
|
+ TB_SETSTATE = (WM_USER + 17);
|
|
|
+ TB_GETSTATE = (WM_USER + 18);
|
|
|
+ TB_ADDBITMAP = (WM_USER + 19);
|
|
|
+
|
|
|
+{$IFDEF _WIN32}
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagTBADDBITMAP = Record
|
|
|
+ hInst : HINSTANCE;
|
|
|
+ nID : UINT_PTR;
|
|
|
+ END;
|
|
|
+ TBADDBITMAP = tagTBADDBITMAP;
|
|
|
+ LPTBADDBITMAP = ^tagTBADDBITMAP;
|
|
|
+ TTBADDBITMAP = tagTBADDBITMAP;
|
|
|
+ PTBADDBITMAP = ^tagTBADDBITMAP;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ HINST_COMMCTRL = ((HINSTANCE)-1);
|
|
|
+ IDB_STD_SMALL_COLOR = 0;
|
|
|
+ IDB_STD_LARGE_COLOR = 1;
|
|
|
+ IDB_VIEW_SMALL_COLOR = 4;
|
|
|
+ IDB_VIEW_LARGE_COLOR = 5;
|
|
|
+{$ifdef ie3plus}
|
|
|
+ IDB_HIST_SMALL_COLOR = 8;
|
|
|
+ IDB_HIST_LARGE_COLOR = 9;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// icon indexes for standard bitmap
|
|
|
+
|
|
|
+ STD_CUT = 0;
|
|
|
+ STD_COPY = 1;
|
|
|
+ STD_PASTE = 2;
|
|
|
+ STD_UNDO = 3;
|
|
|
+ STD_REDOW = 4;
|
|
|
+ STD_DELETE = 5;
|
|
|
+ STD_FILENEW = 6;
|
|
|
+ STD_FILEOPEN = 7;
|
|
|
+ STD_FILESAVE = 8;
|
|
|
+ STD_PRINTPRE = 9;
|
|
|
+ STD_PROPERTIES = 10;
|
|
|
+ STD_HELP = 11;
|
|
|
+ STD_FIND = 12;
|
|
|
+ STD_REPLACE = 13;
|
|
|
+ STD_PRINT = 14;
|
|
|
+
|
|
|
+// icon indexes for standard view bitmap
|
|
|
+
|
|
|
+ VIEW_LARGEICONS = 0;
|
|
|
+ VIEW_SMALLICONS = 1;
|
|
|
+ VIEW_LIST = 2;
|
|
|
+ VIEW_DETAILS = 3;
|
|
|
+ VIEW_SORTNAME = 4;
|
|
|
+ VIEW_SORTSIZE = 5;
|
|
|
+ VIEW_SORTDATE = 6;
|
|
|
+ VIEW_SORTTYPE = 7;
|
|
|
+ VIEW_PARENTFOLDER = 8;
|
|
|
+ VIEW_NETCONNECT = 9;
|
|
|
+ VIEW_NETDISCONNECT = 10;
|
|
|
+ VIEW_NEWFOLDER = 11;
|
|
|
+{$ifdef ie4plus}
|
|
|
+ VIEW_VIEWMENU = 12;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+ HIST_BACK = 0;
|
|
|
+ HIST_FORWARD = 1;
|
|
|
+ HIST_FAVORITES = 2;
|
|
|
+ HIST_ADDTOFAVORITES = 3;
|
|
|
+ HIST_VIEWTREE = 4;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ifdef ie4plus}
|
|
|
+ TB_ADDBUTTONSA = (WM_USER + 20);
|
|
|
+ TB_INSERTBUTTONA = (WM_USER + 21);
|
|
|
+{$ELSE}
|
|
|
+ TB_ADDBUTTONS = (WM_USER + 20);
|
|
|
+ TB_INSERTBUTTON = (WM_USER + 21);
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+ TB_DELETEBUTTON = (WM_USER + 22);
|
|
|
+ TB_GETBUTTON = (WM_USER + 23);
|
|
|
+ TB_BUTTONCOUNT = (WM_USER + 24);
|
|
|
+ TB_COMMANDTOINDEX = (WM_USER + 25);
|
|
|
+
|
|
|
+{$IFDEF _WIN32}
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagTBSAVEPARAMSA = Record
|
|
|
+ hkr : HKEY;
|
|
|
+ pszSubKey : LPCSTR;
|
|
|
+ pszValueName : LPCSTR;
|
|
|
+ END;
|
|
|
+ TBSAVEPARAMSA = tagTBSAVEPARAMSA;
|
|
|
+ LPTBSAVEPARAMSA = ^tagTBSAVEPARAMSA;
|
|
|
+ TTBSAVEPARAMSA = tagTBSAVEPARAMSA;
|
|
|
+ PTBSAVEPARAMSA = ^tagTBSAVEPARAMSA;
|
|
|
+
|
|
|
+
|
|
|
+ tagTBSAVEPARAMSW = Record
|
|
|
+ hkr : HKEY;
|
|
|
+ pszSubKey : LPCWSTR;
|
|
|
+ pszValueName : LPCWSTR;
|
|
|
+ END;
|
|
|
+ TBSAVEPARAMSW = tagTBSAVEPARAMSW;
|
|
|
+ LPTBSAVEPARAMW = ^tagTBSAVEPARAMSW;
|
|
|
+ TTBSAVEPARAMSW = tagTBSAVEPARAMSW;
|
|
|
+ PTBSAVEPARAMSW = ^tagTBSAVEPARAMSW;
|
|
|
+
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ TBSAVEPARAMS = TBSAVEPARAMSW;
|
|
|
+ LPTBSAVEPARAMS = LPTBSAVEPARAMSW;
|
|
|
+{$ELSE}
|
|
|
+ TBSAVEPARAMS = TBSAVEPARAMSA;
|
|
|
+ LPTBSAVEPARAMS = LPTBSAVEPARAMSA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ENDIF} // _WIN32
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TB_SAVERESTOREA = (WM_USER + 26);
|
|
|
+ TB_SAVERESTOREW = (WM_USER + 76);
|
|
|
+ TB_CUSTOMIZE = (WM_USER + 27);
|
|
|
+ TB_ADDSTRINGA = (WM_USER + 28);
|
|
|
+ TB_ADDSTRINGW = (WM_USER + 77);
|
|
|
+ TB_GETITEMRECT = (WM_USER + 29);
|
|
|
+ TB_BUTTONSTRUCTSIZE = (WM_USER + 30);
|
|
|
+ TB_SETBUTTONSIZE = (WM_USER + 31);
|
|
|
+ TB_SETBITMAPSIZE = (WM_USER + 32);
|
|
|
+ TB_AUTOSIZE = (WM_USER + 33);
|
|
|
+ TB_GETTOOLTIPS = (WM_USER + 35);
|
|
|
+ TB_SETTOOLTIPS = (WM_USER + 36);
|
|
|
+ TB_SETPARENT = (WM_USER + 37);
|
|
|
+ TB_SETROWS = (WM_USER + 39);
|
|
|
+ TB_GETROWS = (WM_USER + 40);
|
|
|
+ TB_SETCMDID = (WM_USER + 42);
|
|
|
+ TB_CHANGEBITMAP = (WM_USER + 43);
|
|
|
+ TB_GETBITMAP = (WM_USER + 44);
|
|
|
+ TB_GETBUTTONTEXTA = (WM_USER + 45);
|
|
|
+ TB_GETBUTTONTEXTW = (WM_USER + 75);
|
|
|
+ TB_REPLACEBITMAP = (WM_USER + 46);
|
|
|
+{$ifdef ie3plus}
|
|
|
+ TB_SETINDENT = (WM_USER + 47);
|
|
|
+ TB_SETIMAGELIST = (WM_USER + 48);
|
|
|
+ TB_GETIMAGELIST = (WM_USER + 49);
|
|
|
+ TB_LOADIMAGES = (WM_USER + 50);
|
|
|
+ TB_GETRECT = (WM_USER + 51); // wParam is the Cmd instead of index
|
|
|
+ TB_SETHOTIMAGELIST = (WM_USER + 52);
|
|
|
+ TB_GETHOTIMAGELIST = (WM_USER + 53);
|
|
|
+ TB_SETDISABLEDIMAGELIST = (WM_USER + 54);
|
|
|
+ TB_GETDISABLEDIMAGELIST = (WM_USER + 55);
|
|
|
+ TB_SETSTYLE = (WM_USER + 56);
|
|
|
+ TB_GETSTYLE = (WM_USER + 57);
|
|
|
+ TB_GETBUTTONSIZE = (WM_USER + 58);
|
|
|
+ TB_SETBUTTONWIDTH = (WM_USER + 59);
|
|
|
+ TB_SETMAXTEXTROWS = (WM_USER + 60);
|
|
|
+ TB_GETTEXTROWS = (WM_USER + 61);
|
|
|
+{$ENDIF} // _WIN32_IE >= 0x0300
|
|
|
+
|
|
|
+CONST
|
|
|
+{$IFDEF UNICODE}
|
|
|
+
|
|
|
+ TB_SAVERESTORE = TB_SAVERESTOREW;
|
|
|
+ TB_ADDSTRING = TB_ADDSTRINGW;
|
|
|
+{$ELSE}
|
|
|
+ TB_GETBUTTONTEXT = TB_GETBUTTONTEXTA;
|
|
|
+ TB_SAVERESTORE = TB_SAVERESTOREA;
|
|
|
+ TB_ADDSTRING = TB_ADDSTRINGA;
|
|
|
+{$ENDIF}
|
|
|
+{$ifdef ie4plus}
|
|
|
+
|
|
|
+CONST
|
|
|
+ TB_GETOBJECT = (WM_USER + 62); // wParam == IID, lParam void **ppv
|
|
|
+ TB_GETHOTITEM = (WM_USER + 71);
|
|
|
+ TB_SETHOTITEM = (WM_USER + 72); // wParam == iHotItem
|
|
|
+ TB_SETANCHORHIGHLIGHT = (WM_USER + 73); // wParam == TRUE/FALSE
|
|
|
+ TB_GETANCHORHIGHLIGHT = (WM_USER + 74);
|
|
|
+ TB_MAPACCELERATORA = (WM_USER + 78); // wParam == ch, lParam int * pidBtn
|
|
|
+
|
|
|
+TYPE
|
|
|
+ TBINSERTMARK = Record
|
|
|
+ iButton : cint;
|
|
|
+ dwFlags : DWORD;
|
|
|
+ END;
|
|
|
+ LPTBINSERTMARK = ^TBINSERTMARK;
|
|
|
+ TTBINSERTMARK = TBINSERTMARK;
|
|
|
+ PTBINSERTMARK = ^TBINSERTMARK;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TBIMHT_AFTER = $00000001; // TRUE = insert After iButton, otherwise before
|
|
|
+ TBIMHT_BACKGROUND = $00000002; // TRUE iff missed buttons completely
|
|
|
+
|
|
|
+ TB_GETINSERTMARK = (WM_USER + 79); // lParam == LPTBINSERTMARK
|
|
|
+ TB_SETINSERTMARK = (WM_USER + 80); // lParam == LPTBINSERTMARK
|
|
|
+ TB_INSERTMARKHITTEST = (WM_USER + 81); // wParam == LPPOINT lParam == LPTBINSERTMARK
|
|
|
+ TB_MOVEBUTTON = (WM_USER + 82);
|
|
|
+ TB_GETMAXSIZE = (WM_USER + 83); // lParam == LPSIZE
|
|
|
+ TB_SETEXTENDEDSTYLE = (WM_USER + 84); // For TBSTYLE_EX_*
|
|
|
+ TB_GETEXTENDEDSTYLE = (WM_USER + 85); // For TBSTYLE_EX_*
|
|
|
+ TB_GETPADDING = (WM_USER + 86);
|
|
|
+ TB_SETPADDING = (WM_USER + 87);
|
|
|
+ TB_SETINSERTMARKCOLOR = (WM_USER + 88);
|
|
|
+ TB_GETINSERTMARKCOLOR = (WM_USER + 89);
|
|
|
+
|
|
|
+ TB_SETCOLORSCHEME = CCM_SETCOLORSCHEME; // lParam is color scheme
|
|
|
+ TB_GETCOLORSCHEME = CCM_GETCOLORSCHEME; // fills in COLORSCHEME pointed to by lParam
|
|
|
+
|
|
|
+ TB_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
|
|
|
+ TB_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
|
|
|
+
|
|
|
+ TB_MAPACCELERATORW = (WM_USER + 90); // wParam == ch, lParam int * pidBtn
|
|
|
+
|
|
|
+CONST
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ TB_MAPACCELERATOR = TB_MAPACCELERATORW;
|
|
|
+{$ELSE}
|
|
|
+ TB_MAPACCELERATOR = TB_MAPACCELERATORA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ENDIF} // _WIN32_IE >= 0x0400
|
|
|
+TYPE
|
|
|
+ TBREPLACEBITMAP = Record
|
|
|
+ hInstOld : HINST;
|
|
|
+ nIDOld : UINT_PTR;
|
|
|
+ hInstNew : HINST;
|
|
|
+ nIDNew : UINT_PTR;
|
|
|
+ nButtons : cint;
|
|
|
+ END;
|
|
|
+ LPTBREPLACEBITMAP = ^TBREPLACEBITMAP;
|
|
|
+ TTBREPLACEBITMAP = TBREPLACEBITMAP;
|
|
|
+ PTBREPLACEBITMAP = ^TBREPLACEBITMAP;
|
|
|
+
|
|
|
+
|
|
|
+{$IFDEF _WIN32}
|
|
|
+
|
|
|
+CONST
|
|
|
+ TBBF_LARGE = $0001;
|
|
|
+ TB_GETBITMAPFLAGS = (WM_USER + 41);
|
|
|
+
|
|
|
+{$ifdef ie4plus}
|
|
|
+ TBIF_IMAGE = $00000001;
|
|
|
+ TBIF_TEXT = $00000002;
|
|
|
+ TBIF_STATE = $00000004;
|
|
|
+ TBIF_STYLE = $00000008;
|
|
|
+ TBIF_LPARAM = $00000010;
|
|
|
+ TBIF_COMMAND = $00000020;
|
|
|
+ TBIF_SIZE = $00000040;
|
|
|
+
|
|
|
+{$ifdef ie5plus}
|
|
|
+ TBIF_BYINDEX = $80000000; // this specifies that the wparam in Get/SetButtonInfo is an index, not id
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ TBBUTTONINFOA = Record
|
|
|
+ cbSize : UINT;
|
|
|
+ dwMask : DWORD;
|
|
|
+ idCommand : cint;
|
|
|
+ iImage : cint;
|
|
|
+ fsState : BYTE;
|
|
|
+ fsStyle : BYTE;
|
|
|
+ cx : WORD;
|
|
|
+ lParam : DWORD_PTR;
|
|
|
+ pszText : LPSTR;
|
|
|
+ cchText : cint;
|
|
|
+ END;
|
|
|
+ LPTBBUTTONINFOA = ^TBBUTTONINFOA;
|
|
|
+ TTBBUTTONINFOA = TBBUTTONINFOA;
|
|
|
+ PTBBUTTONINFOA = ^TBBUTTONINFOA;
|
|
|
+
|
|
|
+
|
|
|
+ TBBUTTONINFOW = Record
|
|
|
+ cbSize : UINT;
|
|
|
+ dwMask : DWORD;
|
|
|
+ idCommand : cint;
|
|
|
+ iImage : cint;
|
|
|
+ fsState : BYTE;
|
|
|
+ fsStyle : BYTE;
|
|
|
+ cx : WORD;
|
|
|
+ lParam : DWORD_PTR;
|
|
|
+ pszText : LPWSTR;
|
|
|
+ cchText : cint;
|
|
|
+ END;
|
|
|
+ LPTBBUTTONINFOW = ^TBBUTTONINFOW;
|
|
|
+ TTBBUTTONINFOW= TBBUTTONINFOW;
|
|
|
+ PTBBUTTONINFOW= ^TBBUTTONINFOW;
|
|
|
+
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ TBBUTTONINFO = TBBUTTONINFOW;
|
|
|
+ LPTBBUTTONINFO = LPTBBUTTONINFOW;
|
|
|
+{$ELSE}
|
|
|
+ TBBUTTONINFO = TBBUTTONINFOA;
|
|
|
+ LPTBBUTTONINFO = LPTBBUTTONINFOA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+// BUTTONINFO APIs do NOT support the string pool.
|
|
|
+
|
|
|
+CONST
|
|
|
+ TB_GETBUTTONINFOW = (WM_USER + 63);
|
|
|
+ TB_SETBUTTONINFOW = (WM_USER + 64);
|
|
|
+ TB_GETBUTTONINFOA = (WM_USER + 65);
|
|
|
+ TB_SETBUTTONINFOA = (WM_USER + 66);
|
|
|
+
|
|
|
+TYPE
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ TB_GETBUTTONINFO = TB_GETBUTTONINFOW;
|
|
|
+ TB_SETBUTTONINFO = TB_SETBUTTONINFOW;
|
|
|
+{$ELSE}
|
|
|
+ TB_GETBUTTONINFO = TB_GETBUTTONINFOA;
|
|
|
+ TB_SETBUTTONINFO = TB_SETBUTTONINFOA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+CONST
|
|
|
+ TB_INSERTBUTTONW = (WM_USER + 67);
|
|
|
+ TB_ADDBUTTONSW = (WM_USER + 68);
|
|
|
+
|
|
|
+ TB_HITTEST = (WM_USER + 69);
|
|
|
+
|
|
|
+// New post Win95/NT4 for InsertButton and AddButton. if iString member
|
|
|
+// is a pointer to a string, it will be handled as a string like listview
|
|
|
+// (although LPSTR_TEXTCALLBACK is not supported).
|
|
|
+
|
|
|
+TYPE
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ TB_INSERTBUTTON = TB_INSERTBUTTONW;
|
|
|
+ TB_ADDBUTTONS = TB_ADDBUTTONSW;
|
|
|
+{$ELSE}
|
|
|
+ TB_INSERTBUTTON = TB_INSERTBUTTONA;
|
|
|
+ TB_ADDBUTTONS = TB_ADDBUTTONSA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TB_SETDRAWTEXTFLAGS = (WM_USER + 70); // wParam == mask lParam == bit values
|
|
|
+
|
|
|
+{$ENDIF} // _WIN32_IE >= 0x0400
|
|
|
+
|
|
|
+{$ifdef ie5plus}
|
|
|
+
|
|
|
+ TB_GETSTRINGW = (WM_USER + 91);
|
|
|
+ TB_GETSTRINGA = (WM_USER + 92);
|
|
|
+{$IFDEF UNICODE}
|
|
|
+
|
|
|
+ TB_GETSTRING = TB_GETSTRINGW;
|
|
|
+{$ELSE}
|
|
|
+ TB_GETSTRING = TB_GETSTRINGA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+{$ENDIF} // _WIN32_IE >= 0x0500
|
|
|
+
|
|
|
+{$ifdef win32xp}
|
|
|
+
|
|
|
+CONST
|
|
|
+ TBMF_PAD = $00000001;
|
|
|
+ TBMF_BARPAD = $00000002;
|
|
|
+ TBMF_BUTTONSPACING = $00000004;
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ TBMETRICS = Record
|
|
|
+ cbSize : UINT;
|
|
|
+ dwMask : DWORD;
|
|
|
+ cxPad : cint; // PAD
|
|
|
+ cyPad : cint;
|
|
|
+ cxBarPad : cint; // BARPAD
|
|
|
+ cyBarPad : cint;
|
|
|
+ cxButtonSpacing : cint; // BUTTONSPACING
|
|
|
+ cyButtonSpacing : cint;
|
|
|
+ END;
|
|
|
+ LPTBMETRICS = ^TBMETRICS;
|
|
|
+ TTBMETRICS = TBMETRICS;
|
|
|
+ PTBMETRICS = ^TBMETRICS;
|
|
|
+
|
|
|
+CONST
|
|
|
+ TB_GETMETRICS = (WM_USER + 101);
|
|
|
+ TB_SETMETRICS = (WM_USER + 102);
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+{$ifdef win32xp}
|
|
|
+ TB_SETWINDOWTHEME = CCM_SETWINDOWTHEME;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+ TBN_GETBUTTONINFOA = (TBN_FIRST-0);
|
|
|
+ TBN_BEGINDRAG = (TBN_FIRST-1);
|
|
|
+ TBN_ENDDRAG = (TBN_FIRST-2);
|
|
|
+ TBN_BEGINADJUST = (TBN_FIRST-3);
|
|
|
+ TBN_ENDADJUST = (TBN_FIRST-4);
|
|
|
+ TBN_RESET = (TBN_FIRST-5);
|
|
|
+ TBN_QUERYINSERT = (TBN_FIRST-6);
|
|
|
+ TBN_QUERYDELETE = (TBN_FIRST-7);
|
|
|
+ TBN_TOOLBARCHANGE = (TBN_FIRST-8);
|
|
|
+ TBN_CUSTHELP = (TBN_FIRST-9);
|
|
|
+{$ifdef ie3plus}
|
|
|
+ TBN_DROPDOWN = (TBN_FIRST - 10);
|
|
|
+{$ENDIF}
|
|
|
+{$ifdef ie4plus}
|
|
|
+ TBN_GETOBJECT = (TBN_FIRST - 12);
|
|
|
+
|
|
|
+// Structure for TBN_HOTITEMCHANGE notification
|
|
|
+//
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagNMTBHOTITEM = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ idOld : cint;
|
|
|
+ idNew : cint;
|
|
|
+ dwFlags : DWORD; // HICF_*
|
|
|
+ END;
|
|
|
+ NMTBHOTITEM = tagNMTBHOTITEM;
|
|
|
+ LPNMTBHOTITEM = ^tagNMTBHOTITEM;
|
|
|
+ TNMTBHOTITEM = tagNMTBHOTITEM;
|
|
|
+ PNMTBHOTITEM = ^tagNMTBHOTITEM;
|
|
|
+
|
|
|
+
|
|
|
+// Hot item change flags
|
|
|
+
|
|
|
+CONST
|
|
|
+ HICF_OTHER = $00000000;
|
|
|
+ HICF_MOUSE = $00000001; // Triggered by mouse
|
|
|
+ HICF_ARROWKEYS = $00000002; // Triggered by arrow keys
|
|
|
+ HICF_ACCELERATOR = $00000004; // Triggered by accelerator
|
|
|
+ HICF_DUPACCEL = $00000008; // This accelerator is not unique
|
|
|
+ HICF_ENTERING = $00000010; // idOld is invalid
|
|
|
+ HICF_LEAVING = $00000020; // idNew is invalid
|
|
|
+ HICF_RESELECT = $00000040; // hot item reselected
|
|
|
+ HICF_LMOUSE = $00000080; // left mouse button selected
|
|
|
+ HICF_TOGGLEDROPDOWN = $00000100; // Toggle button's dropdown state
|
|
|
+
|
|
|
+
|
|
|
+ TBN_HOTITEMCHANGE = (TBN_FIRST - 13);
|
|
|
+ TBN_DRAGOUT = (TBN_FIRST - 14); // this is sent when the user clicks down on a button then drags off the button
|
|
|
+ TBN_DELETINGBUTTON = (TBN_FIRST - 15); // uses TBNOTIFY
|
|
|
+ TBN_GETDISPINFOA = (TBN_FIRST - 16); // This is sent when the toolbar needs some display information
|
|
|
+ TBN_GETDISPINFOW = (TBN_FIRST - 17); // This is sent when the toolbar needs some display information
|
|
|
+ TBN_GETINFOTIPA = (TBN_FIRST - 18);
|
|
|
+ TBN_GETINFOTIPW = (TBN_FIRST - 19);
|
|
|
+ TBN_GETBUTTONINFOW = (TBN_FIRST - 20);
|
|
|
+{$ifdef ie5plus}
|
|
|
+ TBN_RESTORE = (TBN_FIRST - 21);
|
|
|
+ TBN_SAVE = (TBN_FIRST - 22);
|
|
|
+ TBN_INITCUSTOMIZE = (TBN_FIRST - 23);
|
|
|
+ TBNRF_HIDEHELP = $00000001;
|
|
|
+ TBNRF_ENDCUSTOMIZE = $00000002;
|
|
|
+{$ENDIF} // (_WIN32_IE >= 0x0500)
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+{$ifdef ie5plus}
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagNMTBSAVE = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ pData : PDWORD;
|
|
|
+ pCurrent : PDWORD;
|
|
|
+ cbData : UINT;
|
|
|
+ iItem : cint;
|
|
|
+ cButtons : cint;
|
|
|
+ tbButton : TBBUTTON;
|
|
|
+ END;
|
|
|
+ NMTBSAVE = tagNMTBSAVE;
|
|
|
+ LPNMTBSAVE = ^tagNMTBSAVE;
|
|
|
+ TNMTBSAVE = tagNMTBSAVE;
|
|
|
+ PNMTBSAVE = ^tagNMTBSAVE;
|
|
|
+
|
|
|
+
|
|
|
+ tagNMTBRESTORE = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ pData : PDWORD;
|
|
|
+ pCurrent : PDWORD;
|
|
|
+ cbData : UINT;
|
|
|
+ iItem : cint;
|
|
|
+ cButtons : cint;
|
|
|
+ cbBytesPerRecord : cint;
|
|
|
+ tbButton : TBBUTTON;
|
|
|
+ END;
|
|
|
+ NMTBRESTORE = tagNMTBRESTORE;
|
|
|
+ LPNMTBRESTORE = ^tagNMTBRESTORE;
|
|
|
+ TNMTBRESTORE = tagNMTBRESTORE;
|
|
|
+ PNMTBRESTORE = ^tagNMTBRESTORE;
|
|
|
+
|
|
|
+{$ENDIF} // (_WIN32_IE >= 0x0500)
|
|
|
+
|
|
|
+ tagNMTBGETINFOTIPA = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ pszText : LPSTR;
|
|
|
+ cchTextMax : cint;
|
|
|
+ iItem : cint;
|
|
|
+ lParam : LPARAM;
|
|
|
+ END;
|
|
|
+ NMTBGETINFOTIPA = tagNMTBGETINFOTIPA;
|
|
|
+ LPNMTBGETINFOTIPA = ^tagNMTBGETINFOTIPA;
|
|
|
+ TNMTBGETINFOTIPA = tagNMTBGETINFOTIPA;
|
|
|
+ PNMTBGETINFOTIPA = ^tagNMTBGETINFOTIPA;
|
|
|
+
|
|
|
+
|
|
|
+ tagNMTBGETINFOTIPW = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ pszText : LPWSTR;
|
|
|
+ cchTextMax : cint;
|
|
|
+ iItem : cint;
|
|
|
+ lParam : LPARAM;
|
|
|
+ END;
|
|
|
+ NMTBGETINFOTIPW = tagNMTBGETINFOTIPW;
|
|
|
+ LPNMTBGETINFOTIPW = ^tagNMTBGETINFOTIPW;
|
|
|
+ TNMTBGETINFOTIPW = tagNMTBGETINFOTIPW;
|
|
|
+ PNMTBGETINFOTIPW = ^tagNMTBGETINFOTIPW;
|
|
|
+
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ TBN_GETINFOTIP = TBN_GETINFOTIPW;
|
|
|
+ NMTBGETINFOTIP = NMTBGETINFOTIPW;
|
|
|
+ LPNMTBGETINFOTIP = LPNMTBGETINFOTIPW;
|
|
|
+{$ELSE}
|
|
|
+ TBN_GETINFOTIP = TBN_GETINFOTIPA;
|
|
|
+ NMTBGETINFOTIP = NMTBGETINFOTIPA;
|
|
|
+ LPNMTBGETINFOTIP = LPNMTBGETINFOTIPA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TBNF_IMAGE = $00000001;
|
|
|
+ TBNF_TEXT = $00000002;
|
|
|
+ TBNF_DI_SETITEM = $10000000;
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ NMTBDISPINFOA = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ dwMask : DWORD; // [in] Specifies the values requested .[out] Client ask the data to be set for future use
|
|
|
+ idCommand : cint; // [in] id of button we're requesting info for
|
|
|
+ lParam : DWORD_PTR; // [in] lParam of button
|
|
|
+ iImage : cint; // [out] image index
|
|
|
+ pszText : LPSTR; // [out] new text for item
|
|
|
+ cchText : cint; // [in] size of buffer pointed to by pszText
|
|
|
+ END;
|
|
|
+ LPNMTBDISPINFOA = ^NMTBDISPINFOA;
|
|
|
+ TNMTBDISPINFOA = NMTBDISPINFOA;
|
|
|
+ PNMTBDISPINFOA = ^NMTBDISPINFOA;
|
|
|
+
|
|
|
+
|
|
|
+ NMTBDISPINFOW = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ dwMask : DWORD; //[in] Specifies the values requested .[out] Client ask the data to be set for future use
|
|
|
+ idCommand : cint; // [in] id of button we're requesting info for
|
|
|
+ lParam : DWORD_PTR; // [in] lParam of button
|
|
|
+ iImage : cint; // [out] image index
|
|
|
+ pszText : LPWSTR; // [out] new text for item
|
|
|
+ cchText : cint; // [in] size of buffer pointed to by pszText
|
|
|
+ END;
|
|
|
+ LPNMTBDISPINFOW = ^NMTBDISPINFOW;
|
|
|
+ TNMTBDISPINFOW = NMTBDISPINFOW;
|
|
|
+ PNMTBDISPINFOW = ^NMTBDISPINFOW;
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ TBN_GETDISPINFO = TBN_GETDISPINFOW;
|
|
|
+ NMTBDISPINFO = NMTBDISPINFOW;
|
|
|
+ LPNMTBDISPINFO = LPNMTBDISPINFOW;
|
|
|
+{$ELSE}
|
|
|
+ TBN_GETDISPINFO = TBN_GETDISPINFOA;
|
|
|
+ NMTBDISPINFO = NMTBDISPINFOA;
|
|
|
+ LPNMTBDISPINFO = LPNMTBDISPINFOA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// Return codes for TBN_DROPDOWN
|
|
|
+
|
|
|
+CONST
|
|
|
+ TBDDRET_DEFAULT = 0;
|
|
|
+ TBDDRET_NODEFAULT = 1;
|
|
|
+ TBDDRET_TREATPRESSED = 2; // Treat as a standard press button
|
|
|
+
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+
|
|
|
+TYPE
|
|
|
+ TBN_GETBUTTONINFO = TBN_GETBUTTONINFOW;
|
|
|
+{$ELSE}
|
|
|
+ TBN_GETBUTTONINFO = TBN_GETBUTTONINFOA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+ TBNOTIFYA = NMTOOLBARA;
|
|
|
+ TBNOTIFYW = NMTOOLBARW;
|
|
|
+ LPTBNOTIFYA = LPNMTOOLBARA;
|
|
|
+ LPTBNOTIFYW = LPNMTOOLBARW;
|
|
|
+{$ELSE}
|
|
|
+ tagNMTOOLBARA = tagTBNOTIFYA;
|
|
|
+ NMTOOLBARA = TBNOTIFYA;
|
|
|
+ LPNMTOOLBARA = LPTBNOTIFYA;
|
|
|
+ tagNMTOOLBARW = tagTBNOTIFYW;
|
|
|
+ NMTOOLBARW = TBNOTIFYW;
|
|
|
+ LPNMTOOLBARW = LPTBNOTIFYW;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TBNOTIFY = NMTOOLBAR;
|
|
|
+
|
|
|
+TYPE
|
|
|
+ LPTBNOTIFY = LPNMTOOLBAR;
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+ tagNMTOOLBARA = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ iItem : cint;
|
|
|
+ tbButton : TBBUTTON;
|
|
|
+ cchText : cint;
|
|
|
+ pszText : LPSTR;
|
|
|
+{$ifdef ie5plus}
|
|
|
+ rcButton : RECT;
|
|
|
+{$ENDIF}
|
|
|
+ END;
|
|
|
+ NMTOOLBARA = tagNMTOOLBARA;
|
|
|
+ LPNMTOOLBARA = ^tagNMTOOLBARA;
|
|
|
+ TNMTOOLBARA = tagNMTOOLBARA;
|
|
|
+ PNMTOOLBARA = ^tagNMTOOLBARA;
|
|
|
+
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+ tagNMTOOLBARW = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ iItem : cint;
|
|
|
+ tbButton : TBBUTTON;
|
|
|
+ cchText : cint;
|
|
|
+ pszText : LPWSTR;
|
|
|
+{$ifdef ie5plus}
|
|
|
+ rcButton : RECT;
|
|
|
+{$ENDIF}
|
|
|
+ END;
|
|
|
+ NMTOOLBARW = tagNMTOOLBARW;
|
|
|
+ LPNMTOOLBARW = ^tagNMTOOLBARW;
|
|
|
+ TNMTOOLBARW = tagNMTOOLBARW;
|
|
|
+ PNMTOOLBARW = ^tagNMTOOLBARW;
|
|
|
+
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ NMTOOLBAR = NMTOOLBARW;
|
|
|
+ LPNMTOOLBAR = LPNMTOOLBARW;
|
|
|
+{$ELSE}
|
|
|
+ NMTOOLBAR = NMTOOLBARA;
|
|
|
+ LPNMTOOLBAR = LPNMTOOLBARA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ENDIF} // NOTOOLBAR
|
|
|
+
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+//====== REBAR CONTROL ========================================================
|
|
|
+
|
|
|
+{$IFNDEF NOREBAR}
|
|
|
+
|
|
|
+{$IFDEF _WIN32}
|
|
|
+
|
|
|
+CONST
|
|
|
+ REBARCLASSNAMEW = {L}'ReBarWindow32';
|
|
|
+ REBARCLASSNAMEA = 'ReBarWindow32';
|
|
|
+
|
|
|
+TYPE
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ REBARCLASSNAME = REBARCLASSNAMEW;
|
|
|
+{$ELSE}
|
|
|
+ REBARCLASSNAME = REBARCLASSNAMEA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ELSE}
|
|
|
+
|
|
|
+CONST
|
|
|
+ REBARCLASSNAME = 'ReBarWindow';
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+ RBIM_IMAGELIST = $00000001;
|
|
|
+
|
|
|
+// begin_r_commctrl
|
|
|
+
|
|
|
+{$ifdef ie4plus}
|
|
|
+ RBS_TOOLTIPS = $0100;
|
|
|
+ RBS_VARHEIGHT = $0200;
|
|
|
+ RBS_BANDBORDERS = $0400;
|
|
|
+ RBS_FIXEDORDER = $0800;
|
|
|
+ RBS_REGISTERDROP = $1000;
|
|
|
+ RBS_AUTOSIZE = $2000;
|
|
|
+ RBS_VERTICALGRIPPER = $4000; // this always has the vertical gripper (default for horizontal mode)
|
|
|
+ RBS_DBLCLKTOGGLE = $8000;
|
|
|
+{$ELSE}
|
|
|
+ RBS_TOOLTIPS = $00000100;
|
|
|
+ RBS_VARHEIGHT = $00000200;
|
|
|
+ RBS_BANDBORDERS = $00000400;
|
|
|
+ RBS_FIXEDORDER = $00000800;
|
|
|
+{$ENDIF} // _WIN32_IE >= 0x0400
|
|
|
+
|
|
|
+
|
|
|
+// end_r_commctrl
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagREBARINFO = Record
|
|
|
+ cbSize : UINT;
|
|
|
+ fMask : UINT;
|
|
|
+{$IFNDEF NOIMAGEAPIS}
|
|
|
+ himl : HIMAGELIST;
|
|
|
+{$ELSE}
|
|
|
+ himl : HANDLE;
|
|
|
+{$ENDIF}
|
|
|
+ END;
|
|
|
+ REBARINFO = tagREBARINFO;
|
|
|
+ LPREBARINFO = ^tagREBARINFO;
|
|
|
+ TREBARINFO = tagREBARINFO;
|
|
|
+ PREBARINFO = ^tagREBARINFO;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ RBBS_BREAK = $00000001; // break to new line
|
|
|
+ RBBS_FIXEDSIZE = $00000002; // band can't be sized
|
|
|
+ RBBS_CHILDEDGE = $00000004; // edge around top & bottom of child window
|
|
|
+ RBBS_HIDDEN = $00000008; // don't show
|
|
|
+ RBBS_NOVERT = $00000010; // don't show when vertical
|
|
|
+ RBBS_FIXEDBMP = $00000020; // bitmap doesn't move during band resize
|
|
|
+{$ifdef ie4plus }
|
|
|
+ RBBS_VARIABLEHEIGHT = $00000040; // allow autosizing of this child vertically
|
|
|
+ RBBS_GRIPPERALWAYS = $00000080; // always show the gripper
|
|
|
+ RBBS_NOGRIPPER = $00000100; // never show the gripper
|
|
|
+{$ifdef ie5plus}
|
|
|
+ RBBS_USECHEVRON = $00000200; // display drop-down button for this band if it's sized smaller than ideal width
|
|
|
+{$ifdef IE501plus}
|
|
|
+ RBBS_HIDETITLE = $00000400; // keep band title hidden
|
|
|
+ RBBS_TOPALIGN = $00000800; // keep band title hidden
|
|
|
+{$ENDIF} // 0x0501 //
|
|
|
+{$ENDIF} // 0x0500 //
|
|
|
+{$ENDIF} // 0x0400 //
|
|
|
+
|
|
|
+ RBBIM_STYLE = $00000001;
|
|
|
+ RBBIM_COLORS = $00000002;
|
|
|
+ RBBIM_TEXT = $00000004;
|
|
|
+ RBBIM_IMAGE = $00000008;
|
|
|
+ RBBIM_CHILD = $00000010;
|
|
|
+ RBBIM_CHILDSIZE = $00000020;
|
|
|
+ RBBIM_SIZE = $00000040;
|
|
|
+ RBBIM_BACKGROUND = $00000080;
|
|
|
+ RBBIM_ID = $00000100;
|
|
|
+{$ifdef ie4plus}
|
|
|
+ RBBIM_IDEALSIZE = $00000200;
|
|
|
+ RBBIM_LPARAM = $00000400;
|
|
|
+ RBBIM_HEADERSIZE = $00000800; // control the size of the header
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagREBARBANDINFOA = Record
|
|
|
+ cbSize : UINT;
|
|
|
+ fMask : UINT;
|
|
|
+ fStyle : UINT;
|
|
|
+ clrFore : COLORREF;
|
|
|
+ clrBack : COLORREF;
|
|
|
+ lpText : LPSTR;
|
|
|
+ cch : UINT;
|
|
|
+ iImage : cint;
|
|
|
+ hwndChild : HWND;
|
|
|
+ cxMinChild : UINT;
|
|
|
+ cyMinChild : UINT;
|
|
|
+ cx : UINT;
|
|
|
+ hbmBack : HBITMAP;
|
|
|
+ wID : UINT;
|
|
|
+{$ifdef ie4plus}
|
|
|
+ cyChild : UINT;
|
|
|
+ cyMaxChild : UINT;
|
|
|
+ cyIntegral : UINT;
|
|
|
+ cxIdeal : UINT;
|
|
|
+ lParam : LPARAM;
|
|
|
+ cxHeader : UINT;
|
|
|
+{$ENDIF}
|
|
|
+ END;
|
|
|
+ REBARBANDINFOA = tagREBARBANDINFOA;
|
|
|
+ LPREBARBANDINFOA = ^tagREBARBANDINFOA;
|
|
|
+ TREBARBANDINFOA = tagREBARBANDINFOA;
|
|
|
+ PREBARBANDINFOA = ^tagREBARBANDINFOA;
|
|
|
+
|
|
|
+ LPCREBARBANDINFOA = ^REBARBANDINFOA;
|
|
|
+
|
|
|
+// #define REBARBANDINFOA_V3_SIZE CCSIZEOF_STRUCT(REBARBANDINFOA, wID)
|
|
|
+// #define REBARBANDINFOW_V3_SIZE CCSIZEOF_STRUCT(REBARBANDINFOW, wID)
|
|
|
+
|
|
|
+ tagREBARBANDINFOW = Record
|
|
|
+ cbSize : UINT;
|
|
|
+ fMask : UINT;
|
|
|
+ fStyle : UINT;
|
|
|
+ clrFore : COLORREF;
|
|
|
+ clrBack : COLORREF;
|
|
|
+ lpText : LPWSTR;
|
|
|
+ cch : UINT;
|
|
|
+ iImage : cint;
|
|
|
+ hwndChild : HWND;
|
|
|
+ cxMinChild : UINT;
|
|
|
+ cyMinChild : UINT;
|
|
|
+ cx : UINT;
|
|
|
+ hbmBack : HBITMAP;
|
|
|
+ wID : UINT;
|
|
|
+{$ifdef ie4plus}
|
|
|
+ cyChild : UINT;
|
|
|
+ cyMaxChild : UINT;
|
|
|
+ cyIntegral : UINT;
|
|
|
+ cxIdeal : UINT;
|
|
|
+ lParam : LPARAM;
|
|
|
+ cxHeader : UINT;
|
|
|
+{$ENDIF}
|
|
|
+ END;
|
|
|
+ REBARBANDINFOW = tagREBARBANDINFOW;
|
|
|
+ LPREBARBANDINFOW = ^tagREBARBANDINFOW;
|
|
|
+ TREBARBANDINFOW = tagREBARBANDINFOW;
|
|
|
+ PREBARBANDINFOW = ^tagREBARBANDINFOW;
|
|
|
+
|
|
|
+ LPCREBARBANDINFOW = {const} ^REBARBANDINFOW;
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ REBARBANDINFO = REBARBANDINFOW;
|
|
|
+ LPREBARBANDINFO = LPREBARBANDINFOW;
|
|
|
+ LPCREBARBANDINFO = LPCREBARBANDINFOW;
|
|
|
+
|
|
|
+// REBARBANDINFO_V3_SIZE = REBARBANDINFOW_V3_SIZE;
|
|
|
+{$ELSE}
|
|
|
+
|
|
|
+ REBARBANDINFO = REBARBANDINFOA;
|
|
|
+ LPREBARBANDINFO = LPREBARBANDINFOA;
|
|
|
+ LPCREBARBANDINFO = LPCREBARBANDINFOA;
|
|
|
+
|
|
|
+// REBARBANDINFO_V3_SIZE = REBARBANDINFOA_V3_SIZE;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+CONST
|
|
|
+ RB_INSERTBANDA = (WM_USER + 1);
|
|
|
+ RB_DELETEBAND = (WM_USER + 2);
|
|
|
+ RB_GETBARINFO = (WM_USER + 3);
|
|
|
+ RB_SETBARINFO = (WM_USER + 4);
|
|
|
+{$ifdef IE4plus}
|
|
|
+ RB_GETBANDINFO = (WM_USER + 5);
|
|
|
+{$ENDIF}
|
|
|
+ RB_SETBANDINFOA = (WM_USER + 6);
|
|
|
+ RB_SETPARENT = (WM_USER + 7);
|
|
|
+{$ifdef ie4plus}
|
|
|
+ RB_HITTEST = (WM_USER + 8);
|
|
|
+ RB_GETRECT = (WM_USER + 9);
|
|
|
+{$ENDIF}
|
|
|
+ RB_INSERTBANDW = (WM_USER + 10);
|
|
|
+ RB_SETBANDINFOW = (WM_USER + 11);
|
|
|
+ RB_GETBANDCOUNT = (WM_USER + 12);
|
|
|
+ RB_GETROWCOUNT = (WM_USER + 13);
|
|
|
+ RB_GETROWHEIGHT = (WM_USER + 14);
|
|
|
+{$ifdef ie4plus}
|
|
|
+ RB_IDTOINDEX = (WM_USER + 16); // wParam == id
|
|
|
+ RB_GETTOOLTIPS = (WM_USER + 17);
|
|
|
+ RB_SETTOOLTIPS = (WM_USER + 18);
|
|
|
+ RB_SETBKCOLOR = (WM_USER + 19); // sets the default BK color
|
|
|
+ RB_GETBKCOLOR = (WM_USER + 20); // defaults to CLR_NONE
|
|
|
+ RB_SETTEXTCOLOR = (WM_USER + 21);
|
|
|
+ RB_GETTEXTCOLOR = (WM_USER + 22); // defaults to 0x00000000
|
|
|
+
|
|
|
+{$ifdef Win32XP}
|
|
|
+ RBSTR_CHANGERECT = $0001; // flags for RB_SIZETORECT
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+ RB_SIZETORECT = (WM_USER + 23); // resize the rebar/break bands and such to this rect (lparam)
|
|
|
+{$ENDIF} // _WIN32_IE >= 0x0400
|
|
|
+
|
|
|
+ RB_SETCOLORSCHEME = CCM_SETCOLORSCHEME; // lParam is color scheme
|
|
|
+ RB_GETCOLORSCHEME = CCM_GETCOLORSCHEME; // fills in COLORSCHEME pointed to by lParam
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ RB_INSERTBAND = RB_INSERTBANDW;
|
|
|
+ RB_SETBANDINFO = RB_SETBANDINFOW;
|
|
|
+{$ELSE}
|
|
|
+ RB_INSERTBAND = RB_INSERTBANDA;
|
|
|
+ RB_SETBANDINFO = RB_SETBANDINFOA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ifdef ie4plus}
|
|
|
+// for manual drag control
|
|
|
+// lparam == cursor pos
|
|
|
+ // -1 means do it yourself.
|
|
|
+ // -2 means use what you had saved before
|
|
|
+
|
|
|
+CONST
|
|
|
+ RB_BEGINDRAG = (WM_USER + 24);
|
|
|
+ RB_ENDDRAG = (WM_USER + 25);
|
|
|
+ RB_DRAGMOVE = (WM_USER + 26);
|
|
|
+ RB_GETBARHEIGHT = (WM_USER + 27);
|
|
|
+ RB_GETBANDINFOW = (WM_USER + 28);
|
|
|
+ RB_GETBANDINFOA = (WM_USER + 29);
|
|
|
+
|
|
|
+//TYPE
|
|
|
+{$IFDEF UNICODE}
|
|
|
+// RB_GETBANDINFO = RB_GETBANDINFOW;
|
|
|
+{$ELSE}
|
|
|
+// RB_GETBANDINFO = RB_GETBANDINFOA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+CONST
|
|
|
+ RB_MINIMIZEBAND = (WM_USER + 30);
|
|
|
+ RB_MAXIMIZEBAND = (WM_USER + 31);
|
|
|
+
|
|
|
+ RB_GETDROPTARGET = (CCM_GETDROPTARGET);
|
|
|
+
|
|
|
+ RB_GETBANDBORDERS = (WM_USER + 34); // returns in lparam = lprc the amount of edges added to band wparam
|
|
|
+
|
|
|
+ RB_SHOWBAND = (WM_USER + 35); // show/hide band
|
|
|
+ RB_SETPALETTE = (WM_USER + 37);
|
|
|
+ RB_GETPALETTE = (WM_USER + 38);
|
|
|
+ RB_MOVEBAND = (WM_USER + 39);
|
|
|
+
|
|
|
+ RB_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
|
|
|
+ RB_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
|
|
|
+
|
|
|
+{$ENDIF} // _WIN32_IE >= 0x0400
|
|
|
+
|
|
|
+{$ifdef win32xp}
|
|
|
+ RB_GETBANDMARGINS = (WM_USER + 40);
|
|
|
+ RB_SETWINDOWTHEME = CCM_SETWINDOWTHEME;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ifdef ie5plus}
|
|
|
+ RB_PUSHCHEVRON = (WM_USER + 43);
|
|
|
+{$ENDIF} // _WIN32_IE >= 0x0500
|
|
|
+
|
|
|
+ RBN_HEIGHTCHANGE = (RBN_FIRST - 0);
|
|
|
+
|
|
|
+{$ifdef ie4plus}
|
|
|
+ RBN_GETOBJECT = (RBN_FIRST - 1);
|
|
|
+ RBN_LAYOUTCHANGED = (RBN_FIRST - 2);
|
|
|
+ RBN_AUTOSIZE = (RBN_FIRST - 3);
|
|
|
+ RBN_BEGINDRAG = (RBN_FIRST - 4);
|
|
|
+ RBN_ENDDRAG = (RBN_FIRST - 5);
|
|
|
+ RBN_DELETINGBAND = (RBN_FIRST - 6); // Uses NMREBAR
|
|
|
+ RBN_DELETEDBAND = (RBN_FIRST - 7); // Uses NMREBAR
|
|
|
+ RBN_CHILDSIZE = (RBN_FIRST - 8);
|
|
|
+
|
|
|
+{$ifdef ie5plus}
|
|
|
+ RBN_CHEVRONPUSHED = (RBN_FIRST - 10);
|
|
|
+{$ENDIF} // _WIN32_IE >= 0x0500
|
|
|
+
|
|
|
+
|
|
|
+{$ifdef ie5plus}
|
|
|
+ RBN_MINMAX = (RBN_FIRST - 21);
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ifdef Win32XP}
|
|
|
+ RBN_AUTOBREAK = (RBN_FIRST - 22);
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagNMREBARCHILDSIZE = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ uBand : UINT;
|
|
|
+ wID : UINT;
|
|
|
+ rcChild : RECT;
|
|
|
+ rcBand : RECT;
|
|
|
+ END;
|
|
|
+ NMREBARCHILDSIZE = tagNMREBARCHILDSIZE;
|
|
|
+ LPNMREBARCHILDSIZE = ^tagNMREBARCHILDSIZE;
|
|
|
+ TNMREBARCHILDSIZE = tagNMREBARCHILDSIZE;
|
|
|
+ PNMREBARCHILDSIZE = ^tagNMREBARCHILDSIZE;
|
|
|
+
|
|
|
+
|
|
|
+ tagNMREBAR = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ dwMask : DWORD; // RBNM_*
|
|
|
+ uBand : UINT;
|
|
|
+ fStyle : UINT;
|
|
|
+ wID : UINT;
|
|
|
+ lParam : LPARAM;
|
|
|
+ END;
|
|
|
+ NMREBAR = tagNMREBAR;
|
|
|
+ LPNMREBAR = ^tagNMREBAR;
|
|
|
+ TNMREBAR = tagNMREBAR;
|
|
|
+ PNMREBAR = ^tagNMREBAR;
|
|
|
+
|
|
|
+// Mask flags for NMREBAR
|
|
|
+
|
|
|
+CONST
|
|
|
+ RBNM_ID = $00000001;
|
|
|
+ RBNM_STYLE = $00000002;
|
|
|
+ RBNM_LPARAM = $00000004;
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagNMRBAUTOSIZE = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ fChanged : BOOL;
|
|
|
+ rcTarget : RECT;
|
|
|
+ rcActual : RECT;
|
|
|
+ END;
|
|
|
+ NMRBAUTOSIZE = tagNMRBAUTOSIZE;
|
|
|
+ LPNMRBAUTOSIZE = ^tagNMRBAUTOSIZE;
|
|
|
+ TNMRBAUTOSIZE = tagNMRBAUTOSIZE;
|
|
|
+ PNMRBAUTOSIZE = ^tagNMRBAUTOSIZE;
|
|
|
+
|
|
|
+
|
|
|
+{$ifdef ie5plus}
|
|
|
+ tagNMREBARCHEVRON = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ uBand : UINT;
|
|
|
+ wID : UINT;
|
|
|
+ lParam : LPARAM;
|
|
|
+ rc : RECT;
|
|
|
+ lParamNM : LPARAM;
|
|
|
+ END;
|
|
|
+ NMREBARCHEVRON = tagNMREBARCHEVRON;
|
|
|
+ LPNMREBARCHEVRON = ^tagNMREBARCHEVRON;
|
|
|
+ TNMREBARCHEVRON = tagNMREBARCHEVRON;
|
|
|
+ PNMREBARCHEVRON = ^tagNMREBARCHEVRON;
|
|
|
+
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ifdef Win32XP}
|
|
|
+CONST
|
|
|
+ RBAB_AUTOSIZE = $0001; // These are not flags and are all mutually exclusive
|
|
|
+ RBAB_ADDBAND = $0002;
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagNMREBARAUTOBREAK = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ uBand : UINT;
|
|
|
+ wID : UINT;
|
|
|
+ lParam : LPARAM;
|
|
|
+ uMsg : UINT;
|
|
|
+ fStyleCurrent : UINT;
|
|
|
+ fAutoBreak : BOOL;
|
|
|
+ END;
|
|
|
+ NMREBARAUTOBREAK = tagNMREBARAUTOBREAK;
|
|
|
+ LPNMREBARAUTOBREAK = ^tagNMREBARAUTOBREAK;
|
|
|
+ TNMREBARAUTOBREAK = tagNMREBARAUTOBREAK;
|
|
|
+ PNMREBARAUTOBREAK = ^tagNMREBARAUTOBREAK;
|
|
|
+
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+CONST
|
|
|
+ RBHT_NOWHERE = $0001;
|
|
|
+ RBHT_CAPTION = $0002;
|
|
|
+ RBHT_CLIENT = $0003;
|
|
|
+ RBHT_GRABBER = $0004;
|
|
|
+{$ifdef ie5plus}
|
|
|
+ RBHT_CHEVRON = $0008;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+TYPE
|
|
|
+ _RB_HITTESTINFO = Record
|
|
|
+ pt : POINT;
|
|
|
+ flags : UINT;
|
|
|
+ iBand : cint;
|
|
|
+ END;
|
|
|
+ RBHITTESTINFO = _RB_HITTESTINFO;
|
|
|
+ LPRBHITTESTINFO = ^_RB_HITTESTINFO;
|
|
|
+ TRB_HITTESTINFO = _RB_HITTESTINFO;
|
|
|
+ PRB_HITTESTINFO = ^_RB_HITTESTINFO;
|
|
|
+
|
|
|
+
|
|
|
+{$ENDIF} // _WIN32_IE >= 0x0400
|
|
|
+{$ENDIF} // NOREBAR
|
|
|
+{$ENDIF} // _WIN32_IE >= 0x0300
|
|
|
+
|
|
|
+//====== TOOLTIPS CONTROL =====================================================
|
|
|
+
|
|
|
+{$IFNDEF NOTOOLTIPS}
|
|
|
+
|
|
|
+{$IFDEF _WIN32}
|
|
|
+
|
|
|
+CONST
|
|
|
+ TOOLTIPS_CLASSW = {L}'tooltips_class32';
|
|
|
+ TOOLTIPS_CLASSA = 'tooltips_class32';
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ TOOLTIPS_CLASS = TOOLTIPS_CLASSW;
|
|
|
+{$ELSE}
|
|
|
+ TOOLTIPS_CLASS = TOOLTIPS_CLASSA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ELSE}
|
|
|
+
|
|
|
+CONST
|
|
|
+ TOOLTIPS_CLASS = 'tooltips_class';
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagTOOLINFOA = Record
|
|
|
+ cbSize : UINT;
|
|
|
+ uFlags : UINT;
|
|
|
+ hwnd : HWND;
|
|
|
+ uId : UINT_PTR;
|
|
|
+ rect : RECT;
|
|
|
+ hinst : HINST;
|
|
|
+ lpszText : LPSTR;
|
|
|
+{$ifdef ie3plus}
|
|
|
+ lParam : LPARAM;
|
|
|
+{$ENDIF}
|
|
|
+{$ifdef Win32XP}
|
|
|
+ lpReserved : Pointer;
|
|
|
+{$ENDIF}
|
|
|
+ END;
|
|
|
+ TTTOOLINFOA = tagTOOLINFOA;
|
|
|
+ PTOOLINFOA = {near} ^tagTOOLINFOA;
|
|
|
+ LPTTTOOLINFOA = ^tagTOOLINFOA;
|
|
|
+ TTOOLINFOA = tagTOOLINFOA;
|
|
|
+ LPTOOLINFOA = ^tagTOOLINFOA;
|
|
|
+
|
|
|
+
|
|
|
+ tagTOOLINFOW = Record
|
|
|
+ cbSize : UINT;
|
|
|
+ uFlags : UINT;
|
|
|
+ hwnd : HWND;
|
|
|
+ uId : UINT_PTR;
|
|
|
+ rect : RECT;
|
|
|
+ hinst : HINST;
|
|
|
+ lpszText : LPWSTR;
|
|
|
+{$ifdef ie3plus}
|
|
|
+ lParam : LPARAM;
|
|
|
+{$ENDIF}
|
|
|
+{$ifdef Win32XP}
|
|
|
+ lpReserved : Pointer;
|
|
|
+{$ENDIF}
|
|
|
+ END;
|
|
|
+ TTTOOLINFOW = tagTOOLINFOW;
|
|
|
+ PTOOLINFOW = {near} ^tagTOOLINFOW;
|
|
|
+ LPTTTOOLINFOW = ^tagTOOLINFOW;
|
|
|
+ TTOOLINFOW = tagTOOLINFOW;
|
|
|
+ LPTOOLINFOW = ^tagTOOLINFOW;
|
|
|
+
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ TTTOOLINFO = TTTOOLINFOW;
|
|
|
+ PTOOLINFO = PTOOLINFOW;
|
|
|
+ LPTTTOOLINFO = LPTTTOOLINFOW;
|
|
|
+// TTTOOLINFO_V1_SIZE = TTTOOLINFOW_V1_SIZE;
|
|
|
+{$ELSE}
|
|
|
+ PTOOLINFO = PTOOLINFOA;
|
|
|
+ TTTOOLINFO = TTTOOLINFOA;
|
|
|
+ LPTTTOOLINFO = LPTTTOOLINFOA;
|
|
|
+// TTTOOLINFO_V1_SIZE = TTTOOLINFOA_V1_SIZE;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+// LPTOOLINFOA = LPTTTOOLINFOA;
|
|
|
+// LPTOOLINFOW = LPTTTOOLINFOW;
|
|
|
+ TOOLINFOA = TTTOOLINFOA;
|
|
|
+ TOOLINFOW = TTTOOLINFOW;
|
|
|
+{$ELSE}
|
|
|
+// TTTOOLINFOA = TOOLINFOA;
|
|
|
+// LPTTTOOLINFOA = LPTOOLINFOA;
|
|
|
+// TTTOOLINFOW = TOOLINFOW;
|
|
|
+// LPTTTOOLINFOW = LPTOOLINFOW;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ LPTOOLINFO = LPTTTOOLINFO;
|
|
|
+
|
|
|
+ TOOLINFO = TTTOOLINFO;
|
|
|
+
|
|
|
+// #define TTTOOLINFOA_V1_SIZE CCSIZEOF_STRUCT(TTTOOLINFOA, lpszText)
|
|
|
+// #define TTTOOLINFOW_V1_SIZE CCSIZEOF_STRUCT(TTTOOLINFOW, lpszText)
|
|
|
+// #define TTTOOLINFOA_V2_SIZE CCSIZEOF_STRUCT(TTTOOLINFOA, lParam)
|
|
|
+// #define TTTOOLINFOW_V2_SIZE CCSIZEOF_STRUCT(TTTOOLINFOW, lParam)
|
|
|
+// #define TTTOOLINFOA_V3_SIZE CCSIZEOF_STRUCT(TTTOOLINFOA, lpReserved)
|
|
|
+// #define TTTOOLINFOW_V3_SIZE CCSIZEOF_STRUCT(TTTOOLINFOW, lpReserved)
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+// begin_r_commctrl
|
|
|
+
|
|
|
+ TTS_ALWAYSTIP = $01;
|
|
|
+ TTS_NOPREFIX = $02;
|
|
|
+{$ifdef ie5plus}
|
|
|
+ TTS_NOANIMATE = $10;
|
|
|
+ TTS_NOFADE = $20;
|
|
|
+ TTS_BALLOON = $40;
|
|
|
+ TTS_CLOSE = $80;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// end_r_commctrl
|
|
|
+
|
|
|
+ TTF_IDISHWND = $0001;
|
|
|
+
|
|
|
+// Use this to center around trackpoint in trackmode
|
|
|
+// -OR- to center around tool in normal mode.
|
|
|
+// Use TTF_ABSOLUTE to place the tip exactly at the track coords when
|
|
|
+// in tracking mode. TTF_ABSOLUTE can be used in conjunction with TTF_CENTERTIP
|
|
|
+// to center the tip absolutely about the track point.
|
|
|
+
|
|
|
+ TTF_CENTERTIP = $0002;
|
|
|
+ TTF_RTLREADING = $0004;
|
|
|
+ TTF_SUBCLASS = $0010;
|
|
|
+{$ifdef ie3plus}
|
|
|
+ TTF_TRACK = $0020;
|
|
|
+ TTF_ABSOLUTE = $0080;
|
|
|
+ TTF_TRANSPARENT = $0100;
|
|
|
+{$ifdef ie501plus}
|
|
|
+ TTF_PARSELINKS = $1000;
|
|
|
+{$ENDIF} // _WIN32_IE >= 0x0501
|
|
|
+ TTF_DI_SETITEM = $8000; // valid only on the TTN_NEEDTEXT callback
|
|
|
+{$ENDIF} // _WIN32_IE >= 0x0300
|
|
|
+
|
|
|
+
|
|
|
+ TTDT_AUTOMATIC = 0;
|
|
|
+ TTDT_RESHOW = 1;
|
|
|
+ TTDT_AUTOPOP = 2;
|
|
|
+ TTDT_INITIAL = 3;
|
|
|
+
|
|
|
+// ToolTip Icons (Set with TTM_SETTITLE)
|
|
|
+ TTI_NONE = 0;
|
|
|
+ TTI_INFO = 1;
|
|
|
+ TTI_WARNING = 2;
|
|
|
+ TTI_ERROR = 3;
|
|
|
+
|
|
|
+// Tool Tip Messages
|
|
|
+ TTM_ACTIVATE = (WM_USER + 1);
|
|
|
+ TTM_SETDELAYTIME = (WM_USER + 3);
|
|
|
+ TTM_ADDTOOLA = (WM_USER + 4);
|
|
|
+ TTM_ADDTOOLW = (WM_USER + 50);
|
|
|
+ TTM_DELTOOLA = (WM_USER + 5);
|
|
|
+ TTM_DELTOOLW = (WM_USER + 51);
|
|
|
+ TTM_NEWTOOLRECTA = (WM_USER + 6);
|
|
|
+ TTM_NEWTOOLRECTW = (WM_USER + 52);
|
|
|
+ TTM_RELAYEVENT = (WM_USER + 7);
|
|
|
+
|
|
|
+ TTM_GETTOOLINFOA = (WM_USER + 8);
|
|
|
+ TTM_GETTOOLINFOW = (WM_USER + 53);
|
|
|
+
|
|
|
+ TTM_SETTOOLINFOA = (WM_USER + 9);
|
|
|
+ TTM_SETTOOLINFOW = (WM_USER + 54);
|
|
|
+
|
|
|
+ TTM_HITTESTA = (WM_USER + 10);
|
|
|
+ TTM_HITTESTW = (WM_USER + 55);
|
|
|
+ TTM_GETTEXTA = (WM_USER + 11);
|
|
|
+ TTM_GETTEXTW = (WM_USER + 56);
|
|
|
+ TTM_UPDATETIPTEXTA = (WM_USER + 12);
|
|
|
+ TTM_UPDATETIPTEXTW = (WM_USER + 57);
|
|
|
+ TTM_GETTOOLCOUNT = (WM_USER + 13);
|
|
|
+ TTM_ENUMTOOLSA = (WM_USER + 14);
|
|
|
+ TTM_ENUMTOOLSW = (WM_USER + 58);
|
|
|
+ TTM_GETCURRENTTOOLA = (WM_USER + 15);
|
|
|
+ TTM_GETCURRENTTOOLW = (WM_USER + 59);
|
|
|
+ TTM_WINDOWFROMPOINT = (WM_USER + 16);
|
|
|
+{$ifdef ie3plus}
|
|
|
+ TTM_TRACKACTIVATE = (WM_USER + 17); // wParam = TRUE/FALSE start end lparam = LPTOOLINFO
|
|
|
+ TTM_TRACKPOSITION = (WM_USER + 18); // lParam = dwPos
|
|
|
+ TTM_SETTIPBKCOLOR = (WM_USER + 19);
|
|
|
+ TTM_SETTIPTEXTCOLOR = (WM_USER + 20);
|
|
|
+ TTM_GETDELAYTIME = (WM_USER + 21);
|
|
|
+ TTM_GETTIPBKCOLOR = (WM_USER + 22);
|
|
|
+ TTM_GETTIPTEXTCOLOR = (WM_USER + 23);
|
|
|
+ TTM_SETMAXTIPWIDTH = (WM_USER + 24);
|
|
|
+ TTM_GETMAXTIPWIDTH = (WM_USER + 25);
|
|
|
+ TTM_SETMARGIN = (WM_USER + 26); // lParam = lprc
|
|
|
+ TTM_GETMARGIN = (WM_USER + 27); // lParam = lprc
|
|
|
+ TTM_POP = (WM_USER + 28);
|
|
|
+{$ENDIF}
|
|
|
+{$ifdef ie4plus}
|
|
|
+ TTM_UPDATE = (WM_USER + 29);
|
|
|
+{$ENDIF}
|
|
|
+{$ifdef ie5plus}
|
|
|
+ TTM_GETBUBBLESIZE = (WM_USER + 30);
|
|
|
+ TTM_ADJUSTRECT = (WM_USER + 31);
|
|
|
+ TTM_SETTITLEA = (WM_USER + 32); // wParam = TTI_*, lParam = char* szTitle
|
|
|
+ TTM_SETTITLEW = (WM_USER + 33); // wParam = TTI_*, lParam = wchar* szTitle
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ifdef Win32XP}
|
|
|
+ TTM_POPUP = (WM_USER + 34);
|
|
|
+ TTM_GETTITLE = (WM_USER + 35); // wParam = 0, lParam = TTGETTITLE*
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ _TTGETTITLE = Record
|
|
|
+ dwSize : DWORD;
|
|
|
+ uTitleBitmap : UINT;
|
|
|
+ cch : UINT;
|
|
|
+ pszTitle : PWCHAR;
|
|
|
+ END;
|
|
|
+ TTGETTITLE = _TTGETTITLE;
|
|
|
+ PTTGETTITLE = ^_TTGETTITLE;
|
|
|
+ TTTGETTITLE = _TTGETTITLE;
|
|
|
+ PTTTGETTITLE = ^TTTGETTITLE;
|
|
|
+
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+const
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ TTM_ADDTOOL = TTM_ADDTOOLW;
|
|
|
+ TTM_DELTOOL = TTM_DELTOOLW;
|
|
|
+ TTM_NEWTOOLRECT = TTM_NEWTOOLRECTW;
|
|
|
+ TTM_GETTOOLINFO = TTM_GETTOOLINFOW;
|
|
|
+ TTM_SETTOOLINFO = TTM_SETTOOLINFOW;
|
|
|
+ TTM_HITTEST = TTM_HITTESTW;
|
|
|
+ TTM_GETTEXT = TTM_GETTEXTW;
|
|
|
+ TTM_UPDATETIPTEXT = TTM_UPDATETIPTEXTW;
|
|
|
+ TTM_ENUMTOOLS = TTM_ENUMTOOLSW;
|
|
|
+ TTM_GETCURRENTTOOL = TTM_GETCURRENTTOOLW;
|
|
|
+{$ifdef ie5plus}
|
|
|
+ TTM_SETTITLE = TTM_SETTITLEW;
|
|
|
+{$ENDIF}
|
|
|
+{$ELSE}
|
|
|
+ TTM_ADDTOOL = TTM_ADDTOOLA;
|
|
|
+ TTM_DELTOOL = TTM_DELTOOLA;
|
|
|
+ TTM_NEWTOOLRECT = TTM_NEWTOOLRECTA;
|
|
|
+ TTM_GETTOOLINFO = TTM_GETTOOLINFOA;
|
|
|
+ TTM_SETTOOLINFO = TTM_SETTOOLINFOA;
|
|
|
+ TTM_HITTEST = TTM_HITTESTA;
|
|
|
+ TTM_GETTEXT = TTM_GETTEXTA;
|
|
|
+ TTM_UPDATETIPTEXT = TTM_UPDATETIPTEXTA;
|
|
|
+ TTM_ENUMTOOLS = TTM_ENUMTOOLSA;
|
|
|
+ TTM_GETCURRENTTOOL = TTM_GETCURRENTTOOLA;
|
|
|
+{$ifdef ie5plus}
|
|
|
+ TTM_SETTITLE = TTM_SETTITLEA;
|
|
|
+{$ENDIF}
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ifdef win32xp}
|
|
|
+CONST
|
|
|
+ TTM_SETWINDOWTHEME = CCM_SETWINDOWTHEME;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+
|
|
|
+ _TT_HITTESTINFOA = Record
|
|
|
+ hwnd : HWND;
|
|
|
+ pt : POINT;
|
|
|
+ ti : TTTOOLINFOA;
|
|
|
+ END;
|
|
|
+ TTHITTESTINFOA = _TT_HITTESTINFOA;
|
|
|
+ LPTTHITTESTINFOA = ^_TT_HITTESTINFOA;
|
|
|
+ TTT_HITTESTINFOA = _TT_HITTESTINFOA;
|
|
|
+ PTT_HITTESTINFOA = ^_TT_HITTESTINFOA;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ _TT_HITTESTINFOW = Record
|
|
|
+ hwnd : HWND;
|
|
|
+ pt : POINT;
|
|
|
+ ti : TTTOOLINFOW;
|
|
|
+ END;
|
|
|
+ TTHITTESTINFOW = _TT_HITTESTINFOW;
|
|
|
+ LPTTHITTESTINFOW = ^_TT_HITTESTINFOW;
|
|
|
+ TTT_HITTESTINFOW = _TT_HITTESTINFOW;
|
|
|
+ PTT_HITTESTINFOW = ^_TT_HITTESTINFOW;
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ TTHITTESTINFO = TTHITTESTINFOW;
|
|
|
+ LPTTHITTESTINFO = LPTTHITTESTINFOW;
|
|
|
+{$ELSE}
|
|
|
+ TTHITTESTINFO = TTHITTESTINFOA;
|
|
|
+ LPTTHITTESTINFO = LPTTHITTESTINFOA;
|
|
|
+{$ENDIF}
|
|
|
+ LPHITTESTINFO = LPTTHITTESTINFO;
|
|
|
+{$ifdef ie3plus}
|
|
|
+ LPHITTESTINFOW = LPTTHITTESTINFOW;
|
|
|
+ LPHITTESTINFOA = LPTTHITTESTINFOA;
|
|
|
+{$ELSE}
|
|
|
+// LPTTHITTESTINFOA = LPHITTESTINFOA;
|
|
|
+// LPTTHITTESTINFOW = LPHITTESTINFOW;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+CONST
|
|
|
+ TTN_GETDISPINFOA = (TTN_FIRST - 0);
|
|
|
+ TTN_GETDISPINFOW = (TTN_FIRST - 10);
|
|
|
+ TTN_SHOW = (TTN_FIRST - 1);
|
|
|
+ TTN_POP = (TTN_FIRST - 2);
|
|
|
+ TTN_LINKCLICK = (TTN_FIRST - 3);
|
|
|
+
|
|
|
+CONST
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ TTN_GETDISPINFO = TTN_GETDISPINFOW;
|
|
|
+{$ELSE}
|
|
|
+ TTN_GETDISPINFO = TTN_GETDISPINFOA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+CONST
|
|
|
+ TTN_NEEDTEXT = TTN_GETDISPINFO;
|
|
|
+
|
|
|
+
|
|
|
+ TTN_NEEDTEXTA = TTN_GETDISPINFOA;
|
|
|
+ TTN_NEEDTEXTW = TTN_GETDISPINFOW;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+
|
|
|
+// #define NMTTDISPINFOA_V1_SIZE CCSIZEOF_STRUCT(NMTTDISPINFOA, uFlags)
|
|
|
+// #define NMTTDISPINFOW_V1_SIZE CCSIZEOF_STRUCT(NMTTDISPINFOW, uFlags)
|
|
|
+
|
|
|
+ tagNMTTDISPINFOA = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ lpszText : LPSTR;
|
|
|
+ szText : Array[0..79] of char;
|
|
|
+ hinst : HINST;
|
|
|
+ uFlags : UINT;
|
|
|
+{$ifdef ie3plus}
|
|
|
+ lParam : LPARAM;
|
|
|
+{$ENDIF}
|
|
|
+ END;
|
|
|
+ NMTTDISPINFOA = tagNMTTDISPINFOA;
|
|
|
+ LPNMTTDISPINFOA = ^tagNMTTDISPINFOA;
|
|
|
+ TNMTTDISPINFOA = tagNMTTDISPINFOA;
|
|
|
+ PNMTTDISPINFOA = ^tagNMTTDISPINFOA;
|
|
|
+
|
|
|
+
|
|
|
+ tagNMTTDISPINFOW = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ lpszText : LPWSTR;
|
|
|
+ szText : Array[0..79] of WCHAR;
|
|
|
+ hinst : HINST;
|
|
|
+ uFlags : UINT;
|
|
|
+{$ifdef ie3plus}
|
|
|
+ lParam : LPARAM;
|
|
|
+{$ENDIF}
|
|
|
+ END;
|
|
|
+ NMTTDISPINFOW = tagNMTTDISPINFOW;
|
|
|
+ LPNMTTDISPINFOW = ^tagNMTTDISPINFOW;
|
|
|
+ TNMTTDISPINFOW = tagNMTTDISPINFOW;
|
|
|
+ PNMTTDISPINFOW = ^tagNMTTDISPINFOW;
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+ TOOLTIPTEXTW = NMTTDISPINFOW;
|
|
|
+ TOOLTIPTEXTA = NMTTDISPINFOA;
|
|
|
+ LPTOOLTIPTEXTA = LPNMTTDISPINFOA;
|
|
|
+ LPTOOLTIPTEXTW = LPNMTTDISPINFOW;
|
|
|
+{$ELSE}
|
|
|
+// tagNMTTDISPINFOA = tagTOOLTIPTEXTA;
|
|
|
+ NMTTDISPINFOA = TOOLTIPTEXTA;
|
|
|
+// LPNMTTDISPINFOA = LPTOOLTIPTEXTA;
|
|
|
+ tagNMTTDISPINFOW = tagTOOLTIPTEXTW;
|
|
|
+ NMTTDISPINFOW = TOOLTIPTEXTW;
|
|
|
+ LPNMTTDISPINFOW = LPTOOLTIPTEXTW;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ NMTTDISPINFO = NMTTDISPINFOW;
|
|
|
+ LPNMTTDISPINFO = LPNMTTDISPINFOW;
|
|
|
+// NMTTDISPINFO_V1_SIZE = NMTTDISPINFOW_V1_SIZE;
|
|
|
+{$ELSE}
|
|
|
+ NMTTDISPINFO = NMTTDISPINFOA;
|
|
|
+ LPNMTTDISPINFO = LPNMTTDISPINFOA;
|
|
|
+// NMTTDISPINFO_V1_SIZE = NMTTDISPINFOA_V1_SIZE;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+ TOOLTIPTEXT = NMTTDISPINFO;
|
|
|
+ LPTOOLTIPTEXT = LPNMTTDISPINFO;
|
|
|
+
|
|
|
+{$ENDIF} // NOTOOLTIPS
|
|
|
+
|
|
|
+
|
|
|
+//====== STATUS BAR CONTROL ===================================================
|
|
|
+
|
|
|
+{$IFNDEF NOSTATUSBAR}
|
|
|
+
|
|
|
+// begin_r_commctrl
|
|
|
+CONST
|
|
|
+ SBARS_SIZEGRIP = $0100;
|
|
|
+{$ifdef ie5plus}
|
|
|
+ SBARS_TOOLTIPS = $0800;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ifdef ie4plus}
|
|
|
+// this is a status bar flag, preference to SBARS_TOOLTIPS
|
|
|
+ SBT_TOOLTIPS = $0800;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// end_r_commctrl
|
|
|
+
|
|
|
+procedure DrawStatusTextA(hDC:HDC;lprc:LPRECT;pszText:LPCSTR;uFlags:UINT); external commctrldll name 'DrawStatusTextA';
|
|
|
+Procedure DrawStatusTextW(hDC:HDC;lprc:LPRECT;pszText:LPCWSTR;uFlags:UINT); external commctrldll name 'DrawStatusTextW';
|
|
|
+
|
|
|
+function CreateStatusWindowA(style:LONG;lpszText:LPCSTR;hwndParent:HWND;wID:UINT):HWND; external commctrldll name 'CreateStatusWindowA';
|
|
|
+function CreateStatusWindowW(style:LONG;lpszText:LPCWSTR;hwndParent:HWND;wID:UINT):HWND; external commctrldll name 'CreateStatusWindowW';
|
|
|
+
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+function CreateStatusWindow(style:LONG;lpszText:LPCSTR;hwndParent:HWND;wID:UINT):HWND; external commctrldll name 'CreateStatusWindowA';
|
|
|
+procedure DrawStatusText(hDC:HDC;lprc:LPRECT;pszText:LPCSTR;uFlags:UINT); external commctrldll name 'DrawStatusTextA';
|
|
|
+{$ELSE}
|
|
|
+function CreateStatusWindow(style:LONG;lpszText:LPCWSTR;hwndParent:HWND;wID:UINT):HWND; external commctrldll name 'CreateStatusWindowW';
|
|
|
+Procedure DrawStatusText(hDC:HDC;lprc:LPRECT;pszText:LPCWSTR;uFlags:UINT); external commctrldll name 'DrawStatusTextW';
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+CONST
|
|
|
+{$IFDEF _WIN32}
|
|
|
+ STATUSCLASSNAMEW = {L}'msctls_statusbar32';
|
|
|
+ STATUSCLASSNAMEA = 'msctls_statusbar32';
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ STATUSCLASSNAME = STATUSCLASSNAMEW;
|
|
|
+{$ELSE}
|
|
|
+ STATUSCLASSNAME = STATUSCLASSNAMEA;
|
|
|
+{$ENDIF}
|
|
|
+{$ELSE}
|
|
|
+ STATUSCLASSNAME = 'msctls_statusbar';
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+ SB_SETTEXTA = (WM_USER+1);
|
|
|
+ SB_SETTEXTW = (WM_USER+11);
|
|
|
+ SB_GETTEXTA = (WM_USER+2);
|
|
|
+ SB_GETTEXTW = (WM_USER+13);
|
|
|
+ SB_GETTEXTLENGTHA = (WM_USER+3);
|
|
|
+ SB_GETTEXTLENGTHW = (WM_USER+12);
|
|
|
+
|
|
|
+
|
|
|
+ SB_SETPARTS = (WM_USER+4);
|
|
|
+ SB_GETPARTS = (WM_USER+6);
|
|
|
+ SB_GETBORDERS = (WM_USER+7);
|
|
|
+ SB_SETMINHEIGHT = (WM_USER+8);
|
|
|
+ SB_SIMPLE = (WM_USER+9);
|
|
|
+ SB_GETRECT = (WM_USER+10);
|
|
|
+{$ifdef ie3plus}
|
|
|
+ SB_ISSIMPLE = (WM_USER+14);
|
|
|
+{$ENDIF}
|
|
|
+{$ifdef ie4plus}
|
|
|
+ SB_SETICON = (WM_USER+15);
|
|
|
+ SB_SETTIPTEXTA = (WM_USER+16);
|
|
|
+ SB_SETTIPTEXTW = (WM_USER+17);
|
|
|
+ SB_GETTIPTEXTA = (WM_USER+18);
|
|
|
+ SB_GETTIPTEXTW = (WM_USER+19);
|
|
|
+ SB_GETICON = (WM_USER+20);
|
|
|
+ SB_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
|
|
|
+ SB_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
|
|
|
+{$ENDIF}
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ SB_GETTEXT = SB_GETTEXTW;
|
|
|
+ SB_SETTEXT = SB_SETTEXTW;
|
|
|
+ SB_GETTEXTLENGTH = SB_GETTEXTLENGTHW;
|
|
|
+{$ifdef ie4plus}
|
|
|
+ SB_SETTIPTEXT = SB_SETTIPTEXTW;
|
|
|
+ SB_GETTIPTEXT = SB_GETTIPTEXTW;
|
|
|
+{$ENDIF}
|
|
|
+{$ELSE}
|
|
|
+ SB_GETTEXT = SB_GETTEXTA;
|
|
|
+ SB_SETTEXT = SB_SETTEXTA;
|
|
|
+ SB_GETTEXTLENGTH = SB_GETTEXTLENGTHA;
|
|
|
+{$ifdef ie4plus}
|
|
|
+ SB_SETTIPTEXT = SB_SETTIPTEXTA;
|
|
|
+ SB_GETTIPTEXT = SB_GETTIPTEXTA;
|
|
|
+{$ENDIF}
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+ SBT_OWNERDRAW = $1000;
|
|
|
+ SBT_NOBORDERS = $0100;
|
|
|
+ SBT_POPOUT = $0200;
|
|
|
+ SBT_RTLREADING = $0400;
|
|
|
+{$ifdef ie5plus}
|
|
|
+ SBT_NOTABPARSING = $0800;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+ SB_SETBKCOLOR = CCM_SETBKCOLOR; // lParam = bkColor
|
|
|
+
|
|
|
+/// status bar notifications
|
|
|
+{$ifdef ie4plus}
|
|
|
+ SBN_SIMPLEMODECHANGE = (SBN_FIRST - 0);
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ifdef ie5plus}
|
|
|
+// refers to the data saved for simple mode
|
|
|
+ SB_SIMPLEID = $00ff;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ENDIF} // NOSTATUSBAR
|
|
|
+
|
|
|
+//====== MENU HELP ============================================================
|
|
|
+
|
|
|
+{$IFNDEF NOMENUHELP}
|
|
|
+
|
|
|
+Procedure MenuHelp(uMsg:UINT;wParam:WPARAM;lParam:LPARAM;hMainMenu:HMENU;hInst:HINST;hwndStatus:HWND;lpwIDs:PUINT); external commctrldll name 'MenuHelp';
|
|
|
+function ShowHideMenuCtl(hWnd:HWND;uFlags:UINT_PTR;lpInfo:LPINT):BOOL; external commctrldll name 'ShowHideMenuCtl';
|
|
|
+Procedure GetEffectiveClientRect(hWnd:HWND;lprc:LPRECT;lpInfo:LPINT); external commctrldll name 'GetEffectiveClientRect';
|
|
|
+
|
|
|
+CONST
|
|
|
+ MINSYSCOMMAND = SC_SIZE;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+//====== TRACKBAR CONTROL =====================================================
|
|
|
+
|
|
|
+{$IFNDEF NOTRACKBAR}
|
|
|
+
|
|
|
+CONST
|
|
|
+
|
|
|
+{$IFDEF _WIN32}
|
|
|
+
|
|
|
+ TRACKBAR_CLASSA = 'msctls_trackbar32';
|
|
|
+ TRACKBAR_CLASSW = {L}'msctls_trackbar32';
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ TRACKBAR_CLASS = TRACKBAR_CLASSW;
|
|
|
+{$ELSE}
|
|
|
+ TRACKBAR_CLASS = TRACKBAR_CLASSA;
|
|
|
+{$ENDIF}
|
|
|
+{$ELSE}
|
|
|
+ TRACKBAR_CLASS = 'msctls_trackbar';
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// begin_r_commctrl
|
|
|
+
|
|
|
+ TBS_AUTOTICKS = $0001;
|
|
|
+ TBS_VERT = $0002;
|
|
|
+ TBS_HORZ = $0000;
|
|
|
+ TBS_TOP = $0004;
|
|
|
+ TBS_BOTTOM = $0000;
|
|
|
+ TBS_LEFT = $0004;
|
|
|
+ TBS_RIGHT = $0000;
|
|
|
+ TBS_BOTH = $0008;
|
|
|
+ TBS_NOTICKS = $0010;
|
|
|
+ TBS_ENABLESELRANGE = $0020;
|
|
|
+ TBS_FIXEDLENGTH = $0040;
|
|
|
+ TBS_NOTHUMB = $0080;
|
|
|
+{$ifdef ie3plus}
|
|
|
+ TBS_TOOLTIPS = $0100;
|
|
|
+{$ENDIF}
|
|
|
+{$ifdef ie5plus}
|
|
|
+ TBS_REVERSED = $0200; // Accessibility hint: the smaller number (usually the min value) means "high" and the larger number (usually the max value) means "low"
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ifdef ie501plus}
|
|
|
+ TBS_DOWNISLEFT = $0400; // Down=Left and Up=Right (default is Down=Right and Up=Left)
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// end_r_commctrl
|
|
|
+
|
|
|
+ TBM_GETPOS = (WM_USER);
|
|
|
+ TBM_GETRANGEMIN = (WM_USER+1);
|
|
|
+ TBM_GETRANGEMAX = (WM_USER+2);
|
|
|
+ TBM_GETTIC = (WM_USER+3);
|
|
|
+ TBM_SETTIC = (WM_USER+4);
|
|
|
+ TBM_SETPOS = (WM_USER+5);
|
|
|
+ TBM_SETRANGE = (WM_USER+6);
|
|
|
+ TBM_SETRANGEMIN = (WM_USER+7);
|
|
|
+ TBM_SETRANGEMAX = (WM_USER+8);
|
|
|
+ TBM_CLEARTICS = (WM_USER+9);
|
|
|
+ TBM_SETSEL = (WM_USER+10);
|
|
|
+ TBM_SETSELSTART = (WM_USER+11);
|
|
|
+ TBM_SETSELEND = (WM_USER+12);
|
|
|
+ TBM_GETPTICS = (WM_USER+14);
|
|
|
+ TBM_GETTICPOS = (WM_USER+15);
|
|
|
+ TBM_GETNUMTICS = (WM_USER+16);
|
|
|
+ TBM_GETSELSTART = (WM_USER+17);
|
|
|
+ TBM_GETSELEND = (WM_USER+18);
|
|
|
+ TBM_CLEARSEL = (WM_USER+19);
|
|
|
+ TBM_SETTICFREQ = (WM_USER+20);
|
|
|
+ TBM_SETPAGESIZE = (WM_USER+21);
|
|
|
+ TBM_GETPAGESIZE = (WM_USER+22);
|
|
|
+ TBM_SETLINESIZE = (WM_USER+23);
|
|
|
+ TBM_GETLINESIZE = (WM_USER+24);
|
|
|
+ TBM_GETTHUMBRECT = (WM_USER+25);
|
|
|
+ TBM_GETCHANNELRECT = (WM_USER+26);
|
|
|
+ TBM_SETTHUMBLENGTH = (WM_USER+27);
|
|
|
+ TBM_GETTHUMBLENGTH = (WM_USER+28);
|
|
|
+{$ifdef ie3plus}
|
|
|
+ TBM_SETTOOLTIPS = (WM_USER+29);
|
|
|
+ TBM_GETTOOLTIPS = (WM_USER+30);
|
|
|
+ TBM_SETTIPSIDE = (WM_USER+31);
|
|
|
+// TrackBar Tip Side flags
|
|
|
+ TBTS_TOP = 0;
|
|
|
+ TBTS_LEFT = 1;
|
|
|
+ TBTS_BOTTOM = 2;
|
|
|
+ TBTS_RIGHT = 3;
|
|
|
+
|
|
|
+ TBM_SETBUDDY = (WM_USER+32); // wparam = BOOL fLeft; (or right)
|
|
|
+ TBM_GETBUDDY = (WM_USER+33); // wparam = BOOL fLeft; (or right)
|
|
|
+{$ENDIF}
|
|
|
+{$ifdef ie4plus}
|
|
|
+ TBM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
|
|
|
+ TBM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+ TB_LINEUP = 0;
|
|
|
+ TB_LINEDOWN = 1;
|
|
|
+ TB_PAGEUP = 2;
|
|
|
+ TB_PAGEDOWN = 3;
|
|
|
+ TB_THUMBPOSITION = 4;
|
|
|
+ TB_THUMBTRACK = 5;
|
|
|
+ TB_TOP = 6;
|
|
|
+ TB_BOTTOM = 7;
|
|
|
+ TB_ENDTRACK = 8;
|
|
|
+
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+// custom draw item specs
|
|
|
+ TBCD_TICS = $0001;
|
|
|
+ TBCD_THUMB = $0002;
|
|
|
+ TBCD_CHANNEL = $0003;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ENDIF} // trackbar
|
|
|
+
|
|
|
+//====== DRAG LIST CONTROL ====================================================
|
|
|
+
|
|
|
+{$IFNDEF NODRAGLIST}
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagDRAGLISTINFO = Record
|
|
|
+ uNotification : UINT;
|
|
|
+ hWnd : HWND;
|
|
|
+ ptCursor : POINT;
|
|
|
+ END;
|
|
|
+ DRAGLISTINFO = tagDRAGLISTINFO;
|
|
|
+ LPDRAGLISTINFO = ^tagDRAGLISTINFO;
|
|
|
+ TDRAGLISTINFO = tagDRAGLISTINFO;
|
|
|
+ PDRAGLISTINFO = ^tagDRAGLISTINFO;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ DL_BEGINDRAG = (WM_USER+133);
|
|
|
+ DL_DRAGGING = (WM_USER+134);
|
|
|
+ DL_DROPPED = (WM_USER+135);
|
|
|
+ DL_CANCELDRAG = (WM_USER+136);
|
|
|
+
|
|
|
+ DL_CURSORSET = 0;
|
|
|
+ DL_STOPCURSOR = 1;
|
|
|
+ DL_COPYCURSOR = 2;
|
|
|
+ DL_MOVECURSOR = 3;
|
|
|
+
|
|
|
+ DRAGLISTMSGSTRING = 'commctrl_DragListMsg'; // TEXT("commctrl_DragListMsg");
|
|
|
+
|
|
|
+function MakeDragList(hLB:HWND):BOOL; external commctrldll name 'MakeDragList';
|
|
|
+Procedure DrawInsert(handParent:HWND;hLB:HWND;nItem:cint); external commctrldll name 'DrawInsert';
|
|
|
+function LBItemFromPt(hLB:HWND;pt:POINT;bAutoScroll:BOOL):cint; external commctrldll name 'LBItemFromPt';
|
|
|
+
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+//====== UPDOWN CONTROL =======================================================
|
|
|
+
|
|
|
+{$IFNDEF NOUPDOWN}
|
|
|
+CONST
|
|
|
+{$IFDEF _WIN32}
|
|
|
+
|
|
|
+ UPDOWN_CLASSA = 'msctls_updown32';
|
|
|
+ UPDOWN_CLASSW = {L}'msctls_updown32';
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ UPDOWN_CLASS = UPDOWN_CLASSW;
|
|
|
+{$ELSE}
|
|
|
+ UPDOWN_CLASS = UPDOWN_CLASSA;
|
|
|
+{$ENDIF}
|
|
|
+{$ELSE}
|
|
|
+ UPDOWN_CLASS = 'msctls_updown';
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ _UDACCEL = Record
|
|
|
+ nSec : UINT;
|
|
|
+ nInc : UINT;
|
|
|
+ END;
|
|
|
+ UDACCEL = _UDACCEL;
|
|
|
+ LPUDACCEL = ^_UDACCEL;
|
|
|
+ TUDACCEL = _UDACCEL;
|
|
|
+ PUDACCEL = ^_UDACCEL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ UD_MAXVAL = $7fff;
|
|
|
+ UD_MINVAL = (-UD_MAXVAL);
|
|
|
+
|
|
|
+// begin_r_commctrl
|
|
|
+
|
|
|
+ UDS_WRAP = $0001;
|
|
|
+ UDS_SETBUDDYINT = $0002;
|
|
|
+ UDS_ALIGNRIGHT = $0004;
|
|
|
+ UDS_ALIGNLEFT = $0008;
|
|
|
+ UDS_AUTOBUDDY = $0010;
|
|
|
+ UDS_ARROWKEYS = $0020;
|
|
|
+ UDS_HORZ = $0040;
|
|
|
+ UDS_NOTHOUSANDS = $0080;
|
|
|
+{$ifdef ie3plus}
|
|
|
+ UDS_HOTTRACK = $0100;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// end_r_commctrl
|
|
|
+
|
|
|
+ UDM_SETRANGE = (WM_USER+101);
|
|
|
+ UDM_GETRANGE = (WM_USER+102);
|
|
|
+ UDM_SETPOS = (WM_USER+103);
|
|
|
+ UDM_GETPOS = (WM_USER+104);
|
|
|
+ UDM_SETBUDDY = (WM_USER+105);
|
|
|
+ UDM_GETBUDDY = (WM_USER+106);
|
|
|
+ UDM_SETACCEL = (WM_USER+107);
|
|
|
+ UDM_GETACCEL = (WM_USER+108);
|
|
|
+ UDM_SETBASE = (WM_USER+109);
|
|
|
+ UDM_GETBASE = (WM_USER+110);
|
|
|
+{$ifdef ie4plus}
|
|
|
+ UDM_SETRANGE32 = (WM_USER+111);
|
|
|
+ UDM_GETRANGE32 = (WM_USER+112); // wParam & lParam are LPINT
|
|
|
+ UDM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
|
|
|
+ UDM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
|
|
|
+{$ENDIF}
|
|
|
+{$ifdef ie5plus}
|
|
|
+ UDM_SETPOS32 = (WM_USER+113);
|
|
|
+ UDM_GETPOS32 = (WM_USER+114);
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+function CreateUpDownControl(dwStyle:DWORD;x:cint;y:cint;cx:cint;cy:cint;hParent:HWND;nID:cint;hInst:HINST;hBuddy:HWND;nUpper:cint;nLower:cint;nPos:cint):HWND; external commctrldll name 'CreateUpDownControl';
|
|
|
+
|
|
|
+TYPE
|
|
|
+ _NM_UPDOWN = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ iPos : cint;
|
|
|
+ iDelta : cint;
|
|
|
+ END;
|
|
|
+ NMUPDOWN = _NM_UPDOWN;
|
|
|
+ LPNMUPDOWN = ^_NM_UPDOWN;
|
|
|
+ TNM_UPDOWN = _NM_UPDOWN;
|
|
|
+ PNM_UPDOWN = ^_NM_UPDOWN;
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+ NM_UPDOWN = NMUPDOWN;
|
|
|
+ LPNM_UPDOWN = LPNMUPDOWN;
|
|
|
+{$ELSE}
|
|
|
+ NMUPDOWN = NM_UPDOWN;
|
|
|
+ LPNMUPDOWN = LPNM_UPDOWN;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+CONST
|
|
|
+ UDN_DELTAPOS = (UDN_FIRST - 1);
|
|
|
+
|
|
|
+{$ENDIF} // NOUPDOWN
|
|
|
+
|
|
|
+
|
|
|
+//====== PROGRESS CONTROL =====================================================
|
|
|
+
|
|
|
+{$IFNDEF NOPROGRESS}
|
|
|
+
|
|
|
+CONST
|
|
|
+
|
|
|
+{$IFDEF _WIN32}
|
|
|
+
|
|
|
+ PROGRESS_CLASSA = 'msctls_progress32';
|
|
|
+ PROGRESS_CLASSW = {L}'msctls_progress32';
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ PROGRESS_CLASS = PROGRESS_CLASSW;
|
|
|
+{$ELSE}
|
|
|
+ PROGRESS_CLASS = PROGRESS_CLASSA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ELSE}
|
|
|
+ PROGRESS_CLASS = 'msctls_progress';
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// begin_r_commctrl
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+ PBS_SMOOTH = $01;
|
|
|
+ PBS_VERTICAL = $04;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// end_r_commctrl
|
|
|
+
|
|
|
+ PBM_SETRANGE = (WM_USER+1);
|
|
|
+ PBM_SETPOS = (WM_USER+2);
|
|
|
+ PBM_DELTAPOS = (WM_USER+3);
|
|
|
+ PBM_SETSTEP = (WM_USER+4);
|
|
|
+ PBM_STEPIT = (WM_USER+5);
|
|
|
+{$ifdef ie3plus}
|
|
|
+ PBM_SETRANGE32 = (WM_USER+6); // lParam = high, wParam = low
|
|
|
+
|
|
|
+TYPE
|
|
|
+ PBRANGE = Record
|
|
|
+ iLow : cint;
|
|
|
+ iHigh : cint;
|
|
|
+ END;
|
|
|
+ PPBRANGE = ^PBRANGE;
|
|
|
+ TPBRANGE = PBRANGE;
|
|
|
+// PPBRANGE = ^PBRANGE;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ PBM_GETRANGE = (WM_USER+7); // wParam = return (TRUE ? low : high). lParam = PPBRANGE or NULL
|
|
|
+ PBM_GETPOS = (WM_USER+8);
|
|
|
+{$ifdef ie4plus}
|
|
|
+ PBM_SETBARCOLOR = (WM_USER+9); // lParam = bar color
|
|
|
+{$ENDIF} // _WIN32_IE >= 0x0400
|
|
|
+ PBM_SETBKCOLOR = CCM_SETBKCOLOR; // lParam = bkColor
|
|
|
+{$ENDIF} // _WIN32_IE >= 0x0300
|
|
|
+
|
|
|
+
|
|
|
+{$ENDIF} // NOPROGRESS
|
|
|
+
|
|
|
+
|
|
|
+//====== HOTKEY CONTROL =======================================================
|
|
|
+
|
|
|
+{$IFNDEF NOHOTKEY}
|
|
|
+ HOTKEYF_SHIFT = $01;
|
|
|
+ HOTKEYF_CONTROL = $02;
|
|
|
+ HOTKEYF_ALT = $04;
|
|
|
+{$IFDEF _MAC}
|
|
|
+ HOTKEYF_EXT = $80;
|
|
|
+{$ELSE}
|
|
|
+ HOTKEYF_EXT = $08;
|
|
|
+{$ENDIF}
|
|
|
+ HKCOMB_NONE = $0001;
|
|
|
+ HKCOMB_S = $0002;
|
|
|
+ HKCOMB_C = $0004;
|
|
|
+ HKCOMB_A = $0008;
|
|
|
+ HKCOMB_SC = $0010;
|
|
|
+ HKCOMB_SA = $0020;
|
|
|
+ HKCOMB_CA = $0040;
|
|
|
+ HKCOMB_SCA = $0080;
|
|
|
+
|
|
|
+ HKM_SETHOTKEY = (WM_USER+1);
|
|
|
+ HKM_GETHOTKEY = (WM_USER+2);
|
|
|
+ HKM_SETRULES = (WM_USER+3);
|
|
|
+
|
|
|
+{$IFDEF _WIN32}
|
|
|
+ HOTKEY_CLASSA = 'msctls_hotkey32';
|
|
|
+ HOTKEY_CLASSW = {L}'msctls_hotkey32';
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ HOTKEY_CLASS = HOTKEY_CLASSW;
|
|
|
+{$ELSE}
|
|
|
+ HOTKEY_CLASS = HOTKEY_CLASSA;
|
|
|
+{$ENDIF}
|
|
|
+{$ELSE}
|
|
|
+ HOTKEY_CLASS = 'msctls_hotkey';
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ENDIF} // NOHOTKEY
|
|
|
+
|
|
|
+// begin_r_commctrl
|
|
|
+
|
|
|
+//====== COMMON CONTROL STYLES ================================================
|
|
|
+
|
|
|
+ CCS_TOP = DWORD($00000001){L};
|
|
|
+ CCS_NOMOVEY = DWORD($00000002){L};
|
|
|
+ CCS_BOTTOM = DWORD($00000003){L};
|
|
|
+ CCS_NORESIZE = DWORD($00000004){L};
|
|
|
+ CCS_NOPARENTALIGN = DWORD($00000008){L};
|
|
|
+ CCS_ADJUSTABLE = DWORD($00000020){L};
|
|
|
+ CCS_NODIVIDER = DWORD($00000040){L};
|
|
|
+{$ifdef ie3plus}
|
|
|
+ CCS_VERT = DWORD($00000080){L};
|
|
|
+ CCS_LEFT = (CCS_VERT OR CCS_TOP);
|
|
|
+ CCS_RIGHT = (CCS_VERT OR CCS_BOTTOM);
|
|
|
+ CCS_NOMOVEX = (CCS_VERT OR CCS_NOMOVEY);
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// end_r_commctrl
|
|
|
+
|
|
|
+//====== LISTVIEW CONTROL =====================================================
|
|
|
+
|
|
|
+{$IFNDEF NOLISTVIEW}
|
|
|
+
|
|
|
+{$IFDEF _WIN32}
|
|
|
+ WC_LISTVIEWA = 'SysListView32';
|
|
|
+ WC_LISTVIEWW = {L}'SysListView32';
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ WC_LISTVIEW = WC_LISTVIEWW;
|
|
|
+{$ELSE}
|
|
|
+ WC_LISTVIEW = WC_LISTVIEWA;
|
|
|
+{$ENDIF}
|
|
|
+{$ELSE}
|
|
|
+ WC_LISTVIEW = 'SysListView';
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// begin_r_commctrl
|
|
|
+
|
|
|
+ LVS_ICON = $0000;
|
|
|
+ LVS_REPORT = $0001;
|
|
|
+ LVS_SMALLICON = $0002;
|
|
|
+ LVS_LIST = $0003;
|
|
|
+ LVS_TYPEMASK = $0003;
|
|
|
+ LVS_SINGLESEL = $0004;
|
|
|
+ LVS_SHOWSELALWAYS = $0008;
|
|
|
+ LVS_SORTASCENDING = $0010;
|
|
|
+ LVS_SORTDESCENDING = $0020;
|
|
|
+ LVS_SHAREIMAGELISTS = $0040;
|
|
|
+ LVS_NOLABELWRAP = $0080;
|
|
|
+ LVS_AUTOARRANGE = $0100;
|
|
|
+ LVS_EDITLABELS = $0200;
|
|
|
+{$ifdef ie3plus}
|
|
|
+ LVS_OWNERDATA = $1000;
|
|
|
+{$ENDIF}
|
|
|
+ LVS_NOSCROLL = $2000;
|
|
|
+
|
|
|
+ LVS_TYPESTYLEMASK = $fc00;
|
|
|
+
|
|
|
+ LVS_ALIGNTOP = $0000;
|
|
|
+ LVS_ALIGNLEFT = $0800;
|
|
|
+ LVS_ALIGNMASK = $0c00;
|
|
|
+
|
|
|
+ LVS_OWNERDRAWFIXED = $0400;
|
|
|
+ LVS_NOCOLUMNHEADER = $4000;
|
|
|
+ LVS_NOSORTHEADER = $8000;
|
|
|
+
|
|
|
+// end_r_commctrl
|
|
|
+
|
|
|
+{$ifdef ie4plus}
|
|
|
+ LVM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
|
|
|
+
|
|
|
+// Macro 38
|
|
|
+Function ListView_SetUnicodeFormat( hwnd : hwnd; fUnicode : WPARAM):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
|
|
|
+
|
|
|
+// Macro 39
|
|
|
+Function ListView_GetUnicodeFormat( hwnd : hwnd):BOOL;
|
|
|
+
|
|
|
+{$ENDIF}
|
|
|
+CONST
|
|
|
+ LVM_GETBKCOLOR = (LVM_FIRST + 0);
|
|
|
+
|
|
|
+// Macro 40
|
|
|
+Function ListView_GetBkColor( hwnd : hwnd):COLORREF;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_SETBKCOLOR = (LVM_FIRST + 1);
|
|
|
+
|
|
|
+// Macro 41
|
|
|
+Function ListView_SetBkColor( hwnd : hwnd; clrBk : COLORREF):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_GETIMAGELIST = (LVM_FIRST + 2);
|
|
|
+
|
|
|
+// Macro 42
|
|
|
+Function ListView_GetImageList( hwnd : hwnd; iImageList : CINT):HIMAGELIST;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVSIL_NORMAL = 0;
|
|
|
+ LVSIL_SMALL = 1;
|
|
|
+ LVSIL_STATE = 2;
|
|
|
+
|
|
|
+ LVM_SETIMAGELIST = (LVM_FIRST + 3);
|
|
|
+
|
|
|
+// Macro 43
|
|
|
+Function ListView_SetImageList( hwnd : hwnd; himl : HIMAGELIST; iImageList : WPARAM):HIMAGELIST;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_GETITEMCOUNT = (LVM_FIRST + 4);
|
|
|
+
|
|
|
+// Macro 44
|
|
|
+Function ListView_GetItemCount( hwnd : hwnd):cint;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVIF_TEXT = $0001;
|
|
|
+ LVIF_IMAGE = $0002;
|
|
|
+ LVIF_PARAM = $0004;
|
|
|
+ LVIF_STATE = $0008;
|
|
|
+{$ifdef ie3plus}
|
|
|
+ LVIF_INDENT = $0010;
|
|
|
+ LVIF_NORECOMPUTE = $0800;
|
|
|
+{$ENDIF}
|
|
|
+{$ifdef win32xp}
|
|
|
+ LVIF_GROUPID = $0100;
|
|
|
+ LVIF_COLUMNS = $0200;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+ LVIS_FOCUSED = $0001;
|
|
|
+ LVIS_SELECTED = $0002;
|
|
|
+ LVIS_CUT = $0004;
|
|
|
+ LVIS_DROPHILITED = $0008;
|
|
|
+ LVIS_GLOW = $0010;
|
|
|
+ LVIS_ACTIVATING = $0020;
|
|
|
+
|
|
|
+ LVIS_OVERLAYMASK = $0F00;
|
|
|
+ LVIS_STATEIMAGEMASK = $F000;
|
|
|
+
|
|
|
+// Macro 45
|
|
|
+// #define INDEXTOSTATEIMAGEMASK(i) ((i) << 12)
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ I_INDENTCALLBACK = (-1);
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+{$ifdef win32xp}
|
|
|
+
|
|
|
+CONST
|
|
|
+ I_GROUPIDCALLBACK = (-1);
|
|
|
+ I_GROUPIDNONE = (-2);
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+// #define LVITEMA_V1_SIZE CCSIZEOF_STRUCT(LVITEMA, lParam)
|
|
|
+// #define LVITEMW_V1_SIZE CCSIZEOF_STRUCT(LVITEMW, lParam)
|
|
|
+
|
|
|
+TYPE
|
|
|
+ tagLVITEMA = Record
|
|
|
+ mask : UINT;
|
|
|
+ iItem : cint;
|
|
|
+ iSubItem : cint;
|
|
|
+ state : UINT;
|
|
|
+ stateMask : UINT;
|
|
|
+ pszText : LPSTR;
|
|
|
+ cchTextMax : cint;
|
|
|
+ iImage : cint;
|
|
|
+ lParam : LPARAM;
|
|
|
+{$ifdef ie3plus}
|
|
|
+ iIndent : cint;
|
|
|
+{$ENDIF}
|
|
|
+{$ifdef win32xp}
|
|
|
+ iGroupId : cint;
|
|
|
+ cColumns : UINT; // tile view columns
|
|
|
+ puColumns : PUINT;
|
|
|
+{$ENDIF}
|
|
|
+ END;
|
|
|
+ LVITEMA = tagLVITEMA;
|
|
|
+ LPLVITEMA = ^tagLVITEMA;
|
|
|
+ TLVITEMA = tagLVITEMA;
|
|
|
+ PLVITEMA = ^tagLVITEMA;
|
|
|
+
|
|
|
+
|
|
|
+ tagLVITEMW = Record
|
|
|
+ mask : UINT;
|
|
|
+ iItem : cint;
|
|
|
+ iSubItem : cint;
|
|
|
+ state : UINT;
|
|
|
+ stateMask : UINT;
|
|
|
+ pszText : LPWSTR;
|
|
|
+ cchTextMax : cint;
|
|
|
+ iImage : cint;
|
|
|
+ lParam : LPARAM;
|
|
|
+{$ifdef ie3plus}
|
|
|
+ iIndent : cint;
|
|
|
+{$ENDIF}
|
|
|
+{$ifdef win32xp}
|
|
|
+ iGroupId : cint;
|
|
|
+ cColumns : UINT; // tile view columns
|
|
|
+ puColumns : PUINT;
|
|
|
+{$ENDIF}
|
|
|
+ END;
|
|
|
+
|
|
|
+ LVITEMW = tagLVITEMW;
|
|
|
+ LPLVITEMW = ^tagLVITEMW;
|
|
|
+ TLVITEMW = tagLVITEMW;
|
|
|
+ PLVITEMW = ^tagLVITEMW;
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ LVITEM = LVITEMW;
|
|
|
+ LPLVITEM = LPLVITEMW;
|
|
|
+
|
|
|
+// LVITEM_V1_SIZE = LVITEMW_V1_SIZE;
|
|
|
+{$ELSE}
|
|
|
+
|
|
|
+TYPE
|
|
|
+ LVITEM = LVITEMA;
|
|
|
+ LPLVITEM = LPLVITEMA;
|
|
|
+
|
|
|
+// LVITEM_V1_SIZE = LVITEMA_V1_SIZE;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+Type
|
|
|
+{$ifdef ie3plus}
|
|
|
+
|
|
|
+ LV_ITEMA = LVITEMA;
|
|
|
+ LV_ITEMW = LVITEMW;
|
|
|
+{$ELSE}
|
|
|
+
|
|
|
+ tagLVITEMA = _LV_ITEMA;
|
|
|
+ LVITEMA = LV_ITEMA;
|
|
|
+ tagLVITEMW = _LV_ITEMW;
|
|
|
+ LVITEMW = LV_ITEMW;
|
|
|
+{$ENDIF}
|
|
|
+ LV_ITEM = LVITEM;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LPSTR_TEXTCALLBACKW = LPWSTR(-1);
|
|
|
+ LPSTR_TEXTCALLBACKA = LPSTR (-1);
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ LPSTR_TEXTCALLBACK = LPSTR_TEXTCALLBACKW;
|
|
|
+{$ELSE}
|
|
|
+ LPSTR_TEXTCALLBACK = LPSTR_TEXTCALLBACKA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ I_IMAGECALLBACK = (-1);
|
|
|
+{$ifdef ie501plus}
|
|
|
+ I_IMAGENONE = (-2);
|
|
|
+{$ENDIF} // 0x0501
|
|
|
+
|
|
|
+{$ifdef win32xp}
|
|
|
+// For tileview
|
|
|
+ I_COLUMNSCALLBACK = UINT(-1);
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+ LVM_GETITEMA = (LVM_FIRST + 5);
|
|
|
+ LVM_GETITEMW = (LVM_FIRST + 75);
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ LVM_GETITEM = LVM_GETITEMW;
|
|
|
+{$ELSE}
|
|
|
+ LVM_GETITEM = LVM_GETITEMA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// Macro 46
|
|
|
+Function ListView_GetItem( hwnd : hwnd;var pitem : LV_ITEM ):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_SETITEMA = (LVM_FIRST + 6);
|
|
|
+ LVM_SETITEMW = (LVM_FIRST + 76);
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ LVM_SETITEM = LVM_SETITEMW;
|
|
|
+{$ELSE}
|
|
|
+ LVM_SETITEM = LVM_SETITEMA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// Macro 47
|
|
|
+Function ListView_SetItem( hwnd : hwnd;const pitem : LV_ITEM ):BOOL;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_INSERTITEMA = (LVM_FIRST + 7);
|
|
|
+ LVM_INSERTITEMW = (LVM_FIRST + 77);
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ LVM_INSERTITEM = LVM_INSERTITEMW;
|
|
|
+{$ELSE}
|
|
|
+ LVM_INSERTITEM = LVM_INSERTITEMA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// Macro 48
|
|
|
+Function ListView_InsertItem( hwnd : hwnd;Const pitem : LV_ITEM ):cint;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_DELETEITEM = (LVM_FIRST + 8);
|
|
|
+
|
|
|
+// Macro 49
|
|
|
+Function ListView_DeleteItem( hwnd : hwnd; i : cint):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_DELETEALLITEMS = (LVM_FIRST + 9);
|
|
|
+
|
|
|
+// Macro 50
|
|
|
+Function ListView_DeleteAllItems( hwnd : hwnd):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_GETCALLBACKMASK = (LVM_FIRST + 10);
|
|
|
+
|
|
|
+// Macro 51
|
|
|
+Function ListView_GetCallbackMask( hwnd : hwnd):BOOL;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_SETCALLBACKMASK = (LVM_FIRST + 11);
|
|
|
+
|
|
|
+// Macro 52
|
|
|
+Function ListView_SetCallbackMask( hwnd : hwnd; mask : UINT):BOOL;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVNI_ALL = $0000;
|
|
|
+ LVNI_FOCUSED = $0001;
|
|
|
+ LVNI_SELECTED = $0002;
|
|
|
+ LVNI_CUT = $0004;
|
|
|
+ LVNI_DROPHILITED = $0008;
|
|
|
+
|
|
|
+ LVNI_ABOVE = $0100;
|
|
|
+ LVNI_BELOW = $0200;
|
|
|
+ LVNI_TOLEFT = $0400;
|
|
|
+ LVNI_TORIGHT = $0800;
|
|
|
+
|
|
|
+
|
|
|
+ LVM_GETNEXTITEM = (LVM_FIRST + 12);
|
|
|
+
|
|
|
+// Macro 53
|
|
|
+Function ListView_GetNextItem( hwnd : hwnd; i : cint; flags : cint ):cint;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVFI_PARAM = $0001;
|
|
|
+ LVFI_STRING = $0002;
|
|
|
+ LVFI_PARTIAL = $0008;
|
|
|
+ LVFI_WRAP = $0020;
|
|
|
+ LVFI_NEARESTXY = $0040;
|
|
|
+
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagLVFINDINFOA = Record
|
|
|
+ flags : UINT;
|
|
|
+ psz : LPCSTR;
|
|
|
+ lParam : LPARAM;
|
|
|
+ pt : POINT;
|
|
|
+ vkDirection : UINT;
|
|
|
+ END;
|
|
|
+ LVFINDINFOA = tagLVFINDINFOA;
|
|
|
+ LPFINDINFOA = ^tagLVFINDINFOA;
|
|
|
+ TLVFINDINFOA = tagLVFINDINFOA;
|
|
|
+ PLVFINDINFOA = ^tagLVFINDINFOA;
|
|
|
+
|
|
|
+
|
|
|
+ tagLVFINDINFOW = Record
|
|
|
+ flags : UINT;
|
|
|
+ psz : LPCWSTR;
|
|
|
+ lParam : LPARAM;
|
|
|
+ pt : POINT;
|
|
|
+ vkDirection : UINT;
|
|
|
+ END;
|
|
|
+ LVFINDINFOW = tagLVFINDINFOW;
|
|
|
+ LPFINDINFOW = ^tagLVFINDINFOW;
|
|
|
+ TLVFINDINFOW = tagLVFINDINFOW;
|
|
|
+ PLVFINDINFOW = ^tagLVFINDINFOW;
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ LVFINDINFO = LVFINDINFOW;
|
|
|
+{$ELSE}
|
|
|
+ LVFINDINFO = LVFINDINFOA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+ LV_FINDINFOA = LVFINDINFOA;
|
|
|
+ LV_FINDINFOW = LVFINDINFOW;
|
|
|
+{$ELSE}
|
|
|
+ tagLVFINDINFOA = _LV_FINDINFOA;
|
|
|
+ LVFINDINFOA = LV_FINDINFOA;
|
|
|
+ tagLVFINDINFOW = _LV_FINDINFOW;
|
|
|
+ LVFINDINFOW = LV_FINDINFOW;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+ LV_FINDINFO = LVFINDINFO;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_FINDITEMA = (LVM_FIRST + 13);
|
|
|
+ LVM_FINDITEMW = (LVM_FIRST + 83);
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ LVM_FINDITEM = LVM_FINDITEMW;
|
|
|
+{$ELSE}
|
|
|
+ LVM_FINDITEM = LVM_FINDITEMA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// Macro 54
|
|
|
+Function ListView_FindItem( hwnd : hwnd; iStart : cint;const plvfi : LV_FINDINFO ):cint;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVIR_BOUNDS = 0;
|
|
|
+ LVIR_ICON = 1;
|
|
|
+ LVIR_LABEL = 2;
|
|
|
+ LVIR_SELECTBOUNDS = 3;
|
|
|
+
|
|
|
+
|
|
|
+ LVM_GETITEMRECT = (LVM_FIRST + 14);
|
|
|
+
|
|
|
+// Macro 55 NI
|
|
|
+// Function ListView_GetItemRect( hwnd : hwnd; i : cint;prc {!};code {!}):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_SETITEMPOSITION = (LVM_FIRST + 15);
|
|
|
+
|
|
|
+// Macro 56
|
|
|
+Function ListView_SetItemPosition( hwndLV : hwnd; i : cint; x : cint ; y : cint ):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_GETITEMPOSITION = (LVM_FIRST + 16);
|
|
|
+
|
|
|
+// Macro 57
|
|
|
+Function ListView_GetItemPosition( hwndLV : hwnd; i : cint;var ppt : POINT ):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_GETSTRINGWIDTHA = (LVM_FIRST + 17);
|
|
|
+ LVM_GETSTRINGWIDTHW = (LVM_FIRST + 87);
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ LVM_GETSTRINGWIDTH = LVM_GETSTRINGWIDTHW;
|
|
|
+{$ELSE}
|
|
|
+ LVM_GETSTRINGWIDTH = LVM_GETSTRINGWIDTHA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// Macro 58
|
|
|
+Function ListView_GetStringWidth( hwndLV : hwnd; psz : LPCTSTR):cint;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVHT_NOWHERE = $0001;
|
|
|
+ LVHT_ONITEMICON = $0002;
|
|
|
+ LVHT_ONITEMLABEL = $0004;
|
|
|
+ LVHT_ONITEMSTATEICON = $0008;
|
|
|
+ LVHT_ONITEM = (LVHT_ONITEMICON OR LVHT_ONITEMLABEL OR LVHT_ONITEMSTATEICON);
|
|
|
+
|
|
|
+ LVHT_ABOVE = $0008;
|
|
|
+ LVHT_BELOW = $0010;
|
|
|
+ LVHT_TORIGHT = $0020;
|
|
|
+ LVHT_TOLEFT = $0040;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+// #define LVHITTESTINFO_V1_SIZE CCSIZEOF_STRUCT(LVHITTESTINFO, iItem)
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagLVHITTESTINFO = Record
|
|
|
+ pt : POINT;
|
|
|
+ flags : UINT;
|
|
|
+ iItem : cint;
|
|
|
+{$ifdef ie3plus}
|
|
|
+ iSubItem : cint; // this is was NOT in win95. valid only for LVM_SUBITEMHITTEST
|
|
|
+{$ENDIF}
|
|
|
+ END;
|
|
|
+ LVHITTESTINFO = tagLVHITTESTINFO;
|
|
|
+ LPLVHITTESTINFO = ^tagLVHITTESTINFO;
|
|
|
+ TLVHITTESTINFO = tagLVHITTESTINFO;
|
|
|
+ PLVHITTESTINFO = ^tagLVHITTESTINFO;
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+ LV_HITTESTINFO = LVHITTESTINFO;
|
|
|
+{$ELSE}
|
|
|
+ tagLVHITTESTINFO = _LV_HITTESTINFO;
|
|
|
+ LVHITTESTINFO = LV_HITTESTINFO;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_HITTEST = (LVM_FIRST + 18);
|
|
|
+
|
|
|
+// Macro 59
|
|
|
+Function ListView_HitTest( hwndLV : hwnd;var pinfo : LV_HITTESTINFO ):cint;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_ENSUREVISIBLE = (LVM_FIRST + 19);
|
|
|
+
|
|
|
+// Macro 60
|
|
|
+Function ListView_EnsureVisible( hwndLV : hwnd; i : cint; fPartialOK : cint ):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_SCROLL = (LVM_FIRST + 20);
|
|
|
+
|
|
|
+// Macro 61
|
|
|
+Function ListView_Scroll( hwndLV : hwnd; dx : cint; dy : cint):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_REDRAWITEMS = (LVM_FIRST + 21);
|
|
|
+
|
|
|
+// Macro 62
|
|
|
+Function ListView_RedrawItems( hwndLV : hwnd; iFirst : cint; iLast : cint):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVA_DEFAULT = $0000;
|
|
|
+ LVA_ALIGNLEFT = $0001;
|
|
|
+ LVA_ALIGNTOP = $0002;
|
|
|
+ LVA_SNAPTOGRID = $0005;
|
|
|
+ LVM_ARRANGE = (LVM_FIRST + 22);
|
|
|
+
|
|
|
+// Macro 63
|
|
|
+Function ListView_Arrange( hwndLV : hwnd; code : UINT):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_EDITLABELA = (LVM_FIRST + 23);
|
|
|
+ LVM_EDITLABELW = (LVM_FIRST + 118);
|
|
|
+{$IFDEF UNICODE}
|
|
|
+
|
|
|
+ LVM_EDITLABEL = LVM_EDITLABELW;
|
|
|
+{$ELSE}
|
|
|
+ LVM_EDITLABEL = LVM_EDITLABELA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// Macro 64
|
|
|
+Function ListView_EditLabel( hwndLV : hwnd; i : cint):HWND;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_GETEDITCONTROL = (LVM_FIRST + 24);
|
|
|
+
|
|
|
+// Macro 65
|
|
|
+Function ListView_GetEditControl( hwndLV : hwnd):HWND;
|
|
|
+
|
|
|
+
|
|
|
+// #define LVCOLUMNA_V1_SIZE CCSIZEOF_STRUCT(LVCOLUMNA, iSubItem)
|
|
|
+// #define LVCOLUMNW_V1_SIZE CCSIZEOF_STRUCT(LVCOLUMNW, iSubItem)
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagLVCOLUMNA = Record
|
|
|
+ mask : UINT;
|
|
|
+ fmt : cint;
|
|
|
+ cx : cint;
|
|
|
+ pszText : LPSTR;
|
|
|
+ cchTextMax : cint;
|
|
|
+ iSubItem : cint;
|
|
|
+{$ifdef ie3plus}
|
|
|
+ iImage : cint;
|
|
|
+ iOrder : cint;
|
|
|
+{$ENDIF}
|
|
|
+ END;
|
|
|
+ LVCOLUMNA = tagLVCOLUMNA;
|
|
|
+ LPLVCOLUMNA = ^tagLVCOLUMNA;
|
|
|
+ TLVCOLUMNA = tagLVCOLUMNA;
|
|
|
+ PLVCOLUMNA = ^tagLVCOLUMNA;
|
|
|
+
|
|
|
+
|
|
|
+ tagLVCOLUMNW = Record
|
|
|
+ mask : UINT;
|
|
|
+ fmt : cint;
|
|
|
+ cx : cint;
|
|
|
+ pszText : LPWSTR;
|
|
|
+ cchTextMax : cint;
|
|
|
+ iSubItem : cint;
|
|
|
+{$ifdef ie3plus}
|
|
|
+ iImage : cint;
|
|
|
+ iOrder : cint;
|
|
|
+{$ENDIF}
|
|
|
+ END;
|
|
|
+ LVCOLUMNW = tagLVCOLUMNW;
|
|
|
+ LPLVCOLUMNW = ^tagLVCOLUMNW;
|
|
|
+ TLVCOLUMNW = tagLVCOLUMNW;
|
|
|
+ PLVCOLUMNW = ^tagLVCOLUMNW;
|
|
|
+
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ LVCOLUMN = LVCOLUMNW;
|
|
|
+ LPLVCOLUMN = LPLVCOLUMNW;
|
|
|
+// LVCOLUMN_V1_SIZE = LVCOLUMNW_V1_SIZE;
|
|
|
+{$ELSE}
|
|
|
+ LVCOLUMN = LVCOLUMNA;
|
|
|
+ LPLVCOLUMN = LPLVCOLUMNA;
|
|
|
+// LVCOLUMN_V1_SIZE = LVCOLUMNA_V1_SIZE;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+ LV_COLUMNA = LVCOLUMNA;
|
|
|
+ LV_COLUMNW = LVCOLUMNW;
|
|
|
+{$ELSE}
|
|
|
+ tagLVCOLUMNA = _LV_COLUMNA;
|
|
|
+ LVCOLUMNA = LV_COLUMNA;
|
|
|
+ tagLVCOLUMNW = _LV_COLUMNW;
|
|
|
+ LVCOLUMNW = LV_COLUMNW;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+ LV_COLUMN = LVCOLUMN;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVCF_FMT = $0001;
|
|
|
+ LVCF_WIDTH = $0002;
|
|
|
+ LVCF_TEXT = $0004;
|
|
|
+ LVCF_SUBITEM = $0008;
|
|
|
+{$ifdef ie3plus}
|
|
|
+ LVCF_IMAGE = $0010;
|
|
|
+ LVCF_ORDER = $0020;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+ LVCFMT_LEFT = $0000;
|
|
|
+ LVCFMT_RIGHT = $0001;
|
|
|
+ LVCFMT_CENTER = $0002;
|
|
|
+ LVCFMT_JUSTIFYMASK = $0003;
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+ LVCFMT_IMAGE = $0800;
|
|
|
+ LVCFMT_BITMAP_ON_RIGHT = $1000;
|
|
|
+ LVCFMT_COL_HAS_IMAGES = $8000;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+ LVM_GETCOLUMNA = (LVM_FIRST + 25);
|
|
|
+ LVM_GETCOLUMNW = (LVM_FIRST + 95);
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ LVM_GETCOLUMN = LVM_GETCOLUMNW;
|
|
|
+{$ELSE}
|
|
|
+ LVM_GETCOLUMN = LVM_GETCOLUMNA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// Macro 66
|
|
|
+Function ListView_GetColumn( hwnd : hwnd; iCol : cint;var pcol : LV_COLUMN ):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_SETCOLUMNA = (LVM_FIRST + 26);
|
|
|
+ LVM_SETCOLUMNW = (LVM_FIRST + 96);
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ LVM_SETCOLUMN = LVM_SETCOLUMNW;
|
|
|
+{$ELSE}
|
|
|
+ LVM_SETCOLUMN = LVM_SETCOLUMNA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// Macro 67
|
|
|
+Function ListView_SetColumn( hwnd : hwnd; iCol : cint;Const pcol : LV_COLUMN ):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_INSERTCOLUMNA = (LVM_FIRST + 27);
|
|
|
+ LVM_INSERTCOLUMNW = (LVM_FIRST + 97);
|
|
|
+
|
|
|
+{$IFDEF UNICODE} // was already not active (spaces) in .h
|
|
|
+// # define LVM_INSERTCOLUMN LVM_INSERTCOLUMNW
|
|
|
+{$ELSE}
|
|
|
+// # define LVM_INSERTCOLUMN LVM_INSERTCOLUMNA
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// Macro 68
|
|
|
+Function ListView_InsertColumn( hwnd : hwnd; iCol : cint;Const pcol : LV_COLUMN ):cint;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_DELETECOLUMN = (LVM_FIRST + 28);
|
|
|
+
|
|
|
+// Macro 69
|
|
|
+Function ListView_DeleteColumn( hwnd : hwnd; iCol : cint):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_GETCOLUMNWIDTH = (LVM_FIRST + 29);
|
|
|
+
|
|
|
+// Macro 70
|
|
|
+Function ListView_GetColumnWidth( hwnd : hwnd; iCol : cint):cint;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVSCW_AUTOSIZE = -1;
|
|
|
+ LVSCW_AUTOSIZE_USEHEADER = -2;
|
|
|
+ LVM_SETCOLUMNWIDTH = (LVM_FIRST + 30);
|
|
|
+
|
|
|
+// Macro 71
|
|
|
+Function ListView_SetColumnWidth( hwnd : hwnd; iCol : cint; cx : cint ):BOOL;
|
|
|
+
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_GETHEADER = (LVM_FIRST + 31);
|
|
|
+
|
|
|
+// Macro 72
|
|
|
+Function ListView_GetHeader( hwnd : hwnd):HWND;
|
|
|
+
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_CREATEDRAGIMAGE = (LVM_FIRST + 33);
|
|
|
+
|
|
|
+// Macro 73
|
|
|
+Function ListView_CreateDragImage( hwnd : hwnd; i : cint; lpptUpLeft : LPPOINT):HIMAGELIST;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_GETVIEWRECT = (LVM_FIRST + 34);
|
|
|
+
|
|
|
+// Macro 74
|
|
|
+Function ListView_GetViewRect( hwnd : hwnd;var prc : RECT ):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_GETTEXTCOLOR = (LVM_FIRST + 35);
|
|
|
+
|
|
|
+// Macro 75
|
|
|
+Function ListView_GetTextColor( hwnd : hwnd):COLORREF;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_SETTEXTCOLOR = (LVM_FIRST + 36);
|
|
|
+
|
|
|
+// Macro 76
|
|
|
+Function ListView_SetTextColor( hwnd : hwnd; clrText : COLORREF):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_GETTEXTBKCOLOR = (LVM_FIRST + 37);
|
|
|
+
|
|
|
+// Macro 77
|
|
|
+Function ListView_GetTextBkColor( hwnd : hwnd):COLORREF;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_SETTEXTBKCOLOR = (LVM_FIRST + 38);
|
|
|
+
|
|
|
+// Macro 78
|
|
|
+Function ListView_SetTextBkColor( hwnd : hwnd; clrTextBk : COLORREF):BOOL;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_GETTOPINDEX = (LVM_FIRST + 39);
|
|
|
+
|
|
|
+// Macro 79
|
|
|
+Function ListView_GetTopIndex( hwndLV : hwnd):cint;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_GETCOUNTPERPAGE = (LVM_FIRST + 40);
|
|
|
+
|
|
|
+// Macro 80
|
|
|
+Function ListView_GetCountPerPage( hwndLV : hwnd):cint;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_GETORIGIN = (LVM_FIRST + 41);
|
|
|
+
|
|
|
+// Macro 81
|
|
|
+Function ListView_GetOrigin( hwndLV : hwnd;var ppt : POINT ):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_UPDATE = (LVM_FIRST + 42);
|
|
|
+
|
|
|
+// Macro 82
|
|
|
+Function ListView_Update( hwndLV : hwnd; i : WPARAM):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_SETITEMSTATE = (LVM_FIRST + 43);
|
|
|
+
|
|
|
+// Macro 83
|
|
|
+Procedure ListView_SetItemState(hwndLV :hwnd; i :cint ;data,mask:UINT);
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+// Macro 84
|
|
|
+Procedure ListView_SetCheckState( hwndLV : hwnd; i : cint ; fCheck : bool );
|
|
|
+
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_GETITEMSTATE = (LVM_FIRST + 44);
|
|
|
+
|
|
|
+// Macro 85
|
|
|
+Function ListView_GetItemState( hwndLV : hwnd; i : WPARAM; mask : LPARAM):UINT;
|
|
|
+
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+
|
|
|
+// Macro 86
|
|
|
+Function ListView_GetCheckState( hwndLV : hwnd; i : WPARAM):UINT;
|
|
|
+
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_GETITEMTEXTA = (LVM_FIRST + 45);
|
|
|
+ LVM_GETITEMTEXTW = (LVM_FIRST + 115);
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ LVM_GETITEMTEXT = LVM_GETITEMTEXTW;
|
|
|
+{$ELSE}
|
|
|
+ LVM_GETITEMTEXT = LVM_GETITEMTEXTA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// Macro 87
|
|
|
+Procedure ListView_GetItemText(hwndLV:hwnd; i : WPARAM ;iSubItem : cint ;pszText : Pointer;cchTextMax :cint);
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_SETITEMTEXTA = (LVM_FIRST + 46);
|
|
|
+ LVM_SETITEMTEXTW = (LVM_FIRST + 116);
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ LVM_SETITEMTEXT = LVM_SETITEMTEXTW;
|
|
|
+{$ELSE}
|
|
|
+ LVM_SETITEMTEXT = LVM_SETITEMTEXTA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// Macro 88
|
|
|
+Procedure ListView_SetItemText(hwndLV:hwnd; i : WPARAM ;iSubItem : cint ;pszText : Pointer);
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+// these flags only apply to LVS_OWNERDATA listviews in report or list mode
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVSICF_NOINVALIDATEALL = $00000001;
|
|
|
+ LVSICF_NOSCROLL = $00000002;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+ LVM_SETITEMCOUNT = (LVM_FIRST + 47);
|
|
|
+
|
|
|
+// Macro 89
|
|
|
+Procedure ListView_SetItemCount( hwndLV : hwnd; cItems : WPARAM);
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+
|
|
|
+// Macro 90
|
|
|
+Procedure ListView_SetItemCountEx( hwndLV : hwnd; cItems : WPARAM; dwFlags : LPARAM);
|
|
|
+
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+TYPE
|
|
|
+ PFNLVCOMPARE=Function(a,b,c:LPARAM):cint;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_SORTITEMS = (LVM_FIRST + 48);
|
|
|
+
|
|
|
+// Macro 91
|
|
|
+Function ListView_SortItems( hwndLV : hwnd;pfnCompare : PFNLVCOMPARE; lPrm : LPARAM):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_SETITEMPOSITION32 = (LVM_FIRST + 49);
|
|
|
+
|
|
|
+// Macro 92
|
|
|
+Procedure ListView_SetItemPosition32(hwndLV:hwnd; i:cint;x0,y0:long);
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_GETSELECTEDCOUNT = (LVM_FIRST + 50);
|
|
|
+
|
|
|
+// Macro 93
|
|
|
+Function ListView_GetSelectedCount( hwndLV : hwnd):UINT;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_GETITEMSPACING = (LVM_FIRST + 51);
|
|
|
+
|
|
|
+// Macro 94
|
|
|
+Function ListView_GetItemSpacing( hwndLV : hwnd; fSmall : cint ):DWORD;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_GETISEARCHSTRINGA = (LVM_FIRST + 52);
|
|
|
+ LVM_GETISEARCHSTRINGW = (LVM_FIRST + 117);
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ LVM_GETISEARCHSTRING = LVM_GETISEARCHSTRINGW;
|
|
|
+{$ELSE}
|
|
|
+ LVM_GETISEARCHSTRING = LVM_GETISEARCHSTRINGA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// Macro 95
|
|
|
+Function ListView_GetISearchString( hwndLV : hwnd; lpsz : LPTSTR):BOOL;
|
|
|
+
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_SETICONSPACING = (LVM_FIRST + 53);
|
|
|
+// -1 for cx and cy means we'll use the default (system settings)
|
|
|
+// 0 for cx or cy means use the current setting (allows you to change just one param)
|
|
|
+
|
|
|
+// Macro 96
|
|
|
+Function ListView_SetIconSpacing( hwndLV : hwnd; cx, cy : cint ):DWORD;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_SETEXTENDEDLISTVIEWSTYLE = (LVM_FIRST + 54); // optional wParam == mask
|
|
|
+
|
|
|
+// Macro 97
|
|
|
+Function ListView_SetExtendedListViewStyle( hwndLV : hwnd; dw : cint ):DWORD;
|
|
|
+
|
|
|
+{$ifdef ie4plus}
|
|
|
+
|
|
|
+// Macro 98
|
|
|
+Function ListView_SetExtendedListViewStyleEx( hwndLV : hwnd; dwMask, dw : cint ):DWORD;
|
|
|
+
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_GETEXTENDEDLISTVIEWSTYLE = (LVM_FIRST + 55);
|
|
|
+
|
|
|
+// Macro 99
|
|
|
+Function ListView_GetExtendedListViewStyle( hwndLV : hwnd):DWORD;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVS_EX_GRIDLINES = $00000001;
|
|
|
+ LVS_EX_SUBITEMIMAGES = $00000002;
|
|
|
+ LVS_EX_CHECKBOXES = $00000004;
|
|
|
+ LVS_EX_TRACKSELECT = $00000008;
|
|
|
+ LVS_EX_HEADERDRAGDROP = $00000010;
|
|
|
+ LVS_EX_FULLROWSELECT = $00000020; // applies to report mode only
|
|
|
+ LVS_EX_ONECLICKACTIVATE = $00000040;
|
|
|
+ LVS_EX_TWOCLICKACTIVATE = $00000080;
|
|
|
+{$ifdef ie4plus}
|
|
|
+ LVS_EX_FLATSB = $00000100;
|
|
|
+ LVS_EX_REGIONAL = $00000200;
|
|
|
+ LVS_EX_INFOTIP = $00000400; // listview does InfoTips for you
|
|
|
+ LVS_EX_UNDERLINEHOT = $00000800;
|
|
|
+ LVS_EX_UNDERLINECOLD = $00001000;
|
|
|
+ LVS_EX_MULTIWORKAREAS = $00002000;
|
|
|
+{$ENDIF}
|
|
|
+{$ifdef ie5plus}
|
|
|
+ LVS_EX_LABELTIP = $00004000; // listview unfolds partly hidden labels if it does not have infotip text
|
|
|
+ LVS_EX_BORDERSELECT = $00008000; // border selection style instead of highlight
|
|
|
+{$ENDIF} // End (_WIN32_IE >= 0x0500)
|
|
|
+{$ifdef win32xp}
|
|
|
+ LVS_EX_DOUBLEBUFFER = $00010000;
|
|
|
+ LVS_EX_HIDELABELS = $00020000;
|
|
|
+ LVS_EX_SINGLEROW = $00040000;
|
|
|
+ LVS_EX_SNAPTOGRID = $00080000; // Icons automatically snap to grid.
|
|
|
+ LVS_EX_SIMPLESELECT = $00100000; // Also changes overlay rendering to top right for icon mode.
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+ LVM_GETSUBITEMRECT = (LVM_FIRST + 56);
|
|
|
+
|
|
|
+// Macro 100
|
|
|
+Function ListView_GetSubItemRect( hwnd : hwnd; iItem : cint;iSubItem, code :cint ;prc:LPRECT):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_SUBITEMHITTEST = (LVM_FIRST + 57);
|
|
|
+
|
|
|
+// Macro 101
|
|
|
+Function ListView_SubItemHitTest( hwnd : hwnd; plvhti : LPLVHITTESTINFO):cint;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_SETCOLUMNORDERARRAY = (LVM_FIRST + 58);
|
|
|
+
|
|
|
+// Macro 102
|
|
|
+Function ListView_SetColumnOrderArray( hwnd : hwnd; iCount : WPARAM; pi : LPINT):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_GETCOLUMNORDERARRAY = (LVM_FIRST + 59);
|
|
|
+
|
|
|
+// Macro 103
|
|
|
+Function ListView_GetColumnOrderArray( hwnd : hwnd; iCount : WPARAM; pi : LPINT):BOOL;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_SETHOTITEM = (LVM_FIRST + 60);
|
|
|
+
|
|
|
+// Macro 104
|
|
|
+Function ListView_SetHotItem( hwnd : hwnd; i : WPARAM):cint;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_GETHOTITEM = (LVM_FIRST + 61);
|
|
|
+
|
|
|
+// Macro 105
|
|
|
+Function ListView_GetHotItem( hwnd : hwnd):cint;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_SETHOTCURSOR = (LVM_FIRST + 62);
|
|
|
+
|
|
|
+// Macro 106
|
|
|
+Function ListView_SetHotCursor( hwnd : hwnd; hcur : LPARAM):HCURSOR;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_GETHOTCURSOR = (LVM_FIRST + 63);
|
|
|
+
|
|
|
+// Macro 107
|
|
|
+Function ListView_GetHotCursor( hwnd : hwnd):HCURSOR;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_APPROXIMATEVIEWRECT = (LVM_FIRST + 64);
|
|
|
+
|
|
|
+// Macro 108
|
|
|
+Function ListView_ApproximateViewRect( hwnd : hwnd; iWidth, iHeight, iCount : cint ):DWORD;
|
|
|
+
|
|
|
+{$ENDIF} // _WIN32_IE >= 0x0300
|
|
|
+
|
|
|
+{$ifdef ie4plus}
|
|
|
+
|
|
|
+CONST
|
|
|
+ LV_MAX_WORKAREAS = 16;
|
|
|
+ LVM_SETWORKAREAS = (LVM_FIRST + 65);
|
|
|
+
|
|
|
+// Macro 109
|
|
|
+Function ListView_SetWorkAreas( hwnd : hwnd; nWorkAreas : cint;var prc : RECT ):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_GETWORKAREAS = (LVM_FIRST + 70);
|
|
|
+
|
|
|
+// Macro 110
|
|
|
+Function ListView_GetWorkAreas( hwnd : hwnd; nWorkAreas : cint;var prc : RECT ):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_GETNUMBEROFWORKAREAS = (LVM_FIRST + 73);
|
|
|
+
|
|
|
+// Macro 111
|
|
|
+Function ListView_GetNumberOfWorkAreas( hwnd : hwnd;var pnWorkAreas : UINT ):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_GETSELECTIONMARK = (LVM_FIRST + 66);
|
|
|
+
|
|
|
+// Macro 112
|
|
|
+Function ListView_GetSelectionMark( hwnd : hwnd):cint;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_SETSELECTIONMARK = (LVM_FIRST + 67);
|
|
|
+
|
|
|
+// Macro 113
|
|
|
+Function ListView_SetSelectionMark( hwnd : hwnd; i : LPARAM):cint;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_SETHOVERTIME = (LVM_FIRST + 71);
|
|
|
+
|
|
|
+// Macro 114
|
|
|
+Function ListView_SetHoverTime( hwndLV : hwnd; dwHoverTimeMs : LPARAM):DWORD;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_GETHOVERTIME = (LVM_FIRST + 72);
|
|
|
+
|
|
|
+// Macro 115
|
|
|
+Function ListView_GetHoverTime( hwndLV : hwnd):DWORD;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_SETTOOLTIPS = (LVM_FIRST + 74);
|
|
|
+
|
|
|
+// Macro 116
|
|
|
+Function ListView_SetToolTips( hwndLV : hwnd; hwndNewHwnd : WPARAM):HWND;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_GETTOOLTIPS = (LVM_FIRST + 78);
|
|
|
+
|
|
|
+// Macro 117
|
|
|
+Function ListView_GetToolTips( hwndLV : hwnd):HWND;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_SORTITEMSEX = (LVM_FIRST + 81);
|
|
|
+
|
|
|
+// Macro 118
|
|
|
+Function ListView_SortItemsEx( hwndLV : hwnd; _pfnCompare : PFNLVCOMPARE; _lPrm : LPARAM):BOOL;
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagLVBKIMAGEA = Record
|
|
|
+ ulFlags : ULONG; // LVBKIF_*
|
|
|
+ hbm : HBITMAP;
|
|
|
+ pszImage : LPSTR;
|
|
|
+ cchImageMax : UINT;
|
|
|
+ xOffsetPercent : cint;
|
|
|
+ yOffsetPercent : cint;
|
|
|
+ END;
|
|
|
+ LVBKIMAGEA = tagLVBKIMAGEA;
|
|
|
+ LPLVBKIMAGEA = ^tagLVBKIMAGEA;
|
|
|
+ TLVBKIMAGEA = tagLVBKIMAGEA;
|
|
|
+ PLVBKIMAGEA = ^tagLVBKIMAGEA;
|
|
|
+
|
|
|
+ tagLVBKIMAGEW = Record
|
|
|
+ ulFlags : ULONG; // LVBKIF_*
|
|
|
+ hbm : HBITMAP;
|
|
|
+ pszImage : LPWSTR;
|
|
|
+ cchImageMax : UINT;
|
|
|
+ xOffsetPercent : cint;
|
|
|
+ yOffsetPercent : cint;
|
|
|
+ END;
|
|
|
+ LVBKIMAGEW = tagLVBKIMAGEW;
|
|
|
+ LPLVBKIMAGEW = ^tagLVBKIMAGEW;
|
|
|
+ TLVBKIMAGEW = tagLVBKIMAGEW;
|
|
|
+ PLVBKIMAGEW = ^tagLVBKIMAGEW;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVBKIF_SOURCE_NONE = $00000000;
|
|
|
+ LVBKIF_SOURCE_HBITMAP = $00000001;
|
|
|
+ LVBKIF_SOURCE_URL = $00000002;
|
|
|
+ LVBKIF_SOURCE_MASK = $00000003;
|
|
|
+ LVBKIF_STYLE_NORMAL = $00000000;
|
|
|
+ LVBKIF_STYLE_TILE = $00000010;
|
|
|
+ LVBKIF_STYLE_MASK = $00000010;
|
|
|
+{$ifdef win32xp}
|
|
|
+ LVBKIF_FLAG_TILEOFFSET = $00000100;
|
|
|
+ LVBKIF_TYPE_WATERMARK = $10000000;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+ LVM_SETBKIMAGEA = (LVM_FIRST + 68);
|
|
|
+ LVM_SETBKIMAGEW = (LVM_FIRST + 138);
|
|
|
+ LVM_GETBKIMAGEA = (LVM_FIRST + 69);
|
|
|
+ LVM_GETBKIMAGEW = (LVM_FIRST + 139);
|
|
|
+
|
|
|
+{$ifdef win32xp}
|
|
|
+ LVM_SETSELECTEDCOLUMN = (LVM_FIRST + 140);
|
|
|
+
|
|
|
+// Macro 119
|
|
|
+Procedure ListView_SetSelectedColumn( hwnd : hwnd; iCol : WPARAM);
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_SETTILEWIDTH = (LVM_FIRST + 141);
|
|
|
+
|
|
|
+// Macro 120
|
|
|
+Procedure ListView_SetTileWidth( hwnd : hwnd; cpWidth : WPARAM);
|
|
|
+
|
|
|
+CONST
|
|
|
+ LV_VIEW_ICON = $0000;
|
|
|
+ LV_VIEW_DETAILS = $0001;
|
|
|
+ LV_VIEW_SMALLICON = $0002;
|
|
|
+ LV_VIEW_LIST = $0003;
|
|
|
+ LV_VIEW_TILE = $0004;
|
|
|
+ LV_VIEW_MAX = $0004;
|
|
|
+ LVM_SETVIEW = (LVM_FIRST + 142);
|
|
|
+
|
|
|
+// Macro 121
|
|
|
+Function ListView_SetView( hwnd : hwnd; iView : DWORD):DWORD;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_GETVIEW = (LVM_FIRST + 143);
|
|
|
+
|
|
|
+// Macro 122
|
|
|
+Function ListView_GetView( hwnd : hwnd):DWORD;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVGF_NONE = $00000000;
|
|
|
+ LVGF_HEADER = $00000001;
|
|
|
+ LVGF_FOOTER = $00000002;
|
|
|
+ LVGF_STATE = $00000004;
|
|
|
+ LVGF_ALIGN = $00000008;
|
|
|
+ LVGF_GROUPID = $00000010;
|
|
|
+
|
|
|
+ LVGS_NORMAL = $00000000;
|
|
|
+ LVGS_COLLAPSED = $00000001;
|
|
|
+ LVGS_HIDDEN = $00000002;
|
|
|
+
|
|
|
+ LVGA_HEADER_LEFT = $00000001;
|
|
|
+ LVGA_HEADER_CENTER = $00000002;
|
|
|
+ LVGA_HEADER_RIGHT = $00000004; // Don't forget to validate exclusivity
|
|
|
+ LVGA_FOOTER_LEFT = $00000008;
|
|
|
+ LVGA_FOOTER_CENTER = $00000010;
|
|
|
+ LVGA_FOOTER_RIGHT = $00000020; // Don't forget to validate exclusivity
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagLVGROUP = Record
|
|
|
+ cbSize : UINT;
|
|
|
+ mask : UINT;
|
|
|
+ pszHeader : LPWSTR;
|
|
|
+ cchHeader : cint;
|
|
|
+ pszFooter : LPWSTR;
|
|
|
+ cchFooter : cint;
|
|
|
+ iGroupId : cint;
|
|
|
+ stateMask : UINT;
|
|
|
+ state : UINT;
|
|
|
+ uAlign : UINT;
|
|
|
+ END;
|
|
|
+ LVGROUP = tagLVGROUP;
|
|
|
+ PLVGROUP = ^tagLVGROUP;
|
|
|
+ TLVGROUP = tagLVGROUP;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_INSERTGROUP = (LVM_FIRST + 145);
|
|
|
+
|
|
|
+// Macro 123
|
|
|
+Procedure ListView_InsertGroup( hwnd : hwnd; index : WPARAM; pgrp : LPARAM);
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_SETGROUPINFO = (LVM_FIRST + 147);
|
|
|
+
|
|
|
+// Macro 124
|
|
|
+Procedure ListView_SetGroupInfo( hwnd : hwnd; iGroupId : WPARAM; pgrp : LPARAM);
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_GETGROUPINFO = (LVM_FIRST + 149);
|
|
|
+
|
|
|
+// Macro 125
|
|
|
+Procedure ListView_GetGroupInfo( hwnd : hwnd; iGroupId : WPARAM; pgrp : LPARAM);
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_REMOVEGROUP = (LVM_FIRST + 150);
|
|
|
+
|
|
|
+// Macro 126
|
|
|
+Procedure ListView_RemoveGroup( hwnd : hwnd; iGroupId : WPARAM);
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_MOVEGROUP = (LVM_FIRST + 151);
|
|
|
+
|
|
|
+// Macro 127
|
|
|
+Procedure ListView_MoveGroup( hwnd : hwnd; iGroupId : WPARAM; toIndex : LPARAM);
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_MOVEITEMTOGROUP = (LVM_FIRST + 154);
|
|
|
+
|
|
|
+// Macro 128
|
|
|
+Procedure ListView_MoveItemToGroup( hwnd : hwnd; idItemFrom : WPARAM; idGroupTo : LPARAM);
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVGMF_NONE = $00000000;
|
|
|
+ LVGMF_BORDERSIZE = $00000001;
|
|
|
+ LVGMF_BORDERCOLOR = $00000002;
|
|
|
+ LVGMF_TEXTCOLOR = $00000004;
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagLVGROUPMETRICS = Record
|
|
|
+ cbSize : UINT;
|
|
|
+ mask : UINT;
|
|
|
+ Left : UINT;
|
|
|
+ Top : UINT;
|
|
|
+ Right : UINT;
|
|
|
+ Bottom : UINT;
|
|
|
+ crLeft : COLORREF;
|
|
|
+ crTop : COLORREF;
|
|
|
+ crRight : COLORREF;
|
|
|
+ crBottom : COLORREF;
|
|
|
+ crHeader : COLORREF;
|
|
|
+ crFooter : COLORREF;
|
|
|
+ END;
|
|
|
+ LVGROUPMETRICS = tagLVGROUPMETRICS;
|
|
|
+ PLVGROUPMETRICS = ^tagLVGROUPMETRICS;
|
|
|
+ TLVGROUPMETRICS = tagLVGROUPMETRICS;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_SETGROUPMETRICS = (LVM_FIRST + 155);
|
|
|
+
|
|
|
+// Macro 129
|
|
|
+Procedure ListView_SetGroupMetrics( hwnd : hwnd; pGroupMetrics : LPARAM);
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_GETGROUPMETRICS = (LVM_FIRST + 156);
|
|
|
+
|
|
|
+// Macro 130
|
|
|
+Procedure ListView_GetGroupMetrics( hwnd : hwnd; pGroupMetrics : LPARAM);
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_ENABLEGROUPVIEW = (LVM_FIRST + 157);
|
|
|
+
|
|
|
+// Macro 131
|
|
|
+Procedure ListView_EnableGroupView( hwnd : hwnd; fEnable : WPARAM);
|
|
|
+
|
|
|
+TYPE
|
|
|
+ PFNLVGROUPCOMPARE = function(i,j:cint;k:pointer):cint; StdCall;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_SORTGROUPS = (LVM_FIRST + 158);
|
|
|
+
|
|
|
+// Macro 132
|
|
|
+Procedure ListView_SortGroups( hwnd : hwnd; _pfnGroupCompate : WPARAM; _plv : LPARAM);
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagLVINSERTGROUPSORTED = Record
|
|
|
+ pfnGroupCompare : PFNLVGROUPCOMPARE;
|
|
|
+ pvData : Pointer;
|
|
|
+ lvGroup : LVGROUP;
|
|
|
+ END;
|
|
|
+ LVINSERTGROUPSORTED = tagLVINSERTGROUPSORTED;
|
|
|
+ PLVINSERTGROUPSORTED = ^tagLVINSERTGROUPSORTED;
|
|
|
+ TLVINSERTGROUPSORTED = tagLVINSERTGROUPSORTED;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_INSERTGROUPSORTED = (LVM_FIRST + 159);
|
|
|
+
|
|
|
+// Macro 133
|
|
|
+Procedure ListView_InsertGroupSorted( hwnd : hwnd; structInsert : WPARAM);
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_REMOVEALLGROUPS = (LVM_FIRST + 160);
|
|
|
+
|
|
|
+// Macro 134
|
|
|
+Procedure ListView_RemoveAllGroups( hwnd : hwnd);
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_HASGROUP = (LVM_FIRST + 161);
|
|
|
+
|
|
|
+// Macro 135
|
|
|
+Procedure ListView_HasGroup( hwnd : hwnd; dwGroupId : DWORD );
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVTVIF_AUTOSIZE = $00000000;
|
|
|
+ LVTVIF_FIXEDWIDTH = $00000001;
|
|
|
+ LVTVIF_FIXEDHEIGHT = $00000002;
|
|
|
+ LVTVIF_FIXEDSIZE = $00000003;
|
|
|
+
|
|
|
+ LVTVIM_TILESIZE = $00000001;
|
|
|
+ LVTVIM_COLUMNS = $00000002;
|
|
|
+ LVTVIM_LABELMARGIN = $00000004;
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagLVTILEVIEWINFO = Record
|
|
|
+ cbSize : UINT;
|
|
|
+ dwMask : DWORD; //LVTVIM_*
|
|
|
+ dwFlags : DWORD; //LVTVIF_*
|
|
|
+ sizeTile : SIZE;
|
|
|
+ cLines : cint;
|
|
|
+ rcLabelMargin : RECT;
|
|
|
+ END;
|
|
|
+ LVTILEVIEWINFO = tagLVTILEVIEWINFO;
|
|
|
+ PLVTILEVIEWINFO = ^tagLVTILEVIEWINFO;
|
|
|
+ TLVTILEVIEWINFO = tagLVTILEVIEWINFO;
|
|
|
+
|
|
|
+
|
|
|
+ tagLVTILEINFO = Record
|
|
|
+ cbSize : UINT;
|
|
|
+ iItem : cint;
|
|
|
+ cColumns : UINT;
|
|
|
+ puColumns : PUINT;
|
|
|
+ END;
|
|
|
+ LVTILEINFO = tagLVTILEINFO;
|
|
|
+ PLVTILEINFO = ^tagLVTILEINFO;
|
|
|
+ TLVTILEINFO = tagLVTILEINFO;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_SETTILEVIEWINFO = (LVM_FIRST + 162);
|
|
|
+
|
|
|
+// Macro 136
|
|
|
+Procedure ListView_SetTileViewInfo( hwnd : hwnd; ptvi : LPARAM);
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_GETTILEVIEWINFO = (LVM_FIRST + 163);
|
|
|
+
|
|
|
+// Macro 137
|
|
|
+Procedure ListView_GetTileViewInfo( hwnd : hwnd; ptvi : LPARAM);
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_SETTILEINFO = (LVM_FIRST + 164);
|
|
|
+
|
|
|
+// Macro 138
|
|
|
+Procedure ListView_SetTileInfo( hwnd : hwnd; pti : LPARAM);
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_GETTILEINFO = (LVM_FIRST + 165);
|
|
|
+
|
|
|
+// Macro 139
|
|
|
+Procedure ListView_GetTileInfo( hwnd : hwnd; pti : LPARAM);
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ LVINSERTMARK = Record
|
|
|
+ cbSize : UINT;
|
|
|
+ dwFlags : DWORD;
|
|
|
+ iItem : cint;
|
|
|
+ dwReserved : DWORD;
|
|
|
+ END;
|
|
|
+ LPLVINSERTMARK = ^LVINSERTMARK;
|
|
|
+ TLVINSERTMARK = LVINSERTMARK;
|
|
|
+ PLVINSERTMARK = ^LVINSERTMARK;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVIM_AFTER = $00000001; // TRUE = insert After iItem, otherwise before
|
|
|
+
|
|
|
+ LVM_SETINSERTMARK = (LVM_FIRST + 166);
|
|
|
+
|
|
|
+// Macro 140
|
|
|
+Function ListView_SetInsertMark( hwnd : hwnd; lvim : lparam ):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_GETINSERTMARK = (LVM_FIRST + 167);
|
|
|
+
|
|
|
+// Macro 141
|
|
|
+Function ListView_GetInsertMark( hwnd : hwnd; lvim : lparam ):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_INSERTMARKHITTEST = (LVM_FIRST + 168);
|
|
|
+
|
|
|
+// Macro 142
|
|
|
+Function ListView_InsertMarkHitTest( hwnd : hwnd; point : LPPOINT; lvim : LPLVINSERTMARK):cint;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_GETINSERTMARKRECT = (LVM_FIRST + 169);
|
|
|
+
|
|
|
+// Macro 143
|
|
|
+Function ListView_GetInsertMarkRect( hwnd : hwnd; rc : LPRECT):cint;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_SETINSERTMARKCOLOR = (LVM_FIRST + 170);
|
|
|
+
|
|
|
+// Macro 144
|
|
|
+Function ListView_SetInsertMarkColor( hwnd : hwnd; color : COLORREF):COLORREF;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_GETINSERTMARKCOLOR = (LVM_FIRST + 171);
|
|
|
+
|
|
|
+// Macro 145
|
|
|
+Function ListView_GetInsertMarkColor( hwnd : hwnd):COLORREF;
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagLVSETINFOTIP = Record
|
|
|
+ cbSize : UINT;
|
|
|
+ dwFlags : DWORD;
|
|
|
+ pszText : LPWSTR;
|
|
|
+ iItem : cint;
|
|
|
+ iSubItem : cint;
|
|
|
+ END;
|
|
|
+ LVSETINFOTIP = tagLVSETINFOTIP;
|
|
|
+ PLVSETINFOTIP = ^tagLVSETINFOTIP;
|
|
|
+ TLVSETINFOTIP = tagLVSETINFOTIP;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_SETINFOTIP = (LVM_FIRST + 173);
|
|
|
+
|
|
|
+// Macro 146
|
|
|
+Function ListView_SetInfoTip( hwndLV : hwnd; plvInfoTip : LPARAM):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_GETSELECTEDCOLUMN = (LVM_FIRST + 174);
|
|
|
+
|
|
|
+// Macro 147
|
|
|
+Function ListView_GetSelectedColumn( hwnd : hwnd):UINT;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_ISGROUPVIEWENABLED = (LVM_FIRST + 175);
|
|
|
+
|
|
|
+// Macro 148
|
|
|
+Function ListView_IsGroupViewEnabled( hwnd : hwnd):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_GETOUTLINECOLOR = (LVM_FIRST + 176);
|
|
|
+
|
|
|
+// Macro 149
|
|
|
+Function ListView_GetOutlineColor( hwnd : hwnd):COLORREF;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_SETOUTLINECOLOR = (LVM_FIRST + 177);
|
|
|
+
|
|
|
+// Macro 150
|
|
|
+Function ListView_SetOutlineColor( hwnd : hwnd; color : COLORREF):COLORREF;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_CANCELEDITLABEL = (LVM_FIRST + 179);
|
|
|
+
|
|
|
+// Macro 151
|
|
|
+Procedure ListView_CancelEditLabel( hwnd : hwnd);
|
|
|
+
|
|
|
+// These next to methods make it easy to identify an item that can be repositioned
|
|
|
+// within listview. For example: Many developers use the lParam to store an identifier that is
|
|
|
+// unique. Unfortunatly, in order to find this item, they have to iterate through all of the items
|
|
|
+// in the listview. Listview will maintain a unique identifier. The upper bound is the size of a DWORD.
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_MAPINDEXTOID = (LVM_FIRST + 180);
|
|
|
+
|
|
|
+// Macro 152
|
|
|
+Function ListView_MapIndexToID( hwnd : hwnd; index : WPARAM):UINT;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVM_MAPIDTOINDEX = (LVM_FIRST + 181);
|
|
|
+
|
|
|
+// Macro 153
|
|
|
+Function ListView_MapIDToIndex( hwnd : hwnd; id : WPARAM):UINT;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+Type
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ LVBKIMAGE = LVBKIMAGEW;
|
|
|
+ LPLVBKIMAGE = LPLVBKIMAGEW;
|
|
|
+CONST
|
|
|
+ LVM_SETBKIMAGE = LVM_SETBKIMAGEW;
|
|
|
+ LVM_GETBKIMAGE = LVM_GETBKIMAGEW;
|
|
|
+{$ELSE}
|
|
|
+ LVBKIMAGE = LVBKIMAGEA;
|
|
|
+ LPLVBKIMAGE = LPLVBKIMAGEA;
|
|
|
+CONST
|
|
|
+ LVM_SETBKIMAGE = LVM_SETBKIMAGEA;
|
|
|
+ LVM_GETBKIMAGE = LVM_GETBKIMAGEA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+// Macro 154
|
|
|
+Function ListView_SetBkImage( hwnd : hwnd; plvbki : LPARAM):BOOL;
|
|
|
+
|
|
|
+// Macro 155
|
|
|
+Function ListView_GetBkImage( hwnd : hwnd; plvbki : LPARAM):BOOL;
|
|
|
+
|
|
|
+{$ENDIF} // _WIN32_IE >= 0x0400
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagNMLISTVIEW = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ iItem : cint;
|
|
|
+ iSubItem : cint;
|
|
|
+ uNewState : UINT;
|
|
|
+ uOldState : UINT;
|
|
|
+ uChanged : UINT;
|
|
|
+ ptAction : POINT;
|
|
|
+ lParam : LPARAM;
|
|
|
+ END;
|
|
|
+ NMLISTVIEW = tagNMLISTVIEW;
|
|
|
+ LPNMLISTVIEW = ^tagNMLISTVIEW;
|
|
|
+ TNMLISTVIEW = tagNMLISTVIEW;
|
|
|
+ PNMLISTVIEW = ^tagNMLISTVIEW;
|
|
|
+
|
|
|
+{$ifdef IE4plus}
|
|
|
+// NMITEMACTIVATE is used instead of NMLISTVIEW in IE >= 0x400
|
|
|
+// therefore all the fields are the same except for extra uKeyFlags
|
|
|
+// they are used to store key flags at the time of the single click with
|
|
|
+// delayed activation - because by the time the timer goes off a user may
|
|
|
+// not hold the keys (shift, ctrl) any more
|
|
|
+ tagNMITEMACTIVATE = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ iItem : cint;
|
|
|
+ iSubItem : cint;
|
|
|
+ uNewState : UINT;
|
|
|
+ uOldState : UINT;
|
|
|
+ uChanged : UINT;
|
|
|
+ ptAction : POINT;
|
|
|
+ lParam : LPARAM;
|
|
|
+ uKeyFlags : UINT;
|
|
|
+ END;
|
|
|
+ NMITEMACTIVATE = tagNMITEMACTIVATE;
|
|
|
+ LPNMITEMACTIVATE = ^tagNMITEMACTIVATE;
|
|
|
+ TNMITEMACTIVATE = tagNMITEMACTIVATE;
|
|
|
+ PNMITEMACTIVATE = ^tagNMITEMACTIVATE;
|
|
|
+
|
|
|
+// key flags stored in uKeyFlags
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVKF_ALT = $0001;
|
|
|
+ LVKF_CONTROL = $0002;
|
|
|
+ LVKF_SHIFT = $0004;
|
|
|
+{$ENDIF} //(_WIN32_IE >= 0x0400)
|
|
|
+Type
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+ LPNM_LISTVIEW = LPNMLISTVIEW;
|
|
|
+ NM_LISTVIEW = NMLISTVIEW;
|
|
|
+{$ELSE}
|
|
|
+ tagNMLISTVIEW = _NM_LISTVIEW;
|
|
|
+ NMLISTVIEW = NM_LISTVIEW;
|
|
|
+ LPNMLISTVIEW = LPNM_LISTVIEW;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+// #define NMLVCUSTOMDRAW_V3_SIZE CCSIZEOF_STRUCT(NMLVCUSTOMDRW, clrTextBk)
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagNMLVCUSTOMDRAW = Record
|
|
|
+ nmcd : NMCUSTOMDRAW;
|
|
|
+ clrText : COLORREF;
|
|
|
+ clrTextBk : COLORREF;
|
|
|
+{$ifdef ie4plus}
|
|
|
+ iSubItem : cint;
|
|
|
+{$ENDIF}
|
|
|
+{$ifdef win32xp}
|
|
|
+ dwItemType : DWORD;
|
|
|
+
|
|
|
+ clrFace : COLORREF;
|
|
|
+ iIconEffect : cint;
|
|
|
+ iIconPhase : cint;
|
|
|
+ iPartId : cint;
|
|
|
+ iStateId : cint;
|
|
|
+
|
|
|
+ rcText : RECT;
|
|
|
+ uAlign : UINT; // Alignment. Use LVGA_HEADER_CENTER, LVGA_HEADER_RIGHT, LVGA_HEADER_LEFT
|
|
|
+{$ENDIF}
|
|
|
+ END;
|
|
|
+ NMLVCUSTOMDRAW = tagNMLVCUSTOMDRAW;
|
|
|
+ LPNMLVCUSTOMDRAW = ^tagNMLVCUSTOMDRAW;
|
|
|
+ TNMLVCUSTOMDRAW = tagNMLVCUSTOMDRAW;
|
|
|
+ PNMLVCUSTOMDRAW = ^tagNMLVCUSTOMDRAW;
|
|
|
+
|
|
|
+
|
|
|
+// dwItemType
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVCDI_ITEM = $00000000;
|
|
|
+ LVCDI_GROUP = $00000001;
|
|
|
+
|
|
|
+// ListView custom draw return values
|
|
|
+ LVCDRF_NOSELECT = $00010000;
|
|
|
+ LVCDRF_NOGROUPFRAME = $00020000;
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagNMLVCACHEHINT = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ iFrom : cint;
|
|
|
+ iTo : cint;
|
|
|
+ END;
|
|
|
+ NMLVCACHEHINT = tagNMLVCACHEHINT;
|
|
|
+ LPNMLVCACHEHINT = ^tagNMLVCACHEHINT;
|
|
|
+ TNMLVCACHEHINT = tagNMLVCACHEHINT;
|
|
|
+ PNMLVCACHEHINT = ^tagNMLVCACHEHINT;
|
|
|
+
|
|
|
+
|
|
|
+ LPNM_CACHEHINT = LPNMLVCACHEHINT;
|
|
|
+ PNM_CACHEHINT = LPNMLVCACHEHINT;
|
|
|
+
|
|
|
+ NM_CACHEHINT = NMLVCACHEHINT;
|
|
|
+
|
|
|
+ tagNMLVFINDITEMA = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ iStart : cint;
|
|
|
+ lvfi : LVFINDINFOA;
|
|
|
+ END;
|
|
|
+ NMLVFINDITEMA = tagNMLVFINDITEMA;
|
|
|
+ LPNMLVFINDITEMA = ^tagNMLVFINDITEMA;
|
|
|
+ TNMLVFINDITEMA = tagNMLVFINDITEMA;
|
|
|
+ PNMLVFINDITEMA = ^tagNMLVFINDITEMA;
|
|
|
+
|
|
|
+
|
|
|
+ tagNMLVFINDITEMW = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ iStart : cint;
|
|
|
+ lvfi : LVFINDINFOW;
|
|
|
+ END;
|
|
|
+ NMLVFINDITEMW = tagNMLVFINDITEMW;
|
|
|
+ LPNMLVFINDITEMW = ^tagNMLVFINDITEMW;
|
|
|
+ TNMLVFINDITEMW = tagNMLVFINDITEMW;
|
|
|
+ PNMLVFINDITEMW = ^tagNMLVFINDITEMW;
|
|
|
+
|
|
|
+
|
|
|
+ PNM_FINDITEMA = LPNMLVFINDITEMA;
|
|
|
+ LPNM_FINDITEMA = LPNMLVFINDITEMA;
|
|
|
+ NM_FINDITEMA = NMLVFINDITEMA;
|
|
|
+
|
|
|
+ PNM_FINDITEMW = LPNMLVFINDITEMW;
|
|
|
+ LPNM_FINDITEMW = LPNMLVFINDITEMW;
|
|
|
+ NM_FINDITEMW = NMLVFINDITEMW;
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ PNM_FINDITEM = PNM_FINDITEMW;
|
|
|
+ LPNM_FINDITEM = LPNM_FINDITEMW;
|
|
|
+ NM_FINDITEM = NM_FINDITEMW;
|
|
|
+ NMLVFINDITEM = NMLVFINDITEMW;
|
|
|
+ LPNMLVFINDITEM = LPNMLVFINDITEMW;
|
|
|
+{$ELSE}
|
|
|
+ PNM_FINDITEM = PNM_FINDITEMA;
|
|
|
+ LPNM_FINDITEM = LPNM_FINDITEMA;
|
|
|
+ NM_FINDITEM = NM_FINDITEMA;
|
|
|
+ NMLVFINDITEM = NMLVFINDITEMA;
|
|
|
+ LPNMLVFINDITEM = LPNMLVFINDITEMA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+ tagNMLVODSTATECHANGE = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ iFrom : cint;
|
|
|
+ iTo : cint;
|
|
|
+ uNewState : UINT;
|
|
|
+ uOldState : UINT;
|
|
|
+ END;
|
|
|
+ NMLVODSTATECHANGE = tagNMLVODSTATECHANGE;
|
|
|
+ LPNMLVODSTATECHANGE = ^tagNMLVODSTATECHANGE;
|
|
|
+ TNMLVODSTATECHANGE = tagNMLVODSTATECHANGE;
|
|
|
+ PNMLVODSTATECHANGE = ^tagNMLVODSTATECHANGE;
|
|
|
+
|
|
|
+
|
|
|
+ PNM_ODSTATECHANGE = LPNMLVODSTATECHANGE;
|
|
|
+ LPNM_ODSTATECHANGE = LPNMLVODSTATECHANGE;
|
|
|
+
|
|
|
+
|
|
|
+ NM_ODSTATECHANGE = NMLVODSTATECHANGE;
|
|
|
+{$ENDIF} // _WIN32_IE >= 0x0300
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVN_ITEMCHANGING = (LVN_FIRST-0);
|
|
|
+ LVN_ITEMCHANGED = (LVN_FIRST-1);
|
|
|
+ LVN_INSERTITEM = (LVN_FIRST-2);
|
|
|
+ LVN_DELETEITEM = (LVN_FIRST-3);
|
|
|
+ LVN_DELETEALLITEMS = (LVN_FIRST-4);
|
|
|
+ LVN_BEGINLABELEDITA = (LVN_FIRST-5);
|
|
|
+ LVN_BEGINLABELEDITW = (LVN_FIRST-75);
|
|
|
+ LVN_ENDLABELEDITA = (LVN_FIRST-6);
|
|
|
+ LVN_ENDLABELEDITW = (LVN_FIRST-76);
|
|
|
+ LVN_COLUMNCLICK = (LVN_FIRST-8);
|
|
|
+ LVN_BEGINDRAG = (LVN_FIRST-9);
|
|
|
+ LVN_BEGINRDRAG = (LVN_FIRST-11);
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+ LVN_ODCACHEHINT = (LVN_FIRST-13);
|
|
|
+ LVN_ODFINDITEMA = (LVN_FIRST-52);
|
|
|
+ LVN_ODFINDITEMW = (LVN_FIRST-79);
|
|
|
+
|
|
|
+ LVN_ITEMACTIVATE = (LVN_FIRST-14);
|
|
|
+ LVN_ODSTATECHANGED = (LVN_FIRST-15);
|
|
|
+
|
|
|
+Const
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ LVN_ODFINDITEM = LVN_ODFINDITEMW;
|
|
|
+{$ELSE}
|
|
|
+ LVN_ODFINDITEM = LVN_ODFINDITEMA;
|
|
|
+{$ENDIF}
|
|
|
+{$ENDIF} // _WIN32_IE >= 0x0300
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+{$ifdef ie4plus}
|
|
|
+ LVN_HOTTRACK = (LVN_FIRST-21);
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+ LVN_GETDISPINFOA = (LVN_FIRST-50);
|
|
|
+ LVN_GETDISPINFOW = (LVN_FIRST-77);
|
|
|
+ LVN_SETDISPINFOA = (LVN_FIRST-51);
|
|
|
+ LVN_SETDISPINFOW = (LVN_FIRST-78);
|
|
|
+
|
|
|
+Const
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ LVN_BEGINLABELEDIT = LVN_BEGINLABELEDITW;
|
|
|
+ LVN_ENDLABELEDIT = LVN_ENDLABELEDITW;
|
|
|
+ LVN_GETDISPINFO = LVN_GETDISPINFOW;
|
|
|
+ LVN_SETDISPINFO = LVN_SETDISPINFOW;
|
|
|
+{$ELSE}
|
|
|
+ LVN_BEGINLABELEDIT = LVN_BEGINLABELEDITA;
|
|
|
+ LVN_ENDLABELEDIT = LVN_ENDLABELEDITA;
|
|
|
+ LVN_GETDISPINFO = LVN_GETDISPINFOA;
|
|
|
+ LVN_SETDISPINFO = LVN_SETDISPINFOA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVIF_DI_SETITEM = $1000;
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagLVDISPINFO = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ item : LVITEMA;
|
|
|
+ END;
|
|
|
+ NMLVDISPINFOA = tagLVDISPINFO;
|
|
|
+ LPNMLVDISPINFOA = ^tagLVDISPINFO;
|
|
|
+ TLVDISPINFO = tagLVDISPINFO;
|
|
|
+ PLVDISPINFO = ^tagLVDISPINFO;
|
|
|
+
|
|
|
+
|
|
|
+ tagLVDISPINFOW = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ item : LVITEMW;
|
|
|
+ END;
|
|
|
+ NMLVDISPINFOW = tagLVDISPINFOW;
|
|
|
+ LPNMLVDISPINFOW = ^tagLVDISPINFOW;
|
|
|
+ TLVDISPINFOW = tagLVDISPINFOW;
|
|
|
+ PLVDISPINFOW = ^tagLVDISPINFOW;
|
|
|
+
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ NMLVDISPINFO = NMLVDISPINFOW;
|
|
|
+{$ELSE}
|
|
|
+ NMLVDISPINFO = NMLVDISPINFOA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+ LV_DISPINFOA = NMLVDISPINFOA;
|
|
|
+ LV_DISPINFOW = NMLVDISPINFOW;
|
|
|
+{$ELSE}
|
|
|
+ tagLVDISPINFO = _LV_DISPINFO;
|
|
|
+ NMLVDISPINFOA = LV_DISPINFOA;
|
|
|
+ tagLVDISPINFOW = _LV_DISPINFOW;
|
|
|
+ NMLVDISPINFOW = LV_DISPINFOW;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+ LV_DISPINFO = NMLVDISPINFO;
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVN_KEYDOWN = (LVN_FIRST-55);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+{$IFDEF _WIN32}
|
|
|
+// include <pshpack1.h>
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+TYPE
|
|
|
+ tagLVKEYDOWN = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ wVKey : WORD;
|
|
|
+ flags : UINT;
|
|
|
+ END;
|
|
|
+ NMLVKEYDOWN = tagLVKEYDOWN;
|
|
|
+ LPNMLVKEYDOWN = ^tagLVKEYDOWN;
|
|
|
+ TLVKEYDOWN = tagLVKEYDOWN;
|
|
|
+ PLVKEYDOWN = ^tagLVKEYDOWN;
|
|
|
+
|
|
|
+
|
|
|
+{$IFDEF _WIN32}
|
|
|
+//include <poppack.h>
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+CONST
|
|
|
+ LVN_MARQUEEBEGIN = (LVN_FIRST-56);
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ifdef ie4plus}
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagNMLVGETINFOTIPA = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ dwFlags : DWORD;
|
|
|
+ pszText : LPSTR;
|
|
|
+ cchTextMax : cint;
|
|
|
+ iItem : cint;
|
|
|
+ iSubItem : cint;
|
|
|
+ lParam : LPARAM;
|
|
|
+ END;
|
|
|
+ NMLVGETINFOTIPA = tagNMLVGETINFOTIPA;
|
|
|
+ LPNMLVGETINFOTIPA = ^tagNMLVGETINFOTIPA;
|
|
|
+ TNMLVGETINFOTIPA = tagNMLVGETINFOTIPA;
|
|
|
+ PNMLVGETINFOTIPA = ^tagNMLVGETINFOTIPA;
|
|
|
+
|
|
|
+
|
|
|
+ tagNMLVGETINFOTIPW = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ dwFlags : DWORD;
|
|
|
+ pszText : LPWSTR;
|
|
|
+ cchTextMax : cint;
|
|
|
+ iItem : cint;
|
|
|
+ iSubItem : cint;
|
|
|
+ lParam : LPARAM;
|
|
|
+ END;
|
|
|
+ NMLVGETINFOTIPW = tagNMLVGETINFOTIPW;
|
|
|
+ LPNMLVGETINFOTIPW = ^tagNMLVGETINFOTIPW;
|
|
|
+ TNMLVGETINFOTIPW = tagNMLVGETINFOTIPW;
|
|
|
+ PNMLVGETINFOTIPW = ^tagNMLVGETINFOTIPW;
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+ LV_KEYDOWN = NMLVKEYDOWN;
|
|
|
+{$ELSE}
|
|
|
+ tagLVKEYDOWN = _LV_KEYDOWN;
|
|
|
+ NMLVKEYDOWN = LV_KEYDOWN;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+// NMLVGETINFOTIPA.dwFlag values
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVGIT_UNFOLDED = $0001;
|
|
|
+
|
|
|
+ LVN_GETINFOTIPA = (LVN_FIRST-57);
|
|
|
+ LVN_GETINFOTIPW = (LVN_FIRST-58);
|
|
|
+
|
|
|
+Const
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ LVN_GETINFOTIP = LVN_GETINFOTIPW;
|
|
|
+type
|
|
|
+ NMLVGETINFOTIP = NMLVGETINFOTIPW;
|
|
|
+ LPNMLVGETINFOTIP = LPNMLVGETINFOTIPW;
|
|
|
+{$ELSE}
|
|
|
+ LVN_GETINFOTIP = LVN_GETINFOTIPA;
|
|
|
+type
|
|
|
+ NMLVGETINFOTIP = NMLVGETINFOTIPA;
|
|
|
+ LPNMLVGETINFOTIP = LPNMLVGETINFOTIPA;
|
|
|
+{$ENDIF}
|
|
|
+{$ENDIF} // _WIN32_IE >= 0x0400
|
|
|
+
|
|
|
+
|
|
|
+{$ifdef win32xp}
|
|
|
+ tagNMLVSCROLL = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ dx : cint;
|
|
|
+ dy : cint;
|
|
|
+ END;
|
|
|
+ NMLVSCROLL = tagNMLVSCROLL;
|
|
|
+ LPNMLVSCROLL = ^tagNMLVSCROLL;
|
|
|
+ TNMLVSCROLL = tagNMLVSCROLL;
|
|
|
+ PNMLVSCROLL = ^tagNMLVSCROLL;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ LVN_BEGINSCROLL = (LVN_FIRST-80) ;
|
|
|
+ LVN_ENDSCROLL = (LVN_FIRST-81);
|
|
|
+// {$ENDIF}
|
|
|
+
|
|
|
+{$ENDIF} // NOLISTVIEW
|
|
|
+
|
|
|
+//====== TREEVIEW CONTROL =====================================================
|
|
|
+
|
|
|
+{$IFNDEF NOTREEVIEW}
|
|
|
+
|
|
|
+CONST
|
|
|
+{$IFDEF _WIN32}
|
|
|
+ WC_TREEVIEWA = 'SysTreeView32';
|
|
|
+ WC_TREEVIEWW = {L}'SysTreeView32';
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ WC_TREEVIEW = WC_TREEVIEWW;
|
|
|
+{$ELSE}
|
|
|
+ WC_TREEVIEW = WC_TREEVIEWA;
|
|
|
+{$ENDIF}
|
|
|
+{$ELSE}
|
|
|
+ WC_TREEVIEW = 'SysTreeView';
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// begin_r_commctrl
|
|
|
+
|
|
|
+ TVS_HASBUTTONS = $0001;
|
|
|
+ TVS_HASLINES = $0002;
|
|
|
+ TVS_LINESATROOT = $0004;
|
|
|
+ TVS_EDITLABELS = $0008;
|
|
|
+ TVS_DISABLEDRAGDROP = $0010;
|
|
|
+ TVS_SHOWSELALWAYS = $0020;
|
|
|
+{$ifdef ie3plus}
|
|
|
+ TVS_RTLREADING = $0040;
|
|
|
+
|
|
|
+ TVS_NOTOOLTIPS = $0080;
|
|
|
+ TVS_CHECKBOXES = $0100;
|
|
|
+ TVS_TRACKSELECT = $0200;
|
|
|
+{$ifdef ie4plus}
|
|
|
+ TVS_SINGLEEXPAND = $0400;
|
|
|
+ TVS_INFOTIP = $0800;
|
|
|
+ TVS_FULLROWSELECT = $1000;
|
|
|
+ TVS_NOSCROLL = $2000;
|
|
|
+ TVS_NONEVENHEIGHT = $4000;
|
|
|
+{$ENDIF}
|
|
|
+{$ifdef ie5plus}
|
|
|
+ TVS_NOHSCROLL = $8000; // TVS_NOSCROLL overrides this
|
|
|
+{$ENDIF}
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+// end_r_commctrl
|
|
|
+
|
|
|
+TYPE
|
|
|
+ HTREEITEM = ^TREEITEM;
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVIF_TEXT = $0001;
|
|
|
+ TVIF_IMAGE = $0002;
|
|
|
+ TVIF_PARAM = $0004;
|
|
|
+ TVIF_STATE = $0008;
|
|
|
+ TVIF_HANDLE = $0010;
|
|
|
+ TVIF_SELECTEDIMAGE = $0020;
|
|
|
+ TVIF_CHILDREN = $0040;
|
|
|
+{$ifdef ie4plus}
|
|
|
+ TVIF_INTEGRAL = $0080;
|
|
|
+{$ENDIF}
|
|
|
+ TVIS_SELECTED = $0002;
|
|
|
+ TVIS_CUT = $0004;
|
|
|
+ TVIS_DROPHILITED = $0008;
|
|
|
+ TVIS_BOLD = $0010;
|
|
|
+ TVIS_EXPANDED = $0020;
|
|
|
+ TVIS_EXPANDEDONCE = $0040;
|
|
|
+{$ifdef ie3plus}
|
|
|
+ TVIS_EXPANDPARTIAL = $0080;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+ TVIS_OVERLAYMASK = $0F00;
|
|
|
+ TVIS_STATEIMAGEMASK = $F000;
|
|
|
+ TVIS_USERMASK = $F000;
|
|
|
+
|
|
|
+ I_CHILDRENCALLBACK = (-1);
|
|
|
+Type
|
|
|
+ tagTVITEMA = Record
|
|
|
+ mask : UINT;
|
|
|
+ hItem : HTREEITEM;
|
|
|
+ state : UINT;
|
|
|
+ stateMask : UINT;
|
|
|
+ pszText : LPSTR;
|
|
|
+ cchTextMax : cint;
|
|
|
+ iImage : cint;
|
|
|
+ iSelectedImage : cint;
|
|
|
+ cChildren : cint;
|
|
|
+ lParam : LPARAM;
|
|
|
+ END;
|
|
|
+ TVITEMA = tagTVITEMA;
|
|
|
+ LPTVITEMA = ^tagTVITEMA;
|
|
|
+ TTVITEMA = tagTVITEMA;
|
|
|
+ PTVITEMA = ^tagTVITEMA;
|
|
|
+
|
|
|
+
|
|
|
+ tagTVITEMW = Record
|
|
|
+ mask : UINT;
|
|
|
+ hItem : HTREEITEM;
|
|
|
+ state : UINT;
|
|
|
+ stateMask : UINT;
|
|
|
+ pszText : LPWSTR;
|
|
|
+ cchTextMax : cint;
|
|
|
+ iImage : cint;
|
|
|
+ iSelectedImage : cint;
|
|
|
+ cChildren : cint;
|
|
|
+ lParam : LPARAM;
|
|
|
+ END;
|
|
|
+ TVITEMW = tagTVITEMW;
|
|
|
+ LPTVITEMW = ^tagTVITEMW;
|
|
|
+ TTVITEMW = tagTVITEMW;
|
|
|
+ PTVITEMW = ^tagTVITEMW;
|
|
|
+
|
|
|
+
|
|
|
+{$ifdef ie4plus}
|
|
|
+// only used for Get and Set messages. no notifies
|
|
|
+ tagTVITEMEXA = Record
|
|
|
+ mask : UINT;
|
|
|
+ hItem : HTREEITEM;
|
|
|
+ state : UINT;
|
|
|
+ stateMask : UINT;
|
|
|
+ pszText : LPSTR;
|
|
|
+ cchTextMax : cint;
|
|
|
+ iImage : cint;
|
|
|
+ iSelectedImage : cint;
|
|
|
+ cChildren : cint;
|
|
|
+ lParam : LPARAM;
|
|
|
+ iIntegral : cint;
|
|
|
+ END;
|
|
|
+ TVITEMEXA = tagTVITEMEXA;
|
|
|
+ LPTVITEMEXA = ^tagTVITEMEXA;
|
|
|
+ TTVITEMEXA = tagTVITEMEXA;
|
|
|
+ PTVITEMEXA = ^tagTVITEMEXA;
|
|
|
+
|
|
|
+// only used for Get and Set messages. no notifies
|
|
|
+ tagTVITEMEXW = Record
|
|
|
+ mask : UINT;
|
|
|
+ hItem : HTREEITEM;
|
|
|
+ state : UINT;
|
|
|
+ stateMask : UINT;
|
|
|
+ pszText : LPWSTR;
|
|
|
+ cchTextMax : cint;
|
|
|
+ iImage : cint;
|
|
|
+ iSelectedImage : cint;
|
|
|
+ cChildren : cint;
|
|
|
+ lParam : LPARAM;
|
|
|
+ iIntegral : cint;
|
|
|
+ END;
|
|
|
+ TVITEMEXW = tagTVITEMEXW;
|
|
|
+ LPTVITEMEXW = ^tagTVITEMEXW;
|
|
|
+ TTVITEMEXW = tagTVITEMEXW;
|
|
|
+ PTVITEMEXW = ^tagTVITEMEXW;
|
|
|
+
|
|
|
+
|
|
|
+TYPE
|
|
|
+{$ifdef ie3plus}
|
|
|
+ LPTV_ITEMW = LPTVITEMW;
|
|
|
+ LPTV_ITEMA = LPTVITEMA;
|
|
|
+ TV_ITEMW = TVITEMW;
|
|
|
+ TV_ITEMA = TVITEMA;
|
|
|
+{$ELSE}
|
|
|
+ tagTVITEMA = _TV_ITEMA;
|
|
|
+ TVITEMA = TV_ITEMA;
|
|
|
+ LPTVITEMA = LPTV_ITEMA;
|
|
|
+ tagTVITEMW = _TV_ITEMW;
|
|
|
+ TVITEMW = TV_ITEMW;
|
|
|
+ LPTVITEMW = LPTV_ITEMW;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ TVITEMEX = TVITEMEXW;
|
|
|
+ LPTVITEMEX = LPTVITEMEXW;
|
|
|
+{$ELSE}
|
|
|
+ TVITEMEX = TVITEMEXA;
|
|
|
+ LPTVITEMEX = LPTVITEMEXA;
|
|
|
+{$ENDIF} // UNICODE
|
|
|
+
|
|
|
+
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ TVITEM = TVITEMW;
|
|
|
+ LPTVITEM = LPTVITEMW;
|
|
|
+{$ELSE}
|
|
|
+ TVITEM = TVITEMA;
|
|
|
+ LPTVITEM = LPTVITEMA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+ LPTV_ITEM = LPTVITEM;
|
|
|
+ TV_ITEM = TVITEM;
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVI_ROOT = HTREEITEM(ULONG_PTR(-$10000));
|
|
|
+ TVI_FIRST = HTREEITEM(ULONG_PTR(-$0FFFF));
|
|
|
+ TVI_LAST = HTREEITEM(ULONG_PTR(-$0FFFE));
|
|
|
+ TVI_SORT = HTREEITEM(ULONG_PTR(-$0FFFD));
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+// #define TVINSERTSTRUCTA_V1_SIZE CCSIZEOF_STRUCT(TVINSERTSTRUCTA, item)
|
|
|
+// #define TVINSERTSTRUCTW_V1_SIZE CCSIZEOF_STRUCT(TVINSERTSTRUCTW, item)
|
|
|
+Type
|
|
|
+ tagTVINSERTSTRUCTA = Record
|
|
|
+ hParent : HTREEITEM;
|
|
|
+ hInsertAfter : HTREEITEM;
|
|
|
+{$ifdef ie4plus}
|
|
|
+ dumunion : record
|
|
|
+ case boolean of
|
|
|
+ false: (itemex : TVITEMEXA;);
|
|
|
+ True: (item : TV_ITEMA;);
|
|
|
+ end;
|
|
|
+{$ELSE}
|
|
|
+ item : TV_ITEMA;
|
|
|
+{$ENDIF}
|
|
|
+ END;
|
|
|
+ TVINSERTSTRUCTA = tagTVINSERTSTRUCTA;
|
|
|
+ LPTVINSERTSTRUCTA = ^tagTVINSERTSTRUCTA;
|
|
|
+ TTVINSERTSTRUCTA = tagTVINSERTSTRUCTA;
|
|
|
+ PTVINSERTSTRUCTA = ^tagTVINSERTSTRUCTA;
|
|
|
+
|
|
|
+
|
|
|
+ tagTVINSERTSTRUCTW = Record
|
|
|
+ hParent : HTREEITEM;
|
|
|
+ hInsertAfter : HTREEITEM;
|
|
|
+{$ifdef ie4plus}
|
|
|
+ dumunion : record
|
|
|
+ case boolean of
|
|
|
+ false: (itemex : TVITEMEXW);
|
|
|
+ True: (item : TV_ITEMW);
|
|
|
+ end;
|
|
|
+{$ELSE}
|
|
|
+ item : TV_ITEMW;
|
|
|
+{$ENDIF}
|
|
|
+ END;
|
|
|
+ TVINSERTSTRUCTW = tagTVINSERTSTRUCTW;
|
|
|
+ LPTVINSERTSTRUCTW = ^tagTVINSERTSTRUCTW;
|
|
|
+ TTVINSERTSTRUCTW = tagTVINSERTSTRUCTW;
|
|
|
+ PTVINSERTSTRUCTW = ^tagTVINSERTSTRUCTW;
|
|
|
+
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ TVINSERTSTRUCT = TVINSERTSTRUCTW;
|
|
|
+ LPTVINSERTSTRUCT = LPTVINSERTSTRUCTW;
|
|
|
+// TVINSERTSTRUCT_V1_SIZE = TVINSERTSTRUCTW_V1_SIZE;
|
|
|
+{$ELSE}
|
|
|
+ TVINSERTSTRUCT = TVINSERTSTRUCTA;
|
|
|
+ LPTVINSERTSTRUCT = LPTVINSERTSTRUCTA;
|
|
|
+// TVINSERTSTRUCT_V1_SIZE = TVINSERTSTRUCTA_V1_SIZE;
|
|
|
+{$ENDIF}
|
|
|
+CONST
|
|
|
+ TVM_INSERTITEMA = (TV_FIRST + 0);
|
|
|
+ TVM_INSERTITEMW = (TV_FIRST + 50);
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ TVM_INSERTITEM = TVM_INSERTITEMW;
|
|
|
+{$ELSE}
|
|
|
+ TVM_INSERTITEM = TVM_INSERTITEMA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+TYPE
|
|
|
+{$ifdef ie3plus}
|
|
|
+ LPTV_INSERTSTRUCTA = LPTVINSERTSTRUCTA;
|
|
|
+ LPTV_INSERTSTRUCTW = LPTVINSERTSTRUCTW;
|
|
|
+ TV_INSERTSTRUCTA = TVINSERTSTRUCTA;
|
|
|
+ TV_INSERTSTRUCTW = TVINSERTSTRUCTW;
|
|
|
+{$ELSE}
|
|
|
+ tagTVINSERTSTRUCTA = _TV_INSERTSTRUCTA;
|
|
|
+ TVINSERTSTRUCTA = TV_INSERTSTRUCTA;
|
|
|
+ LPTVINSERTSTRUCTA = LPTV_INSERTSTRUCTA;
|
|
|
+ tagTVINSERTSTRUCTW = _TV_INSERTSTRUCTW;
|
|
|
+ TVINSERTSTRUCTW = TV_INSERTSTRUCTW;
|
|
|
+ LPTVINSERTSTRUCTW = LPTV_INSERTSTRUCTW;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+ TV_INSERTSTRUCT = TVINSERTSTRUCT;
|
|
|
+ LPTV_INSERTSTRUCT = LPTVINSERTSTRUCT;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 156
|
|
|
+Function TreeView_InsertItem( hwnd : hwnd; lpis : LPTV_INSERTSTRUCT):HTREEITEM;
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVM_DELETEITEM = (TV_FIRST + 1);
|
|
|
+
|
|
|
+// Macro 157
|
|
|
+Function TreeView_DeleteItem( hwnd : hwnd; hitem : HTREEITEM):BOOL;
|
|
|
+
|
|
|
+// Macro 158
|
|
|
+Function TreeView_DeleteAllItems( hwnd : hwnd):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVM_EXPAND = (TV_FIRST + 2);
|
|
|
+
|
|
|
+// Macro 159
|
|
|
+Function TreeView_Expand( hwnd : hwnd; hitem : HTREEITEM; code : WPARAM):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVE_COLLAPSE = $0001;
|
|
|
+ TVE_EXPAND = $0002;
|
|
|
+ TVE_TOGGLE = $0003;
|
|
|
+{$ifdef ie3plus}
|
|
|
+ TVE_EXPANDPARTIAL = $4000;
|
|
|
+{$ENDIF}
|
|
|
+ TVE_COLLAPSERESET = $8000;
|
|
|
+
|
|
|
+
|
|
|
+ TVM_GETITEMRECT = (TV_FIRST + 4);
|
|
|
+
|
|
|
+// Macro 160
|
|
|
+Function TreeView_GetItemRect( hwnd : hwnd; hitem: TREEITEM; code : WPARAM; prc : pRECT):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVM_GETCOUNT = (TV_FIRST + 5);
|
|
|
+
|
|
|
+// Macro 161
|
|
|
+Function TreeView_GetCount( hwnd : hwnd):UINT;
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVM_GETINDENT = (TV_FIRST + 6);
|
|
|
+
|
|
|
+// Macro 162
|
|
|
+Function TreeView_GetIndent( hwnd : hwnd):UINT;
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVM_SETINDENT = (TV_FIRST + 7);
|
|
|
+
|
|
|
+// Macro 163
|
|
|
+Function TreeView_SetIndent( hwnd : hwnd; indent : WPARAM):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVM_GETIMAGELIST = (TV_FIRST + 8);
|
|
|
+
|
|
|
+// Macro 164
|
|
|
+Function TreeView_GetImageList( hwnd : hwnd; iImage : cint ):HIMAGELIST;
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVSIL_NORMAL = 0;
|
|
|
+ TVSIL_STATE = 2;
|
|
|
+
|
|
|
+
|
|
|
+ TVM_SETIMAGELIST = (TV_FIRST + 9);
|
|
|
+
|
|
|
+// Macro 165
|
|
|
+Function TreeView_SetImageList( hwnd : hwnd; himl : HIMAGELIST; iImage : cint):HIMAGELIST;
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVM_GETNEXTITEM = (TV_FIRST + 10);
|
|
|
+
|
|
|
+// Macro 166
|
|
|
+Function TreeView_GetNextItem( hwnd : hwnd; hitem : HTREEITEM; code : WPARAM):HTREEITEM;
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVGN_ROOT = $0000;
|
|
|
+ TVGN_NEXT = $0001;
|
|
|
+ TVGN_PREVIOUS = $0002;
|
|
|
+ TVGN_PARENT = $0003;
|
|
|
+ TVGN_CHILD = $0004;
|
|
|
+ TVGN_FIRSTVISIBLE = $0005;
|
|
|
+ TVGN_NEXTVISIBLE = $0006;
|
|
|
+ TVGN_PREVIOUSVISIBLE = $0007;
|
|
|
+ TVGN_DROPHILITE = $0008;
|
|
|
+ TVGN_CARET = $0009;
|
|
|
+
|
|
|
+{$ifdef ie4plus}
|
|
|
+ TVGN_LASTVISIBLE = $000A;
|
|
|
+{$ENDIF} // _WIN32_IE >= 0x0400
|
|
|
+
|
|
|
+{$ifdef win32xp}
|
|
|
+ TVSI_NOSINGLEEXPAND = $8000; // Should not conflict with TVGN flags.
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// Macro 167
|
|
|
+
|
|
|
+// #define TreeView_GetChild(hwnd, hitem) TreeView_GetNextItem(hwnd, hitem, TVGN_CHILD)
|
|
|
+// Macro 168
|
|
|
+
|
|
|
+// #define TreeView_GetNextSibling(hwnd, hitem) TreeView_GetNextItem(hwnd, hitem, TVGN_NEXT)
|
|
|
+// Macro 169
|
|
|
+
|
|
|
+// #define TreeView_GetPrevSibling(hwnd, hitem) TreeView_GetNextItem(hwnd, hitem, TVGN_PREVIOUS)
|
|
|
+// Macro 170
|
|
|
+
|
|
|
+// #define TreeView_GetParent(hwnd, hitem) TreeView_GetNextItem(hwnd, hitem, TVGN_PARENT)
|
|
|
+// Macro 171
|
|
|
+
|
|
|
+// #define TreeView_GetFirstVisible(hwnd) TreeView_GetNextItem(hwnd, NULL, TVGN_FIRSTVISIBLE)
|
|
|
+// Macro 172
|
|
|
+
|
|
|
+// #define TreeView_GetNextVisible(hwnd, hitem) TreeView_GetNextItem(hwnd, hitem, TVGN_NEXTVISIBLE)
|
|
|
+// Macro 173
|
|
|
+
|
|
|
+// #define TreeView_GetPrevVisible(hwnd, hitem) TreeView_GetNextItem(hwnd, hitem, TVGN_PREVIOUSVISIBLE)
|
|
|
+// Macro 174
|
|
|
+
|
|
|
+// #define TreeView_GetSelection(hwnd) TreeView_GetNextItem(hwnd, NULL, TVGN_CARET)
|
|
|
+// Macro 175
|
|
|
+
|
|
|
+// #define TreeView_GetDropHilight(hwnd) TreeView_GetNextItem(hwnd, NULL, TVGN_DROPHILITE)
|
|
|
+// Macro 176
|
|
|
+
|
|
|
+// #define TreeView_GetRoot(hwnd) TreeView_GetNextItem(hwnd, NULL, TVGN_ROOT)
|
|
|
+{$ifdef ie4plus}
|
|
|
+// Macro 177
|
|
|
+
|
|
|
+// #define TreeView_GetLastVisible(hwnd) TreeView_GetNextItem(hwnd, NULL, TVGN_LASTVISIBLE)
|
|
|
+{$ENDIF} // _WIN32_IE >= 0x0400
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVM_SELECTITEM = (TV_FIRST + 11);
|
|
|
+
|
|
|
+// Macro 178
|
|
|
+Function TreeView_Select( hwnd : hwnd; hitem : HTREEITEM; code : WPARAM):BOOL;
|
|
|
+
|
|
|
+// Macro 179
|
|
|
+Procedure TreeView_SelectItem(hwnd:hwnd; hitem:HTREEITEM);
|
|
|
+
|
|
|
+// Macro 180
|
|
|
+Procedure TreeView_SelectDropTarget(hwnd:hwnd; hitem:HTREEITEM);
|
|
|
+
|
|
|
+// Macro 181
|
|
|
+Procedure TreeView_SelectSetFirstVisible(hwnd:hwnd; hitem:HTREEITEM);
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVM_GETITEMA = (TV_FIRST + 12);
|
|
|
+ TVM_GETITEMW = (TV_FIRST + 62);
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+
|
|
|
+TYPE
|
|
|
+ TVM_GETITEM = TVM_GETITEMW;
|
|
|
+{$ELSE}
|
|
|
+ TVM_GETITEM = TVM_GETITEMA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// Macro 182
|
|
|
+
|
|
|
+
|
|
|
+Function TreeView_GetItem( hwnd : hwnd;var pitem : TV_ITEM ):BOOL;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVM_SETITEMA = (TV_FIRST + 13);
|
|
|
+ TVM_SETITEMW = (TV_FIRST + 63);
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+
|
|
|
+TYPE
|
|
|
+ TVM_SETITEM = TVM_SETITEMW;
|
|
|
+{$ELSE}
|
|
|
+ TVM_SETITEM = TVM_SETITEMA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// Macro 183
|
|
|
+
|
|
|
+
|
|
|
+Function TreeView_SetItem( hwnd : hwnd;const pitem : TV_ITEM ):BOOL;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVM_EDITLABELA = (TV_FIRST + 14);
|
|
|
+ TVM_EDITLABELW = (TV_FIRST + 65);
|
|
|
+{$IFDEF UNICODE}
|
|
|
+
|
|
|
+TYPE
|
|
|
+ TVM_EDITLABEL = TVM_EDITLABELW;
|
|
|
+{$ELSE}
|
|
|
+ TVM_EDITLABEL = TVM_EDITLABELA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// Macro 184
|
|
|
+
|
|
|
+
|
|
|
+Function TreeView_EditLabel( hwnd : hwnd; hitem : HTREEITEM):HWND;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVM_GETEDITCONTROL = (TV_FIRST + 15);
|
|
|
+// Macro 185
|
|
|
+
|
|
|
+
|
|
|
+Function TreeView_GetEditControl( hwnd : hwnd):HWND;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVM_GETVISIBLECOUNT = (TV_FIRST + 16);
|
|
|
+// Macro 186
|
|
|
+
|
|
|
+
|
|
|
+Function TreeView_GetVisibleCount( hwnd : hwnd):UINT;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVM_HITTEST = (TV_FIRST + 17);
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagTVHITTESTINFO = Record
|
|
|
+ pt : POINT;
|
|
|
+ flags : UINT;
|
|
|
+ hItem : HTREEITEM;
|
|
|
+ END;
|
|
|
+ TVHITTESTINFO = tagTVHITTESTINFO;
|
|
|
+ LPTVHITTESTINFO = ^tagTVHITTESTINFO;
|
|
|
+ TTVHITTESTINFO = tagTVHITTESTINFO;
|
|
|
+ PTVHITTESTINFO = ^tagTVHITTESTINFO;
|
|
|
+
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+ LPTV_HITTESTINFO = LPTVHITTESTINFO;
|
|
|
+ TV_HITTESTINFO = TVHITTESTINFO;
|
|
|
+{$ELSE}
|
|
|
+ tagTVHITTESTINFO = _TV_HITTESTINFO;
|
|
|
+ TVHITTESTINFO = TV_HITTESTINFO;
|
|
|
+
|
|
|
+ LPTVHITTESTINFO = LPTV_HITTESTINFO;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVHT_NOWHERE = $0001;
|
|
|
+ TVHT_ONITEMICON = $0002;
|
|
|
+ TVHT_ONITEMLABEL = $0004;
|
|
|
+ TVHT_ONITEM = (TVHT_ONITEMICON OR TVHT_ONITEMLABEL OR TVHT_ONITEMSTATEICON);
|
|
|
+ TVHT_ONITEMINDENT = $0008;
|
|
|
+ TVHT_ONITEMBUTTON = $0010;
|
|
|
+ TVHT_ONITEMRIGHT = $0020;
|
|
|
+ TVHT_ONITEMSTATEICON = $0040;
|
|
|
+
|
|
|
+ TVHT_ABOVE = $0100;
|
|
|
+ TVHT_BELOW = $0200;
|
|
|
+ TVHT_TORIGHT = $0400;
|
|
|
+ TVHT_TOLEFT = $0800;
|
|
|
+
|
|
|
+
|
|
|
+ TVM_CREATEDRAGIMAGE = (TV_FIRST + 18);
|
|
|
+
|
|
|
+// Macro 187
|
|
|
+Function TreeView_HitTest( hwnd : hwnd; lpht : LPTV_HITTESTINFO):HTREEITEM;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 188
|
|
|
+
|
|
|
+
|
|
|
+Function TreeView_CreateDragImage( hwnd : hwnd; hitem : HTREEITEM):HIMAGELIST;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVM_SORTCHILDREN = (TV_FIRST + 19);
|
|
|
+// Macro 189
|
|
|
+
|
|
|
+
|
|
|
+Function TreeView_SortChildren( hwnd : hwnd; hitem : HTREEITEM; recurse : WPARAM):BOOL;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVM_ENSUREVISIBLE = (TV_FIRST + 20);
|
|
|
+// Macro 190
|
|
|
+
|
|
|
+
|
|
|
+Function TreeView_EnsureVisible( hwnd : hwnd; hitem : HTREEITEM):BOOL;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVM_ENDEDITLABELNOW = (TV_FIRST + 22);
|
|
|
+// Macro 192
|
|
|
+
|
|
|
+
|
|
|
+Function TreeView_EndEditLabelNow( hwnd : hwnd; fCancel : WPARAM):BOOL;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVM_GETISEARCHSTRINGA = (TV_FIRST + 23);
|
|
|
+ TVM_GETISEARCHSTRINGW = (TV_FIRST + 64);
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+
|
|
|
+TYPE
|
|
|
+ TVM_GETISEARCHSTRING= TVM_GETISEARCHSTRINGW;
|
|
|
+{$ELSE}
|
|
|
+ TVM_GETISEARCHSTRING= TVM_GETISEARCHSTRINGA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVM_SETTOOLTIPS = (TV_FIRST + 24);
|
|
|
+// Macro 193
|
|
|
+
|
|
|
+
|
|
|
+Function TreeView_SetToolTips( hwnd : hwnd; hwndTT : WPARAM):HWND;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVM_GETTOOLTIPS = (TV_FIRST + 25);
|
|
|
+// Macro 194
|
|
|
+
|
|
|
+
|
|
|
+Function TreeView_GetToolTips( hwnd : hwnd):HWND;
|
|
|
+
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// Macro 195
|
|
|
+
|
|
|
+
|
|
|
+Function TreeView_GetISearchString( hwndTV : hwnd; lpsz : LPTSTR):BOOL;
|
|
|
+
|
|
|
+
|
|
|
+{$ifdef ie4plus}
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVM_SETINSERTMARK = (TV_FIRST + 26);
|
|
|
+// Macro 196
|
|
|
+
|
|
|
+
|
|
|
+Function TreeView_SetInsertMark( hwnd : hwnd; hItem : LPARAM ; fAfter : WPARAM ):BOOL;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
|
|
|
+// Macro 197
|
|
|
+
|
|
|
+
|
|
|
+Function TreeView_SetUnicodeFormat( hwnd : hwnd; fUnicode : WPARAM):BOOL;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
|
|
|
+// Macro 198
|
|
|
+
|
|
|
+
|
|
|
+Function TreeView_GetUnicodeFormat( hwnd : hwnd):BOOL;
|
|
|
+
|
|
|
+
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ifdef ie4plus}
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVM_SETITEMHEIGHT = (TV_FIRST + 27);
|
|
|
+// Macro 199
|
|
|
+
|
|
|
+
|
|
|
+Function TreeView_SetItemHeight( hwnd : hwnd; iHeight : WPARAM):cint;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVM_GETITEMHEIGHT = (TV_FIRST + 28);
|
|
|
+// Macro 200
|
|
|
+
|
|
|
+
|
|
|
+Function TreeView_GetItemHeight( hwnd : hwnd):cint;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVM_SETBKCOLOR = (TV_FIRST + 29);
|
|
|
+// Macro 201
|
|
|
+
|
|
|
+
|
|
|
+Function TreeView_SetBkColor( hwnd : hwnd; clr : LPARAM):COLORREF;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVM_SETTEXTCOLOR = (TV_FIRST + 30);
|
|
|
+// Macro 202
|
|
|
+
|
|
|
+
|
|
|
+Function TreeView_SetTextColor( hwnd : hwnd; clr : LPARAM):COLORREF;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVM_GETBKCOLOR = (TV_FIRST + 31);
|
|
|
+
|
|
|
+// Macro 203
|
|
|
+Function TreeView_GetBkColor( hwnd : hwnd):COLORREF;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVM_GETTEXTCOLOR = (TV_FIRST + 32);
|
|
|
+
|
|
|
+// Macro 204
|
|
|
+Function TreeView_GetTextColor( hwnd : hwnd):COLORREF;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVM_SETSCROLLTIME = (TV_FIRST + 33);
|
|
|
+
|
|
|
+// Macro 205
|
|
|
+Function TreeView_SetScrollTime( hwnd : hwnd; uTime :wparam ):UINT;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVM_GETSCROLLTIME = (TV_FIRST + 34);
|
|
|
+// Macro 206
|
|
|
+
|
|
|
+
|
|
|
+Function TreeView_GetScrollTime( hwnd : hwnd):UINT;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVM_SETINSERTMARKCOLOR = (TV_FIRST + 37);
|
|
|
+// Macro 207
|
|
|
+
|
|
|
+
|
|
|
+Function TreeView_SetInsertMarkColor( hwnd : hwnd; clr : LPARAM):COLORREF;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVM_GETINSERTMARKCOLOR = (TV_FIRST + 38);
|
|
|
+// Macro 208
|
|
|
+
|
|
|
+
|
|
|
+Function TreeView_GetInsertMarkColor( hwnd : hwnd):COLORREF;
|
|
|
+
|
|
|
+
|
|
|
+{$ENDIF} // (_WIN32_IE >= 0x0400)
|
|
|
+
|
|
|
+{$ifdef ie5plus}
|
|
|
+// tvm_?etitemstate only uses mask, state and stateMask.
|
|
|
+// so unicode or ansi is irrelevant.
|
|
|
+// Macro 209
|
|
|
+
|
|
|
+Procedure TreeView_SetItemState(hwndTV:HWND;hti:HTreeItem;data:UINT;_mask:UINT);
|
|
|
+
|
|
|
+
|
|
|
+// Macro 210
|
|
|
+
|
|
|
+Procedure TreeView_SetCheckState( hwndTV : hwnd; hti : HTreeItem ; fCheck : bool );
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVM_GETITEMSTATE = (TV_FIRST + 39);
|
|
|
+
|
|
|
+// Macro 211
|
|
|
+Function TreeView_GetItemState( hwndTV : hwnd; hti : WPARAM; mask : LPARAM):UINT;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 212
|
|
|
+Function TreeView_GetCheckState( hwndTV : hwnd; hti : WPARAM):UINT;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVM_SETLINECOLOR = (TV_FIRST + 40);
|
|
|
+// Macro 213
|
|
|
+Function TreeView_SetLineColor( hwnd : hwnd; clr : LPARAM):COLORREF;
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVM_GETLINECOLOR = (TV_FIRST + 41);
|
|
|
+
|
|
|
+// Macro 214
|
|
|
+Function TreeView_GetLineColor( hwnd : hwnd):COLORREF;
|
|
|
+
|
|
|
+
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ifdef Win32XP}
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVM_MAPACCIDTOHTREEITEM = (TV_FIRST + 42);
|
|
|
+
|
|
|
+// Macro 215
|
|
|
+Function TreeView_MapAccIDToHTREEITEM( hwnd : hwnd; id : UINT ):HTREEITEM;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVM_MAPHTREEITEMTOACCID = (TV_FIRST + 43);
|
|
|
+
|
|
|
+// Macro 216
|
|
|
+Function TreeView_MapHTREEITEMToAccID( hwnd : hwnd; htreeitem : WPARAM):UINT;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+TYPE
|
|
|
+ PFNTVCOMPARE =function (lparam1:LPARAM;lparam2:LPARAM;lParamSort:LParam): cint; STDCALL;
|
|
|
+
|
|
|
+
|
|
|
+ tagTVSORTCB = Record
|
|
|
+ hParent : HTREEITEM;
|
|
|
+ lpfnCompare : PFNTVCOMPARE;
|
|
|
+ lParam : LPARAM;
|
|
|
+ END;
|
|
|
+ TVSORTCB = tagTVSORTCB;
|
|
|
+ LPTVSORTCB = ^tagTVSORTCB;
|
|
|
+ TTVSORTCB = tagTVSORTCB;
|
|
|
+ PTVSORTCB = ^tagTVSORTCB;
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+ LPTV_SORTCB = LPTVSORTCB;
|
|
|
+
|
|
|
+
|
|
|
+ TV_SORTCB = TVSORTCB;
|
|
|
+{$ELSE}
|
|
|
+ tagTVSORTCB = _TV_SORTCB;
|
|
|
+ TVSORTCB = TV_SORTCB;
|
|
|
+
|
|
|
+
|
|
|
+ LPTVSORTCB = LPTV_SORTCB;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+ tagNMTREEVIEWA = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ action : UINT;
|
|
|
+ itemOld : TVITEMA;
|
|
|
+ itemNew : TVITEMA;
|
|
|
+ ptDrag : POINT;
|
|
|
+ END;
|
|
|
+ NMTREEVIEWA = tagNMTREEVIEWA;
|
|
|
+ LPNMTREEVIEWA = ^tagNMTREEVIEWA;
|
|
|
+ TNMTREEVIEWA = tagNMTREEVIEWA;
|
|
|
+ PNMTREEVIEWA = ^tagNMTREEVIEWA;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ tagNMTREEVIEWW = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ action : UINT;
|
|
|
+ itemOld : TVITEMW;
|
|
|
+ itemNew : TVITEMW;
|
|
|
+ ptDrag : POINT;
|
|
|
+ END;
|
|
|
+ NMTREEVIEWW = tagNMTREEVIEWW;
|
|
|
+ LPNMTREEVIEWW = ^tagNMTREEVIEWW;
|
|
|
+ TNMTREEVIEWW = tagNMTREEVIEWW;
|
|
|
+ PNMTREEVIEWW = ^tagNMTREEVIEWW;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ NMTREEVIEW = NMTREEVIEWW;
|
|
|
+ LPNMTREEVIEW = LPNMTREEVIEWW;
|
|
|
+{$ELSE}
|
|
|
+ NMTREEVIEW = NMTREEVIEWA;
|
|
|
+ LPNMTREEVIEW = LPNMTREEVIEWA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+ LPNM_TREEVIEWA = LPNMTREEVIEWA;
|
|
|
+ LPNM_TREEVIEWW = LPNMTREEVIEWW;
|
|
|
+ NM_TREEVIEWW = NMTREEVIEWW;
|
|
|
+ NM_TREEVIEWA = NMTREEVIEWA;
|
|
|
+{$ELSE}
|
|
|
+ tagNMTREEVIEWA = _NM_TREEVIEWA;
|
|
|
+ tagNMTREEVIEWW = _NM_TREEVIEWW;
|
|
|
+ NMTREEVIEWA = NM_TREEVIEWA;
|
|
|
+ NMTREEVIEWW = NM_TREEVIEWW;
|
|
|
+ LPNMTREEVIEWA = LPNM_TREEVIEWA;
|
|
|
+ LPNMTREEVIEWW = LPNM_TREEVIEWW;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+ LPNM_TREEVIEW = LPNMTREEVIEW;
|
|
|
+ NM_TREEVIEW = NMTREEVIEW;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVN_SELCHANGINGA = (TVN_FIRST-1);
|
|
|
+ TVN_SELCHANGINGW = (TVN_FIRST-50);
|
|
|
+ TVN_SELCHANGEDA = (TVN_FIRST-2);
|
|
|
+ TVN_SELCHANGEDW = (TVN_FIRST-51);
|
|
|
+
|
|
|
+ TVC_UNKNOWN = $0000;
|
|
|
+ TVC_BYMOUSE = $0001;
|
|
|
+ TVC_BYKEYBOARD = $0002;
|
|
|
+
|
|
|
+ TVN_GETDISPINFOA = (TVN_FIRST-3);
|
|
|
+ TVN_GETDISPINFOW = (TVN_FIRST-52);
|
|
|
+ TVN_SETDISPINFOA = (TVN_FIRST-4);
|
|
|
+ TVN_SETDISPINFOW = (TVN_FIRST-53);
|
|
|
+
|
|
|
+ TVIF_DI_SETITEM = $1000;
|
|
|
+
|
|
|
+Type
|
|
|
+ tagTVDISPINFOA = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ item : TVITEMA;
|
|
|
+ END;
|
|
|
+ NMTVDISPINFOA = tagTVDISPINFOA;
|
|
|
+ LPNMTVDISPINFOA = ^tagTVDISPINFOA;
|
|
|
+ TTVDISPINFOA = tagTVDISPINFOA;
|
|
|
+ PTVDISPINFOA = ^tagTVDISPINFOA;
|
|
|
+
|
|
|
+
|
|
|
+ tagTVDISPINFOW = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ item : TVITEMW;
|
|
|
+ END;
|
|
|
+ NMTVDISPINFOW = tagTVDISPINFOW;
|
|
|
+ LPNMTVDISPINFOW = ^tagTVDISPINFOW;
|
|
|
+ TTVDISPINFOW = tagTVDISPINFOW;
|
|
|
+ PTVDISPINFOW = ^tagTVDISPINFOW;
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ NMTVDISPINFO = NMTVDISPINFOW;
|
|
|
+ LPNMTVDISPINFO = LPNMTVDISPINFOW;
|
|
|
+{$ELSE}
|
|
|
+ NMTVDISPINFO = NMTVDISPINFOA;
|
|
|
+ LPNMTVDISPINFO = LPNMTVDISPINFOA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+ TV_DISPINFOA = NMTVDISPINFOA;
|
|
|
+ TV_DISPINFOW = NMTVDISPINFOW;
|
|
|
+{$ELSE}
|
|
|
+ tagTVDISPINFOA = _TV_DISPINFOA;
|
|
|
+ NMTVDISPINFOA = TV_DISPINFOA;
|
|
|
+ tagTVDISPINFOW = _TV_DISPINFOW;
|
|
|
+ NMTVDISPINFOW = TV_DISPINFOW;
|
|
|
+{$ENDIF}
|
|
|
+ TV_DISPINFO = NMTVDISPINFO;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVM_SORTCHILDRENCB = (TV_FIRST + 21);
|
|
|
+
|
|
|
+// Macro 191
|
|
|
+Function TreeView_SortChildrenCB( hwnd : hwnd;psort :lpTV_sortcb; recurse : WPARAM):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVN_ITEMEXPANDINGA = (TVN_FIRST-5);
|
|
|
+ TVN_ITEMEXPANDINGW = (TVN_FIRST-54);
|
|
|
+ TVN_ITEMEXPANDEDA = (TVN_FIRST-6);
|
|
|
+ TVN_ITEMEXPANDEDW = (TVN_FIRST-55);
|
|
|
+ TVN_BEGINDRAGA = (TVN_FIRST-7);
|
|
|
+ TVN_BEGINDRAGW = (TVN_FIRST-56);
|
|
|
+ TVN_BEGINRDRAGA = (TVN_FIRST-8);
|
|
|
+ TVN_BEGINRDRAGW = (TVN_FIRST-57);
|
|
|
+ TVN_DELETEITEMA = (TVN_FIRST-9);
|
|
|
+ TVN_DELETEITEMW = (TVN_FIRST-58);
|
|
|
+ TVN_BEGINLABELEDITA = (TVN_FIRST-10);
|
|
|
+ TVN_BEGINLABELEDITW = (TVN_FIRST-59);
|
|
|
+ TVN_ENDLABELEDITA = (TVN_FIRST-11);
|
|
|
+ TVN_ENDLABELEDITW = (TVN_FIRST-60);
|
|
|
+ TVN_KEYDOWN = (TVN_FIRST-12);
|
|
|
+
|
|
|
+{$ifdef ie4plus}
|
|
|
+ TVN_GETINFOTIPA = (TVN_FIRST-13);
|
|
|
+ TVN_GETINFOTIPW = (TVN_FIRST-14);
|
|
|
+ TVN_SINGLEEXPAND = (TVN_FIRST-15);
|
|
|
+
|
|
|
+ TVNRET_DEFAULT = 0;
|
|
|
+ TVNRET_SKIPOLD = 1;
|
|
|
+ TVNRET_SKIPNEW = 2;
|
|
|
+
|
|
|
+{$ENDIF} // 0x400
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+{$IFDEF _WIN32}
|
|
|
+#include <pshpack1.h>
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagTVKEYDOWN = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ wVKey : WORD;
|
|
|
+ flags : UINT;
|
|
|
+ END;
|
|
|
+ NMTVKEYDOWN = tagTVKEYDOWN;
|
|
|
+ LPNMTVKEYDOWN = ^tagTVKEYDOWN;
|
|
|
+ TTVKEYDOWN = tagTVKEYDOWN;
|
|
|
+ PTVKEYDOWN = ^tagTVKEYDOWN;
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+ TV_KEYDOWN = NMTVKEYDOWN;
|
|
|
+{$ELSE}
|
|
|
+ tagTVKEYDOWN = _TV_KEYDOWN;
|
|
|
+ NMTVKEYDOWN = TV_KEYDOWN;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+{$IFDEF _WIN32}
|
|
|
+#include <poppack.h>
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+Const
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ TVN_SELCHANGING = TVN_SELCHANGINGW;
|
|
|
+ TVN_SELCHANGED = TVN_SELCHANGEDW;
|
|
|
+ TVN_GETDISPINFO = TVN_GETDISPINFOW;
|
|
|
+ TVN_SETDISPINFO = TVN_SETDISPINFOW;
|
|
|
+ TVN_ITEMEXPANDING = TVN_ITEMEXPANDINGW;
|
|
|
+ TVN_ITEMEXPANDED = TVN_ITEMEXPANDEDW;
|
|
|
+ TVN_BEGINDRAG = TVN_BEGINDRAGW;
|
|
|
+ TVN_BEGINRDRAG = TVN_BEGINRDRAGW;
|
|
|
+ TVN_DELETEITEM = TVN_DELETEITEMW;
|
|
|
+ TVN_BEGINLABELEDIT = TVN_BEGINLABELEDITW;
|
|
|
+ TVN_ENDLABELEDIT = TVN_ENDLABELEDITW;
|
|
|
+{$ELSE}
|
|
|
+ TVN_SELCHANGING = TVN_SELCHANGINGA;
|
|
|
+ TVN_SELCHANGED = TVN_SELCHANGEDA;
|
|
|
+ TVN_GETDISPINFO = TVN_GETDISPINFOA;
|
|
|
+ TVN_SETDISPINFO = TVN_SETDISPINFOA;
|
|
|
+ TVN_ITEMEXPANDING = TVN_ITEMEXPANDINGA;
|
|
|
+ TVN_ITEMEXPANDED = TVN_ITEMEXPANDEDA;
|
|
|
+ TVN_BEGINDRAG = TVN_BEGINDRAGA;
|
|
|
+ TVN_BEGINRDRAG = TVN_BEGINRDRAGA;
|
|
|
+ TVN_DELETEITEM = TVN_DELETEITEMA;
|
|
|
+ TVN_BEGINLABELEDIT = TVN_BEGINLABELEDITA;
|
|
|
+ TVN_ENDLABELEDIT = TVN_ENDLABELEDITA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+// #define NMTVCUSTOMDRAW_V3_SIZE CCSIZEOF_STRUCT(NMTVCUSTOMDRAW, clrTextBk)
|
|
|
+Type
|
|
|
+ tagNMTVCUSTOMDRAW = Record
|
|
|
+ nmcd : NMCUSTOMDRAW;
|
|
|
+ clrText : COLORREF;
|
|
|
+ clrTextBk : COLORREF;
|
|
|
+{$ifdef ie4plus}
|
|
|
+ iLevel : cint;
|
|
|
+{$ENDIF}
|
|
|
+ END;
|
|
|
+ NMTVCUSTOMDRAW = tagNMTVCUSTOMDRAW;
|
|
|
+ LPNMTVCUSTOMDRAW = ^tagNMTVCUSTOMDRAW;
|
|
|
+ TNMTVCUSTOMDRAW = tagNMTVCUSTOMDRAW;
|
|
|
+ PNMTVCUSTOMDRAW = ^tagNMTVCUSTOMDRAW;
|
|
|
+
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+{$ifdef ie4plus}
|
|
|
+
|
|
|
+// for tooltips
|
|
|
+
|
|
|
+ tagNMTVGETINFOTIPA = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ pszText : LPSTR;
|
|
|
+ cchTextMax : cint;
|
|
|
+ hItem : HTREEITEM;
|
|
|
+ lParam : LPARAM;
|
|
|
+ END;
|
|
|
+ NMTVGETINFOTIPA = tagNMTVGETINFOTIPA;
|
|
|
+ LPNMTVGETINFOTIPA = ^tagNMTVGETINFOTIPA;
|
|
|
+ TNMTVGETINFOTIPA = tagNMTVGETINFOTIPA;
|
|
|
+ PNMTVGETINFOTIPA = ^tagNMTVGETINFOTIPA;
|
|
|
+
|
|
|
+
|
|
|
+ tagNMTVGETINFOTIPW = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ pszText : LPWSTR;
|
|
|
+ cchTextMax : cint;
|
|
|
+ hItem : HTREEITEM;
|
|
|
+ lParam : LPARAM;
|
|
|
+ END;
|
|
|
+ NMTVGETINFOTIPW = tagNMTVGETINFOTIPW;
|
|
|
+ LPNMTVGETINFOTIPW = ^tagNMTVGETINFOTIPW;
|
|
|
+ TNMTVGETINFOTIPW = tagNMTVGETINFOTIPW;
|
|
|
+ PNMTVGETINFOTIPW = ^tagNMTVGETINFOTIPW;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ TVN_GETINFOTIP = TVN_GETINFOTIPW;
|
|
|
+TYPE
|
|
|
+ NMTVGETINFOTIP = NMTVGETINFOTIPW;
|
|
|
+ LPNMTVGETINFOTIP = LPNMTVGETINFOTIPW;
|
|
|
+{$ELSE}
|
|
|
+ TVN_GETINFOTIP = TVN_GETINFOTIPA;
|
|
|
+TYPE
|
|
|
+ NMTVGETINFOTIP = NMTVGETINFOTIPA;
|
|
|
+ LPNMTVGETINFOTIP = LPNMTVGETINFOTIPA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// treeview's customdraw return meaning don't draw images. valid on CDRF_NOTIFYITEMPREPAINT
|
|
|
+
|
|
|
+CONST
|
|
|
+ TVCDRF_NOIMAGES = $00010000;
|
|
|
+
|
|
|
+{$ENDIF} // _WIN32_IE >= 0x0400
|
|
|
+
|
|
|
+{$ENDIF} // NOTREEVIEW
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+
|
|
|
+{$IFNDEF NOUSEREXCONTROLS}
|
|
|
+
|
|
|
+//////////////////// ComboBoxEx ////////////////////////////////
|
|
|
+
|
|
|
+ WC_COMBOBOXEXW = {L}'ComboBoxEx32';
|
|
|
+ WC_COMBOBOXEXA = 'ComboBoxEx32';
|
|
|
+
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ WC_COMBOBOXEX = WC_COMBOBOXEXW;
|
|
|
+{$ELSE}
|
|
|
+ WC_COMBOBOXEX = WC_COMBOBOXEXA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+CONST
|
|
|
+ CBEIF_TEXT = $00000001;
|
|
|
+ CBEIF_IMAGE = $00000002;
|
|
|
+ CBEIF_SELECTEDIMAGE = $00000004;
|
|
|
+ CBEIF_OVERLAY = $00000008;
|
|
|
+ CBEIF_INDENT = $00000010;
|
|
|
+ CBEIF_LPARAM = $00000020;
|
|
|
+ CBEIF_DI_SETITEM = $10000000;
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagCOMBOBOXEXITEMA = Record
|
|
|
+ mask : UINT;
|
|
|
+ iItem : INT_PTR;
|
|
|
+ pszText : LPSTR;
|
|
|
+ cchTextMax : cint;
|
|
|
+ iImage : cint;
|
|
|
+ iSelectedImage : cint;
|
|
|
+ iOverlay : cint;
|
|
|
+ iIndent : cint;
|
|
|
+ lParam : LPARAM;
|
|
|
+ END;
|
|
|
+ COMBOBOXEXITEMA = tagCOMBOBOXEXITEMA;
|
|
|
+ PCOMBOBOXEXITEMA = ^tagCOMBOBOXEXITEMA;
|
|
|
+ TCOMBOBOXEXITEMA = tagCOMBOBOXEXITEMA;
|
|
|
+// PCOMBOBOXEXITEMA = ^tagCOMBOBOXEXITEMA;
|
|
|
+
|
|
|
+ PCCOMBOBOXEXITEMA = ^COMBOBOXEXITEMA;
|
|
|
+
|
|
|
+
|
|
|
+ tagCOMBOBOXEXITEMW = Record
|
|
|
+ mask : UINT;
|
|
|
+ iItem : INT_PTR;
|
|
|
+ pszText : LPWSTR;
|
|
|
+ cchTextMax : cint;
|
|
|
+ iImage : cint;
|
|
|
+ iSelectedImage : cint;
|
|
|
+ iOverlay : cint;
|
|
|
+ iIndent : cint;
|
|
|
+ lParam : LPARAM;
|
|
|
+ END;
|
|
|
+ COMBOBOXEXITEMW = tagCOMBOBOXEXITEMW;
|
|
|
+ PCOMBOBOXEXITEMW = ^tagCOMBOBOXEXITEMW;
|
|
|
+ TCOMBOBOXEXITEMW = tagCOMBOBOXEXITEMW;
|
|
|
+// PCOMBOBOXEXITEMW = ^tagCOMBOBOXEXITEMW;
|
|
|
+
|
|
|
+ PCCOMBOBOXEXITEMW = ^COMBOBOXEXITEMW;
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ COMBOBOXEXITEM = COMBOBOXEXITEMW;
|
|
|
+ PCOMBOBOXEXITEM = PCOMBOBOXEXITEMW;
|
|
|
+ PCCOMBOBOXEXITEM = PCCOMBOBOXEXITEMW;
|
|
|
+{$ELSE}
|
|
|
+ COMBOBOXEXITEM = COMBOBOXEXITEMA;
|
|
|
+ PCOMBOBOXEXITEM = PCOMBOBOXEXITEMA;
|
|
|
+ PCCOMBOBOXEXITEM = PCCOMBOBOXEXITEMA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ CBEM_INSERTITEMA = (WM_USER + 1);
|
|
|
+ CBEM_SETIMAGELIST = (WM_USER + 2);
|
|
|
+ CBEM_GETIMAGELIST = (WM_USER + 3);
|
|
|
+ CBEM_GETITEMA = (WM_USER + 4);
|
|
|
+ CBEM_SETITEMA = (WM_USER + 5);
|
|
|
+ CBEM_DELETEITEM = CB_DELETESTRING;
|
|
|
+ CBEM_GETCOMBOCONTROL = (WM_USER + 6);
|
|
|
+ CBEM_GETEDITCONTROL = (WM_USER + 7);
|
|
|
+{$ifdef ie4plus}
|
|
|
+ CBEM_SETEXSTYLE = (WM_USER + 8); // use SETEXTENDEDSTYLE instead
|
|
|
+ CBEM_SETEXTENDEDSTYLE = (WM_USER + 14); // lparam == new style, wParam (optional) == mask
|
|
|
+ CBEM_GETEXSTYLE = (WM_USER + 9); // use GETEXTENDEDSTYLE instead
|
|
|
+ CBEM_GETEXTENDEDSTYLE = (WM_USER + 9);
|
|
|
+ CBEM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
|
|
|
+ CBEM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
|
|
|
+{$ELSE}
|
|
|
+ CBEM_SETEXSTYLE = (WM_USER + 8);
|
|
|
+ CBEM_GETEXSTYLE = (WM_USER + 9);
|
|
|
+{$ENDIF}
|
|
|
+ CBEM_HASEDITCHANGED = (WM_USER + 10);
|
|
|
+ CBEM_INSERTITEMW = (WM_USER + 11);
|
|
|
+ CBEM_SETITEMW = (WM_USER + 12);
|
|
|
+ CBEM_GETITEMW = (WM_USER + 13);
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+
|
|
|
+ CBEM_INSERTITEM = CBEM_INSERTITEMW;
|
|
|
+ CBEM_SETITEM = CBEM_SETITEMW;
|
|
|
+ CBEM_GETITEM = CBEM_GETITEMW;
|
|
|
+{$ELSE}
|
|
|
+ CBEM_INSERTITEM = CBEM_INSERTITEMA;
|
|
|
+ CBEM_SETITEM = CBEM_SETITEMA;
|
|
|
+ CBEM_GETITEM = CBEM_GETITEMA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ifdef win32xp}
|
|
|
+
|
|
|
+ CBEM_SETWINDOWTHEME = CCM_SETWINDOWTHEME;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+ CBES_EX_NOEDITIMAGE = $00000001;
|
|
|
+ CBES_EX_NOEDITIMAGEINDENT = $00000002;
|
|
|
+ CBES_EX_PATHWORDBREAKPROC = $00000004;
|
|
|
+{$ifdef ie4plus}
|
|
|
+ CBES_EX_NOSIZELIMIT = $00000008;
|
|
|
+ CBES_EX_CASESENSITIVE = $00000010;
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ DummyStruct9 = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ ceItem : COMBOBOXEXITEMA;
|
|
|
+ END;
|
|
|
+ NMCOMBOBOXEXA = DummyStruct9;
|
|
|
+ PNMCOMBOBOXEXA = ^DummyStruct9;
|
|
|
+ TDummyStruct9 = DummyStruct9;
|
|
|
+ PDummyStruct9 = ^DummyStruct9;
|
|
|
+
|
|
|
+
|
|
|
+ DummyStruct10 = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ ceItem : COMBOBOXEXITEMW;
|
|
|
+ END;
|
|
|
+ NMCOMBOBOXEXW = DummyStruct10;
|
|
|
+ PNMCOMBOBOXEXW = ^DummyStruct10;
|
|
|
+ TDummyStruct10 = DummyStruct10;
|
|
|
+ PDummyStruct10 = ^DummyStruct10;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+{$ELSE}
|
|
|
+ DummyStruct11 = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ ceItem : COMBOBOXEXITEM;
|
|
|
+ END;
|
|
|
+ NMCOMBOBOXEX = DummyStruct11;
|
|
|
+ PNMCOMBOBOXEX = ^DummyStruct11;
|
|
|
+ TDummyStruct11 = DummyStruct11;
|
|
|
+ PDummyStruct11 = ^DummyStruct11;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ CBEN_GETDISPINFO = (CBEN_FIRST - 0);
|
|
|
+
|
|
|
+{$ENDIF} // _WIN32_IE >= 0x0400
|
|
|
+CONST
|
|
|
+{$ifdef ie4plus}
|
|
|
+ CBEN_GETDISPINFOA = (CBEN_FIRST - 0);
|
|
|
+{$ENDIF}
|
|
|
+ CBEN_INSERTITEM = (CBEN_FIRST - 1);
|
|
|
+ CBEN_DELETEITEM = (CBEN_FIRST - 2);
|
|
|
+ CBEN_BEGINEDIT = (CBEN_FIRST - 4);
|
|
|
+ CBEN_ENDEDITA = (CBEN_FIRST - 5);
|
|
|
+ CBEN_ENDEDITW = (CBEN_FIRST - 6);
|
|
|
+
|
|
|
+{$ifdef ie4plus}
|
|
|
+ CBEN_GETDISPINFOW = (CBEN_FIRST - 7);
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ifdef ie4plus}
|
|
|
+ CBEN_DRAGBEGINA = (CBEN_FIRST - 8);
|
|
|
+ CBEN_DRAGBEGINW = (CBEN_FIRST - 9);
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+
|
|
|
+ CBEN_DRAGBEGIN = CBEN_DRAGBEGINW;
|
|
|
+{$ELSE}
|
|
|
+ CBEN_DRAGBEGIN = CBEN_DRAGBEGINA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ENDIF} //(_WIN32_IE >= 0x0400)
|
|
|
+TYPE
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ NMCOMBOBOXEX = NMCOMBOBOXEXW;
|
|
|
+ PNMCOMBOBOXEX = PNMCOMBOBOXEXW;
|
|
|
+CONST
|
|
|
+ CBEN_GETDISPINFO = CBEN_GETDISPINFOW;
|
|
|
+{$ELSE}
|
|
|
+ NMCOMBOBOXEX = NMCOMBOBOXEXA;
|
|
|
+ PNMCOMBOBOXEX = PNMCOMBOBOXEXA;
|
|
|
+CONST
|
|
|
+ CBEN_GETDISPINFO = CBEN_GETDISPINFOA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// lParam specifies why the endedit is happening
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ CBEN_ENDEDIT = CBEN_ENDEDITW;
|
|
|
+{$ELSE}
|
|
|
+ CBEN_ENDEDIT = CBEN_ENDEDITA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ CBENF_KILLFOCUS = 1;
|
|
|
+ CBENF_RETURN = 2;
|
|
|
+ CBENF_ESCAPE = 3;
|
|
|
+ CBENF_DROPDOWN = 4;
|
|
|
+
|
|
|
+ CBEMAXSTRLEN = 260;
|
|
|
+
|
|
|
+{$ifdef ie4plus}
|
|
|
+// CBEN_DRAGBEGIN sends this information ...
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ DummyStruct12 = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ iItemid : cint;
|
|
|
+ szText : Array[0..CBEMAXSTRLEN-1] OF WCHAR;
|
|
|
+ END;
|
|
|
+ NMCBEDRAGBEGINW = DummyStruct12;
|
|
|
+ LPNMCBEDRAGBEGINW = ^DummyStruct12;
|
|
|
+ PNMCBEDRAGBEGINW = ^DummyStruct12;
|
|
|
+ TDummyStruct12 = DummyStruct12;
|
|
|
+ PDummyStruct12 = ^DummyStruct12;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ DummyStruct13 = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ iItemid : cint;
|
|
|
+ szText : Array[0..CBEMAXSTRLEN-1] OF char;
|
|
|
+ END;
|
|
|
+ NMCBEDRAGBEGINA = DummyStruct13;
|
|
|
+ LPNMCBEDRAGBEGINA = ^DummyStruct13;
|
|
|
+ PNMCBEDRAGBEGINA = ^DummyStruct13;
|
|
|
+ TDummyStruct13 = DummyStruct13;
|
|
|
+ PDummyStruct13 = ^DummyStruct13;
|
|
|
+
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ NMCBEDRAGBEGIN = NMCBEDRAGBEGINW;
|
|
|
+ LPNMCBEDRAGBEGIN = LPNMCBEDRAGBEGINW;
|
|
|
+ PNMCBEDRAGBEGIN = PNMCBEDRAGBEGINW;
|
|
|
+{$ELSE}
|
|
|
+ NMCBEDRAGBEGIN = NMCBEDRAGBEGINA;
|
|
|
+ LPNMCBEDRAGBEGIN = LPNMCBEDRAGBEGINA;
|
|
|
+ PNMCBEDRAGBEGIN = PNMCBEDRAGBEGINA;
|
|
|
+{$ENDIF}
|
|
|
+{$ENDIF} // _WIN32_IE >= 0x0400
|
|
|
+
|
|
|
+// CBEN_ENDEDIT sends this information...
|
|
|
+// fChanged if the user actually did anything
|
|
|
+// iNewSelection gives what would be the new selection unless the notify is failed
|
|
|
+// iNewSelection may be CB_ERR if there's no match
|
|
|
+ DummyStruct14 = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ fChanged : BOOL;
|
|
|
+ iNewSelection : cint;
|
|
|
+ szText : Array[0..CBEMAXSTRLEN-1] OF WCHAR;
|
|
|
+ iWhy : cint;
|
|
|
+ END;
|
|
|
+ NMCBEENDEDITW = DummyStruct14;
|
|
|
+ LPNMCBEENDEDITW = ^DummyStruct14;
|
|
|
+ PNMCBEENDEDITW = ^DummyStruct14;
|
|
|
+ TDummyStruct14 = DummyStruct14;
|
|
|
+ PDummyStruct14 = ^DummyStruct14;
|
|
|
+
|
|
|
+
|
|
|
+ DummyStruct15 = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ fChanged : BOOL;
|
|
|
+ iNewSelection : cint;
|
|
|
+ szText : Array[0..CBEMAXSTRLEN-1] OF char;
|
|
|
+ iWhy : cint;
|
|
|
+ END;
|
|
|
+ NMCBEENDEDITA = DummyStruct15;
|
|
|
+ LPNMCBEENDEDITA = ^DummyStruct15;
|
|
|
+ PNMCBEENDEDITA = ^DummyStruct15;
|
|
|
+ TDummyStruct15 = DummyStruct15;
|
|
|
+ PDummyStruct15 = ^DummyStruct15;
|
|
|
+
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ NMCBEENDEDIT = NMCBEENDEDITW;
|
|
|
+ LPNMCBEENDEDIT = LPNMCBEENDEDITW;
|
|
|
+ PNMCBEENDEDIT = PNMCBEENDEDITW;
|
|
|
+{$ELSE}
|
|
|
+ NMCBEENDEDIT = NMCBEENDEDITA;
|
|
|
+ LPNMCBEENDEDIT = LPNMCBEENDEDITA;
|
|
|
+ PNMCBEENDEDIT = PNMCBEENDEDITA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ENDIF} // _WIN32_IE >= 0x0300
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+//====== TAB CONTROL ==========================================================
|
|
|
+
|
|
|
+{$IFNDEF NOTABCONTROL}
|
|
|
+
|
|
|
+{$IFDEF _WIN32}
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ WC_TABCONTROLA = 'SysTabControl32';
|
|
|
+ WC_TABCONTROLW = {L}'SysTabControl32';
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+
|
|
|
+TYPE
|
|
|
+ WC_TABCONTROL = WC_TABCONTROLW;
|
|
|
+{$ELSE}
|
|
|
+ WC_TABCONTROL = WC_TABCONTROLA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ELSE}
|
|
|
+
|
|
|
+CONST
|
|
|
+ WC_TABCONTROL = 'SysTabControl';
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// begin_r_commctrl
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+ TCS_SCROLLOPPOSITE = $0001; // assumes multiline tab
|
|
|
+ TCS_BOTTOM = $0002;
|
|
|
+ TCS_RIGHT = $0002;
|
|
|
+ TCS_MULTISELECT = $0004; // allow multi-select in button mode
|
|
|
+{$ENDIF}
|
|
|
+{$ifdef ie4plus}
|
|
|
+ TCS_FLATBUTTONS = $0008;
|
|
|
+{$ENDIF}
|
|
|
+ TCS_FORCEICONLEFT = $0010;
|
|
|
+ TCS_FORCELABELLEFT = $0020;
|
|
|
+{$ifdef ie3plus}
|
|
|
+ TCS_HOTTRACK = $0040;
|
|
|
+ TCS_VERTICAL = $0080;
|
|
|
+{$ENDIF}
|
|
|
+ TCS_TABS = $0000;
|
|
|
+ TCS_BUTTONS = $0100;
|
|
|
+ TCS_SINGLELINE = $0000;
|
|
|
+ TCS_MULTILINE = $0200;
|
|
|
+ TCS_RIGHTJUSTIFY = $0000;
|
|
|
+ TCS_FIXEDWIDTH = $0400;
|
|
|
+ TCS_RAGGEDRIGHT = $0800;
|
|
|
+ TCS_FOCUSONBUTTONDOWN = $1000;
|
|
|
+ TCS_OWNERDRAWFIXED = $2000;
|
|
|
+ TCS_TOOLTIPS = $4000;
|
|
|
+ TCS_FOCUSNEVER = $8000;
|
|
|
+
|
|
|
+// end_r_commctrl
|
|
|
+
|
|
|
+{$ifdef ie4plus}
|
|
|
+// EX styles for use with TCM_SETEXTENDEDSTYLE
|
|
|
+ TCS_EX_FLATSEPARATORS = $00000001;
|
|
|
+ TCS_EX_REGISTERDROP = $00000002;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+ TCM_GETIMAGELIST = (TCM_FIRST + 2);
|
|
|
+// Macro 217
|
|
|
+
|
|
|
+
|
|
|
+Function TabCtrl_GetImageList( hwnd : hwnd):HIMAGELIST;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TCM_SETIMAGELIST = (TCM_FIRST + 3);
|
|
|
+// Macro 218
|
|
|
+
|
|
|
+
|
|
|
+Function TabCtrl_SetImageList( hwnd : hwnd; himl : HIMAGELIST):HIMAGELIST;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TCM_GETITEMCOUNT = (TCM_FIRST + 4);
|
|
|
+// Macro 219
|
|
|
+
|
|
|
+
|
|
|
+Function TabCtrl_GetItemCount( hwnd : hwnd):cint;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TCIF_TEXT = $0001;
|
|
|
+ TCIF_IMAGE = $0002;
|
|
|
+ TCIF_RTLREADING = $0004;
|
|
|
+ TCIF_PARAM = $0008;
|
|
|
+{$ifdef ie3plus}
|
|
|
+ TCIF_STATE = $0010;
|
|
|
+
|
|
|
+
|
|
|
+ TCIS_BUTTONPRESSED = $0001;
|
|
|
+{$ENDIF}
|
|
|
+{$ifdef ie4plus}
|
|
|
+ TCIS_HIGHLIGHTED = $0002;
|
|
|
+{$ENDIF}
|
|
|
+TYPE
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ tagTCITEMHEADERA = Record
|
|
|
+ mask : UINT;
|
|
|
+ lpReserved1 : UINT;
|
|
|
+ lpReserved2 : UINT;
|
|
|
+ pszText : LPSTR;
|
|
|
+ cchTextMax : cint;
|
|
|
+ iImage : cint;
|
|
|
+ END;
|
|
|
+ TCITEMHEADERA = tagTCITEMHEADERA;
|
|
|
+ LPTCITEMHEADERA = ^tagTCITEMHEADERA;
|
|
|
+ TTCITEMHEADERA = tagTCITEMHEADERA;
|
|
|
+ PTCITEMHEADERA = ^tagTCITEMHEADERA;
|
|
|
+
|
|
|
+
|
|
|
+ tagTCITEMHEADERW = Record
|
|
|
+ mask : UINT;
|
|
|
+ lpReserved1 : UINT;
|
|
|
+ lpReserved2 : UINT;
|
|
|
+ pszText : LPWSTR;
|
|
|
+ cchTextMax : cint;
|
|
|
+ iImage : cint;
|
|
|
+ END;
|
|
|
+ TCITEMHEADERW = tagTCITEMHEADERW;
|
|
|
+ LPTCITEMHEADERW = ^tagTCITEMHEADERW;
|
|
|
+ TTCITEMHEADERW = tagTCITEMHEADERW;
|
|
|
+ PTCITEMHEADERW = ^tagTCITEMHEADERW;
|
|
|
+
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ TCITEMHEADER = TCITEMHEADERW;
|
|
|
+ LPTCITEMHEADER = LPTCITEMHEADERW;
|
|
|
+{$ELSE}
|
|
|
+ TCITEMHEADER = TCITEMHEADERA;
|
|
|
+ LPTCITEMHEADER = LPTCITEMHEADERA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+ TC_ITEMHEADERA = TCITEMHEADERA;
|
|
|
+ TC_ITEMHEADERW = TCITEMHEADERW;
|
|
|
+{$ELSE}
|
|
|
+ tagTCITEMHEADERA = _TC_ITEMHEADERA;
|
|
|
+ TCITEMHEADERA = TC_ITEMHEADERA;
|
|
|
+ tagTCITEMHEADERW = _TC_ITEMHEADERW;
|
|
|
+ TCITEMHEADERW = TC_ITEMHEADERW;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+ TC_ITEMHEADER = TCITEMHEADER;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ tagTCITEMA = Record
|
|
|
+ mask : UINT;
|
|
|
+{$ifdef ie3plus}
|
|
|
+ dwState : DWORD;
|
|
|
+ dwStateMask : DWORD;
|
|
|
+{$ELSE}
|
|
|
+ lpReserved1 : UINT;
|
|
|
+ lpReserved2 : UINT;
|
|
|
+{$ENDIF}
|
|
|
+ pszText : LPSTR;
|
|
|
+ cchTextMax : cint;
|
|
|
+ iImage : cint;
|
|
|
+ lParam : LPARAM;
|
|
|
+ END;
|
|
|
+ TCITEMA = tagTCITEMA;
|
|
|
+ LPTCITEMA = ^tagTCITEMA;
|
|
|
+ TTCITEMA = tagTCITEMA;
|
|
|
+ PTCITEMA = ^tagTCITEMA;
|
|
|
+
|
|
|
+
|
|
|
+ tagTCITEMW = Record
|
|
|
+ mask : UINT;
|
|
|
+{$ifdef ie3plus}
|
|
|
+ dwState : DWORD;
|
|
|
+ dwStateMask : DWORD;
|
|
|
+{$ELSE}
|
|
|
+ lpReserved1 : UINT;
|
|
|
+ lpReserved2 : UINT;
|
|
|
+{$ENDIF}
|
|
|
+ pszText : LPWSTR;
|
|
|
+ cchTextMax : cint;
|
|
|
+ iImage : cint;
|
|
|
+ lParam : LPARAM;
|
|
|
+ END;
|
|
|
+ TCITEMW = tagTCITEMW;
|
|
|
+ LPTCITEMW = ^tagTCITEMW;
|
|
|
+ TTCITEMW = tagTCITEMW;
|
|
|
+ PTCITEMW = ^tagTCITEMW;
|
|
|
+
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ TCITEM = TCITEMW;
|
|
|
+ LPTCITEM = LPTCITEMW;
|
|
|
+{$ELSE}
|
|
|
+ TCITEM = TCITEMA;
|
|
|
+ LPTCITEM = LPTCITEMA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+ TC_ITEMA = TCITEMA;
|
|
|
+ TC_ITEMW = TCITEMW;
|
|
|
+{$ELSE}
|
|
|
+ tagTCITEMA = _TC_ITEMA;
|
|
|
+ TCITEMA = TC_ITEMA;
|
|
|
+ tagTCITEMW = _TC_ITEMW;
|
|
|
+ TCITEMW = TC_ITEMW;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+ TC_ITEM = TCITEM;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TCM_GETITEMA = (TCM_FIRST + 5);
|
|
|
+ TCM_GETITEMW = (TCM_FIRST + 60);
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+
|
|
|
+TYPE
|
|
|
+ TCM_GETITEM = TCM_GETITEMW;
|
|
|
+{$ELSE}
|
|
|
+ TCM_GETITEM = TCM_GETITEMA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// Macro 220
|
|
|
+Function TabCtrl_GetItem( hwnd : hwnd; iItem : cint;var pitem : TC_ITEM ):BOOL;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TCM_SETITEMA = (TCM_FIRST + 6);
|
|
|
+ TCM_SETITEMW = (TCM_FIRST + 61);
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+
|
|
|
+TYPE
|
|
|
+ TCM_SETITEM = TCM_SETITEMW;
|
|
|
+{$ELSE}
|
|
|
+ TCM_SETITEM = TCM_SETITEMA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// Macro 221
|
|
|
+Function TabCtrl_SetItem( hwnd : hwnd; iItem : cint;var pitem : TC_ITEM ):BOOL;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TCM_INSERTITEMA = (TCM_FIRST + 7);
|
|
|
+ TCM_INSERTITEMW = (TCM_FIRST + 62);
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ TCM_INSERTITEM = TCM_INSERTITEMW;
|
|
|
+{$ELSE}
|
|
|
+ TCM_INSERTITEM = TCM_INSERTITEMA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// Macro 222
|
|
|
+Function TabCtrl_InsertItem( hwnd : hwnd; iItem : cint;CONST pitem : TC_ITEM ):cint;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TCM_DELETEITEM = (TCM_FIRST + 8);
|
|
|
+
|
|
|
+// Macro 223
|
|
|
+Function TabCtrl_DeleteItem( hwnd : hwnd; i : cint):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ TCM_DELETEALLITEMS = (TCM_FIRST + 9);
|
|
|
+
|
|
|
+// Macro 224
|
|
|
+Function TabCtrl_DeleteAllItems( hwnd : hwnd):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ TCM_GETITEMRECT = (TCM_FIRST + 10);
|
|
|
+
|
|
|
+// Macro 225
|
|
|
+Function TabCtrl_GetItemRect( hwnd : hwnd; i : cint;var prc : RECT ):BOOL;
|
|
|
+
|
|
|
+CONST
|
|
|
+ TCM_GETCURSEL = (TCM_FIRST + 11);
|
|
|
+// Macro 226
|
|
|
+
|
|
|
+Function TabCtrl_GetCurSel( hwnd : hwnd):cint;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TCM_SETCURSEL = (TCM_FIRST + 12);
|
|
|
+
|
|
|
+// Macro 227
|
|
|
+Function TabCtrl_SetCurSel( hwnd : hwnd; i : WPARAM):cint;
|
|
|
+
|
|
|
+CONST
|
|
|
+ TCHT_NOWHERE = $0001;
|
|
|
+ TCHT_ONITEMICON = $0002;
|
|
|
+ TCHT_ONITEMLABEL = $0004;
|
|
|
+ TCHT_ONITEM = (TCHT_ONITEMICON OR TCHT_ONITEMLABEL);
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagTCHITTESTINFO = Record
|
|
|
+ pt : POINT;
|
|
|
+ flags : UINT;
|
|
|
+ END;
|
|
|
+ TCHITTESTINFO = tagTCHITTESTINFO;
|
|
|
+ LPTCHITTESTINFO = ^tagTCHITTESTINFO;
|
|
|
+ TTCHITTESTINFO = tagTCHITTESTINFO;
|
|
|
+ PTCHITTESTINFO = ^tagTCHITTESTINFO;
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+ LPTC_HITTESTINFO = LPTCHITTESTINFO;
|
|
|
+ TC_HITTESTINFO = TCHITTESTINFO;
|
|
|
+{$ELSE}
|
|
|
+ tagTCHITTESTINFO = _TC_HITTESTINFO;
|
|
|
+ TCHITTESTINFO = TC_HITTESTINFO;
|
|
|
+ LPTCHITTESTINFO = LPTC_HITTESTINFO;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TCM_HITTEST = (TCM_FIRST + 13);
|
|
|
+
|
|
|
+// Macro 228
|
|
|
+Function TabCtrl_HitTest( hwndTC : hwnd;var pinfo : TC_HITTESTINFO ):cint;
|
|
|
+
|
|
|
+CONST
|
|
|
+ TCM_SETITEMEXTRA = (TCM_FIRST + 14);
|
|
|
+
|
|
|
+// Macro 229
|
|
|
+Function TabCtrl_SetItemExtra( hwndTC : hwnd; cb : WPARAM):BOOL;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TCM_ADJUSTRECT = (TCM_FIRST + 40);
|
|
|
+
|
|
|
+// Macro 230
|
|
|
+Function TabCtrl_AdjustRect( hwnd : hwnd; bLarger : BOOL;var prc : RECT ):cint;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TCM_SETITEMSIZE = (TCM_FIRST + 41);
|
|
|
+
|
|
|
+// Macro 231
|
|
|
+Function TabCtrl_SetItemSize( hwnd : hwnd; x :lparam ; y : lparam ):DWORD;
|
|
|
+
|
|
|
+CONST
|
|
|
+ TCM_REMOVEIMAGE = (TCM_FIRST + 42);
|
|
|
+
|
|
|
+// Macro 232
|
|
|
+Procedure TabCtrl_RemoveImage( hwnd : hwnd; i : wparam );
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TCM_SETPADDING = (TCM_FIRST + 43);
|
|
|
+
|
|
|
+// Macro 233
|
|
|
+Procedure TabCtrl_SetPadding( hwnd : hwnd; cx : lparam ; cy : lparam );
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TCM_GETROWCOUNT = (TCM_FIRST + 44);
|
|
|
+
|
|
|
+// Macro 234
|
|
|
+Function TabCtrl_GetRowCount( hwnd : hwnd):cint;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TCM_GETTOOLTIPS = (TCM_FIRST + 45);
|
|
|
+
|
|
|
+// Macro 235
|
|
|
+Function TabCtrl_GetToolTips( hwnd : hwnd):HWND;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TCM_SETTOOLTIPS = (TCM_FIRST + 46);
|
|
|
+
|
|
|
+// Macro 236
|
|
|
+Procedure TabCtrl_SetToolTips( hwnd : hwnd; hwndTT : WPARAM);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TCM_GETCURFOCUS = (TCM_FIRST + 47);
|
|
|
+// Macro 237
|
|
|
+
|
|
|
+
|
|
|
+Function TabCtrl_GetCurFocus( hwnd : hwnd):cint;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TCM_SETCURFOCUS = (TCM_FIRST + 48);
|
|
|
+
|
|
|
+// Macro 238
|
|
|
+Procedure TabCtrl_SetCurFocus( hwnd : hwnd; i : WParam );
|
|
|
+
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+
|
|
|
+CONST
|
|
|
+ TCM_SETMINTABWIDTH = (TCM_FIRST + 49);
|
|
|
+
|
|
|
+// Macro 239
|
|
|
+Function TabCtrl_SetMinTabWidth( hwnd : hwnd; x : WParam ):cint;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TCM_DESELECTALL = (TCM_FIRST + 50);
|
|
|
+
|
|
|
+// Macro 240
|
|
|
+Procedure TabCtrl_DeselectAll( hwnd : hwnd; fExcludeFocus : WPARAM );
|
|
|
+
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ifdef ie4plus}
|
|
|
+CONST
|
|
|
+ TCM_HIGHLIGHTITEM = (TCM_FIRST + 51);
|
|
|
+
|
|
|
+// Macro 241
|
|
|
+Function TabCtrl_HighlightItem( hwnd : hwnd; i : WPARAM; fHighlight :bool):BOOL;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TCM_SETEXTENDEDSTYLE = (TCM_FIRST + 52); // optional wParam == mask
|
|
|
+
|
|
|
+// Macro 242
|
|
|
+Function TabCtrl_SetExtendedStyle( hwnd : hwnd; dw :LPAram ):DWORD;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TCM_GETEXTENDEDSTYLE = (TCM_FIRST + 53);
|
|
|
+
|
|
|
+// Macro 243
|
|
|
+Function TabCtrl_GetExtendedStyle( hwnd : hwnd):DWORD;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TCM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
|
|
|
+
|
|
|
+// Macro 244
|
|
|
+Function TabCtrl_SetUnicodeFormat( hwnd : hwnd; fUnicode : WPARAM):BOOL;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TCM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
|
|
|
+
|
|
|
+// Macro 245
|
|
|
+Function TabCtrl_GetUnicodeFormat( hwnd : hwnd):BOOL;
|
|
|
+
|
|
|
+
|
|
|
+{$ENDIF} // _WIN32_IE >= 0x0400
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TCN_KEYDOWN = (TCN_FIRST - 0);
|
|
|
+
|
|
|
+
|
|
|
+{$IFDEF _WIN32}
|
|
|
+#include <pshpack1.h>
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagTCKEYDOWN = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ wVKey : WORD;
|
|
|
+ flags : UINT;
|
|
|
+ END;
|
|
|
+ NMTCKEYDOWN = tagTCKEYDOWN;
|
|
|
+ TTCKEYDOWN = tagTCKEYDOWN;
|
|
|
+ PTCKEYDOWN = ^tagTCKEYDOWN;
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+ TC_KEYDOWN = NMTCKEYDOWN;
|
|
|
+{$ELSE}
|
|
|
+ tagTCKEYDOWN = _TC_KEYDOWN;
|
|
|
+ NMTCKEYDOWN = TC_KEYDOWN;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+{$IFDEF _WIN32}
|
|
|
+#include <poppack.h>
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ TCN_SELCHANGE = (TCN_FIRST - 1);
|
|
|
+ TCN_SELCHANGING = (TCN_FIRST - 2);
|
|
|
+{$ifdef ie4plus}
|
|
|
+ TCN_GETOBJECT = (TCN_FIRST - 3);
|
|
|
+{$ENDIF} // _WIN32_IE >= 0x0400
|
|
|
+{$ifdef ie5plus}
|
|
|
+ TCN_FOCUSCHANGE = (TCN_FIRST - 4);
|
|
|
+{$ENDIF} // _WIN32_IE >= 0x0500
|
|
|
+{$ENDIF} // NOTABCONTROL
|
|
|
+
|
|
|
+//====== ANIMATE CONTROL ======================================================
|
|
|
+
|
|
|
+{$IFNDEF NOANIMATE}
|
|
|
+
|
|
|
+{$IFDEF _WIN32}
|
|
|
+
|
|
|
+ ANIMATE_CLASSW = {L}'SysAnimate32';
|
|
|
+ ANIMATE_CLASSA = 'SysAnimate32';
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ ANIMATE_CLASS = ANIMATE_CLASSW;
|
|
|
+{$ELSE}
|
|
|
+ ANIMATE_CLASS = ANIMATE_CLASSA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// begin_r_commctrl
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ ACS_CENTER = $0001;
|
|
|
+ ACS_TRANSPARENT = $0002;
|
|
|
+ ACS_AUTOPLAY = $0004;
|
|
|
+{$ifdef ie3plus}
|
|
|
+ ACS_TIMER = $0008; // don't use threads... use timers
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// end_r_commctrl
|
|
|
+
|
|
|
+ ACM_OPENA = (WM_USER+100);
|
|
|
+ ACM_OPENW = (WM_USER+103);
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+
|
|
|
+
|
|
|
+ ACM_OPEN = ACM_OPENW;
|
|
|
+{$ELSE}
|
|
|
+ ACM_OPEN = ACM_OPENA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ ACM_PLAY = (WM_USER+101);
|
|
|
+ ACM_STOP = (WM_USER+102);
|
|
|
+
|
|
|
+
|
|
|
+ ACN_START = 1;
|
|
|
+ ACN_STOP = 2;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 246
|
|
|
+
|
|
|
+
|
|
|
+Procedure Animate_Create(hwndP :HWND;id:HMENU;dwStyle:dword;hInstance:HINST);
|
|
|
+
|
|
|
+// Macro 247
|
|
|
+
|
|
|
+// #define Animate_Open(hwnd, szName) (BOOL)SNDMSG(hwnd, ACM_OPEN, 0, (LPARAM)(LPTSTR)(szName))
|
|
|
+// Macro 248
|
|
|
+
|
|
|
+// #define Animate_OpenEx(hwnd, hInst, szName) (BOOL)SNDMSG(hwnd, ACM_OPEN, (WPARAM)(hInst), (LPARAM)(LPTSTR)(szName))
|
|
|
+// Macro 249
|
|
|
+
|
|
|
+// #define Animate_Play(hwnd, from, to, rep) (BOOL)SNDMSG(hwnd, ACM_PLAY, (WPARAM)(rep), (LPARAM)MAKELONG(from, to))
|
|
|
+// Macro 250
|
|
|
+
|
|
|
+// #define Animate_Stop(hwnd) (BOOL)SNDMSG(hwnd, ACM_STOP, 0, 0)
|
|
|
+// Macro 251
|
|
|
+
|
|
|
+// #define Animate_Close(hwnd) Animate_Open(hwnd, NULL)
|
|
|
+// Macro 252
|
|
|
+
|
|
|
+// #define Animate_Seek(hwnd, frame) Animate_Play(hwnd, frame, frame, 1)
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ENDIF} // NOANIMATE
|
|
|
+
|
|
|
+{$ifdef ie3plus}
|
|
|
+//====== MONTHCAL CONTROL ======================================================
|
|
|
+
|
|
|
+{$IFNDEF NOMONTHCAL}
|
|
|
+{$IFDEF WIN32}
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ MONTHCAL_CLASSW = {L}'SysMonthCal32';
|
|
|
+ MONTHCAL_CLASSA = 'SysMonthCal32';
|
|
|
+
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ MONTHCAL_CLASS = MONTHCAL_CLASSW;
|
|
|
+{$ELSE}
|
|
|
+ MONTHCAL_CLASS = MONTHCAL_CLASSA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+TYPE
|
|
|
+// bit-packed array of "bold" info for a month
|
|
|
+// if a bit is on, that day is drawn bold
|
|
|
+
|
|
|
+ MONTHDAYSTATE = DWORD;
|
|
|
+ LPMONTHDAYSTATE = ^MONTHDAYSTATE;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ MCM_FIRST = $1000;
|
|
|
+
|
|
|
+// BOOL MonthCal_GetCurSel(HWND hmc, LPSYSTEMTIME pst)
|
|
|
+// returns FALSE if MCS_MULTISELECT
|
|
|
+// returns TRUE and sets *pst to the currently selected date otherwise
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ MCM_GETCURSEL = (MCM_FIRST + 1);
|
|
|
+
|
|
|
+// Macro 253
|
|
|
+// #define MonthCal_GetCurSel(hmc, pst) (BOOL)SNDMSG(hmc, MCM_GETCURSEL, 0, (LPARAM)(pst))
|
|
|
+
|
|
|
+function MonthCal_GetCurSel(hwndMC:HWND; lpSysTime :LPSYSTEMTIME):Bool;
|
|
|
+
|
|
|
+// BOOL MonthCal_SetCurSel(HWND hmc, LPSYSTEMTIME pst)
|
|
|
+// returns FALSE if MCS_MULTISELECT
|
|
|
+// returns TURE and sets the currently selected date to *pst otherwise
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ MCM_SETCURSEL = (MCM_FIRST + 2);
|
|
|
+
|
|
|
+// Macro 254
|
|
|
+// #define MonthCal_SetCurSel(hmc, pst) (BOOL)SNDMSG(hmc, MCM_SETCURSEL, 0, (LPARAM)(pst))
|
|
|
+// DWORD MonthCal_GetMaxSelCount(HWND hmc)
|
|
|
+// returns the maximum number of selectable days allowed
|
|
|
+
|
|
|
+function MonthCal_SetCurSel(hwndMC:HWND; lpSysTime :LPSYSTEMTIME):Bool;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ MCM_GETMAXSELCOUNT = (MCM_FIRST + 3);
|
|
|
+
|
|
|
+// Macro 255
|
|
|
+// #define MonthCal_GetMaxSelCount(hmc) (DWORD)SNDMSG(hmc, MCM_GETMAXSELCOUNT, 0, 0L)
|
|
|
+// BOOL MonthCal_SetMaxSelCount(HWND hmc, UINT n)
|
|
|
+// sets the max number days that can be selected iff MCS_MULTISELECT
|
|
|
+
|
|
|
+function MonthCal_GetMaxSelCount(hwndMC:HWND):Bool;
|
|
|
+
|
|
|
+CONST
|
|
|
+ MCM_SETMAXSELCOUNT = (MCM_FIRST + 4);
|
|
|
+
|
|
|
+// Macro 256
|
|
|
+// #define MonthCal_SetMaxSelCount(hmc, n) (BOOL)SNDMSG(hmc, MCM_SETMAXSELCOUNT, (WPARAM)(n), 0L)
|
|
|
+
|
|
|
+function MonthCal_SetMaxSelCount(hwndMC:HWND;n:uint):Bool;
|
|
|
+
|
|
|
+// BOOL MonthCal_GetSelRange(HWND hmc, LPSYSTEMTIME rgst)
|
|
|
+// sets rgst[0] to the first day of the selection range
|
|
|
+// sets rgst[1] to the last day of the selection range
|
|
|
+
|
|
|
+CONST
|
|
|
+ MCM_GETSELRANGE = (MCM_FIRST + 5);
|
|
|
+
|
|
|
+// Macro 257
|
|
|
+// #define MonthCal_GetSelRange(hmc, rgst) SNDMSG(hmc, MCM_GETSELRANGE, 0, (LPARAM)(rgst))
|
|
|
+// BOOL MonthCal_SetSelRange(HWND hmc, LPSYSTEMTIME rgst)
|
|
|
+// selects the range of days from rgst[0] to rgst[1]
|
|
|
+
|
|
|
+function MonthCal_GetSelRange(hwndMC:HWND; lpSysTime :LPSYSTEMTIME):Bool;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ MCM_SETSELRANGE = (MCM_FIRST + 6);
|
|
|
+
|
|
|
+// Macro 258
|
|
|
+// #define MonthCal_SetSelRange(hmc, rgst) SNDMSG(hmc, MCM_SETSELRANGE, 0, (LPARAM)(rgst))
|
|
|
+// DWORD MonthCal_GetMonthRange(HWND hmc, DWORD gmr, LPSYSTEMTIME rgst)
|
|
|
+// if rgst specified, sets rgst[0] to the starting date and
|
|
|
+// and rgst[1] to the ending date of the the selectable (non-grayed)
|
|
|
+// days if GMR_VISIBLE or all the displayed days (including grayed)
|
|
|
+// if GMR_DAYSTATE.
|
|
|
+// returns the number of months spanned by the above range.
|
|
|
+
|
|
|
+function MonthCal_SetSelRange(hwndMC:HWND; lpSysTime :LPSYSTEMTIME):Bool;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ MCM_GETMONTHRANGE = (MCM_FIRST + 7);
|
|
|
+
|
|
|
+// Macro 259
|
|
|
+// #define MonthCal_GetMonthRange(hmc, gmr, rgst) (DWORD)SNDMSG(hmc, MCM_GETMONTHRANGE, (WPARAM)(gmr), (LPARAM)(rgst))
|
|
|
+// BOOL MonthCal_SetDayState(HWND hmc, int cbds, DAYSTATE *rgds)
|
|
|
+// cbds is the count of DAYSTATE items in rgds and it must be equal
|
|
|
+// to the value returned from MonthCal_GetMonthRange(hmc, GMR_DAYSTATE, NULL)
|
|
|
+// This sets the DAYSTATE bits for each month (grayed and non-grayed
|
|
|
+// days) displayed in the calendar. The first bit in a month's DAYSTATE
|
|
|
+// corresponts to bolding day 1, the second bit affects day 2, etc.
|
|
|
+
|
|
|
+function MonthCal_GetMonthRange(hwndMC:HWND; gmr: DWORD;lpSysTime :LPSYSTEMTIME):Bool;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ MCM_SETDAYSTATE = (MCM_FIRST + 8);
|
|
|
+
|
|
|
+// Macro 260
|
|
|
+// #define MonthCal_SetDayState(hmc, cbds, rgds) SNDMSG(hmc, MCM_SETDAYSTATE, (WPARAM)(cbds), (LPARAM)(rgds))
|
|
|
+// BOOL MonthCal_GetMinReqRect(HWND hmc, LPRECT prc)
|
|
|
+// sets *prc the minimal size needed to display one month
|
|
|
+// To display two months, undo the AdjustWindowRect calculation already done to
|
|
|
+// this rect, double the width, and redo the AdjustWindowRect calculation --
|
|
|
+// the monthcal control will display two calendars in this window (if you also
|
|
|
+// double the vertical size, you will get 4 calendars)
|
|
|
+// NOTE: if you want to gurantee that the "Today" string is not clipped,
|
|
|
+// get the MCM_GETMAXTODAYWIDTH and use the max of that width and this width
|
|
|
+
|
|
|
+function MonthCal_SetDayState(hwndMC:HWND; gmr: Longint;lpDay :LPMONTHDAYSTATE):Bool;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ MCM_GETMINREQRECT = (MCM_FIRST + 9);
|
|
|
+
|
|
|
+// Macro 261
|
|
|
+// #define MonthCal_GetMinReqRect(hmc, prc) SNDMSG(hmc, MCM_GETMINREQRECT, 0, (LPARAM)(prc))
|
|
|
+// set colors to draw control with -- see MCSC_ bits below
|
|
|
+
|
|
|
+function MonthCal_GetMinReqRect(hwndMC:HWND; lpr :LPRect):Bool;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ MCM_SETCOLOR = (MCM_FIRST + 10);
|
|
|
+
|
|
|
+// Macro 262
|
|
|
+// #define MonthCal_SetColor(hmc, iColor, clr) SNDMSG(hmc, MCM_SETCOLOR, iColor, clr)
|
|
|
+
|
|
|
+function MonthCal_SetColor(hwndMC:HWND; ic:longint;clr:COLORREF):Bool;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ MCM_GETCOLOR = (MCM_FIRST + 11);
|
|
|
+
|
|
|
+// Macro 263
|
|
|
+// #define MonthCal_GetColor(hmc, iColor) SNDMSG(hmc, MCM_GETCOLOR, iColor, 0)
|
|
|
+
|
|
|
+function MonthCal_GetColor(hwndMC:HWND; ic:longint):Bool;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ MCSC_BACKGROUND = 0; // the background color (between months)
|
|
|
+ MCSC_TEXT = 1; // the dates
|
|
|
+ MCSC_TITLEBK = 2; // background of the title
|
|
|
+ MCSC_TITLETEXT = 3;
|
|
|
+ MCSC_MONTHBK = 4; // background within the month cal
|
|
|
+ MCSC_TRAILINGTEXT = 5; // the text color of header & trailing days
|
|
|
+
|
|
|
+// set what day is "today" send NULL to revert back to real date
|
|
|
+ MCM_SETTODAY = (MCM_FIRST + 12);
|
|
|
+
|
|
|
+// Macro 264
|
|
|
+// #define MonthCal_SetToday(hmc, pst) SNDMSG(hmc, MCM_SETTODAY, 0, (LPARAM)(pst))
|
|
|
+// get what day is "today"
|
|
|
+// returns BOOL for success/failure
|
|
|
+
|
|
|
+function MonthCal_SetToday(hwndMC:HWND; lps:LPSYSTEMTIME):Bool;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ MCM_GETTODAY = (MCM_FIRST + 13);
|
|
|
+
|
|
|
+// Macro 265
|
|
|
+// #define MonthCal_GetToday(hmc, pst) (BOOL)SNDMSG(hmc, MCM_GETTODAY, 0, (LPARAM)(pst))
|
|
|
+// determine what pinfo->pt is over
|
|
|
+
|
|
|
+function MonthCal_GetToday(hwndMC:HWND; lps:LPSYSTEMTIME):Bool;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ MCM_HITTEST = (MCM_FIRST + 14);
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ DummyStruct16 = Record
|
|
|
+ cbSize : UINT;
|
|
|
+ pt : POINT;
|
|
|
+ uHit : UINT; // out param
|
|
|
+ st : SYSTEMTIME;
|
|
|
+ END;
|
|
|
+ MCHITTESTINFO = DummyStruct16;
|
|
|
+ PMCHITTESTINFO = ^DummyStruct16;
|
|
|
+ TDummyStruct16 = DummyStruct16;
|
|
|
+ PDummyStruct16 = ^DummyStruct16;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 266
|
|
|
+FUNCTION MonthCal_HitTest( hmc :HWND ; pinfo : PMCHITTESTINFO):DWORD;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ MCHT_TITLE = $00010000;
|
|
|
+ MCHT_CALENDAR = $00020000;
|
|
|
+ MCHT_TODAYLINK = $00030000;
|
|
|
+
|
|
|
+ MCHT_NEXT = $01000000; // these indicate that hitting
|
|
|
+ MCHT_PREV = $02000000; // here will go to the next/prev month
|
|
|
+
|
|
|
+ MCHT_NOWHERE = $00000000;
|
|
|
+
|
|
|
+ MCHT_TITLEBK = (MCHT_TITLE);
|
|
|
+ MCHT_TITLEMONTH = (MCHT_TITLE OR $0001);
|
|
|
+ MCHT_TITLEYEAR = (MCHT_TITLE OR $0002);
|
|
|
+ MCHT_TITLEBTNNEXT = (MCHT_TITLE OR MCHT_NEXT OR $0003);
|
|
|
+ MCHT_TITLEBTNPREV = (MCHT_TITLE OR MCHT_PREV OR $0003);
|
|
|
+
|
|
|
+ MCHT_CALENDARBK = (MCHT_CALENDAR);
|
|
|
+ MCHT_CALENDARDATE = (MCHT_CALENDAR OR $0001);
|
|
|
+ MCHT_CALENDARDATENEXT = (MCHT_CALENDARDATE OR MCHT_NEXT);
|
|
|
+ MCHT_CALENDARDATEPREV = (MCHT_CALENDARDATE OR MCHT_PREV);
|
|
|
+ MCHT_CALENDARDAY = (MCHT_CALENDAR OR $0002);
|
|
|
+ MCHT_CALENDARWEEKNUM = (MCHT_CALENDAR OR $0003);
|
|
|
+
|
|
|
+// set first day of week to iDay:
|
|
|
+// 0 for Monday, 1 for Tuesday, ..., 6 for Sunday
|
|
|
+// -1 for means use locale info
|
|
|
+ MCM_SETFIRSTDAYOFWEEK = (MCM_FIRST + 15);
|
|
|
+// Macro 267
|
|
|
+
|
|
|
+
|
|
|
+function MonthCal_SetFirstDayOfWeek( hmc : HWND ; iDay :LONGINT ):DWORD;
|
|
|
+
|
|
|
+
|
|
|
+// DWORD result... low word has the day. high word is bool if this is app set
|
|
|
+// or not (FALSE == using locale info)
|
|
|
+
|
|
|
+CONST
|
|
|
+ MCM_GETFIRSTDAYOFWEEK = (MCM_FIRST + 16);
|
|
|
+// Macro 268
|
|
|
+
|
|
|
+
|
|
|
+Function MonthCal_GetFirstDayOfWeek( hmc : HWND ):DWORD;
|
|
|
+
|
|
|
+
|
|
|
+// DWORD MonthCal_GetRange(HWND hmc, LPSYSTEMTIME rgst)
|
|
|
+// modifies rgst[0] to be the minimum ALLOWABLE systemtime (or 0 if no minimum)
|
|
|
+// modifies rgst[1] to be the maximum ALLOWABLE systemtime (or 0 if no maximum)
|
|
|
+// returns GDTR_MIN|GDTR_MAX if there is a minimum|maximum limit
|
|
|
+
|
|
|
+CONST
|
|
|
+ MCM_GETRANGE = (MCM_FIRST + 17);
|
|
|
+// Macro 269
|
|
|
+
|
|
|
+
|
|
|
+Function MonthCal_GetRange( hmc : HWND ; rgst : LPSYSTEMTIME):DWORD;
|
|
|
+
|
|
|
+
|
|
|
+// BOOL MonthCal_SetRange(HWND hmc, DWORD gdtr, LPSYSTEMTIME rgst)
|
|
|
+// if GDTR_MIN, sets the minimum ALLOWABLE systemtime to rgst[0], otherwise removes minimum
|
|
|
+// if GDTR_MAX, sets the maximum ALLOWABLE systemtime to rgst[1], otherwise removes maximum
|
|
|
+// returns TRUE on success, FALSE on error (such as invalid parameters)
|
|
|
+
|
|
|
+CONST
|
|
|
+ MCM_SETRANGE = (MCM_FIRST + 18);
|
|
|
+// Macro 270
|
|
|
+
|
|
|
+
|
|
|
+Function MonthCal_SetRange( hmc : HWND ; gd : DWORD; rgst : LPSYSTEMTIME):BOOL;
|
|
|
+
|
|
|
+
|
|
|
+// int MonthCal_GetMonthDelta(HWND hmc)
|
|
|
+// returns the number of months one click on a next/prev button moves by
|
|
|
+
|
|
|
+CONST
|
|
|
+ MCM_GETMONTHDELTA = (MCM_FIRST + 19);
|
|
|
+// Macro 271
|
|
|
+
|
|
|
+
|
|
|
+Function MonthCal_GetMonthDelta( hmc :hwnd ):cint;
|
|
|
+
|
|
|
+
|
|
|
+// int MonthCal_SetMonthDelta(HWND hmc, int n)
|
|
|
+// sets the month delta to n. n==0 reverts to moving by a page of months
|
|
|
+// returns the previous value of n.
|
|
|
+
|
|
|
+CONST
|
|
|
+ MCM_SETMONTHDELTA = (MCM_FIRST + 20);
|
|
|
+// Macro 272
|
|
|
+
|
|
|
+
|
|
|
+Function MonthCal_SetMonthDelta( hmc :hwnd ; n :cint ):cint;
|
|
|
+
|
|
|
+
|
|
|
+// DWORD MonthCal_GetMaxTodayWidth(HWND hmc, LPSIZE psz)
|
|
|
+// sets *psz to the maximum width/height of the "Today" string displayed
|
|
|
+// at the bottom of the calendar (as long as MCS_NOTODAY is not specified)
|
|
|
+
|
|
|
+CONST
|
|
|
+ MCM_GETMAXTODAYWIDTH = (MCM_FIRST + 21);
|
|
|
+// Macro 273
|
|
|
+
|
|
|
+
|
|
|
+Function MonthCal_GetMaxTodayWidth( hmc :hwnd ):DWORD;
|
|
|
+
|
|
|
+
|
|
|
+{$ifdef ie4plus}
|
|
|
+
|
|
|
+CONST
|
|
|
+ MCM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
|
|
|
+// Macro 274
|
|
|
+
|
|
|
+
|
|
|
+Function MonthCal_SetUnicodeFormat( hwnd : hwnd; fUnicode : bool):BOOL;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ MCM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
|
|
|
+// Macro 275
|
|
|
+
|
|
|
+
|
|
|
+Function MonthCal_GetUnicodeFormat( hwnd : hwnd):BOOL;
|
|
|
+
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// MCN_SELCHANGE is sent whenever the currently displayed date changes
|
|
|
+// via month change, year change, keyboard navigation, prev/next button
|
|
|
+//
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagNMSELCHANGE = Record
|
|
|
+ nmhdr : NMHDR; // this must be first, so we don't break WM_NOTIFY
|
|
|
+ stSelStart : SYSTEMTIME;
|
|
|
+ stSelEnd : SYSTEMTIME;
|
|
|
+ END;
|
|
|
+ NMSELCHANGE = tagNMSELCHANGE;
|
|
|
+ LPNMSELCHANGE = ^tagNMSELCHANGE;
|
|
|
+ TNMSELCHANGE = tagNMSELCHANGE;
|
|
|
+ PNMSELCHANGE = ^tagNMSELCHANGE;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ MCN_SELCHANGE = (MCN_FIRST + 1);
|
|
|
+
|
|
|
+// MCN_GETDAYSTATE is sent for MCS_DAYSTATE controls whenever new daystate
|
|
|
+// information is needed (month or year scroll) to draw bolding information.
|
|
|
+// The app must fill in cDayState months worth of information starting from
|
|
|
+// stStart date. The app may fill in the array at prgDayState or change
|
|
|
+// prgDayState to point to a different array out of which the information
|
|
|
+// will be copied. (similar to tooltips)
|
|
|
+//
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagNMDAYSTATE = Record
|
|
|
+ nmhdr : NMHDR; // this must be first, so we don't break WM_NOTIFY
|
|
|
+ stStart : SYSTEMTIME;
|
|
|
+ cDayState : cint;
|
|
|
+ prgDayState : LPMONTHDAYSTATE; // points to cDayState MONTHDAYSTATEs
|
|
|
+ END;
|
|
|
+ NMDAYSTATE = tagNMDAYSTATE;
|
|
|
+ LPNMDAYSTATE = ^tagNMDAYSTATE;
|
|
|
+ TNMDAYSTATE = tagNMDAYSTATE;
|
|
|
+ PNMDAYSTATE = ^tagNMDAYSTATE;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ MCN_GETDAYSTATE = (MCN_FIRST + 3);
|
|
|
+
|
|
|
+// MCN_SELECT is sent whenever a selection has occured (via mouse or keyboard)
|
|
|
+//
|
|
|
+TYPE
|
|
|
+
|
|
|
+ NMSELECT = NMSELCHANGE;
|
|
|
+ LPNMSELECT = ^NMSELCHANGE;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ MCN_SELECT = (MCN_FIRST + 4);
|
|
|
+
|
|
|
+
|
|
|
+// begin_r_commctrl
|
|
|
+
|
|
|
+ MCS_DAYSTATE = $0001;
|
|
|
+ MCS_MULTISELECT = $0002;
|
|
|
+ MCS_WEEKNUMBERS = $0004;
|
|
|
+{$ifdef ie4plus}
|
|
|
+ MCS_NOTODAYCIRCLE = $0008;
|
|
|
+ MCS_NOTODAY = $0010;
|
|
|
+{$ELSE}
|
|
|
+ MCS_NOTODAY = $0008;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+// end_r_commctrl
|
|
|
+
|
|
|
+ GMR_VISIBLE = 0; // visible portion of display
|
|
|
+ GMR_DAYSTATE = 1; // above plus the grayed out parts of
|
|
|
+ // partially displayed months
|
|
|
+
|
|
|
+
|
|
|
+{$ENDIF} // _WIN32
|
|
|
+{$ENDIF} // NOMONTHCAL
|
|
|
+
|
|
|
+
|
|
|
+//====== DATETIMEPICK CONTROL ==================================================
|
|
|
+
|
|
|
+{$IFNDEF NODATETIMEPICK}
|
|
|
+{$IFDEF _WIN32}
|
|
|
+
|
|
|
+ DATETIMEPICK_CLASSW = {L}'SysDateTimePick32';
|
|
|
+ DATETIMEPICK_CLASSA = 'SysDateTimePick32';
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+
|
|
|
+TYPE
|
|
|
+ DATETIMEPICK_CLASS = DATETIMEPICK_CLASSW;
|
|
|
+{$ELSE}
|
|
|
+ DATETIMEPICK_CLASS = DATETIMEPICK_CLASSA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ DTM_FIRST = $1000;
|
|
|
+
|
|
|
+// DWORD DateTimePick_GetSystemtime(HWND hdp, LPSYSTEMTIME pst)
|
|
|
+// returns GDT_NONE if "none" is selected (DTS_SHOWNONE only)
|
|
|
+// returns GDT_VALID and modifies *pst to be the currently selected value
|
|
|
+ DTM_GETSYSTEMTIME = (DTM_FIRST + 1);
|
|
|
+// Macro 276
|
|
|
+
|
|
|
+// #define DateTime_GetSystemtime(hdp, pst) (DWORD)SNDMSG(hdp, DTM_GETSYSTEMTIME, 0, (LPARAM)(pst))
|
|
|
+
|
|
|
+// BOOL DateTime_SetSystemtime(HWND hdp, DWORD gd, LPSYSTEMTIME pst)
|
|
|
+// if gd==GDT_NONE, sets datetimepick to None (DTS_SHOWNONE only)
|
|
|
+// if gd==GDT_VALID, sets datetimepick to *pst
|
|
|
+// returns TRUE on success, FALSE on error (such as bad params)
|
|
|
+
|
|
|
+CONST
|
|
|
+ DTM_SETSYSTEMTIME = (DTM_FIRST + 2);
|
|
|
+// Macro 277
|
|
|
+
|
|
|
+// #define DateTime_SetSystemtime(hdp, gd, pst) (BOOL)SNDMSG(hdp, DTM_SETSYSTEMTIME, (WPARAM)(gd), (LPARAM)(pst))
|
|
|
+
|
|
|
+// DWORD DateTime_GetRange(HWND hdp, LPSYSTEMTIME rgst)
|
|
|
+// modifies rgst[0] to be the minimum ALLOWABLE systemtime (or 0 if no minimum)
|
|
|
+// modifies rgst[1] to be the maximum ALLOWABLE systemtime (or 0 if no maximum)
|
|
|
+// returns GDTR_MIN|GDTR_MAX if there is a minimum|maximum limit
|
|
|
+
|
|
|
+CONST
|
|
|
+ DTM_GETRANGE = (DTM_FIRST + 3);
|
|
|
+// Macro 278
|
|
|
+
|
|
|
+// #define DateTime_GetRange(hdp, rgst) (DWORD)SNDMSG(hdp, DTM_GETRANGE, 0, (LPARAM)(rgst))
|
|
|
+
|
|
|
+// BOOL DateTime_SetRange(HWND hdp, DWORD gdtr, LPSYSTEMTIME rgst)
|
|
|
+// if GDTR_MIN, sets the minimum ALLOWABLE systemtime to rgst[0], otherwise removes minimum
|
|
|
+// if GDTR_MAX, sets the maximum ALLOWABLE systemtime to rgst[1], otherwise removes maximum
|
|
|
+// returns TRUE on success, FALSE on error (such as invalid parameters)
|
|
|
+
|
|
|
+CONST
|
|
|
+ DTM_SETRANGE = (DTM_FIRST + 4);
|
|
|
+// Macro 279
|
|
|
+
|
|
|
+// #define DateTime_SetRange(hdp, gd, rgst) (BOOL)SNDMSG(hdp, DTM_SETRANGE, (WPARAM)(gd), (LPARAM)(rgst))
|
|
|
+
|
|
|
+// BOOL DateTime_SetFormat(HWND hdp, LPCTSTR sz)
|
|
|
+// sets the display formatting string to sz (see GetDateFormat and GetTimeFormat for valid formatting chars)
|
|
|
+// NOTE: 'X' is a valid formatting character which indicates that the application
|
|
|
+// will determine how to display information. Such apps must support DTN_WMKEYDOWN,
|
|
|
+// DTN_FORMAT, and DTN_FORMATQUERY.
|
|
|
+
|
|
|
+CONST
|
|
|
+ DTM_SETFORMATA = (DTM_FIRST + 5);
|
|
|
+ DTM_SETFORMATW = (DTM_FIRST + 50);
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+
|
|
|
+TYPE
|
|
|
+ DTM_SETFORMAT = DTM_SETFORMATW;
|
|
|
+{$ELSE}
|
|
|
+ DTM_SETFORMAT = DTM_SETFORMATA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// Macro 280
|
|
|
+
|
|
|
+// #define DateTime_SetFormat(hdp, sz) (BOOL)SNDMSG(hdp, DTM_SETFORMAT, 0, (LPARAM)(sz))
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ DTM_SETMCCOLOR = (DTM_FIRST + 6);
|
|
|
+// Macro 281
|
|
|
+
|
|
|
+// #define DateTime_SetMonthCalColor(hdp, iColor, clr) SNDMSG(hdp, DTM_SETMCCOLOR, iColor, clr)
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ DTM_GETMCCOLOR = (DTM_FIRST + 7);
|
|
|
+// Macro 282
|
|
|
+
|
|
|
+// #define DateTime_GetMonthCalColor(hdp, iColor) SNDMSG(hdp, DTM_GETMCCOLOR, iColor, 0)
|
|
|
+
|
|
|
+// HWND DateTime_GetMonthCal(HWND hdp)
|
|
|
+// returns the HWND of the MonthCal popup window. Only valid
|
|
|
+// between DTN_DROPDOWN and DTN_CLOSEUP notifications.
|
|
|
+
|
|
|
+CONST
|
|
|
+ DTM_GETMONTHCAL = (DTM_FIRST + 8);
|
|
|
+// Macro 283
|
|
|
+
|
|
|
+// #define DateTime_GetMonthCal(hdp) (HWND)SNDMSG(hdp, DTM_GETMONTHCAL, 0, 0)
|
|
|
+
|
|
|
+{$ifdef ie4plus}
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ DTM_SETMCFONT = (DTM_FIRST + 9);
|
|
|
+// Macro 284
|
|
|
+
|
|
|
+// #define DateTime_SetMonthCalFont(hdp, hfont, fRedraw) SNDMSG(hdp, DTM_SETMCFONT, (WPARAM)(hfont), (LPARAM)(fRedraw))
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ DTM_GETMCFONT = (DTM_FIRST + 10);
|
|
|
+// Macro 285
|
|
|
+
|
|
|
+// #define DateTime_GetMonthCalFont(hdp) SNDMSG(hdp, DTM_GETMCFONT, 0, 0)
|
|
|
+
|
|
|
+{$ENDIF} // _WIN32_IE >= 0x0400
|
|
|
+
|
|
|
+// begin_r_commctrl
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ DTS_UPDOWN = $0001; // use UPDOWN instead of MONTHCAL
|
|
|
+ DTS_SHOWNONE = $0002; // allow a NONE selection
|
|
|
+ DTS_SHORTDATEFORMAT = $0000; // use the short date format (app must forward WM_WININICHANGE messages)
|
|
|
+ DTS_LONGDATEFORMAT = $0004; // use the long date format (app must forward WM_WININICHANGE messages)
|
|
|
+{$ifdef ie5plus}
|
|
|
+ DTS_SHORTDATECENTURYFORMAT = $000C; // short date format with century (app must forward WM_WININICHANGE messages)
|
|
|
+{$ENDIF} // (_WIN32_IE >= 0x500)
|
|
|
+ DTS_TIMEFORMAT = $0009; // use the time format (app must forward WM_WININICHANGE messages)
|
|
|
+ DTS_APPCANPARSE = $0010; // allow user entered strings (app MUST respond to DTN_USERSTRING)
|
|
|
+ DTS_RIGHTALIGN = $0020; // right-align popup instead of left-align it
|
|
|
+
|
|
|
+// end_r_commctrl
|
|
|
+
|
|
|
+ DTN_DATETIMECHANGE = (DTN_FIRST + 1); // the systemtime has changed
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagNMDATETIMECHANGE = Record
|
|
|
+ nmhdr : NMHDR;
|
|
|
+ dwFlags : DWORD; // GDT_VALID or GDT_NONE
|
|
|
+ st : SYSTEMTIME; // valid iff dwFlags==GDT_VALID
|
|
|
+ END;
|
|
|
+ NMDATETIMECHANGE = tagNMDATETIMECHANGE;
|
|
|
+ LPNMDATETIMECHANGE = ^tagNMDATETIMECHANGE;
|
|
|
+ TNMDATETIMECHANGE = tagNMDATETIMECHANGE;
|
|
|
+ PNMDATETIMECHANGE = ^tagNMDATETIMECHANGE;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ DTN_USERSTRINGA = (DTN_FIRST + 2); // the user has entered a string
|
|
|
+ DTN_USERSTRINGW = (DTN_FIRST + 15);
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagNMDATETIMESTRINGA = Record
|
|
|
+ nmhdr : NMHDR;
|
|
|
+ pszUserString : LPCSTR; // string user entered
|
|
|
+ st : SYSTEMTIME; // app fills this in
|
|
|
+ dwFlags : DWORD; // GDT_VALID or GDT_NONE
|
|
|
+ END;
|
|
|
+ NMDATETIMESTRINGA = tagNMDATETIMESTRINGA;
|
|
|
+ LPNMDATETIMESTRINGA = ^tagNMDATETIMESTRINGA;
|
|
|
+ TNMDATETIMESTRINGA = tagNMDATETIMESTRINGA;
|
|
|
+ PNMDATETIMESTRINGA = ^tagNMDATETIMESTRINGA;
|
|
|
+
|
|
|
+
|
|
|
+ tagNMDATETIMESTRINGW = Record
|
|
|
+ nmhdr : NMHDR;
|
|
|
+ pszUserString : LPCWSTR; // string user entered
|
|
|
+ st : SYSTEMTIME; // app fills this in
|
|
|
+ dwFlags : DWORD; // GDT_VALID or GDT_NONE
|
|
|
+ END;
|
|
|
+ NMDATETIMESTRINGW = tagNMDATETIMESTRINGW;
|
|
|
+ LPNMDATETIMESTRINGW = ^tagNMDATETIMESTRINGW;
|
|
|
+ TNMDATETIMESTRINGW = tagNMDATETIMESTRINGW;
|
|
|
+ PNMDATETIMESTRINGW = ^tagNMDATETIMESTRINGW;
|
|
|
+
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ DTN_USERSTRING = DTN_USERSTRINGW;
|
|
|
+ NMDATETIMESTRING = NMDATETIMESTRINGW;
|
|
|
+ LPNMDATETIMESTRING = LPNMDATETIMESTRINGW;
|
|
|
+{$ELSE}
|
|
|
+ DTN_USERSTRING = DTN_USERSTRINGA;
|
|
|
+ NMDATETIMESTRING = NMDATETIMESTRINGA;
|
|
|
+ LPNMDATETIMESTRING = LPNMDATETIMESTRINGA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ DTN_WMKEYDOWNA = (DTN_FIRST + 3); // modify keydown on app format field (X)
|
|
|
+ DTN_WMKEYDOWNW = (DTN_FIRST + 16);
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagNMDATETIMEWMKEYDOWNA = Record
|
|
|
+ nmhdr : NMHDR;
|
|
|
+ nVirtKey : cint; // virtual key code of WM_KEYDOWN which MODIFIES an X field
|
|
|
+ pszFormat : LPCSTR; // format substring
|
|
|
+ st : SYSTEMTIME; // current systemtime, app should modify based on key
|
|
|
+ END;
|
|
|
+ NMDATETIMEWMKEYDOWNA = tagNMDATETIMEWMKEYDOWNA;
|
|
|
+ LPNMDATETIMEWMKEYDOWNA = ^tagNMDATETIMEWMKEYDOWNA;
|
|
|
+ TNMDATETIMEWMKEYDOWNA = tagNMDATETIMEWMKEYDOWNA;
|
|
|
+ PNMDATETIMEWMKEYDOWNA = ^tagNMDATETIMEWMKEYDOWNA;
|
|
|
+
|
|
|
+
|
|
|
+ tagNMDATETIMEWMKEYDOWNW = Record
|
|
|
+ nmhdr : NMHDR;
|
|
|
+ nVirtKey : cint; // virtual key code of WM_KEYDOWN which MODIFIES an X field
|
|
|
+ pszFormat : LPCWSTR; // format substring
|
|
|
+ st : SYSTEMTIME; // current systemtime, app should modify based on key
|
|
|
+ END;
|
|
|
+ NMDATETIMEWMKEYDOWNW = tagNMDATETIMEWMKEYDOWNW;
|
|
|
+ LPNMDATETIMEWMKEYDOWNW = ^tagNMDATETIMEWMKEYDOWNW;
|
|
|
+ TNMDATETIMEWMKEYDOWNW = tagNMDATETIMEWMKEYDOWNW;
|
|
|
+ PNMDATETIMEWMKEYDOWNW = ^tagNMDATETIMEWMKEYDOWNW;
|
|
|
+
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ DTN_WMKEYDOWN = DTN_WMKEYDOWNW;
|
|
|
+ NMDATETIMEWMKEYDOWN = NMDATETIMEWMKEYDOWNW;
|
|
|
+ LPNMDATETIMEWMKEYDOWN= LPNMDATETIMEWMKEYDOWNW;
|
|
|
+{$ELSE}
|
|
|
+ DTN_WMKEYDOWN = DTN_WMKEYDOWNA;
|
|
|
+ NMDATETIMEWMKEYDOWN = NMDATETIMEWMKEYDOWNA;
|
|
|
+ LPNMDATETIMEWMKEYDOWN= LPNMDATETIMEWMKEYDOWNA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ DTN_FORMATA = (DTN_FIRST + 4); // query display for app format field (X)
|
|
|
+ DTN_FORMATW = (DTN_FIRST + 17);
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagNMDATETIMEFORMATA = Record
|
|
|
+ nmhdr : NMHDR;
|
|
|
+ pszFormat : LPCSTR; // format substring
|
|
|
+ st : SYSTEMTIME; // current systemtime
|
|
|
+ pszDisplay : LPCSTR; // string to display
|
|
|
+ szDisplay : Array [0..63] OF CHAR; // buffer pszDisplay originally points at
|
|
|
+ END;
|
|
|
+ NMDATETIMEFORMATA = tagNMDATETIMEFORMATA;
|
|
|
+ LPNMDATETIMEFORMATA = ^tagNMDATETIMEFORMATA;
|
|
|
+ TNMDATETIMEFORMATA = tagNMDATETIMEFORMATA;
|
|
|
+ PNMDATETIMEFORMATA = ^tagNMDATETIMEFORMATA;
|
|
|
+
|
|
|
+
|
|
|
+ tagNMDATETIMEFORMATW = Record
|
|
|
+ nmhdr : NMHDR;
|
|
|
+ pszFormat : LPCWSTR; // format substring
|
|
|
+ st : SYSTEMTIME; // current systemtime
|
|
|
+ pszDisplay : LPCWSTR; // string to display
|
|
|
+ szDisplay : Array [0..63] OF WCHAR; // buffer pszDisplay originally points at
|
|
|
+ END;
|
|
|
+ NMDATETIMEFORMATW = tagNMDATETIMEFORMATW;
|
|
|
+ LPNMDATETIMEFORMATW = ^tagNMDATETIMEFORMATW;
|
|
|
+ TNMDATETIMEFORMATW = tagNMDATETIMEFORMATW;
|
|
|
+ PNMDATETIMEFORMATW = ^tagNMDATETIMEFORMATW;
|
|
|
+
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ DTN_FORMAT = DTN_FORMATW;
|
|
|
+ NMDATETIMEFORMAT = NMDATETIMEFORMATW;
|
|
|
+ LPNMDATETIMEFORMAT = LPNMDATETIMEFORMATW;
|
|
|
+{$ELSE}
|
|
|
+ DTN_FORMAT = DTN_FORMATA;
|
|
|
+ NMDATETIMEFORMAT = NMDATETIMEFORMATA;
|
|
|
+ LPNMDATETIMEFORMAT = LPNMDATETIMEFORMATA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ DTN_FORMATQUERYA = (DTN_FIRST + 5); // query formatting info for app format field (X)
|
|
|
+ DTN_FORMATQUERYW = (DTN_FIRST + 18);
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagNMDATETIMEFORMATQUERYA = Record
|
|
|
+ nmhdr : NMHDR;
|
|
|
+ pszFormat : LPCSTR; // format substring
|
|
|
+ szMax : SIZE; // max bounding rectangle app will use for this format string
|
|
|
+ END;
|
|
|
+ NMDATETIMEFORMATQUERYA = tagNMDATETIMEFORMATQUERYA;
|
|
|
+ LPNMDATETIMEFORMATQUERYA = ^tagNMDATETIMEFORMATQUERYA;
|
|
|
+ TNMDATETIMEFORMATQUERYA = tagNMDATETIMEFORMATQUERYA;
|
|
|
+ PNMDATETIMEFORMATQUERYA = ^tagNMDATETIMEFORMATQUERYA;
|
|
|
+
|
|
|
+
|
|
|
+ tagNMDATETIMEFORMATQUERYW = Record
|
|
|
+ nmhdr : NMHDR;
|
|
|
+ pszFormat : LPCWSTR; // format substring
|
|
|
+ szMax : SIZE; // max bounding rectangle app will use for this format string
|
|
|
+ END;
|
|
|
+ NMDATETIMEFORMATQUERYW = tagNMDATETIMEFORMATQUERYW;
|
|
|
+ LPNMDATETIMEFORMATQUERYW = ^tagNMDATETIMEFORMATQUERYW;
|
|
|
+ TNMDATETIMEFORMATQUERYW = tagNMDATETIMEFORMATQUERYW;
|
|
|
+ PNMDATETIMEFORMATQUERYW = ^tagNMDATETIMEFORMATQUERYW;
|
|
|
+
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ DTN_FORMATQUERY = DTN_FORMATQUERYW;
|
|
|
+ NMDATETIMEFORMATQUERY= NMDATETIMEFORMATQUERYW;
|
|
|
+ LPNMDATETIMEFORMATQUERY= LPNMDATETIMEFORMATQUERYW;
|
|
|
+{$ELSE}
|
|
|
+ DTN_FORMATQUERY = DTN_FORMATQUERYA;
|
|
|
+ NMDATETIMEFORMATQUERY= NMDATETIMEFORMATQUERYA;
|
|
|
+ LPNMDATETIMEFORMATQUERY= LPNMDATETIMEFORMATQUERYA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ DTN_DROPDOWN = (DTN_FIRST + 6); // MonthCal has dropped down
|
|
|
+ DTN_CLOSEUP = (DTN_FIRST + 7); // MonthCal is popping up
|
|
|
+
|
|
|
+
|
|
|
+ GDTR_MIN = $0001;
|
|
|
+ GDTR_MAX = $0002;
|
|
|
+
|
|
|
+ GDT_ERROR = -1;
|
|
|
+ GDT_VALID = 0;
|
|
|
+ GDT_NONE = 1;
|
|
|
+
|
|
|
+
|
|
|
+{$ENDIF} // _WIN32
|
|
|
+{$ENDIF} // NODATETIMEPICK
|
|
|
+
|
|
|
+
|
|
|
+{$ifdef ie4plus}
|
|
|
+
|
|
|
+{$IFNDEF NOIPADDRESS}
|
|
|
+
|
|
|
+///////////////////////////////////////////////
|
|
|
+/// IP Address edit control
|
|
|
+
|
|
|
+// Messages sent to IPAddress controls
|
|
|
+
|
|
|
+ IPM_CLEARADDRESS = (WM_USER+100); // no parameters
|
|
|
+ IPM_SETADDRESS = (WM_USER+101); // lparam = TCP/IP address
|
|
|
+ IPM_GETADDRESS = (WM_USER+102); // lresult = # of non black fields. lparam = LPDWORD for TCP/IP address
|
|
|
+ IPM_SETRANGE = (WM_USER+103); // wparam = field, lparam = range
|
|
|
+ IPM_SETFOCUS = (WM_USER+104); // wparam = field
|
|
|
+ IPM_ISBLANK = (WM_USER+105); // no parameters
|
|
|
+
|
|
|
+ WC_IPADDRESSW = {L}'SysIPAddress32';
|
|
|
+ WC_IPADDRESSA = 'SysIPAddress32';
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+
|
|
|
+TYPE
|
|
|
+ WC_IPADDRESS = WC_IPADDRESSW;
|
|
|
+{$ELSE}
|
|
|
+ WC_IPADDRESS = WC_IPADDRESSA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ IPN_FIELDCHANGED = (IPN_FIRST - 0);
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagNMIPADDRESS = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ iField : cint;
|
|
|
+ iValue : cint;
|
|
|
+ END;
|
|
|
+ NMIPADDRESS = tagNMIPADDRESS;
|
|
|
+ LPNMIPADDRESS = ^tagNMIPADDRESS;
|
|
|
+ TNMIPADDRESS = tagNMIPADDRESS;
|
|
|
+ PNMIPADDRESS = ^tagNMIPADDRESS;
|
|
|
+
|
|
|
+
|
|
|
+// The following is a useful macro for passing the range values in the
|
|
|
+// IPM_SETRANGE message.
|
|
|
+
|
|
|
+// Macro 286
|
|
|
+
|
|
|
+// #define MAKEIPRANGE(low, high) ((LPARAM)(WORD)(((BYTE)(high) << 8) + (BYTE)(low)))
|
|
|
+
|
|
|
+// And this is a useful macro for making the IP Address to be passed
|
|
|
+// as a LPARAM.
|
|
|
+
|
|
|
+// Macro 287
|
|
|
+
|
|
|
+// #define MAKEIPADDRESS(b1,b2,b3,b4) ((LPARAM)(((DWORD)(b1)<<24)+((DWORD)(b2)<<16)+((DWORD)(b3)<<8)+((DWORD)(b4))))
|
|
|
+
|
|
|
+// Get individual number
|
|
|
+// Macro 288
|
|
|
+
|
|
|
+// #define FIRST_IPADDRESS(x) ((x>>24) & 0xff)
|
|
|
+// Macro 289
|
|
|
+
|
|
|
+// #define SECOND_IPADDRESS(x) ((x>>16) & 0xff)
|
|
|
+// Macro 290
|
|
|
+
|
|
|
+// #define THIRD_IPADDRESS(x) ((x>>8) & 0xff)
|
|
|
+// Macro 291
|
|
|
+
|
|
|
+// #define FOURTH_IPADDRESS(x) (x & 0xff)
|
|
|
+
|
|
|
+
|
|
|
+{$ENDIF} // NOIPADDRESS
|
|
|
+
|
|
|
+
|
|
|
+//---------------------------------------------------------------------------------------
|
|
|
+//---------------------------------------------------------------------------------------
|
|
|
+/// ====================== Pager Control =============================
|
|
|
+//---------------------------------------------------------------------------------------
|
|
|
+//---------------------------------------------------------------------------------------
|
|
|
+
|
|
|
+{$IFNDEF NOPAGESCROLLER}
|
|
|
+
|
|
|
+//Pager Class Name
|
|
|
+
|
|
|
+CONST
|
|
|
+ WC_PAGESCROLLERW = {L}'SysPager';
|
|
|
+ WC_PAGESCROLLERA = 'SysPager';
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+
|
|
|
+TYPE
|
|
|
+ WC_PAGESCROLLER = WC_PAGESCROLLERW;
|
|
|
+{$ELSE}
|
|
|
+ WC_PAGESCROLLER = WC_PAGESCROLLERA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+//---------------------------------------------------------------------------------------
|
|
|
+// Pager Control Styles
|
|
|
+//---------------------------------------------------------------------------------------
|
|
|
+// begin_r_commctrl
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ PGS_VERT = $00000000;
|
|
|
+ PGS_HORZ = $00000001;
|
|
|
+ PGS_AUTOSCROLL = $00000002;
|
|
|
+ PGS_DRAGNDROP = $00000004;
|
|
|
+
|
|
|
+// end_r_commctrl
|
|
|
+
|
|
|
+
|
|
|
+//---------------------------------------------------------------------------------------
|
|
|
+// Pager Button State
|
|
|
+//---------------------------------------------------------------------------------------
|
|
|
+//The scroll can be in one of the following control State
|
|
|
+ PGF_INVISIBLE = 0; // Scroll button is not visible
|
|
|
+ PGF_NORMAL = 1; // Scroll button is in normal state
|
|
|
+ PGF_GRAYED = 2; // Scroll button is in grayed state
|
|
|
+ PGF_DEPRESSED = 4; // Scroll button is in depressed state
|
|
|
+ PGF_HOT = 8; // Scroll button is in hot state
|
|
|
+
|
|
|
+
|
|
|
+// The following identifiers specifies the button control
|
|
|
+ PGB_TOPORLEFT = 0;
|
|
|
+ PGB_BOTTOMORRIGHT = 1;
|
|
|
+
|
|
|
+//---------------------------------------------------------------------------------------
|
|
|
+// Pager Control Messages
|
|
|
+//---------------------------------------------------------------------------------------
|
|
|
+ PGM_SETCHILD = (PGM_FIRST + 1); // lParam == hwnd
|
|
|
+// Macro 292
|
|
|
+
|
|
|
+
|
|
|
+Procedure Pager_SetChild( hwnd : hwnd; hwndChild : LPARAM);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ PGM_RECALCSIZE = (PGM_FIRST + 2);
|
|
|
+// Macro 293
|
|
|
+
|
|
|
+
|
|
|
+Procedure Pager_RecalcSize( hwnd : hwnd);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ PGM_FORWARDMOUSE = (PGM_FIRST + 3);
|
|
|
+// Macro 294
|
|
|
+
|
|
|
+
|
|
|
+Procedure Pager_ForwardMouse( hwnd : hwnd; bForward : WPARAM);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ PGM_SETBKCOLOR = (PGM_FIRST + 4);
|
|
|
+// Macro 295
|
|
|
+
|
|
|
+
|
|
|
+Function Pager_SetBkColor( hwnd : hwnd; clr : LPARAM):COLORREF;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ PGM_GETBKCOLOR = (PGM_FIRST + 5);
|
|
|
+// Macro 296
|
|
|
+
|
|
|
+
|
|
|
+Function Pager_GetBkColor( hwnd : hwnd):COLORREF;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ PGM_SETBORDER = (PGM_FIRST + 6);
|
|
|
+// Macro 297
|
|
|
+
|
|
|
+
|
|
|
+Function Pager_SetBorder( hwnd : hwnd; iBorder : LPARAM):cint;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ PGM_GETBORDER = (PGM_FIRST + 7);
|
|
|
+// Macro 298
|
|
|
+
|
|
|
+
|
|
|
+Function Pager_GetBorder( hwnd : hwnd):cint;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ PGM_SETPOS = (PGM_FIRST + 8);
|
|
|
+// Macro 299
|
|
|
+
|
|
|
+
|
|
|
+Function Pager_SetPos( hwnd : hwnd; iPos : LPARAM):cint;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ PGM_GETPOS = (PGM_FIRST + 9);
|
|
|
+// Macro 300
|
|
|
+
|
|
|
+
|
|
|
+Function Pager_GetPos( hwnd : hwnd):cint;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ PGM_SETBUTTONSIZE = (PGM_FIRST + 10);
|
|
|
+// Macro 301
|
|
|
+
|
|
|
+
|
|
|
+Function Pager_SetButtonSize( hwnd : hwnd; iSize : LPARAM):cint;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ PGM_GETBUTTONSIZE = (PGM_FIRST + 11);
|
|
|
+// Macro 302
|
|
|
+
|
|
|
+
|
|
|
+Function Pager_GetButtonSize( hwnd : hwnd):cint;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ PGM_GETBUTTONSTATE = (PGM_FIRST + 12);
|
|
|
+// Macro 303
|
|
|
+
|
|
|
+
|
|
|
+Function Pager_GetButtonState( hwnd : hwnd; iButton : LPARAM):DWORD;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ PGM_GETDROPTARGET = CCM_GETDROPTARGET;
|
|
|
+// Macro 304
|
|
|
+
|
|
|
+
|
|
|
+Procedure Pager_GetDropTarget( hwnd : hwnd; ppdt : LPARAM);
|
|
|
+
|
|
|
+//---------------------------------------------------------------------------------------
|
|
|
+//Pager Control Notification Messages
|
|
|
+//---------------------------------------------------------------------------------------
|
|
|
+
|
|
|
+
|
|
|
+// PGN_SCROLL Notification Message
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ PGN_SCROLL = (PGN_FIRST-1);
|
|
|
+
|
|
|
+ PGF_SCROLLUP = 1;
|
|
|
+ PGF_SCROLLDOWN = 2;
|
|
|
+ PGF_SCROLLLEFT = 4;
|
|
|
+ PGF_SCROLLRIGHT = 8;
|
|
|
+
|
|
|
+
|
|
|
+//Keys down
|
|
|
+ PGK_SHIFT = 1;
|
|
|
+ PGK_CONTROL = 2;
|
|
|
+ PGK_MENU = 4;
|
|
|
+
|
|
|
+
|
|
|
+{$IFDEF _WIN32}
|
|
|
+#include <pshpack1.h>
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// This structure is sent along with PGN_SCROLL notifications
|
|
|
+TYPE
|
|
|
+
|
|
|
+ DummyStruct17 = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ fwKeys : WORD; // Specifies which keys are down when this notification is send
|
|
|
+ rcParent : RECT; // Contains Parent Window Rect
|
|
|
+ iDir : cint; // Scrolling Direction
|
|
|
+ iXpos : cint; // Horizontal scroll position
|
|
|
+ iYpos : cint; // Vertical scroll position
|
|
|
+ iScroll : cint; // [in/out] Amount to scroll
|
|
|
+ END;
|
|
|
+ NMPGSCROLL = DummyStruct17;
|
|
|
+ LPNMPGSCROLL = ^DummyStruct17;
|
|
|
+ TDummyStruct17 = DummyStruct17;
|
|
|
+ PDummyStruct17 = ^DummyStruct17;
|
|
|
+
|
|
|
+
|
|
|
+{$IFDEF _WIN32}
|
|
|
+#include <poppack.h>
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// PGN_CALCSIZE Notification Message
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ PGN_CALCSIZE = (PGN_FIRST-2);
|
|
|
+
|
|
|
+ PGF_CALCWIDTH = 1;
|
|
|
+ PGF_CALCHEIGHT = 2;
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ DummyStruct18 = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ dwFlag : DWORD;
|
|
|
+ iWidth : cint;
|
|
|
+ iHeight : cint;
|
|
|
+ END;
|
|
|
+ NMPGCALCSIZE = DummyStruct18;
|
|
|
+ LPNMPGCALCSIZE = ^DummyStruct18;
|
|
|
+ TDummyStruct18 = DummyStruct18;
|
|
|
+ PDummyStruct18 = ^DummyStruct18;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+// PGN_HOTITEMCHANGE Notification Message
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ PGN_HOTITEMCHANGE = (PGN_FIRST-3);
|
|
|
+
|
|
|
+{
|
|
|
+The PGN_HOTITEMCHANGE notification uses these notification
|
|
|
+flags defined in TOOLBAR:
|
|
|
+
|
|
|
+ HICF_ENTERING = $00000010; // idOld is invalid
|
|
|
+ HICF_LEAVING = $00000020; // idNew is invalid
|
|
|
+}
|
|
|
+
|
|
|
+// Structure for PGN_HOTITEMCHANGE notification
|
|
|
+//
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagNMPGHOTITEM = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ idOld : cint;
|
|
|
+ idNew : cint;
|
|
|
+ dwFlags : DWORD; // HICF_*
|
|
|
+ END;
|
|
|
+ NMPGHOTITEM = tagNMPGHOTITEM;
|
|
|
+ LPNMPGHOTITEM = ^tagNMPGHOTITEM;
|
|
|
+ TNMPGHOTITEM = tagNMPGHOTITEM;
|
|
|
+ PNMPGHOTITEM = ^tagNMPGHOTITEM;
|
|
|
+
|
|
|
+
|
|
|
+{$ENDIF} // NOPAGESCROLLER
|
|
|
+
|
|
|
+////====================== End Pager Control ==========================================
|
|
|
+
|
|
|
+//
|
|
|
+// === Native Font Control ===
|
|
|
+//
|
|
|
+{$IFNDEF NONATIVEFONTCTL}
|
|
|
+//NativeFont Class Name
|
|
|
+
|
|
|
+CONST
|
|
|
+ WC_NATIVEFONTCTLW = {L}'NativeFontCtl';
|
|
|
+ WC_NATIVEFONTCTLA = 'NativeFontCtl';
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+
|
|
|
+TYPE
|
|
|
+ WC_NATIVEFONTCTL = WC_NATIVEFONTCTLW;
|
|
|
+{$ELSE}
|
|
|
+ WC_NATIVEFONTCTL = WC_NATIVEFONTCTLA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// begin_r_commctrl
|
|
|
+
|
|
|
+// style definition
|
|
|
+
|
|
|
+CONST
|
|
|
+ NFS_EDIT = $0001;
|
|
|
+ NFS_STATIC = $0002;
|
|
|
+ NFS_LISTCOMBO = $0004;
|
|
|
+ NFS_BUTTON = $0008;
|
|
|
+ NFS_ALL = $0010;
|
|
|
+ NFS_USEFONTASSOC = $0020;
|
|
|
+
|
|
|
+// end_r_commctrl
|
|
|
+
|
|
|
+{$ENDIF} // NONATIVEFONTCTL
|
|
|
+// === End Native Font Control ===
|
|
|
+
|
|
|
+/// ====================== Button Control =============================
|
|
|
+
|
|
|
+{$IFNDEF NOBUTTON}
|
|
|
+
|
|
|
+{$IFDEF WIN32}
|
|
|
+
|
|
|
+// Button Class Name
|
|
|
+ WC_BUTTONA = 'Button';
|
|
|
+ WC_BUTTONW = {L}'Button';
|
|
|
+
|
|
|
+CONST
|
|
|
+{$IFDEF UNICODE}
|
|
|
+ WC_BUTTON = WC_BUTTONW;
|
|
|
+{$ELSE}
|
|
|
+ WC_BUTTON = WC_BUTTONA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ELSE}
|
|
|
+
|
|
|
+ WC_BUTTON = 'Button';
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ifdef win32xp}
|
|
|
+ BUTTON_IMAGELIST_ALIGN_LEFT = 0;
|
|
|
+ BUTTON_IMAGELIST_ALIGN_RIGHT = 1;
|
|
|
+ BUTTON_IMAGELIST_ALIGN_TOP = 2;
|
|
|
+ BUTTON_IMAGELIST_ALIGN_BOTTOM = 3;
|
|
|
+ BUTTON_IMAGELIST_ALIGN_CENTER = 4; // Doesn't draw text
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ DummyStruct19 = Record
|
|
|
+ himl : HIMAGELIST; // Index: Normal, hot pushed, disabled. If count is less than 4, we use index 1
|
|
|
+ margin : RECT; // Margin around icon.
|
|
|
+ uAlign : UINT;
|
|
|
+ END;
|
|
|
+ BUTTON_IMAGELIST = DummyStruct19;
|
|
|
+ PBUTTON_IMAGELIST = ^DummyStruct19;
|
|
|
+ TDummyStruct19 = DummyStruct19;
|
|
|
+ PDummyStruct19 = ^DummyStruct19;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ BCM_GETIDEALSIZE = (BCM_FIRST + $0001);
|
|
|
+// Macro 305
|
|
|
+
|
|
|
+
|
|
|
+Function Button_GetIdealSize( hwnd : hwnd; psize : LPARAM):BOOL;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ BCM_SETIMAGELIST = (BCM_FIRST + $0002);
|
|
|
+// Macro 306
|
|
|
+
|
|
|
+
|
|
|
+Function Button_SetImageList( hwnd : hwnd; pbuttonImagelist : LPARAM):BOOL;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ BCM_GETIMAGELIST = (BCM_FIRST + $0003);
|
|
|
+// Macro 307
|
|
|
+
|
|
|
+
|
|
|
+Function Button_GetImageList( hwnd : hwnd; pbuttonImagelist : LPARAM):BOOL;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ BCM_SETTEXTMARGIN = (BCM_FIRST + $0004);
|
|
|
+// Macro 308
|
|
|
+
|
|
|
+
|
|
|
+Function Button_SetTextMargin( hwnd : hwnd; pmargin : LPARAM):BOOL;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ BCM_GETTEXTMARGIN = (BCM_FIRST + $0005);
|
|
|
+// Macro 309
|
|
|
+
|
|
|
+
|
|
|
+Function Button_GetTextMargin( hwnd : hwnd; pmargin : LPARAM):BOOL;
|
|
|
+
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagNMBCHOTITEM = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ dwFlags : DWORD; // HICF_*
|
|
|
+ END;
|
|
|
+ NMBCHOTITEM = tagNMBCHOTITEM;
|
|
|
+ LPNMBCHOTITEM = ^tagNMBCHOTITEM;
|
|
|
+ TNMBCHOTITEM = tagNMBCHOTITEM;
|
|
|
+ PNMBCHOTITEM = ^tagNMBCHOTITEM;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ BCN_HOTITEMCHANGE = (BCN_FIRST + $0001);
|
|
|
+
|
|
|
+ BST_HOT = $0200;
|
|
|
+
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+{$ENDIF} // NOBUTTON
|
|
|
+
|
|
|
+/// ===================== End Button Control =========================
|
|
|
+
|
|
|
+/// ====================== Static Control =============================
|
|
|
+
|
|
|
+{$IFNDEF NOSTATIC}
|
|
|
+
|
|
|
+{$IFDEF _WIN32}
|
|
|
+
|
|
|
+// Static Class Name
|
|
|
+ WC_STATICA = 'Static';
|
|
|
+ WC_STATICW = {L}'Static';
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+
|
|
|
+TYPE
|
|
|
+ WC_STATIC = WC_STATICW;
|
|
|
+{$ELSE}
|
|
|
+ WC_STATIC = WC_STATICA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ELSE}
|
|
|
+
|
|
|
+CONST
|
|
|
+ WC_STATIC = 'Static';
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ENDIF} // NOSTATIC
|
|
|
+
|
|
|
+/// ===================== End Static Control =========================
|
|
|
+
|
|
|
+/// ====================== Edit Control =============================
|
|
|
+
|
|
|
+{$IFNDEF NOEDIT}
|
|
|
+
|
|
|
+{$IFDEF _WIN32}
|
|
|
+
|
|
|
+// Edit Class Name
|
|
|
+ WC_EDITA = 'Edit';
|
|
|
+ WC_EDITW = {L}'Edit';
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+
|
|
|
+TYPE
|
|
|
+ WC_EDIT = WC_EDITW;
|
|
|
+{$ELSE}
|
|
|
+ WC_EDIT = WC_EDITA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ELSE}
|
|
|
+
|
|
|
+CONST
|
|
|
+ WC_EDIT = 'Edit';
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ifdef win32xp}
|
|
|
+ EM_SETCUEBANNER = (ECM_FIRST + 1); // Set the cue banner with the lParm = LPCWSTR
|
|
|
+// Macro 310
|
|
|
+
|
|
|
+
|
|
|
+Function Edit_SetCueBannerText( hwnd : hwnd; lpcwText : LPARAM):BOOL;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ EM_GETCUEBANNER = (ECM_FIRST + 2); // Set the cue banner with the lParm = LPCWSTR
|
|
|
+// Macro 311
|
|
|
+
|
|
|
+
|
|
|
+Function Edit_GetCueBannerText( hwnd : hwnd; lpwText : WPARAM; cchText : LPARAM):BOOL;
|
|
|
+
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ _tagEDITBALLOONTIP = Record
|
|
|
+ cbStruct : DWORD;
|
|
|
+ pszTitle : LPCWSTR;
|
|
|
+ pszText : LPCWSTR;
|
|
|
+ ttiIcon : cint; // From TTI_*
|
|
|
+ END;
|
|
|
+ EDITBALLOONTIP = _tagEDITBALLOONTIP;
|
|
|
+ PEDITBALLOONTIP = ^_tagEDITBALLOONTIP;
|
|
|
+ TEDITBALLOONTIP = _tagEDITBALLOONTIP;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ EM_SHOWBALLOONTIP = (ECM_FIRST + 3); // Show a balloon tip associated to the edit control
|
|
|
+// Macro 312
|
|
|
+
|
|
|
+
|
|
|
+Function Edit_ShowBalloonTip( hwnd : hwnd; peditballoontip : LPARAM):BOOL;
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ EM_HIDEBALLOONTIP = (ECM_FIRST + 4); // Hide any balloon tip associated with the edit control
|
|
|
+// Macro 313
|
|
|
+
|
|
|
+
|
|
|
+Function Edit_HideBalloonTip( hwnd : hwnd):BOOL;
|
|
|
+
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ENDIF} // NOEDIT
|
|
|
+
|
|
|
+/// ===================== End Edit Control =========================
|
|
|
+
|
|
|
+/// ====================== Listbox Control =============================
|
|
|
+
|
|
|
+{$IFNDEF NOLISTBOX}
|
|
|
+
|
|
|
+{$IFDEF _WIN32}
|
|
|
+
|
|
|
+// Listbox Class Name
|
|
|
+
|
|
|
+CONST
|
|
|
+ WC_LISTBOXA = 'ListBox';
|
|
|
+ WC_LISTBOXW = {L}'ListBox';
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+
|
|
|
+TYPE
|
|
|
+ WC_LISTBOX = WC_LISTBOXW;
|
|
|
+{$ELSE}
|
|
|
+ WC_LISTBOX = WC_LISTBOXA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ELSE}
|
|
|
+
|
|
|
+CONST
|
|
|
+ WC_LISTBOX = 'ListBox';
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ENDIF} // NOLISTBOX
|
|
|
+
|
|
|
+
|
|
|
+/// ===================== End Listbox Control =========================
|
|
|
+
|
|
|
+/// ====================== Combobox Control =============================
|
|
|
+
|
|
|
+{$IFNDEF NOCOMBOBOX}
|
|
|
+
|
|
|
+{$IFDEF _WIN32}
|
|
|
+
|
|
|
+// Combobox Class Name
|
|
|
+ WC_COMBOBOXA = 'ComboBox';
|
|
|
+ WC_COMBOBOXW = {L}'ComboBox';
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+
|
|
|
+TYPE
|
|
|
+ WC_COMBOBOX = WC_COMBOBOXW;
|
|
|
+{$ELSE}
|
|
|
+ WC_COMBOBOX = WC_COMBOBOXA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ELSE}
|
|
|
+
|
|
|
+CONST
|
|
|
+ WC_COMBOBOX = 'ComboBox';
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ENDIF} // NOCOMBOBOX
|
|
|
+
|
|
|
+
|
|
|
+{$ifdef win32xp}
|
|
|
+
|
|
|
+// custom combobox control messages
|
|
|
+ CB_SETMINVISIBLE = (CBM_FIRST + 1);
|
|
|
+ CB_GETMINVISIBLE = (CBM_FIRST + 2);
|
|
|
+
|
|
|
+// Macro 314
|
|
|
+
|
|
|
+
|
|
|
+Function ComboBox_SetMinVisible( hwnd : hwnd; iMinVisible : WPARAM):BOOL;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 315
|
|
|
+
|
|
|
+
|
|
|
+Function ComboBox_GetMinVisible( hwnd : hwnd):cint;
|
|
|
+
|
|
|
+
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+/// ===================== End Combobox Control =========================
|
|
|
+
|
|
|
+/// ====================== Scrollbar Control ============================
|
|
|
+
|
|
|
+{$IFNDEF NOSCROLLBAR}
|
|
|
+
|
|
|
+{$IFDEF _WIN32}
|
|
|
+
|
|
|
+// Scrollbar Class Name
|
|
|
+
|
|
|
+CONST
|
|
|
+ WC_SCROLLBARA = 'ScrollBar';
|
|
|
+ WC_SCROLLBARW = {L}'ScrollBar';
|
|
|
+
|
|
|
+{$IFDEF UNICODE}
|
|
|
+
|
|
|
+TYPE
|
|
|
+ WC_SCROLLBAR = WC_SCROLLBARW;
|
|
|
+{$ELSE}
|
|
|
+ WC_SCROLLBAR = WC_SCROLLBARA;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ELSE}
|
|
|
+
|
|
|
+CONST
|
|
|
+ WC_SCROLLBAR = 'ScrollBar';
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$ENDIF} // NOSCROLLBAR
|
|
|
+
|
|
|
+
|
|
|
+/// ===================== End Scrollbar Control =========================
|
|
|
+
|
|
|
+
|
|
|
+//====== SysLink control =========================================
|
|
|
+
|
|
|
+{$IFDEF _WIN32}
|
|
|
+{$ifdef win32xp}
|
|
|
+
|
|
|
+ INVALID_LINK_INDEX = (-1);
|
|
|
+ MAX_LINKID_TEXT = 48;
|
|
|
+ L_MAX_URL_LENGTH = (2048 + 32 + sizeof("://"));
|
|
|
+
|
|
|
+ WC_LINK = {L}'SysLink';
|
|
|
+
|
|
|
+ LWS_TRANSPARENT = $0001;
|
|
|
+ LWS_IGNORERETURN = $0002;
|
|
|
+
|
|
|
+ LIF_ITEMINDEX = $00000001;
|
|
|
+ LIF_STATE = $00000002;
|
|
|
+ LIF_ITEMID = $00000004;
|
|
|
+ LIF_URL = $00000008;
|
|
|
+
|
|
|
+ LIS_FOCUSED = $00000001;
|
|
|
+ LIS_ENABLED = $00000002;
|
|
|
+ LIS_VISITED = $00000004;
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagLITEM = Record
|
|
|
+ mask : UINT;
|
|
|
+ iLink : cint;
|
|
|
+ state : UINT;
|
|
|
+ stateMask : UINT;
|
|
|
+ szID : Array [0..MAX_LINKID_TEXT-1] OF WCHAR;
|
|
|
+ szUrl : Array [0..L_MAX_URL_LENGTH-1] OF WCHAR;
|
|
|
+ END;
|
|
|
+ LITEM = tagLITEM;
|
|
|
+ PLITEM = ^tagLITEM;
|
|
|
+ TLITEM = tagLITEM;
|
|
|
+ PLITEM = ^tagLITEM;
|
|
|
+
|
|
|
+
|
|
|
+ tagLHITTESTINFO = Record
|
|
|
+ pt : POINT;
|
|
|
+ item : LITEM;
|
|
|
+ END;
|
|
|
+ LHITTESTINFO = tagLHITTESTINFO;
|
|
|
+ PLHITTESTINFO = ^tagLHITTESTINFO;
|
|
|
+ TLHITTESTINFO = tagLHITTESTINFO;
|
|
|
+ PLHITTESTINFO = ^tagLHITTESTINFO;
|
|
|
+
|
|
|
+
|
|
|
+ tagNMLINK = Record
|
|
|
+ hdr : NMHDR;
|
|
|
+ item : LITEM;
|
|
|
+ END;
|
|
|
+ NMLINK = tagNMLINK;
|
|
|
+ PNMLINK = ^tagNMLINK;
|
|
|
+ TNMLINK = tagNMLINK;
|
|
|
+ PNMLINK = ^tagNMLINK;
|
|
|
+
|
|
|
+
|
|
|
+// SysLink notifications
|
|
|
+// NM_CLICK // wParam: control ID, lParam: PNMLINK, ret: ignored.
|
|
|
+
|
|
|
+// LinkWindow messages
|
|
|
+
|
|
|
+CONST
|
|
|
+ LM_HITTEST = (WM_USER+$300); // wParam: n/a, lparam: PLHITTESTINFO, ret: BOOL
|
|
|
+ LM_GETIDEALHEIGHT = (WM_USER+$301); // wParam: n/a, lparam: n/a, ret: cy
|
|
|
+ LM_SETITEM = (WM_USER+$302); // wParam: n/a, lparam: LITEM*, ret: BOOL
|
|
|
+ LM_GETITEM = (WM_USER+$303); // wParam: n/a, lparam: LITEM*, ret: BOOL
|
|
|
+
|
|
|
+{$ENDIF}
|
|
|
+{$ENDIF} // _WIN32
|
|
|
+//====== End SysLink control =========================================
|
|
|
+
|
|
|
+
|
|
|
+//
|
|
|
+// === MUI APIs ===
|
|
|
+//
|
|
|
+{$IFNDEF NOMUI}
|
|
|
+procedure InitMUILanguage(uiLang:LANGID); external commctrldll name 'InitMUILanguage';
|
|
|
+
|
|
|
+
|
|
|
+function GetMUILanguage:LANGID; external commctrldll name 'GetMUILanguage';
|
|
|
+{$ENDIF} // NOMUI
|
|
|
+
|
|
|
+{$ENDIF} // _WIN32_IE >= 0x0400
|
|
|
+
|
|
|
+{$IFDEF _WIN32}
|
|
|
+//====== TrackMouseEvent =====================================================
|
|
|
+
|
|
|
+{$IFNDEF NOTRACKMOUSEEVENT}
|
|
|
+
|
|
|
+//
|
|
|
+// If the messages for TrackMouseEvent have not been defined then define them
|
|
|
+// now.
|
|
|
+//
|
|
|
+{$IFNDEF WM_MOUSEHOVER}
|
|
|
+
|
|
|
+CONST
|
|
|
+ WM_MOUSEHOVER = $02A1;
|
|
|
+ WM_MOUSELEAVE = $02A3;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+//
|
|
|
+// If the TRACKMOUSEEVENT structure and associated flags havent been declared
|
|
|
+// then declare them now.
|
|
|
+//
|
|
|
+{$IFNDEF TME_HOVER}
|
|
|
+
|
|
|
+ TME_HOVER = $00000001;
|
|
|
+ TME_LEAVE = $00000002;
|
|
|
+{$ifdef win32xp}
|
|
|
+ TME_NONCLIENT = $00000010;
|
|
|
+{$ENDIF} /* WINVER >= 0x0500 */
|
|
|
+ TME_QUERY = $40000000;
|
|
|
+ TME_CANCEL = $80000000;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ HOVER_DEFAULT = $FFFFFFFF;
|
|
|
+
|
|
|
+TYPE
|
|
|
+
|
|
|
+ tagTRACKMOUSEEVENT = Record
|
|
|
+ cbSize : DWORD;
|
|
|
+ dwFlags : DWORD;
|
|
|
+ hwndTrack : HWND;
|
|
|
+ dwHoverTime : DWORD;
|
|
|
+ END;
|
|
|
+ TRACKMOUSEEVENT = tagTRACKMOUSEEVENT;
|
|
|
+ LPTRACKMOUSEEVENT = ^tagTRACKMOUSEEVENT;
|
|
|
+ TTRACKMOUSEEVENT = tagTRACKMOUSEEVENT;
|
|
|
+ PTRACKMOUSEEVENT = ^tagTRACKMOUSEEVENT;
|
|
|
+
|
|
|
+
|
|
|
+{$ENDIF} // !TME_HOVER
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+//
|
|
|
+// Declare _TrackMouseEvent. This API tries to use the window manager's
|
|
|
+// implementation of TrackMouseEvent if it is present, otherwise it emulates.
|
|
|
+//
|
|
|
+function _TrackMouseEvent(lpEventTrack:LPTRACKMOUSEEVENT):BOOL; external commctrldll name '_TrackMouseEvent';
|
|
|
+
|
|
|
+{$ENDIF} // !NOTRACKMOUSEEVENT
|
|
|
+
|
|
|
+{$ifdef ie4plus}
|
|
|
+
|
|
|
+//====== Flat Scrollbar APIs=========================================
|
|
|
+{$IFNDEF NOFLATSBAPIS}
|
|
|
+
|
|
|
+
|
|
|
+CONST
|
|
|
+ WSB_PROP_CYVSCROLL = $00000001L;
|
|
|
+ WSB_PROP_CXHSCROLL = $00000002L;
|
|
|
+ WSB_PROP_CYHSCROLL = $00000004L;
|
|
|
+ WSB_PROP_CXVSCROLL = $00000008L;
|
|
|
+ WSB_PROP_CXHTHUMB = $00000010L;
|
|
|
+ WSB_PROP_CYVTHUMB = $00000020L;
|
|
|
+ WSB_PROP_VBKGCOLOR = $00000040L;
|
|
|
+ WSB_PROP_HBKGCOLOR = $00000080L;
|
|
|
+ WSB_PROP_VSTYLE = $00000100L;
|
|
|
+ WSB_PROP_HSTYLE = $00000200L;
|
|
|
+ WSB_PROP_WINSTYLE = $00000400L;
|
|
|
+ WSB_PROP_PALETTE = $00000800L;
|
|
|
+ WSB_PROP_MASK = $00000FFFL;
|
|
|
+
|
|
|
+ FSB_FLAT_MODE = 2;
|
|
|
+ FSB_ENCARTA_MODE = 1;
|
|
|
+ FSB_REGULAR_MODE = 0;
|
|
|
+
|
|
|
+function FlatSB_EnableScrollBar(hwnd:HWND):BOOL; external commctrldll name 'FlatSB_EnableScrollBar';
|
|
|
+function FlatSB_ShowScrollBar(hwnd:HWND):BOOL; external commctrldll name 'FlatSB_ShowScrollBar';
|
|
|
+
|
|
|
+function FlatSB_GetScrollRange(hwnd:HWND):BOOL; external commctrldll name 'FlatSB_GetScrollRange';
|
|
|
+function FlatSB_GetScrollInfo(hwnd:HWND):BOOL; external commctrldll name 'FlatSB_GetScrollInfo';
|
|
|
+
|
|
|
+function FlatSB_GetScrollPos(hwnd:HWND):cint; external commctrldll name 'FlatSB_GetScrollPos';
|
|
|
+
|
|
|
+
|
|
|
+function FlatSB_GetScrollProp(hwnd:HWND):BOOL; external commctrldll name 'FlatSB_GetScrollProp';
|
|
|
+{$IFDEF _WIN64}
|
|
|
+function FlatSB_GetScrollPropPtr(hwnd:HWND):BOOL; external commctrldll name 'FlatSB_GetScrollPropPtr';
|
|
|
+{$ELSE}
|
|
|
+function FlatSB_GetScrollPropPtr(hwnd:HWND):BOOL; external commctrldll name 'FlatSB_GetScrollProp';
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+function FlatSB_SetScrollPos(:HWND):cint; external commctrldll name 'FlatSB_SetScrollPos';
|
|
|
+
|
|
|
+function FlatSB_SetScrollInfo(:HWND):cint; external commctrldll name 'FlatSB_SetScrollInfo';
|
|
|
+
|
|
|
+
|
|
|
+function FlatSB_SetScrollRange(:HWND):cint; external commctrldll name 'FlatSB_SetScrollRange';
|
|
|
+function FlatSB_SetScrollProp(:HWND):BOOL; external commctrldll name 'FlatSB_SetScrollProp';
|
|
|
+
|
|
|
+CONST
|
|
|
+ FlatSB_SetScrollPropPtr = FlatSB_SetScrollProp;
|
|
|
+
|
|
|
+function InitializeFlatSB(:HWND):BOOL; external commctrldll name 'InitializeFlatSB';
|
|
|
+function UninitializeFlatSB(:HWND):HRESULT; external commctrldll name 'UninitializeFlatSB';
|
|
|
+
|
|
|
+{$ENDIF} // NOFLATSBAPIS
|
|
|
+
|
|
|
+{$ENDIF} // _WIN32_IE >= 0x0400
|
|
|
+
|
|
|
+{$ENDIF} { _WIN32 }
|
|
|
+
|
|
|
+{$ENDIF} // _WIN32_IE >= 0x0300
|
|
|
+
|
|
|
+{$ifdef win32xp}
|
|
|
+//
|
|
|
+// subclassing stuff
|
|
|
+//
|
|
|
+TYPE
|
|
|
+ subclassproc=function (hwnd:HWND;uMsg:cUINT; wParam:WPARAM;lparam:LPARAM;uISubClass : UINT_PTR;dwRefData:DWORD_PTR):LRESULT; stdcall;
|
|
|
+
|
|
|
+{
|
|
|
+ (CALLBACK *SUBCLASSPROC)(HWND hWnd, UINT uMsg, WPARAM wParam, = LRESULT
|
|
|
+ LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwRefData);
|
|
|
+
|
|
|
+typedef LRESULT (CALLBACK *SUBCLASSPROC)(HWND hWnd, UINT uMsg, WPARAM wParam,
|
|
|
+ LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwRefData);
|
|
|
+
|
|
|
+ hwnd:HWND;uMsg:cUINT; wParam:WPARAM;lparam:LPARAM;uISubClass : CUINT_PTR;dwRefData:DWORD_PTR):LRESULT; stdcall;
|
|
|
+}
|
|
|
+
|
|
|
+function SetWindowSubclass(hWnd:HWND;pfnSubclass:SUBCLASSPROC;uIdSubclass:UINT_PTR;dwRefData:DWORD_PTR):BOOL; external commctrldll name 'SetWindowSubclass';
|
|
|
+function GetWindowSubclass(hWnd:HWND;pfnSubclass:SUBCLASSPROC;uIdSubclass:UINT_PTR;pdwRefData:PDWORD_PTR):BOOL; external commctrldll name 'GetWindowSubclass';
|
|
|
+function RemoveWindowSubclass(hWnd:HWND;pfnSubclass:SUBCLASSPROC;uIdSubclass:UINT_PTR):BOOL; external commctrldll name 'RemoveWindowSubclass';
|
|
|
+
|
|
|
+function DefSubclassProc(hWnd:HWND;uMsg:UINT;wParam:WPARAM;lParam:LPARAM):LRESULT; external commctrldll name 'DefSubclassProc';
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+{$ifdef win32xp}
|
|
|
+
|
|
|
+function DrawShadowText(hdc:HDC;pszText:LPCWSTR;cch:UINT;prc:PRECT;dwFlags:DWORD;crText:COLORREF;crShadow:COLORREF;ixOffset:cint;iyOffset:cint):cint; external commctrldll name 'DrawShadowText';
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+
|
|
|
+IMPLEMENTATION
|
|
|
+
|
|
|
+// Macro 8
|
|
|
+
|
|
|
+//#define HANDLE_WM_NOTIFY(hwnd, wParam, lParam, fn) \
|
|
|
+// (fn)((hwnd), (int)(wParam), (NMHDR *)(lParam))
|
|
|
+
|
|
|
+Procedure HANDLE_WM_NOTIFY( hwnd : hwnd; wParam : cint;var lParam : NMHDR ;fn:Pointer);
|
|
|
+
|
|
|
+TYPE FnType=procedure ( hwnd : hwnd; wParam : cint;tst:longint); stdcall;
|
|
|
+
|
|
|
+Begin
|
|
|
+ fnType(fn)(hwnd, wParam, Longint(@lParam));
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 9
|
|
|
+
|
|
|
+//#define FORWARD_WM_NOTIFY(hwnd, idFrom, pnmhdr, fn) \
|
|
|
+// (LRESULT)(fn)((hwnd), WM_NOTIFY, (WPARAM)(int)(idFrom), (LPARAM)(NMHDR *)(pnmhdr))
|
|
|
+
|
|
|
+Function FORWARD_WM_NOTIFY( hwnd : hwnd; idFrom : cint;var pnmhdr : NMHDR ; fn : pointer ):LRESULT;
|
|
|
+
|
|
|
+TYPE FnType=Function( hwnd : hwnd; wParam : cint;wparam2:cint;lparam1:lparam):LResult; stdcall;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=LRESULT(fntype(fn)(hwnd, WM_NOTIFY, idFrom, Longint(@pnmhdr)));
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 10
|
|
|
+// #define CCSIZEOF_STRUCT(structname, member) (((int)((LPBYTE)(&((structname*)0)->member) - ((LPBYTE)((structname*)0)))) + sizeof(((structname*)0)->member))
|
|
|
+
|
|
|
+
|
|
|
+// Macro 11
|
|
|
+// #define ImageList_AddIcon(himl, hicon) ImageList_ReplaceIcon(himl, -1, hicon)
|
|
|
+
|
|
|
+Function ImageList_AddIcon(Himl:HIMAGELIST;hicon:HICON):cint;
|
|
|
+Begin
|
|
|
+ Result:=ImageList_ReplaceIcon(himl,-1,hicon);
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 12
|
|
|
+// #define INDEXTOOVERLAYMASK(i) ((i) << 8)
|
|
|
+
|
|
|
+// Macro 13
|
|
|
+// #define ImageList_RemoveAll(himl) ImageList_Remove(himl, -1)
|
|
|
+
|
|
|
+Procedure ImageList_RemoveAll(himl:HIMAGELIST);
|
|
|
+Begin
|
|
|
+ ImageList_Remove(himl, -1)
|
|
|
+End;
|
|
|
+
|
|
|
+// Macro 14
|
|
|
+// #define ImageList_ExtractIcon(hi, himl, i) ImageList_GetIcon(himl, i, 0)
|
|
|
+
|
|
|
+Procedure ImageList_ExtractIcon(hi:longint; {dummy?} himl:HIMAGELIST;i:cint);
|
|
|
+
|
|
|
+Begin
|
|
|
+ ImageList_GetIcon(himl, i,0);
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 15
|
|
|
+// #define ImageList_LoadBitmap(hi, lpbmp, cx, cGrow, crMask)
|
|
|
+// ImageList_LoadImage(hi, lpbmp, cx, cGrow, crMask, IMAGE_BITMAP, 0)
|
|
|
+
|
|
|
+Procedure ImageList_LoadBitmap(hi:HINST;lpbmp:LPCTSTR;cx:cint;cGrow:cint;crMask:COLORREF);
|
|
|
+
|
|
|
+Begin
|
|
|
+ ImageList_LoadImage(hi, lpbmp, cx, cGrow, crMask, IMAGE_BITMAP, 0);
|
|
|
+End;
|
|
|
+
|
|
|
+// Macro 16
|
|
|
+// #define Header_GetItemCount(hwndHD) \
|
|
|
+// (int)SNDMSG((hwndHD), HDM_GETITEMCOUNT, 0, DWord(0))
|
|
|
+
|
|
|
+Function Header_GetItemCount( hwndHD : hwnd):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwndHD), HDM_GETITEMCOUNT, 0, DWord(0)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 17
|
|
|
+//#define Header_InsertItem(hwndHD, i, phdi) \
|
|
|
+// (int)SNDMSG((hwndHD), HDM_INSERTITEM, (WPARAM)(int)(i), (LPARAM)(const HD_ITEM *)(phdi))
|
|
|
+
|
|
|
+Function Header_InsertItem( hwndHD : hwnd; i : cint;const phdi : HD_ITEM ):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwndHD), HDM_INSERTITEM, (i), Longint(@phdi)));
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 18
|
|
|
+//#define Header_DeleteItem(hwndHD, i) \
|
|
|
+// (BOOL)SNDMSG((hwndHD), HDM_DELETEITEM, (WPARAM)(int)(i), DWord(0))
|
|
|
+
|
|
|
+Function Header_DeleteItem( hwndHD : hwnd; i : cint):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwndHD), HDM_DELETEITEM, (i), DWord(0)));
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 19
|
|
|
+// #define Header_GetItem(hwndHD, i, phdi) \
|
|
|
+// (BOOL)SNDMSG((hwndHD), HDM_GETITEM, (WPARAM)(int)(i), (LPARAM)(HD_ITEM *)(phdi))
|
|
|
+
|
|
|
+Function Header_GetItem( hwndHD : hwnd; i : cint;var phdi : HD_ITEM ):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwndHD), HDM_GETITEM, (i), Longint(@phdi)));
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 20
|
|
|
+// #define Header_SetItem(hwndHD, i, phdi) \
|
|
|
+// (BOOL)SNDMSG((hwndHD), HDM_SETITEM, (WPARAM)(int)(i), (LPARAM)(const HD_ITEM *)(phdi))
|
|
|
+
|
|
|
+Function Header_SetItem( hwndHD : hwnd; i : cint;const phdi : HD_ITEM ):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwndHD), HDM_SETITEM, (i), Longint(@phdi)));
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 21
|
|
|
+// #define Header_Layout(hwndHD, playout) \
|
|
|
+// (BOOL)SNDMSG((hwndHD), HDM_LAYOUT, 0, (LPARAM)(HD_LAYOUT *)(playout))
|
|
|
+
|
|
|
+Function Header_Layout( hwndHD : hwnd;var playout : HD_LAYOUT ):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwndHD), HDM_LAYOUT, 0, Longint(@playout)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 22
|
|
|
+// #define Header_GetItemRect(hwnd, iItem, lprc) \
|
|
|
+// (BOOL)SNDMSG((hwnd), HDM_GETITEMRECT, (WPARAM)(iItem), (LPARAM)(lprc))
|
|
|
+
|
|
|
+Function Header_GetItemRect( hwnd : hwnd; iItem : WPARAM; lprc : LPARAM):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), HDM_GETITEMRECT, iItem, lprc));
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 23
|
|
|
+// #define Header_SetImageList(hwnd, himl) \
|
|
|
+// (HIMAGELIST)SNDMSG((hwnd), HDM_SETIMAGELIST, 0, (LPARAM)(himl))
|
|
|
+
|
|
|
+Function Header_SetImageList( hwnd : hwnd; himl : LPARAM):HIMAGELIST;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=HIMAGELIST(SendMessage((hwnd), HDM_SETIMAGELIST, 0, himl))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 24
|
|
|
+// #define Header_GetImageList(hwnd) \
|
|
|
+// (HIMAGELIST)SNDMSG((hwnd), HDM_GETIMAGELIST, 0, 0)
|
|
|
+
|
|
|
+Function Header_GetImageList( hwnd : hwnd):HIMAGELIST;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=HIMAGELIST(SendMessage((hwnd), HDM_GETIMAGELIST, 0, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 25
|
|
|
+// #define Header_OrderToIndex(hwnd, i) \
|
|
|
+// (int)SNDMSG((hwnd), HDM_ORDERTOINDEX, (WPARAM)(i), 0)
|
|
|
+
|
|
|
+Function Header_OrderToIndex( hwnd : hwnd; i : WPARAM):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwnd), HDM_ORDERTOINDEX, (i), 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 26
|
|
|
+// #define Header_CreateDragImage(hwnd, i) \
|
|
|
+// (HIMAGELIST)SNDMSG((hwnd), HDM_CREATEDRAGIMAGE, (WPARAM)(i), 0)
|
|
|
+
|
|
|
+Function Header_CreateDragImage( hwnd : hwnd; i : WPARAM):HIMAGELIST;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=HIMAGELIST(SendMessage((hwnd), HDM_CREATEDRAGIMAGE, (i), 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 27
|
|
|
+// #define Header_GetOrderArray(hwnd, iCount, lpi) \
|
|
|
+// (BOOL)SNDMSG((hwnd), HDM_GETORDERARRAY, (WPARAM)(iCount), (LPARAM)(lpi))
|
|
|
+
|
|
|
+Function Header_GetOrderArray( hwnd : hwnd; iCount : WPARAM; lpi : LPARAM):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), HDM_GETORDERARRAY, iCount, lpi))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 28
|
|
|
+// #define Header_SetOrderArray(hwnd, iCount, lpi) \
|
|
|
+// (BOOL)SNDMSG((hwnd), HDM_SETORDERARRAY, (WPARAM)(iCount), (LPARAM)(lpi))
|
|
|
+
|
|
|
+Function Header_SetOrderArray( hwnd : hwnd; iCount : WPARAM; lpi : LPARAM):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), HDM_SETORDERARRAY, iCount, lpi))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 29
|
|
|
+// #define Header_SetHotDivider(hwnd, fPos, dw) \
|
|
|
+// (int)SNDMSG((hwnd), HDM_SETHOTDIVIDER, (WPARAM)(fPos), (LPARAM)(dw))
|
|
|
+
|
|
|
+Function Header_SetHotDivider( hwnd : hwnd; fPos : WPARAM; dw : LPARAM):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwnd), HDM_SETHOTDIVIDER, fPos, dw))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+{$ifdef ie5plus}
|
|
|
+// Macro 30
|
|
|
+// #define Header_SetBitmapMargin(hwnd, iWidth) \
|
|
|
+// (int)SNDMSG((hwnd), HDM_SETBITMAPMARGIN, (WPARAM)(iWidth), 0)
|
|
|
+
|
|
|
+Function Header_SetBitmapMargin( hwnd : hwnd; iWidth : WPARAM):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwnd), HDM_SETBITMAPMARGIN, iWidth, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 31
|
|
|
+// #define Header_GetBitmapMargin(hwnd) \
|
|
|
+// (int)SNDMSG((hwnd), HDM_GETBITMAPMARGIN, 0, 0)
|
|
|
+
|
|
|
+Function Header_GetBitmapMargin( hwnd : hwnd):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwnd), HDM_GETBITMAPMARGIN, 0, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// Macro 32
|
|
|
+// #define Header_SetUnicodeFormat(hwnd, fUnicode) \
|
|
|
+// (BOOL)SNDMSG((hwnd), HDM_SETUNICODEFORMAT, (WPARAM)(fUnicode), 0)
|
|
|
+
|
|
|
+Function Header_SetUnicodeFormat( hwnd : hwnd; fUnicode : WPARAM):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), HDM_SETUNICODEFORMAT, fUnicode, 0));
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 33
|
|
|
+// #define Header_GetUnicodeFormat(hwnd) \
|
|
|
+// (BOOL)SNDMSG((hwnd), HDM_GETUNICODEFORMAT, 0, 0)
|
|
|
+
|
|
|
+Function Header_GetUnicodeFormat( hwnd : hwnd):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), HDM_GETUNICODEFORMAT, 0, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+{$ifdef IE5plus}
|
|
|
+// Macro 34
|
|
|
+// #define Header_SetFilterChangeTimeout(hwnd, i) \
|
|
|
+// (int)SNDMSG((hwnd), HDM_SETFILTERCHANGETIMEOUT, 0, (LPARAM)(i))
|
|
|
+
|
|
|
+Function Header_SetFilterChangeTimeout( hwnd : hwnd; i : LPARAM):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwnd), HDM_SETFILTERCHANGETIMEOUT, 0, (i)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 35
|
|
|
+// #define Header_EditFilter(hwnd, i, fDiscardChanges) \
|
|
|
+// (int)SNDMSG((hwnd), HDM_EDITFILTER, (WPARAM)(i), MAKELPARAM(fDiscardChanges, 0))
|
|
|
+
|
|
|
+Function Header_EditFilter( hwnd : hwnd; i : WPARAM; fDiscardChanges :cint ):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwnd), HDM_EDITFILTER, (i), MAKELPARAM(fDiscardChanges, 0)));
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 36
|
|
|
+// #define Header_ClearFilter(hwnd, i) \
|
|
|
+// (int)SNDMSG((hwnd), HDM_CLEARFILTER, (WPARAM)(i), 0)
|
|
|
+
|
|
|
+Function Header_ClearFilter( hwnd : hwnd; i : WPARAM):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwnd), HDM_CLEARFILTER, (i), 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 37
|
|
|
+// #define Header_ClearAllFilters(hwnd) \
|
|
|
+// (int)SNDMSG((hwnd), HDM_CLEARFILTER, (WPARAM)-1, 0)
|
|
|
+
|
|
|
+Function Header_ClearAllFilters( hwnd : hwnd):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwnd), HDM_CLEARFILTER, WPARAM(-1), 0))
|
|
|
+end;
|
|
|
+{$endif}
|
|
|
+
|
|
|
+// Macro 38
|
|
|
+// #define ListView_SetUnicodeFormat(hwnd, fUnicode) \
|
|
|
+// (BOOL)SNDMSG((hwnd), LVM_SETUNICODEFORMAT, (WPARAM)(fUnicode), 0)
|
|
|
+
|
|
|
+Function ListView_SetUnicodeFormat( hwnd : hwnd; fUnicode : WPARAM):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), LVM_SETUNICODEFORMAT, fUnicode, 0));
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 39
|
|
|
+// #define ListView_GetUnicodeFormat(hwnd) \
|
|
|
+// (BOOL)SNDMSG((hwnd), LVM_GETUNICODEFORMAT, 0, 0)
|
|
|
+
|
|
|
+Function ListView_GetUnicodeFormat( hwnd : hwnd):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), LVM_GETUNICODEFORMAT, 0, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 40
|
|
|
+// #define ListView_GetBkColor(hwnd) \
|
|
|
+// (COLORREF)SNDMSG((hwnd), LVM_GETBKCOLOR, 0, DWord(0))
|
|
|
+
|
|
|
+Function ListView_GetBkColor( hwnd : hwnd):COLORREF;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=COLORREF(SendMessage((hwnd), LVM_GETBKCOLOR, 0, DWord(0)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 41
|
|
|
+// #define ListView_SetBkColor(hwnd, clrBk) \
|
|
|
+// (BOOL)SNDMSG((hwnd), LVM_SETBKCOLOR, 0, (LPARAM)(COLORREF)(clrBk))
|
|
|
+
|
|
|
+Function ListView_SetBkColor( hwnd : hwnd; clrBk : COLORREF):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), LVM_SETBKCOLOR, 0, clrBk))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 42
|
|
|
+// #define ListView_GetImageList(hwnd, iImageList) \
|
|
|
+// (HIMAGELIST)SNDMSG((hwnd), LVM_GETIMAGELIST, (WPARAM)(INT)(iImageList), DWord(0))
|
|
|
+
|
|
|
+Function ListView_GetImageList( hwnd : hwnd; iImageList : CINT):HIMAGELIST;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=HIMAGELIST(SendMessage((hwnd), LVM_GETIMAGELIST, iImageList, DWord(0)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 43
|
|
|
+// #define ListView_SetImageList(hwnd, himl, iImageList) \
|
|
|
+// (HIMAGELIST)SNDMSG((hwnd), LVM_SETIMAGELIST, (WPARAM)(iImageList), (LPARAM)(HIMAGELIST)(himl))
|
|
|
+
|
|
|
+Function ListView_SetImageList( hwnd : hwnd; himl : HIMAGELIST; iImageList : WPARAM):HIMAGELIST;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=HIMAGELIST(SendMessage((hwnd), LVM_SETIMAGELIST, iImageList, himl))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 44
|
|
|
+// #define ListView_GetItemCount(hwnd) \
|
|
|
+// (int)SNDMSG((hwnd), LVM_GETITEMCOUNT, 0, DWord(0))
|
|
|
+
|
|
|
+Function ListView_GetItemCount( hwnd : hwnd):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwnd), LVM_GETITEMCOUNT, 0, DWord(0)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 45
|
|
|
+// #define INDEXTOSTATEIMAGEMASK(i) ((i) << 12)
|
|
|
+
|
|
|
+// Macro 46
|
|
|
+// #define ListView_GetItem(hwnd, pitem) \
|
|
|
+// (BOOL)SNDMSG((hwnd), LVM_GETITEM, 0, (LPARAM)(LV_ITEM *)(pitem))
|
|
|
+
|
|
|
+Function ListView_GetItem( hwnd : hwnd;var pitem : LV_ITEM ):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), LVM_GETITEM, 0, Longint(@pitem)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 47
|
|
|
+// #define ListView_SetItem(hwnd, pitem) \
|
|
|
+// (BOOL)SNDMSG((hwnd), LVM_SETITEM, 0, (LPARAM)(const LV_ITEM *)(pitem))
|
|
|
+
|
|
|
+Function ListView_SetItem( hwnd : hwnd;const pitem : LV_ITEM ):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), LVM_SETITEM, 0, Longint(@pitem)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 48
|
|
|
+// #define ListView_InsertItem(hwnd, pitem) \
|
|
|
+// (int)SNDMSG((hwnd), LVM_INSERTITEM, 0, (LPARAM)(const LV_ITEM *)(pitem))
|
|
|
+
|
|
|
+Function ListView_InsertItem( hwnd : hwnd;Const pitem : LV_ITEM ):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwnd), LVM_INSERTITEM, 0, Longint(@pitem)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 49
|
|
|
+// #define ListView_DeleteItem(hwnd, i) \
|
|
|
+// (BOOL)SNDMSG((hwnd), LVM_DELETEITEM, (WPARAM)(int)(i), DWord(0))
|
|
|
+
|
|
|
+Function ListView_DeleteItem( hwnd : hwnd; i : cint):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), LVM_DELETEITEM, (i), DWord(0)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 50
|
|
|
+// #define ListView_DeleteAllItems(hwnd) \
|
|
|
+// (BOOL)SNDMSG((hwnd), LVM_DELETEALLITEMS, 0, DWord(0))
|
|
|
+
|
|
|
+Function ListView_DeleteAllItems( hwnd : hwnd):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), LVM_DELETEALLITEMS, 0, DWord(0)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 51
|
|
|
+// #define ListView_GetCallbackMask(hwnd) \
|
|
|
+// (BOOL)SNDMSG((hwnd), LVM_GETCALLBACKMASK, 0, 0)
|
|
|
+
|
|
|
+Function ListView_GetCallbackMask( hwnd : hwnd):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), LVM_GETCALLBACKMASK, 0, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 52
|
|
|
+// #define ListView_SetCallbackMask(hwnd, mask) \
|
|
|
+// (BOOL)SNDMSG((hwnd), LVM_SETCALLBACKMASK, (WPARAM)(UINT)(mask), 0)
|
|
|
+
|
|
|
+Function ListView_SetCallbackMask( hwnd : hwnd; mask : UINT):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), LVM_SETCALLBACKMASK, mask, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 53
|
|
|
+// #define ListView_GetNextItem(hwnd, i, flags) \
|
|
|
+// (int)SNDMSG((hwnd), LVM_GETNEXTITEM, (WPARAM)(int)(i), MAKELPARAM((flags), 0))
|
|
|
+
|
|
|
+Function ListView_GetNextItem( hwnd : hwnd; i : cint; flags : cint):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwnd), LVM_GETNEXTITEM, (i), MAKELPARAM((flags), 0)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 54
|
|
|
+// #define ListView_FindItem(hwnd, iStart, plvfi) \
|
|
|
+// (int)SNDMSG((hwnd), LVM_FINDITEM, (WPARAM)(int)(iStart), (LPARAM)(const LV_FINDINFO *)(plvfi))
|
|
|
+
|
|
|
+Function ListView_FindItem( hwnd : hwnd; iStart : cint;const plvfi : LV_FINDINFO ):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwnd), LVM_FINDITEM, iStart, Longint(@plvfi)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 55
|
|
|
+// #define ListView_GetItemRect(hwnd, i, prc, code) \
|
|
|
+// (BOOL)SNDMSG((hwnd), LVM_GETITEMRECT, (WPARAM)(int)(i), \
|
|
|
+// ((prc) ? (((RECT *)(prc))->left = (code),(LPARAM)(RECT *)(prc)) : (LPARAM)(RECT *)NULL))
|
|
|
+
|
|
|
+// Function ListView_GetItemRect( hwnd : hwnd; i : cint;prc {!};code {!}):BOOL;
|
|
|
+//
|
|
|
+// Begin
|
|
|
+// Result:=BOOL(SendMessage((hwnd), LVM_GETITEMRECT, (i), \)
|
|
|
+// end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 56
|
|
|
+// #define ListView_SetItemPosition(hwndLV, i, x, y) \
|
|
|
+// (BOOL)SNDMSG((hwndLV), LVM_SETITEMPOSITION, (WPARAM)(int)(i), MAKELPARAM((x), (y)))
|
|
|
+
|
|
|
+Function ListView_SetItemPosition( hwndLV : hwnd; i : cint; x : cint ; y : cint ):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwndLV), LVM_SETITEMPOSITION, (i), MAKELPARAM((x), (y))))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 57
|
|
|
+// #define ListView_GetItemPosition(hwndLV, i, ppt) \
|
|
|
+// (BOOL)SNDMSG((hwndLV), LVM_GETITEMPOSITION, (WPARAM)(int)(i), (LPARAM)(POINT *)(ppt))
|
|
|
+
|
|
|
+Function ListView_GetItemPosition( hwndLV : hwnd; i : cint;var ppt : POINT ):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwndLV), LVM_GETITEMPOSITION, (i), LPAram(@ppt)))
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 58
|
|
|
+// #define ListView_GetStringWidth(hwndLV, psz) \
|
|
|
+// (int)SNDMSG((hwndLV), LVM_GETSTRINGWIDTH, 0, (LPARAM)(LPCTSTR)(psz))
|
|
|
+
|
|
|
+Function ListView_GetStringWidth( hwndLV : hwnd; psz : LPCTSTR):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwndLV), LVM_GETSTRINGWIDTH, 0, LPARAM(psz)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 59
|
|
|
+// #define ListView_HitTest(hwndLV, pinfo) \
|
|
|
+// (int)SNDMSG((hwndLV), LVM_HITTEST, 0, (LPARAM)(LV_HITTESTINFO *)(pinfo))
|
|
|
+
|
|
|
+Function ListView_HitTest( hwndLV : hwnd;var pinfo : LV_HITTESTINFO ):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwndLV), LVM_HITTEST, 0, LParam(@pinfo)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 60
|
|
|
+// #define ListView_EnsureVisible(hwndLV, i, fPartialOK) \
|
|
|
+// (BOOL)SNDMSG((hwndLV), LVM_ENSUREVISIBLE, (WPARAM)(int)(i), MAKELPARAM((fPartialOK), 0))
|
|
|
+
|
|
|
+Function ListView_EnsureVisible( hwndLV : hwnd; i : cint; fPartialOK : cint ):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwndLV), LVM_ENSUREVISIBLE, (i), MAKELPARAM((fPartialOK), 0)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 61
|
|
|
+// #define ListView_Scroll(hwndLV, dx, dy) \
|
|
|
+// (BOOL)SNDMSG((hwndLV), LVM_SCROLL, (WPARAM)(int)(dx), (LPARAM)(int)(dy))
|
|
|
+
|
|
|
+Function ListView_Scroll( hwndLV : hwnd; dx : cint; dy : cint):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwndLV), LVM_SCROLL, dx, dy))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 62
|
|
|
+// #define ListView_RedrawItems(hwndLV, iFirst, iLast) \
|
|
|
+// (BOOL)SNDMSG((hwndLV), LVM_REDRAWITEMS, (WPARAM)(int)(iFirst), (LPARAM)(int)(iLast))
|
|
|
+
|
|
|
+Function ListView_RedrawItems( hwndLV : hwnd; iFirst : cint; iLast : cint):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwndLV), LVM_REDRAWITEMS, iFirst, iLast))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 63
|
|
|
+// #define ListView_Arrange(hwndLV, code) \
|
|
|
+// (BOOL)SNDMSG((hwndLV), LVM_ARRANGE, (WPARAM)(UINT)(code), DWord(0))
|
|
|
+
|
|
|
+Function ListView_Arrange( hwndLV : hwnd; code : UINT):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwndLV), LVM_ARRANGE, code, DWord(0)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 64
|
|
|
+// #define ListView_EditLabel(hwndLV, i) \
|
|
|
+// (HWND)SNDMSG((hwndLV), LVM_EDITLABEL, (WPARAM)(int)(i), DWord(0))
|
|
|
+
|
|
|
+Function ListView_EditLabel( hwndLV : hwnd; i : cint):HWND;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=HWND(SendMessage((hwndLV), LVM_EDITLABEL, (i), DWord(0)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 65
|
|
|
+// #define ListView_GetEditControl(hwndLV) \
|
|
|
+// (HWND)SNDMSG((hwndLV), LVM_GETEDITCONTROL, 0, DWord(0))
|
|
|
+
|
|
|
+Function ListView_GetEditControl( hwndLV : hwnd):HWND;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=HWND(SendMessage((hwndLV), LVM_GETEDITCONTROL, 0, DWord(0)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 66
|
|
|
+// #define ListView_GetColumn(hwnd, iCol, pcol) \
|
|
|
+// (BOOL)SNDMSG((hwnd), LVM_GETCOLUMN, (WPARAM)(int)(iCol), (LPARAM)(LV_COLUMN *)(pcol))
|
|
|
+
|
|
|
+Function ListView_GetColumn( hwnd : hwnd; iCol : cint;var pcol : LV_COLUMN ):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), LVM_GETCOLUMN, iCol, Longint(@pcol)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 67
|
|
|
+// #define ListView_SetColumn(hwnd, iCol, pcol) \
|
|
|
+// (BOOL)SNDMSG((hwnd), LVM_SETCOLUMN, (WPARAM)(int)(iCol), (LPARAM)(const LV_COLUMN *)(pcol))
|
|
|
+
|
|
|
+Function ListView_SetColumn( hwnd : hwnd; iCol : cint; Const pcol : LV_COLUMN ):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), LVM_SETCOLUMN, iCol, Longint(@pcol)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 68
|
|
|
+// #define ListView_InsertColumn(hwnd, iCol, pcol) \
|
|
|
+// (int)SNDMSG((hwnd), LVM_INSERTCOLUMN, (WPARAM)(int)(iCol), (LPARAM)(const LV_COLUMN *)(pcol))
|
|
|
+
|
|
|
+Function ListView_InsertColumn( hwnd : hwnd; iCol : cint;const pcol : LV_COLUMN ):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwnd), LVM_INSERTCOLUMN, iCol, Longint(@pcol)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 69
|
|
|
+// #define ListView_DeleteColumn(hwnd, iCol) \
|
|
|
+// (BOOL)SNDMSG((hwnd), LVM_DELETECOLUMN, (WPARAM)(int)(iCol), 0)
|
|
|
+
|
|
|
+Function ListView_DeleteColumn( hwnd : hwnd; iCol : cint):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), LVM_DELETECOLUMN, iCol, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 70
|
|
|
+// #define ListView_GetColumnWidth(hwnd, iCol) \
|
|
|
+// (int)SNDMSG((hwnd), LVM_GETCOLUMNWIDTH, (WPARAM)(int)(iCol), 0)
|
|
|
+
|
|
|
+Function ListView_GetColumnWidth( hwnd : hwnd; iCol : cint):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwnd), LVM_GETCOLUMNWIDTH, iCol, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 71
|
|
|
+// #define ListView_SetColumnWidth(hwnd, iCol, cx) \
|
|
|
+// (BOOL)SNDMSG((hwnd), LVM_SETCOLUMNWIDTH, (WPARAM)(int)(iCol), MAKELPARAM((cx), 0))
|
|
|
+
|
|
|
+Function ListView_SetColumnWidth( hwnd : hwnd; iCol : cint; cx :cint ):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), LVM_SETCOLUMNWIDTH, iCol, MAKELPARAM((cx), 0)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 72
|
|
|
+// #define ListView_GetHeader(hwnd)\
|
|
|
+// (HWND)SNDMSG((hwnd), LVM_GETHEADER, 0, DWord(0))
|
|
|
+
|
|
|
+Function ListView_GetHeader( hwnd : hwnd):HWND;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=Windows.HWND(SendMessage((hwnd), LVM_GETHEADER, 0, DWord(0)));
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 73
|
|
|
+// #define ListView_CreateDragImage(hwnd, i, lpptUpLeft) \
|
|
|
+// (HIMAGELIST)SNDMSG((hwnd), LVM_CREATEDRAGIMAGE, (WPARAM)(int)(i), (LPARAM)(LPPOINT)(lpptUpLeft))
|
|
|
+
|
|
|
+Function ListView_CreateDragImage( hwnd : hwnd; i : cint; lpptUpLeft : LPPOINT):HIMAGELIST;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=HIMAGELIST(SendMessage((hwnd), LVM_CREATEDRAGIMAGE, WPARAM(i), LPARAM(lpptUpLeft)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 74
|
|
|
+// #define ListView_GetViewRect(hwnd, prc) \
|
|
|
+// (BOOL)SNDMSG((hwnd), LVM_GETVIEWRECT, 0, (LPARAM)(RECT *)(prc))
|
|
|
+
|
|
|
+Function ListView_GetViewRect( hwnd : hwnd;var prc : RECT ):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), LVM_GETVIEWRECT, 0, Longint(@prc)))
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 75
|
|
|
+// #define ListView_GetTextColor(hwnd) \
|
|
|
+// (COLORREF)SNDMSG((hwnd), LVM_GETTEXTCOLOR, 0, DWord(0))
|
|
|
+
|
|
|
+Function ListView_GetTextColor( hwnd : hwnd):COLORREF;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=COLORREF(SendMessage((hwnd), LVM_GETTEXTCOLOR, 0, DWord(0)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 76
|
|
|
+// #define ListView_SetTextColor(hwnd, clrText) \
|
|
|
+// (BOOL)SNDMSG((hwnd), LVM_SETTEXTCOLOR, 0, (LPARAM)(COLORREF)(clrText))
|
|
|
+
|
|
|
+Function ListView_SetTextColor( hwnd : hwnd; clrText : COLORREF):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), LVM_SETTEXTCOLOR, 0, clrText))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 77
|
|
|
+// #define ListView_GetTextBkColor(hwnd) \
|
|
|
+// (COLORREF)SNDMSG((hwnd), LVM_GETTEXTBKCOLOR, 0, DWord(0))
|
|
|
+
|
|
|
+Function ListView_GetTextBkColor( hwnd : hwnd):COLORREF;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=COLORREF(SendMessage((hwnd), LVM_GETTEXTBKCOLOR, 0, DWord(0)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 78
|
|
|
+// #define ListView_SetTextBkColor(hwnd, clrTextBk) \
|
|
|
+// (BOOL)SNDMSG((hwnd), LVM_SETTEXTBKCOLOR, 0, (LPARAM)(COLORREF)(clrTextBk))
|
|
|
+
|
|
|
+Function ListView_SetTextBkColor( hwnd : hwnd; clrTextBk : COLORREF):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), LVM_SETTEXTBKCOLOR, 0, clrTextBk))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 79
|
|
|
+// #define ListView_GetTopIndex(hwndLV) \
|
|
|
+// (int)SNDMSG((hwndLV), LVM_GETTOPINDEX, 0, 0)
|
|
|
+
|
|
|
+Function ListView_GetTopIndex( hwndLV : hwnd):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwndLV), LVM_GETTOPINDEX, 0, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 80
|
|
|
+// #define ListView_GetCountPerPage(hwndLV) \
|
|
|
+// (int)SNDMSG((hwndLV), LVM_GETCOUNTPERPAGE, 0, 0)
|
|
|
+
|
|
|
+Function ListView_GetCountPerPage( hwndLV : hwnd):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwndLV), LVM_GETCOUNTPERPAGE, 0, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 81
|
|
|
+//
|
|
|
+// #define ListView_GetOrigin(hwndLV, ppt) \
|
|
|
+// (BOOL)SNDMSG((hwndLV), LVM_GETORIGIN, (WPARAM)0, (LPARAM)(POINT *)(ppt))
|
|
|
+
|
|
|
+Function ListView_GetOrigin( hwndLV : hwnd;var ppt : POINT ):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwndLV), LVM_GETORIGIN, WPARAM(0), Longint(@ppt)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 82
|
|
|
+// #define ListView_Update(hwndLV, i) \
|
|
|
+// (BOOL)SNDMSG((hwndLV), LVM_UPDATE, (WPARAM)(i), DWord(0))
|
|
|
+
|
|
|
+Function ListView_Update( hwndLV : hwnd; i : WPARAM):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwndLV), LVM_UPDATE, (i), DWord(0)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 83
|
|
|
+// #define ListView_SetItemState(hwndLV, i, data, mask) \
|
|
|
+// { LV_ITEM _ms_lvi;\
|
|
|
+// _ms_lvi.stateMask = mask;\
|
|
|
+// _ms_lvi.state = data;\
|
|
|
+// SNDMSG((hwndLV), LVM_SETITEMSTATE, (WPARAM)(i), (LPARAM)(LV_ITEM *)&_ms_lvi);\
|
|
|
+// }
|
|
|
+
|
|
|
+Procedure ListView_SetItemState(hwndLV :hwnd; i :cint ;data,mask:UINT);
|
|
|
+
|
|
|
+Var _ms_lvi : LV_ITEM;
|
|
|
+
|
|
|
+Begin
|
|
|
+ _ms_lvi.stateMask:=mask;
|
|
|
+ _ms_lvi.state:=data;
|
|
|
+ SendMessage(hwndLV, LVM_SETITEMSTATE, i,longint(@_ms_lvi));
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 84
|
|
|
+// #define ListView_SetCheckState(hwndLV, i, fCheck) \
|
|
|
+// ListView_SetItemState(hwndLV, i, INDEXTOSTATEIMAGEMASK((fCheck)?2:1), LVIS_STATEIMAGEMASK)
|
|
|
+
|
|
|
+Procedure ListView_SetCheckState( hwndLV : hwnd; i : cint ; fCheck : BOOL );
|
|
|
+
|
|
|
+var j:longint;
|
|
|
+Begin
|
|
|
+ IF not fCheck Then // (or inc(longint(fCheck)) if you like it dirty)
|
|
|
+ j:=1
|
|
|
+ Else
|
|
|
+ j:=2;
|
|
|
+ListView_SetItemState(hwndLV, i, INDEXTOSTATEIMAGEMASK(j), LVIS_STATEIMAGEMASK);
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 85
|
|
|
+// #define ListView_GetItemState(hwndLV, i, mask) \
|
|
|
+// (UINT)SNDMSG((hwndLV), LVM_GETITEMSTATE, (WPARAM)(i), (LPARAM)(mask))
|
|
|
+
|
|
|
+Function ListView_GetItemState( hwndLV : hwnd; i : WPARAM; mask : LPARAM):UINT;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=UINT(SendMessage((hwndLV), LVM_GETITEMSTATE, (i), mask))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 86
|
|
|
+// #define ListView_GetCheckState(hwndLV, i) \
|
|
|
+// ((((UINT)(SNDMSG((hwndLV), LVM_GETITEMSTATE, (WPARAM)(i), LVIS_STATEIMAGEMASK))) >> 12) -1)
|
|
|
+
|
|
|
+Function ListView_GetCheckState( hwndLV : hwnd; i : WPARAM):UINT;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=(SendMessage((hwndLV), LVM_GETITEMSTATE, (i), LVIS_STATEIMAGEMASK) shl 12) -1;
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 87
|
|
|
+// #define ListView_GetItemText(hwndLV, i, iSubItem_, pszText_, cchTextMax_) \
|
|
|
+// { LV_ITEM _ms_lvi;\
|
|
|
+// _ms_lvi.iSubItem = iSubItem_;\
|
|
|
+// _ms_lvi.cchTextMax = cchTextMax_;\
|
|
|
+// _ms_lvi.pszText = pszText_;\
|
|
|
+// SNDMSG((hwndLV), LVM_GETITEMTEXT, (WPARAM)(i), (LPARAM)(LV_ITEM *)&_ms_lvi);\
|
|
|
+// }
|
|
|
+
|
|
|
+Procedure ListView_GetItemText(hwndLV:hwnd; i : WPARAM ;iSubItem : cint ;pszText : Pointer;cchTextMax :cint);
|
|
|
+
|
|
|
+Var _ms_lvi : LV_ITEM;
|
|
|
+
|
|
|
+Begin
|
|
|
+ _ms_lvi.iSubItem := iSubItem;
|
|
|
+ _ms_lvi.cchTextMax := cchTextMax;
|
|
|
+ _ms_lvi.pszText := pszText; // unicode dependant!
|
|
|
+ SendMessage(hwndLV, LVM_GETITEMTEXT, i, LPARAM(@_ms_LVI));
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 88
|
|
|
+// #define ListView_SetItemText(hwndLV, i, iSubItem_, pszText_) \
|
|
|
+// { LV_ITEM _ms_lvi;\
|
|
|
+// _ms_lvi.iSubItem = iSubItem_;\
|
|
|
+// _ms_lvi.pszText = pszText_;\
|
|
|
+// SNDMSG((hwndLV), LVM_SETITEMTEXT, (WPARAM)(i), (LPARAM)(LV_ITEM *)&_ms_lvi);\
|
|
|
+// }
|
|
|
+
|
|
|
+Procedure ListView_SetItemText(hwndLV:hwnd; i : WPARAM ;iSubItem : cint ;pszText : Pointer);
|
|
|
+
|
|
|
+Var _ms_lvi : LV_ITEM;
|
|
|
+
|
|
|
+Begin
|
|
|
+ _ms_lvi.iSubItem := iSubItem;
|
|
|
+ _ms_lvi.pszText := pszText; // unicode dependant!
|
|
|
+ SendMessage(hwndLV, LVM_SETITEMTEXT, i, LPARAM(@_ms_lvi));
|
|
|
+End;
|
|
|
+
|
|
|
+// Macro 89
|
|
|
+// #define ListView_SetItemCount(hwndLV, cItems) \
|
|
|
+// SNDMSG((hwndLV), LVM_SETITEMCOUNT, (WPARAM)(cItems), 0)
|
|
|
+
|
|
|
+Procedure ListView_SetItemCount( hwndLV : hwnd; cItems : WPARAM);
|
|
|
+
|
|
|
+Begin
|
|
|
+ SendMessage((hwndLV), LVM_SETITEMCOUNT, cItems, 0)
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 90
|
|
|
+// #define ListView_SetItemCountEx(hwndLV, cItems, dwFlags) \
|
|
|
+// SNDMSG((hwndLV), LVM_SETITEMCOUNT, (WPARAM)(cItems), (LPARAM)(dwFlags))
|
|
|
+
|
|
|
+Procedure ListView_SetItemCountEx( hwndLV : hwnd; cItems : WPARAM; dwFlags : LPARAM);
|
|
|
+
|
|
|
+Begin
|
|
|
+ SendMessage((hwndLV), LVM_SETITEMCOUNT, cItems, dwFlags)
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 91
|
|
|
+// #define ListView_SortItems(hwndLV, _pfnCompare, _lPrm) \
|
|
|
+// (BOOL)SNDMSG((hwndLV), LVM_SORTITEMS, (WPARAM)(LPARAM)(_lPrm), \
|
|
|
+// (LPARAM)(PFNLVCOMPARE)(_pfnCompare))
|
|
|
+
|
|
|
+Function ListView_SortItems( hwndLV : hwnd;pfnCompare : PFNLVCOMPARE; lPrm : LPARAM):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwndLV), LVM_SORTITEMS, lPrm, LPARAM(@pfncompare)));
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 92
|
|
|
+// #define ListView_SetItemPosition32(hwndLV, i, x0, y0) \
|
|
|
+// { POINT ptNewPos; \
|
|
|
+// ptNewPos.x = x0; ptNewPos.y = y0; \
|
|
|
+// SNDMSG((hwndLV), LVM_SETITEMPOSITION32, (WPARAM)(int)(i), (LPARAM)&ptNewPos); \
|
|
|
+// }
|
|
|
+
|
|
|
+Procedure ListView_SetItemPosition32(hwndLV:hwnd; i:cint;x0,y0:long);
|
|
|
+
|
|
|
+Var ptNewPos:POINT;
|
|
|
+
|
|
|
+Begin
|
|
|
+ ptNewPos.X:=x0; ptNewPos.Y:=y0;
|
|
|
+ SendMessage(hwndlv, LVM_SETITEMPOSITION32, I,Longint(@ptNewPos));
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 93
|
|
|
+// #define ListView_GetSelectedCount(hwndLV) \
|
|
|
+// (UINT)SNDMSG((hwndLV), LVM_GETSELECTEDCOUNT, 0, DWord(0))
|
|
|
+
|
|
|
+Function ListView_GetSelectedCount( hwndLV : hwnd):UINT;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=SendMessage(hwndLV, LVM_GETSELECTEDCOUNT, 0, DWord(0));
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 94
|
|
|
+// #define ListView_GetItemSpacing(hwndLV, fSmall) \
|
|
|
+// (DWORD)SNDMSG((hwndLV), LVM_GETITEMSPACING, fSmall, DWord(0))
|
|
|
+
|
|
|
+Function ListView_GetItemSpacing( hwndLV : hwnd; fSmall : cint ):DWORD;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=DWORD(SendMessage((hwndLV), LVM_GETITEMSPACING, fSmall, DWord(0)));
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 95
|
|
|
+// #define ListView_GetISearchString(hwndLV, lpsz) \
|
|
|
+// (BOOL)SNDMSG((hwndLV), LVM_GETISEARCHSTRING, 0, (LPARAM)(LPTSTR)(lpsz))
|
|
|
+
|
|
|
+Function ListView_GetISearchString( hwndLV : hwnd; lpsz : LPTSTR):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwndLV), LVM_GETISEARCHSTRING, 0, LPARAM(lpsz)))
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 96
|
|
|
+// #define ListView_SetIconSpacing(hwndLV, cx, cy) \
|
|
|
+// (DWORD)SNDMSG((hwndLV), LVM_SETICONSPACING, 0, MAKELONG(cx,cy))
|
|
|
+
|
|
|
+Function ListView_SetIconSpacing( hwndLV : hwnd; cx,cy : cint ):DWORD;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=DWORD(SendMessage((hwndLV), LVM_SETICONSPACING, 0, MAKELONG(cx,cy)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 97
|
|
|
+// #define ListView_SetExtendedListViewStyle(hwndLV, dw)\
|
|
|
+// (DWORD)SNDMSG((hwndLV), LVM_SETEXTENDEDLISTVIEWSTYLE, 0, dw)
|
|
|
+
|
|
|
+Function ListView_SetExtendedListViewStyle( hwndLV : hwnd; dw :cint ):DWORD;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=DWORD(SendMessage((hwndLV), LVM_SETEXTENDEDLISTVIEWSTYLE, 0, dw))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 98
|
|
|
+// #define ListView_SetExtendedListViewStyleEx(hwndLV, dwMask, dw)\
|
|
|
+// (DWORD)SNDMSG((hwndLV), LVM_SETEXTENDEDLISTVIEWSTYLE, dwMask, dw)
|
|
|
+
|
|
|
+Function ListView_SetExtendedListViewStyleEx( hwndLV : hwnd; dwMask, dw : cint ):DWORD;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=DWORD(SendMessage((hwndLV), LVM_SETEXTENDEDLISTVIEWSTYLE, dwMask, dw))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 99
|
|
|
+// #define ListView_GetExtendedListViewStyle(hwndLV)\
|
|
|
+// (DWORD)SNDMSG((hwndLV), LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0)
|
|
|
+
|
|
|
+Function ListView_GetExtendedListViewStyle( hwndLV : hwnd):DWORD;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=DWORD(SendMessage((hwndLV), LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 100
|
|
|
+// #define ListView_GetSubItemRect(hwnd, iItem, iSubItem, code, prc) \
|
|
|
+// (BOOL)SNDMSG((hwnd), LVM_GETSUBITEMRECT, (WPARAM)(int)(iItem), \
|
|
|
+// ((prc) ? ((((LPRECT)(prc))->top = iSubItem), (((LPRECT)(prc))->left = code), (LPARAM)(prc)) : (LPARAM)(LPRECT)NULL))
|
|
|
+
|
|
|
+Function ListView_GetSubItemRect( hwnd : hwnd; iItem : cint;iSubItem, code :cint ;prc:LPRECT):BOOL;
|
|
|
+
|
|
|
+VAR LastParam : LPRECT;
|
|
|
+Begin
|
|
|
+ if prc<>nil then
|
|
|
+ begin
|
|
|
+ prc^.top:=iSubItem;
|
|
|
+ prc^.left:=code;
|
|
|
+ lastparam:=prc;
|
|
|
+ end
|
|
|
+ else
|
|
|
+ lastparam:=nil;
|
|
|
+ Result:=bool(SendMessage((hwnd), LVM_GETSUBITEMRECT, iItem, LPARAM(lastparam)));
|
|
|
+End;
|
|
|
+
|
|
|
+// Macro 101
|
|
|
+// #define ListView_SubItemHitTest(hwnd, plvhti) \
|
|
|
+// (int)SNDMSG((hwnd), LVM_SUBITEMHITTEST, 0, (LPARAM)(LPLVHITTESTINFO)(plvhti))
|
|
|
+
|
|
|
+Function ListView_SubItemHitTest( hwnd : hwnd; plvhti : LPLVHITTESTINFO):cint;
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwnd), LVM_SUBITEMHITTEST, 0, LParam(plvhti)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 102
|
|
|
+// #define ListView_SetColumnOrderArray(hwnd, iCount, pi) \
|
|
|
+// (BOOL)SNDMSG((hwnd), LVM_SETCOLUMNORDERARRAY, (WPARAM)(iCount), (LPARAM)(LPINT)(pi))
|
|
|
+
|
|
|
+Function ListView_SetColumnOrderArray( hwnd : hwnd; iCount : WPARAM; pi : LPINT):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), LVM_SETCOLUMNORDERARRAY, iCount, LPARAM(pi)));
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 103
|
|
|
+// #define ListView_GetColumnOrderArray(hwnd, iCount, pi) \
|
|
|
+// (BOOL)SNDMSG((hwnd), LVM_GETCOLUMNORDERARRAY, (WPARAM)(iCount), (LPARAM)(LPINT)(pi))
|
|
|
+
|
|
|
+Function ListView_GetColumnOrderArray( hwnd : hwnd; iCount : WPARAM; pi : LPINT):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), LVM_GETCOLUMNORDERARRAY, iCount, LPARAM(pi)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 104
|
|
|
+// #define ListView_SetHotItem(hwnd, i) \
|
|
|
+// (int)SNDMSG((hwnd), LVM_SETHOTITEM, (WPARAM)(i), 0)
|
|
|
+
|
|
|
+Function ListView_SetHotItem( hwnd : hwnd; i : WPARAM):cint;
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwnd), LVM_SETHOTITEM, (i), 0))
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 105
|
|
|
+// #define ListView_GetHotItem(hwnd) \
|
|
|
+// (int)SNDMSG((hwnd), LVM_GETHOTITEM, 0, 0)
|
|
|
+
|
|
|
+Function ListView_GetHotItem( hwnd : hwnd):cint;
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwnd), LVM_GETHOTITEM, 0, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 106
|
|
|
+// #define ListView_SetHotCursor(hwnd, hcur) \
|
|
|
+// (HCURSOR)SNDMSG((hwnd), LVM_SETHOTCURSOR, 0, (LPARAM)(hcur))
|
|
|
+
|
|
|
+Function ListView_SetHotCursor( hwnd : hwnd; hcur : LPARAM):HCURSOR;
|
|
|
+Begin
|
|
|
+ Result:=HCURSOR(SendMessage((hwnd), LVM_SETHOTCURSOR, 0, hcur))
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 107
|
|
|
+// #define ListView_GetHotCursor(hwnd) \
|
|
|
+// (HCURSOR)SNDMSG((hwnd), LVM_GETHOTCURSOR, 0, 0)
|
|
|
+
|
|
|
+Function ListView_GetHotCursor( hwnd : hwnd):HCURSOR;
|
|
|
+Begin
|
|
|
+ Result:=HCURSOR(SendMessage((hwnd), LVM_GETHOTCURSOR, 0, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 108
|
|
|
+// #define ListView_ApproximateViewRect(hwnd, iWidth, iHeight, iCount) \
|
|
|
+// (DWORD)SNDMSG((hwnd), LVM_APPROXIMATEVIEWRECT, iCount, MAKELPARAM(iWidth, iHeight))
|
|
|
+
|
|
|
+Function ListView_ApproximateViewRect( hwnd : hwnd; iWidth, iHeight, iCount : cint ):DWORD;
|
|
|
+Begin
|
|
|
+ Result:=DWORD(SendMessage((hwnd), LVM_APPROXIMATEVIEWRECT, iCount, MAKELPARAM(iWidth, iHeight)));
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 109
|
|
|
+// #define ListView_SetWorkAreas(hwnd, nWorkAreas, prc) \
|
|
|
+// (BOOL)SNDMSG((hwnd), LVM_SETWORKAREAS, (WPARAM)(int)(nWorkAreas), (LPARAM)(RECT *)(prc))
|
|
|
+
|
|
|
+Function ListView_SetWorkAreas( hwnd : hwnd; nWorkAreas : cint;var prc : RECT ):BOOL;
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), LVM_SETWORKAREAS, nWorkAreas, Longint(@prc)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 110
|
|
|
+// #define ListView_GetWorkAreas(hwnd, nWorkAreas, prc) \
|
|
|
+// (BOOL)SNDMSG((hwnd), LVM_GETWORKAREAS, (WPARAM)(int)(nWorkAreas), (LPARAM)(RECT *)(prc))
|
|
|
+
|
|
|
+Function ListView_GetWorkAreas( hwnd : hwnd; nWorkAreas : cint;var prc : RECT ):BOOL;
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), LVM_GETWORKAREAS, nWorkAreas, Longint(@prc)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 111
|
|
|
+// #define ListView_GetNumberOfWorkAreas(hwnd, pnWorkAreas) \
|
|
|
+// (BOOL)SNDMSG((hwnd), LVM_GETNUMBEROFWORKAREAS, 0, (LPARAM)(UINT *)(pnWorkAreas))
|
|
|
+
|
|
|
+Function ListView_GetNumberOfWorkAreas( hwnd : hwnd;var pnWorkAreas : UINT ):BOOL;
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), LVM_GETNUMBEROFWORKAREAS, 0, Longint(@pnWorkAreas)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 112
|
|
|
+// #define ListView_GetSelectionMark(hwnd) \
|
|
|
+// (int)SNDMSG((hwnd), LVM_GETSELECTIONMARK, 0, 0)
|
|
|
+
|
|
|
+Function ListView_GetSelectionMark( hwnd : hwnd):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwnd), LVM_GETSELECTIONMARK, 0, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 113
|
|
|
+// #define ListView_SetSelectionMark(hwnd, i) \
|
|
|
+// (int)SNDMSG((hwnd), LVM_SETSELECTIONMARK, 0, (LPARAM)(i))
|
|
|
+
|
|
|
+Function ListView_SetSelectionMark( hwnd : hwnd; i : LPARAM):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwnd), LVM_SETSELECTIONMARK, 0, (i)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 114
|
|
|
+// #define ListView_SetHoverTime(hwndLV, dwHoverTimeMs)\
|
|
|
+// (DWORD)SNDMSG((hwndLV), LVM_SETHOVERTIME, 0, (LPARAM)(dwHoverTimeMs))
|
|
|
+
|
|
|
+Function ListView_SetHoverTime( hwndLV : hwnd; dwHoverTimeMs : LPARAM):DWORD;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=DWORD(SendMessage((hwndLV), LVM_SETHOVERTIME, 0, dwHoverTimeMs))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 115
|
|
|
+// #define ListView_GetHoverTime(hwndLV)\
|
|
|
+// (DWORD)SNDMSG((hwndLV), LVM_GETHOVERTIME, 0, 0)
|
|
|
+
|
|
|
+Function ListView_GetHoverTime( hwndLV : hwnd):DWORD;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=DWORD(SendMessage((hwndLV), LVM_GETHOVERTIME, 0, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 116
|
|
|
+// #define ListView_SetToolTips(hwndLV, hwndNewHwnd)\
|
|
|
+// (HWND)SNDMSG((hwndLV), LVM_SETTOOLTIPS, (WPARAM)(hwndNewHwnd), 0)
|
|
|
+
|
|
|
+Function ListView_SetToolTips( hwndLV : hwnd; hwndNewHwnd : WPARAM):HWND;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=HWND(SendMessage((hwndLV), LVM_SETTOOLTIPS, hwndNewHwnd, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 117
|
|
|
+// #define ListView_GetToolTips(hwndLV)\
|
|
|
+// (HWND)SNDMSG((hwndLV), LVM_GETTOOLTIPS, 0, 0)
|
|
|
+
|
|
|
+Function ListView_GetToolTips( hwndLV : hwnd):HWND;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=HWND(SendMessage((hwndLV), LVM_GETTOOLTIPS, 0, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 118
|
|
|
+// #define ListView_SortItemsEx(hwndLV, _pfnCompare, _lPrm) \
|
|
|
+// (BOOL)SNDMSG((hwndLV), LVM_SORTITEMSEX, (WPARAM)(LPARAM)(_lPrm), (LPARAM)(PFNLVCOMPARE)(_pfnCompare))
|
|
|
+
|
|
|
+Function ListView_SortItemsEx( hwndLV : hwnd; _pfnCompare : PFNLVCOMPARE; _lPrm : LPARAM):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwndLV), LVM_SORTITEMSEX, _lPrm, LPAram(@_pfnCompare)))
|
|
|
+end;
|
|
|
+
|
|
|
+{$ifdef win32xp}
|
|
|
+// Macro 119
|
|
|
+// #define ListView_SetSelectedColumn(hwnd, iCol) \
|
|
|
+// SNDMSG((hwnd), LVM_SETSELECTEDCOLUMN, (WPARAM)iCol, 0)
|
|
|
+
|
|
|
+Procedure ListView_SetSelectedColumn( hwnd : hwnd; iCol : WPARAM);
|
|
|
+
|
|
|
+Begin
|
|
|
+ SendMessage((hwnd), LVM_SETSELECTEDCOLUMN, iCol, 0)
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 120
|
|
|
+// #define ListView_SetTileWidth(hwnd, cpWidth) \
|
|
|
+// SNDMSG((hwnd), LVM_SETTILEWIDTH, (WPARAM)cpWidth, 0)
|
|
|
+
|
|
|
+Procedure ListView_SetTileWidth( hwnd : hwnd; cpWidth : WPARAM);
|
|
|
+
|
|
|
+Begin
|
|
|
+ SendMessage((hwnd), LVM_SETTILEWIDTH, cpWidth, 0)
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 121
|
|
|
+// #define ListView_SetView(hwnd, iView) \
|
|
|
+// (DWORD)SNDMSG((hwnd), LVM_SETVIEW, (WPARAM)(DWORD)iView, 0)
|
|
|
+
|
|
|
+Function ListView_SetView( hwnd : hwnd; iView : DWORD):DWORD;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=DWORD(SendMessage((hwnd), LVM_SETVIEW, iView, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 122
|
|
|
+// #define ListView_GetView(hwnd) \
|
|
|
+// (DWORD)SNDMSG((hwnd), LVM_GETVIEW, 0, 0)
|
|
|
+
|
|
|
+Function ListView_GetView( hwnd : hwnd):DWORD;
|
|
|
+Begin
|
|
|
+ Result:=DWORD(SendMessage((hwnd), LVM_GETVIEW, 0, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 123
|
|
|
+// #define ListView_InsertGroup(hwnd, index, pgrp) \
|
|
|
+// SNDMSG((hwnd), LVM_INSERTGROUP, (WPARAM)index, (LPARAM)pgrp)
|
|
|
+
|
|
|
+Procedure ListView_InsertGroup( hwnd : hwnd; index : WPARAM; pgrp : LPARAM);
|
|
|
+Begin
|
|
|
+ SendMessage((hwnd), LVM_INSERTGROUP, index, pgrp)
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 124
|
|
|
+// #define ListView_SetGroupInfo(hwnd, iGroupId, pgrp) \
|
|
|
+// SNDMSG((hwnd), LVM_SETGROUPINFO, (WPARAM)iGroupId, (LPARAM)pgrp)
|
|
|
+
|
|
|
+Procedure ListView_SetGroupInfo( hwnd : hwnd; iGroupId : WPARAM; pgrp : LPARAM);
|
|
|
+Begin
|
|
|
+ SendMessage((hwnd), LVM_SETGROUPINFO, iGroupId, pgrp)
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 125
|
|
|
+// #define ListView_GetGroupInfo(hwnd, iGroupId, pgrp) \
|
|
|
+// SNDMSG((hwnd), LVM_GETGROUPINFO, (WPARAM)iGroupId, (LPARAM)pgrp)
|
|
|
+
|
|
|
+Procedure ListView_GetGroupInfo( hwnd : hwnd; iGroupId : WPARAM; pgrp : LPARAM);
|
|
|
+Begin
|
|
|
+ SendMessage((hwnd), LVM_GETGROUPINFO, iGroupId, pgrp)
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 126
|
|
|
+// #define ListView_RemoveGroup(hwnd, iGroupId) \
|
|
|
+// SNDMSG((hwnd), LVM_REMOVEGROUP, (WPARAM)iGroupId, 0)
|
|
|
+
|
|
|
+Procedure ListView_RemoveGroup( hwnd : hwnd; iGroupId : WPARAM);
|
|
|
+Begin
|
|
|
+ SendMessage((hwnd), LVM_REMOVEGROUP, iGroupId, 0)
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 127
|
|
|
+// #define ListView_MoveGroup(hwnd, iGroupId, toIndex) \
|
|
|
+// SNDMSG((hwnd), LVM_MOVEGROUP, (WPARAM)iGroupId, (LPARAM)toIndex)
|
|
|
+
|
|
|
+Procedure ListView_MoveGroup( hwnd : hwnd; iGroupId : WPARAM; toIndex : LPARAM);
|
|
|
+Begin
|
|
|
+ SendMessage((hwnd), LVM_MOVEGROUP, iGroupId, toIndex)
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 128
|
|
|
+// #define ListView_MoveItemToGroup(hwnd, idItemFrom, idGroupTo) \
|
|
|
+// SNDMSG((hwnd), LVM_MOVEITEMTOGROUP, (WPARAM)idItemFrom, (LPARAM)idGroupTo)
|
|
|
+
|
|
|
+Procedure ListView_MoveItemToGroup( hwnd : hwnd; idItemFrom : WPARAM; idGroupTo : LPARAM);
|
|
|
+
|
|
|
+Begin
|
|
|
+ SendMessage((hwnd), LVM_MOVEITEMTOGROUP, idItemFrom, idGroupTo)
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 129
|
|
|
+// #define ListView_SetGroupMetrics(hwnd, pGroupMetrics) \
|
|
|
+// SNDMSG((hwnd), LVM_SETGROUPMETRICS, 0, (LPARAM)pGroupMetrics)
|
|
|
+
|
|
|
+Procedure ListView_SetGroupMetrics( hwnd : hwnd; pGroupMetrics : LPARAM);
|
|
|
+
|
|
|
+Begin
|
|
|
+ SendMessage((hwnd), LVM_SETGROUPMETRICS, 0, pGroupMetrics)
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 130
|
|
|
+// #define ListView_GetGroupMetrics(hwnd, pGroupMetrics) \
|
|
|
+// SNDMSG((hwnd), LVM_GETGROUPMETRICS, 0, (LPARAM)pGroupMetrics)
|
|
|
+
|
|
|
+Procedure ListView_GetGroupMetrics( hwnd : hwnd; pGroupMetrics : LPARAM);
|
|
|
+
|
|
|
+Begin
|
|
|
+SendMessage((hwnd), LVM_GETGROUPMETRICS, 0, pGroupMetrics)
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 131
|
|
|
+// #define ListView_EnableGroupView(hwnd, fEnable) \
|
|
|
+// SNDMSG((hwnd), LVM_ENABLEGROUPVIEW, (WPARAM)fEnable, 0)
|
|
|
+
|
|
|
+Procedure ListView_EnableGroupView( hwnd : hwnd; fEnable : WPARAM);
|
|
|
+
|
|
|
+Begin
|
|
|
+ SendMessage((hwnd), LVM_ENABLEGROUPVIEW, fEnable, 0)
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 132
|
|
|
+// #define ListView_SortGroups(hwnd, _pfnGroupCompate, _plv) \
|
|
|
+// SNDMSG((hwnd), LVM_SORTGROUPS, (WPARAM)_pfnGroupCompate, (LPARAM)_plv)
|
|
|
+
|
|
|
+Procedure ListView_SortGroups( hwnd : hwnd; _pfnGroupCompate : WPARAM; _plv : LPARAM);
|
|
|
+
|
|
|
+Begin
|
|
|
+ SendMessage((hwnd), LVM_SORTGROUPS, _pfnGroupCompate, _plv)
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 133
|
|
|
+// #define ListView_InsertGroupSorted(hwnd, structInsert) \
|
|
|
+// SNDMSG((hwnd), LVM_INSERTGROUPSORTED, (WPARAM)structInsert, 0)
|
|
|
+
|
|
|
+Procedure ListView_InsertGroupSorted( hwnd : hwnd; structInsert : WPARAM);
|
|
|
+
|
|
|
+Begin
|
|
|
+ SendMessage((hwnd), LVM_INSERTGROUPSORTED, structInsert, 0)
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 134
|
|
|
+// #define ListView_RemoveAllGroups(hwnd) \
|
|
|
+// SNDMSG((hwnd), LVM_REMOVEALLGROUPS, 0, 0)
|
|
|
+
|
|
|
+Procedure ListView_RemoveAllGroups( hwnd : hwnd);
|
|
|
+
|
|
|
+Begin
|
|
|
+SendMessage((hwnd), LVM_REMOVEALLGROUPS, 0, 0)
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 135
|
|
|
+// #define ListView_HasGroup(hwnd, dwGroupId) \
|
|
|
+// SNDMSG((hwnd), LVM_HASGROUP, dwGroupId, 0)
|
|
|
+
|
|
|
+Procedure ListView_HasGroup( hwnd : hwnd; dwGroupId :DWORD );
|
|
|
+
|
|
|
+Begin
|
|
|
+ SendMessage((hwnd), LVM_HASGROUP, dwGroupId, 0)
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 136
|
|
|
+// #define ListView_SetTileViewInfo(hwnd, ptvi) \
|
|
|
+// SNDMSG((hwnd), LVM_SETTILEVIEWINFO, 0, (LPARAM)ptvi)
|
|
|
+
|
|
|
+Procedure ListView_SetTileViewInfo( hwnd : hwnd; ptvi : LPARAM);
|
|
|
+
|
|
|
+Begin
|
|
|
+ SendMessage((hwnd), LVM_SETTILEVIEWINFO, 0, ptvi)
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 137
|
|
|
+// #define ListView_GetTileViewInfo(hwnd, ptvi) \
|
|
|
+// SNDMSG((hwnd), LVM_GETTILEVIEWINFO, 0, (LPARAM)ptvi)
|
|
|
+
|
|
|
+Procedure ListView_GetTileViewInfo( hwnd : hwnd; ptvi : LPARAM);
|
|
|
+
|
|
|
+Begin
|
|
|
+ SendMessage((hwnd), LVM_GETTILEVIEWINFO, 0, ptvi)
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 138
|
|
|
+// #define ListView_SetTileInfo(hwnd, pti) \
|
|
|
+// SNDMSG((hwnd), LVM_SETTILEINFO, 0, (LPARAM)pti)
|
|
|
+
|
|
|
+Procedure ListView_SetTileInfo( hwnd : hwnd; pti : LPARAM);
|
|
|
+
|
|
|
+Begin
|
|
|
+ SendMessage((hwnd), LVM_SETTILEINFO, 0, pti)
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 139
|
|
|
+// #define ListView_GetTileInfo(hwnd, pti) \
|
|
|
+// SNDMSG((hwnd), LVM_GETTILEINFO, 0, (LPARAM)pti)
|
|
|
+
|
|
|
+Procedure ListView_GetTileInfo( hwnd : hwnd; pti : LPARAM);
|
|
|
+
|
|
|
+Begin
|
|
|
+ SendMessage((hwnd), LVM_GETTILEINFO, 0, pti)
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 140
|
|
|
+// #define ListView_SetInsertMark(hwnd, lvim) \
|
|
|
+// (BOOL)SNDMSG((hwnd), LVM_SETINSERTMARK, (WPARAM) 0, (LPARAM) (lvim))
|
|
|
+
|
|
|
+Function ListView_SetInsertMark( hwnd : hwnd; lvim : lparam ):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), LVM_SETINSERTMARK, 0, lvim));
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 141
|
|
|
+// #define ListView_GetInsertMark(hwnd, lvim) \
|
|
|
+// (BOOL)SNDMSG((hwnd), LVM_GETINSERTMARK, (WPARAM) 0, (LPARAM) (lvim))
|
|
|
+
|
|
|
+Function ListView_GetInsertMark( hwnd : hwnd; lvim : lparam ):BOOL;
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), LVM_GETINSERTMARK, WPARAM (0), LPARAM (lvim)));
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 142
|
|
|
+// #define ListView_InsertMarkHitTest(hwnd, point, lvim) \
|
|
|
+// (int)SNDMSG((hwnd), LVM_INSERTMARKHITTEST, (WPARAM)(LPPOINT)(point), (LPARAM)(LPLVINSERTMARK)(lvim))
|
|
|
+
|
|
|
+Function ListView_InsertMarkHitTest( hwnd : hwnd; point : LPPOINT; lvim : LPLVINSERTMARK):cint;
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwnd), LVM_INSERTMARKHITTEST, wparam(point), lparam(lvim)));
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 143
|
|
|
+// #define ListView_GetInsertMarkRect(hwnd, rc) \
|
|
|
+// (int)SNDMSG((hwnd), LVM_GETINSERTMARKRECT, (WPARAM)0, (LPARAM)(LPRECT)(rc))
|
|
|
+
|
|
|
+Function ListView_GetInsertMarkRect( hwnd : hwnd; rc : LPRECT):cint;
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwnd), LVM_GETINSERTMARKRECT, WPARAM(0), LPARAM(rc)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 144
|
|
|
+// #define ListView_SetInsertMarkColor(hwnd, color) \
|
|
|
+// (COLORREF)SNDMSG((hwnd), LVM_SETINSERTMARKCOLOR, (WPARAM)0, (LPARAM)(COLORREF)(color))
|
|
|
+
|
|
|
+Function ListView_SetInsertMarkColor( hwnd : hwnd; color : COLORREF):COLORREF;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=COLORREF(SendMessage((hwnd), LVM_SETINSERTMARKCOLOR, WPARAM(0), color));
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 145
|
|
|
+// #define ListView_GetInsertMarkColor(hwnd) \
|
|
|
+// (COLORREF)SNDMSG((hwnd), LVM_GETINSERTMARKCOLOR, (WPARAM)0, (LPARAM)0)
|
|
|
+
|
|
|
+Function ListView_GetInsertMarkColor( hwnd : hwnd):COLORREF;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=COLORREF(SendMessage((hwnd), LVM_GETINSERTMARKCOLOR, WPARAM(0), LPARAM(0)));
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 146
|
|
|
+// #define ListView_SetInfoTip(hwndLV, plvInfoTip)\
|
|
|
+// (BOOL)SNDMSG((hwndLV), LVM_SETINFOTIP, (WPARAM)0, (LPARAM)plvInfoTip)
|
|
|
+
|
|
|
+Function ListView_SetInfoTip( hwndLV : hwnd; plvInfoTip : LPARAM):BOOL;
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwndLV), LVM_SETINFOTIP, WPARAM(0), plvInfoTip));
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 147
|
|
|
+// #define ListView_GetSelectedColumn(hwnd) \
|
|
|
+// (UINT)SNDMSG((hwnd), LVM_GETSELECTEDCOLUMN, 0, 0)
|
|
|
+
|
|
|
+Function ListView_GetSelectedColumn( hwnd : hwnd):UINT;
|
|
|
+Begin
|
|
|
+ Result:=UINT(SendMessage((hwnd), LVM_GETSELECTEDCOLUMN, 0, 0));
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 148
|
|
|
+// #define ListView_IsGroupViewEnabled(hwnd) \
|
|
|
+// (BOOL)SNDMSG((hwnd), LVM_ISGROUPVIEWENABLED, 0, 0)
|
|
|
+
|
|
|
+Function ListView_IsGroupViewEnabled( hwnd : hwnd):BOOL;
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), LVM_ISGROUPVIEWENABLED, 0, 0));
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 149
|
|
|
+// #define ListView_GetOutlineColor(hwnd) \
|
|
|
+// (COLORREF)SNDMSG((hwnd), LVM_GETOUTLINECOLOR, 0, 0)
|
|
|
+
|
|
|
+Function ListView_GetOutlineColor( hwnd : hwnd):COLORREF;
|
|
|
+Begin
|
|
|
+ Result:=COLORREF(SendMessage((hwnd), LVM_GETOUTLINECOLOR, 0, 0));
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 150
|
|
|
+// #define ListView_SetOutlineColor(hwnd, color) \
|
|
|
+// (COLORREF)SNDMSG((hwnd), LVM_SETOUTLINECOLOR, (WPARAM)0, (LPARAM)(COLORREF)(color))
|
|
|
+
|
|
|
+Function ListView_SetOutlineColor( hwnd : hwnd; color : COLORREF):COLORREF;
|
|
|
+Begin
|
|
|
+ Result:=COLORREF(SendMessage((hwnd), LVM_SETOUTLINECOLOR, WPARAM(0), color));
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 151
|
|
|
+// #define ListView_CancelEditLabel(hwnd) \
|
|
|
+// (VOID)SNDMSG((hwnd), LVM_CANCELEDITLABEL, (WPARAM)0, (LPARAM)0)
|
|
|
+
|
|
|
+procedure ListView_CancelEditLabel( hwnd : hwnd);
|
|
|
+Begin
|
|
|
+ SendMessage((hwnd), LVM_CANCELEDITLABEL, WPARAM(0), LPARAM(0));
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 152
|
|
|
+// #define ListView_MapIndexToID(hwnd, index) \
|
|
|
+// (UINT)SNDMSG((hwnd), LVM_MAPINDEXTOID, (WPARAM)index, (LPARAM)0)
|
|
|
+
|
|
|
+Function ListView_MapIndexToID( hwnd : hwnd; index : WPARAM):UINT;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=UINT(SendMessage((hwnd), LVM_MAPINDEXTOID, index, LPARAM(0)));
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 153
|
|
|
+// #define ListView_MapIDToIndex(hwnd, id) \
|
|
|
+// (UINT)SNDMSG((hwnd), LVM_MAPIDTOINDEX, (WPARAM)id, (LPARAM)0)
|
|
|
+
|
|
|
+Function ListView_MapIDToIndex( hwnd : hwnd; id : WPARAM):UINT;
|
|
|
+Begin
|
|
|
+ Result:=UINT(SendMessage((hwnd), LVM_MAPIDTOINDEX, id, LPARAM(0)));
|
|
|
+end;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+// Macro 154
|
|
|
+// #define ListView_SetBkImage(hwnd, plvbki) \
|
|
|
+// (BOOL)SNDMSG((hwnd), LVM_SETBKIMAGE, 0, (LPARAM)(plvbki))
|
|
|
+
|
|
|
+Function ListView_SetBkImage( hwnd : hwnd; plvbki : LPARAM):BOOL;
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), LVM_SETBKIMAGE, 0, plvbki));
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 155
|
|
|
+// #define ListView_GetBkImage(hwnd, plvbki) \
|
|
|
+// (BOOL)SNDMSG((hwnd), LVM_GETBKIMAGE, 0, (LPARAM)(plvbki))
|
|
|
+
|
|
|
+Function ListView_GetBkImage( hwnd : hwnd; plvbki : LPARAM):BOOL;
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), LVM_GETBKIMAGE, 0, plvbki));
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 156
|
|
|
+// #define TreeView_InsertItem(hwnd, lpis) \
|
|
|
+// (HTREEITEM)SNDMSG((hwnd), TVM_INSERTITEM, 0, (LPARAM)(LPTV_INSERTSTRUCT)(lpis))
|
|
|
+
|
|
|
+Function TreeView_InsertItem( hwnd : hwnd; lpis : LPTV_INSERTSTRUCT):HTREEITEM;
|
|
|
+Begin
|
|
|
+ Result:=HTREEITEM(SendMessage((hwnd), TVM_INSERTITEM, 0, LPARAM(lpis)));
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 157
|
|
|
+// #define TreeView_DeleteItem(hwnd, hitem) \
|
|
|
+// (BOOL)SNDMSG((hwnd), TVM_DELETEITEM, 0, (LPARAM)(HTREEITEM)(hitem))
|
|
|
+
|
|
|
+Function TreeView_DeleteItem( hwnd : hwnd; hitem : HTREEITEM):BOOL;
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), TVM_DELETEITEM, 0, LPARAM(hitem)));
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 158
|
|
|
+// #define TreeView_DeleteAllItems(hwnd) \
|
|
|
+// (BOOL)SNDMSG((hwnd), TVM_DELETEITEM, 0, (LPARAM)TVI_ROOT)
|
|
|
+
|
|
|
+Function TreeView_DeleteAllItems( hwnd : hwnd):BOOL;
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), TVM_DELETEITEM, 0, LPARAM(HTREEITEM(TVI_ROOT))));
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 159
|
|
|
+// #define TreeView_Expand(hwnd, hitem, code) \
|
|
|
+// (BOOL)SNDMSG((hwnd), TVM_EXPAND, (WPARAM)(code), (LPARAM)(HTREEITEM)(hitem))
|
|
|
+
|
|
|
+Function TreeView_Expand( hwnd : hwnd; hitem : HTREEITEM; code : WPARAM):BOOL;
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), TVM_EXPAND, code, lparam(hitem)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 160
|
|
|
+// #define TreeView_GetItemRect(hwnd, hitem, prc, code) \
|
|
|
+// (*(HTREEITEM *)prc = (hitem), (BOOL)SNDMSG((hwnd), TVM_GETITEMRECT, (WPARAM)(code), (LPARAM)(RECT *)(prc)))
|
|
|
+
|
|
|
+Function TreeView_GetItemRect( hwnd : hwnd; hitem: TREEITEM; code : WPARAM; prc : pRECT):BOOL;
|
|
|
+Begin
|
|
|
+ HTREEITEM(prc)^:=HITEM;
|
|
|
+ Result:=Bool(SendMessage((hwnd), TVM_GETITEMRECT, code, longint(prc)));
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 161
|
|
|
+// #define TreeView_GetCount(hwnd) \
|
|
|
+// (UINT)SNDMSG((hwnd), TVM_GETCOUNT, 0, 0)
|
|
|
+
|
|
|
+Function TreeView_GetCount( hwnd : hwnd):UINT;
|
|
|
+Begin
|
|
|
+ Result:=UINT(SendMessage((hwnd), TVM_GETCOUNT, 0, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 162
|
|
|
+// #define TreeView_GetIndent(hwnd) \
|
|
|
+// (UINT)SNDMSG((hwnd), TVM_GETINDENT, 0, 0)
|
|
|
+
|
|
|
+Function TreeView_GetIndent( hwnd : hwnd):UINT;
|
|
|
+Begin
|
|
|
+ Result:=UINT(SendMessage((hwnd), TVM_GETINDENT, 0, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 163
|
|
|
+// #define TreeView_SetIndent(hwnd, indent) \
|
|
|
+// (BOOL)SNDMSG((hwnd), TVM_SETINDENT, (WPARAM)(indent), 0)
|
|
|
+
|
|
|
+Function TreeView_SetIndent( hwnd : hwnd; indent : WPARAM):BOOL;
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), TVM_SETINDENT, indent, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 164
|
|
|
+// #define TreeView_GetImageList(hwnd, iImage) \
|
|
|
+// (HIMAGELIST)SNDMSG((hwnd), TVM_GETIMAGELIST, iImage, 0)
|
|
|
+
|
|
|
+Function TreeView_GetImageList( hwnd : hwnd; iImage : cint ):HIMAGELIST;
|
|
|
+Begin
|
|
|
+ Result:=HIMAGELIST(SendMessage((hwnd), TVM_GETIMAGELIST, iImage, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 165
|
|
|
+// #define TreeView_SetImageList(hwnd, himl, iImage) \
|
|
|
+// (HIMAGELIST)SNDMSG((hwnd), TVM_SETIMAGELIST, iImage, (LPARAM)(HIMAGELIST)(himl))
|
|
|
+
|
|
|
+Function TreeView_SetImageList( hwnd : hwnd; himl : HIMAGELIST; iImage : cint ):HIMAGELIST;
|
|
|
+Begin
|
|
|
+ Result:=HIMAGELIST(SendMessage((hwnd), TVM_SETIMAGELIST, iImage, himl))
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 166
|
|
|
+// #define TreeView_GetNextItem(hwnd, hitem, code) \
|
|
|
+// (HTREEITEM)SNDMSG((hwnd), TVM_GETNEXTITEM, (WPARAM)(code), (LPARAM)(HTREEITEM)(hitem))
|
|
|
+
|
|
|
+Function TreeView_GetNextItem( hwnd : hwnd; hitem : HTREEITEM; code : WPARAM):HTREEITEM;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=HTREEITEM(SendMessage((hwnd), TVM_GETNEXTITEM, code, lparam(hitem)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 167
|
|
|
+
|
|
|
+procedure TreeView_GetChild(hwnd:hwnd; hitem:HTREEITEM);
|
|
|
+
|
|
|
+Begin
|
|
|
+ TreeView_GetNextItem(hwnd, hitem, TVGN_CHILD)
|
|
|
+End;
|
|
|
+// Macro 168
|
|
|
+
|
|
|
+// #define TreeView_GetNextSibling(hwnd:hwnd; hitem:HTREEITEM);
|
|
|
+// (hwnd, hitem)
|
|
|
+// TreeView_GetNextItem(hwnd, hitem, TVGN_NEXT)
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+procedure TreeView_GetNextSibling(hwnd:hwnd; hitem:HTREEITEM);
|
|
|
+// (hwnd, hitem)
|
|
|
+// TreeView_GetNextItem(hwnd, hitem, TVGN_NEXT)
|
|
|
+
|
|
|
+Begin
|
|
|
+ TreeView_getNextItem(hwnd,hitem,TVGN_NEXT);
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 169
|
|
|
+Procedure TreeView_GetPrevSibling(hwnd:hwnd; hitem:HTREEITEM);
|
|
|
+
|
|
|
+begin
|
|
|
+ TreeView_GetNextItem(hwnd, hitem, TVGN_PREVIOUS);
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 170
|
|
|
+
|
|
|
+procedure TreeView_GetParent(hwnd:hwnd; hitem:HTREEITEM);
|
|
|
+begin
|
|
|
+ TreeView_GetNextItem(hwnd, hitem, TVGN_PARENT)
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 171
|
|
|
+// #define TreeView_GetFirstVisible(hwnd:hwnd);
|
|
|
+// TreeView_GetNextItem(hwnd, NULL, TVGN_FIRSTVISIBLE)
|
|
|
+
|
|
|
+Procedure TreeView_GetFirstVisible(hwnd:hwnd);
|
|
|
+begin
|
|
|
+TreeView_GetNextItem(hwnd, NIL, TVGN_FIRSTVISIBLE)
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 172
|
|
|
+
|
|
|
+//#define TreeView_GetNextVisible(hwnd:hwnd; hitem:HTREEITEM);
|
|
|
+//(hwnd, hitem) TreeView_GetNextItem(hwnd, hitem, TVGN_NEXTVISIBLE)
|
|
|
+Procedure TreeView_GetNextVisible(hwnd:hwnd; hitem:HTREEITEM);
|
|
|
+begin
|
|
|
+ TreeView_GetNextItem(hwnd, hitem, TVGN_NEXTVISIBLE)
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 173
|
|
|
+//#define TreeView_GetPrevVisible(hwnd:hwnd; hitem:HTREEITEM);
|
|
|
+// (hwnd, hitem) TreeView_GetNextItem(hwnd, hitem, TVGN_PREVIOUSVISIBLE)
|
|
|
+
|
|
|
+
|
|
|
+Procedure TreeView_GetPrevVisible(hwnd:hwnd; hitem:HTREEITEM);
|
|
|
+Begin
|
|
|
+ TreeView_GetNextItem(hwnd, hitem, TVGN_PREVIOUSVISIBLE)
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 174
|
|
|
+
|
|
|
+Procedure TreeView_GetSelection(hwnd:hwnd);
|
|
|
+begin
|
|
|
+ TreeView_GetNextItem(hwnd, NIL, TVGN_CARET)
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 175
|
|
|
+
|
|
|
+//#define TreeView_GetDropHilight(hwnd:hwnd);
|
|
|
+//TreeView_GetNextItem(hwnd, NULL, TVGN_DROPHILITE)
|
|
|
+
|
|
|
+Procedure TreeView_GetDropHilight(hwnd:hwnd);
|
|
|
+
|
|
|
+begin
|
|
|
+ TreeView_GetNextItem(hwnd, NIL, TVGN_DROPHILITE)
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 176
|
|
|
+
|
|
|
+Procedure TreeView_GetRoot(hwnd:hwnd);
|
|
|
+
|
|
|
+begin
|
|
|
+ TreeView_GetNextItem(hwnd, NIL, TVGN_ROOT)
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 177
|
|
|
+//#define TreeView_GetLastVisible(hwnd:hwnd);
|
|
|
+//TreeView_GetNextItem(hwnd, NULL, TVGN_LASTVISIBLE)
|
|
|
+
|
|
|
+Procedure TreeView_GetLastVisible(hwnd:hwnd);
|
|
|
+begin
|
|
|
+ TreeView_GetNextItem(hwnd, NIL, TVGN_LASTVISIBLE)
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 178
|
|
|
+
|
|
|
+
|
|
|
+Function TreeView_Select( hwnd : hwnd; hitem : HTREEITEM; code : WPARAM):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), TVM_SELECTITEM, code, LPARAM(hitem)))
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 179
|
|
|
+// #define TreeView_SelectItem(hwnd, hitem) TreeView_Select(hwnd, hitem, TVGN_CARET)
|
|
|
+// Macro 180
|
|
|
+// #define TreeView_SelectDropTarget(hwnd, hitem) TreeView_Select(hwnd, hitem, TVGN_DROPHILITE)
|
|
|
+// Macro 181
|
|
|
+// #define TreeView_SelectSetFirstVisible(hwnd, hitem) TreeView_Select(hwnd, hitem, TVGN_FIRSTVISIBLE)
|
|
|
+
|
|
|
+// Macro 179
|
|
|
+Procedure TreeView_SelectItem(hwnd:hwnd; hitem:HTREEITEM);
|
|
|
+Begin
|
|
|
+ TreeView_Select(hwnd, hitem, TVGN_CARET)
|
|
|
+End;
|
|
|
+
|
|
|
+// Macro 180
|
|
|
+Procedure TreeView_SelectDropTarget(hwnd:hwnd; hitem:HTREEITEM);
|
|
|
+Begin
|
|
|
+ TreeView_Select(hwnd, hitem, TVGN_DROPHILITE)
|
|
|
+End;
|
|
|
+
|
|
|
+// Macro 181
|
|
|
+Procedure TreeView_SelectSetFirstVisible(hwnd:hwnd; hitem:HTREEITEM);
|
|
|
+Begin
|
|
|
+ TreeView_Select(hwnd, hitem, TVGN_FIRSTVISIBLE)
|
|
|
+End;
|
|
|
+
|
|
|
+// Macro 182
|
|
|
+// #define TreeView_GetItem(hwnd, pitem) \
|
|
|
+// (BOOL)SNDMSG((hwnd), TVM_GETITEM, 0, (LPARAM)(TV_ITEM *)(pitem))
|
|
|
+
|
|
|
+Function TreeView_GetItem( hwnd : hwnd;var pitem : TV_ITEM ):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), TVM_GETITEM, 0, Longint(@pitem)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 183
|
|
|
+
|
|
|
+//#define TreeView_SetItem(hwnd, pitem) \
|
|
|
+// (BOOL)SNDMSG((hwnd), TVM_SETITEM, 0, (LPARAM)(const TV_ITEM *)(pitem))
|
|
|
+
|
|
|
+Function TreeView_SetItem( hwnd : hwnd;const pitem : TV_ITEM ):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), TVM_SETITEM, 0, LParam(@pitem)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 184
|
|
|
+
|
|
|
+//#define TreeView_EditLabel(hwnd, hitem) \
|
|
|
+// (HWND)SNDMSG((hwnd), TVM_EDITLABEL, 0, (LPARAM)(HTREEITEM)(hitem))
|
|
|
+
|
|
|
+Function TreeView_EditLabel( hwnd : hwnd; hitem : HTREEITEM):HWND;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=Windows.HWND(SendMessage((hwnd), TVM_EDITLABEL, 0, LParam(hitem)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 185
|
|
|
+
|
|
|
+//#define TreeView_GetEditControl(hwnd) \
|
|
|
+// (HWND)SNDMSG((hwnd), TVM_GETEDITCONTROL, 0, 0)
|
|
|
+
|
|
|
+Function TreeView_GetEditControl( hwnd : hwnd):HWND;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=Windows.HWND(SendMessage((hwnd), TVM_GETEDITCONTROL, 0, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 186
|
|
|
+
|
|
|
+//#define TreeView_GetVisibleCount(hwnd) \
|
|
|
+// (UINT)SNDMSG((hwnd), TVM_GETVISIBLECOUNT, 0, 0)
|
|
|
+
|
|
|
+Function TreeView_GetVisibleCount( hwnd : hwnd):UINT;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=UINT(SendMessage((hwnd), TVM_GETVISIBLECOUNT, 0, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 187
|
|
|
+
|
|
|
+//#define TreeView_HitTest(hwnd, lpht) \
|
|
|
+// (HTREEITEM)SNDMSG((hwnd), TVM_HITTEST, 0, (LPARAM)(LPTV_HITTESTINFO)(lpht))
|
|
|
+
|
|
|
+Function TreeView_HitTest( hwnd : hwnd; lpht : LPTV_HITTESTINFO):HTREEITEM;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=HTREEITEM(SendMessage((hwnd), TVM_HITTEST, 0, lparam(lpht)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 188
|
|
|
+
|
|
|
+//#define TreeView_CreateDragImage(hwnd, hitem) \
|
|
|
+// (HIMAGELIST)SNDMSG((hwnd), TVM_CREATEDRAGIMAGE, 0, (LPARAM)(HTREEITEM)(hitem))
|
|
|
+
|
|
|
+Function TreeView_CreateDragImage( hwnd : hwnd; hitem : HTREEITEM):HIMAGELIST;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=HIMAGELIST(SendMessage((hwnd), TVM_CREATEDRAGIMAGE, 0, Lparam(hitem)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 189
|
|
|
+
|
|
|
+//#define TreeView_SortChildren(hwnd, hitem, recurse) \
|
|
|
+// (BOOL)SNDMSG((hwnd), TVM_SORTCHILDREN, (WPARAM)(recurse), (LPARAM)(HTREEITEM)(hitem))
|
|
|
+
|
|
|
+Function TreeView_SortChildren( hwnd : hwnd; hitem : HTREEITEM; recurse : WPARAM):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), TVM_SORTCHILDREN, recurse, LParam(hitem)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 190
|
|
|
+
|
|
|
+//#define TreeView_EnsureVisible(hwnd, hitem) \
|
|
|
+// (BOOL)SNDMSG((hwnd), TVM_ENSUREVISIBLE, 0, (LPARAM)(HTREEITEM)(hitem))
|
|
|
+
|
|
|
+Function TreeView_EnsureVisible( hwnd : hwnd; hitem : HTREEITEM):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), TVM_ENSUREVISIBLE, 0, LParam(hitem)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 191
|
|
|
+
|
|
|
+//#define TreeView_SortChildrenCB(hwnd, psort, recurse) \
|
|
|
+// (BOOL)SNDMSG((hwnd), TVM_SORTCHILDRENCB, (WPARAM)(recurse), \
|
|
|
+// (LPARAM)(LPTV_SORTCB)(psort))
|
|
|
+
|
|
|
+Function TreeView_SortChildrenCB( hwnd : hwnd;psort :lpTV_sortcb; recurse : WPARAM):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), TVM_SORTCHILDRENCB, recurse, LPARAM(psort)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 192
|
|
|
+
|
|
|
+//#define TreeView_EndEditLabelNow(hwnd, fCancel) \
|
|
|
+// (BOOL)SNDMSG((hwnd), TVM_ENDEDITLABELNOW, (WPARAM)(fCancel), 0)
|
|
|
+
|
|
|
+Function TreeView_EndEditLabelNow( hwnd : hwnd; fCancel : WPARAM):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), TVM_ENDEDITLABELNOW, fCancel, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 193
|
|
|
+
|
|
|
+//#define TreeView_SetToolTips(hwnd, hwndTT) \
|
|
|
+// (HWND)SNDMSG((hwnd), TVM_SETTOOLTIPS, (WPARAM)(hwndTT), 0)
|
|
|
+
|
|
|
+Function TreeView_SetToolTips( hwnd : hwnd; hwndTT : WPARAM):HWND;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=Windows.HWND(SendMessage((hwnd), TVM_SETTOOLTIPS, hwndTT, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 194
|
|
|
+
|
|
|
+//#define TreeView_GetToolTips(hwnd) \
|
|
|
+// (HWND)SNDMSG((hwnd), TVM_GETTOOLTIPS, 0, 0)
|
|
|
+
|
|
|
+Function TreeView_GetToolTips( hwnd : hwnd):HWND;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=Windows.HWND(SendMessage((hwnd), TVM_GETTOOLTIPS, 0, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 195
|
|
|
+
|
|
|
+//#define TreeView_GetISearchString(hwndTV, lpsz) \
|
|
|
+// (BOOL)SNDMSG((hwndTV), TVM_GETISEARCHSTRING, 0, (LPARAM)(LPTSTR)(lpsz))
|
|
|
+
|
|
|
+Function TreeView_GetISearchString( hwndTV : hwnd; lpsz : LPTSTR):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwndTV), TVM_GETISEARCHSTRING, 0, LPARAM(lpsz)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 196
|
|
|
+
|
|
|
+//#define TreeView_SetInsertMark(hwnd, hItem, fAfter) \
|
|
|
+// (BOOL)SNDMSG((hwnd), TVM_SETINSERTMARK, (WPARAM) (fAfter), (LPARAM) (hItem))
|
|
|
+
|
|
|
+Function TreeView_SetInsertMark( hwnd : hwnd; hItem : LParam ; fAfter : WParam ):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), TVM_SETINSERTMARK, (fAfter), (hItem)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 197
|
|
|
+
|
|
|
+//#define TreeView_SetUnicodeFormat(hwnd, fUnicode) \
|
|
|
+// (BOOL)SNDMSG((hwnd), TVM_SETUNICODEFORMAT, (WPARAM)(fUnicode), 0)
|
|
|
+
|
|
|
+Function TreeView_SetUnicodeFormat( hwnd : hwnd; fUnicode : WPARAM):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), TVM_SETUNICODEFORMAT, fUnicode, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 198
|
|
|
+
|
|
|
+//#define TreeView_GetUnicodeFormat(hwnd) \
|
|
|
+// (BOOL)SNDMSG((hwnd), TVM_GETUNICODEFORMAT, 0, 0)
|
|
|
+
|
|
|
+Function TreeView_GetUnicodeFormat( hwnd : hwnd):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), TVM_GETUNICODEFORMAT, 0, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 199
|
|
|
+
|
|
|
+//#define TreeView_SetItemHeight(hwnd, iHeight) \
|
|
|
+// (int)SNDMSG((hwnd), TVM_SETITEMHEIGHT, (WPARAM)(iHeight), 0)
|
|
|
+
|
|
|
+Function TreeView_SetItemHeight( hwnd : hwnd; iHeight : WPARAM):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwnd), TVM_SETITEMHEIGHT, iHeight, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 200
|
|
|
+
|
|
|
+//#define TreeView_GetItemHeight(hwnd) \
|
|
|
+// (int)SNDMSG((hwnd), TVM_GETITEMHEIGHT, 0, 0)
|
|
|
+
|
|
|
+Function TreeView_GetItemHeight( hwnd : hwnd):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwnd), TVM_GETITEMHEIGHT, 0, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 201
|
|
|
+
|
|
|
+//#define TreeView_SetBkColor(hwnd, clr) \
|
|
|
+// (COLORREF)SNDMSG((hwnd), TVM_SETBKCOLOR, 0, (LPARAM)(clr))
|
|
|
+
|
|
|
+Function TreeView_SetBkColor( hwnd : hwnd; clr : LPARAM):COLORREF;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=COLORREF(SendMessage((hwnd), TVM_SETBKCOLOR, 0, clr))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 202
|
|
|
+
|
|
|
+//#define TreeView_SetTextColor(hwnd, clr) \
|
|
|
+// (COLORREF)SNDMSG((hwnd), TVM_SETTEXTCOLOR, 0, (LPARAM)(clr))
|
|
|
+
|
|
|
+Function TreeView_SetTextColor( hwnd : hwnd; clr : LPARAM):COLORREF;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=COLORREF(SendMessage((hwnd), TVM_SETTEXTCOLOR, 0, clr))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 203
|
|
|
+
|
|
|
+//#define TreeView_GetBkColor(hwnd) \
|
|
|
+// (COLORREF)SNDMSG((hwnd), TVM_GETBKCOLOR, 0, 0)
|
|
|
+
|
|
|
+Function TreeView_GetBkColor( hwnd : hwnd):COLORREF;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=COLORREF(SendMessage((hwnd), TVM_GETBKCOLOR, 0, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 204
|
|
|
+
|
|
|
+//#define TreeView_GetTextColor(hwnd) \
|
|
|
+// (COLORREF)SNDMSG((hwnd), TVM_GETTEXTCOLOR, 0, 0)
|
|
|
+
|
|
|
+Function TreeView_GetTextColor( hwnd : hwnd):COLORREF;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=COLORREF(SendMessage((hwnd), TVM_GETTEXTCOLOR, 0, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 205
|
|
|
+
|
|
|
+//#define TreeView_SetScrollTime(hwnd, uTime) \
|
|
|
+// (UINT)SNDMSG((hwnd), TVM_SETSCROLLTIME, uTime, 0)
|
|
|
+
|
|
|
+Function TreeView_SetScrollTime( hwnd : hwnd; uTime : wparam ):UINT;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=UINT(SendMessage((hwnd), TVM_SETSCROLLTIME, uTime, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 206
|
|
|
+
|
|
|
+//#define TreeView_GetScrollTime(hwnd) \
|
|
|
+// (UINT)SNDMSG((hwnd), TVM_GETSCROLLTIME, 0, 0)
|
|
|
+
|
|
|
+Function TreeView_GetScrollTime( hwnd : hwnd):UINT;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=UINT(SendMessage((hwnd), TVM_GETSCROLLTIME, 0, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 207
|
|
|
+
|
|
|
+//#define TreeView_SetInsertMarkColor(hwnd, clr) \
|
|
|
+// (COLORREF)SNDMSG((hwnd), TVM_SETINSERTMARKCOLOR, 0, (LPARAM)(clr))
|
|
|
+
|
|
|
+Function TreeView_SetInsertMarkColor( hwnd : hwnd; clr : LPARAM):COLORREF;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=COLORREF(SendMessage((hwnd), TVM_SETINSERTMARKCOLOR, 0, clr))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 208
|
|
|
+
|
|
|
+//#define TreeView_GetInsertMarkColor(hwnd) \
|
|
|
+// (COLORREF)SNDMSG((hwnd), TVM_GETINSERTMARKCOLOR, 0, 0)
|
|
|
+
|
|
|
+Function TreeView_GetInsertMarkColor( hwnd : hwnd):COLORREF;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=COLORREF(SendMessage((hwnd), TVM_GETINSERTMARKCOLOR, 0, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 209
|
|
|
+
|
|
|
+//#define TreeView_SetItemState(hwndTV, hti, data, _mask) \
|
|
|
+// { TVITEM _ms_TVi;\
|
|
|
+// _ms_TVi.mask = TVIF_STATE; \
|
|
|
+// _ms_TVi.hItem = hti; \
|
|
|
+// _ms_TVi.stateMask = _mask;\
|
|
|
+// _ms_TVi.state = data;\
|
|
|
+// SNDMSG((hwndTV), TVM_SETITEM, 0, (LPARAM)(TV_ITEM *)&_ms_TVi);\
|
|
|
+// }
|
|
|
+
|
|
|
+Procedure TreeView_SetItemState(hwndTV:HWND;hti:HTreeItem;data:UINT;_mask:UINT);
|
|
|
+
|
|
|
+var _ms_TVi : TVITEM;
|
|
|
+
|
|
|
+Begin
|
|
|
+ _ms_TVi.mask:=TVIF_STATE;
|
|
|
+ _ms_TVi.hItem := hti;
|
|
|
+ _ms_TVi.stateMask := _mask;
|
|
|
+ _ms_TVi.state := data;
|
|
|
+ SendMessage(hwndTV,TVM_SETITEM, 0, LPARAM(@_ms_TVi));
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 210
|
|
|
+
|
|
|
+//#define TreeView_SetCheckState(hwndTV, hti, fCheck) \
|
|
|
+// TreeView_SetItemState(hwndTV, hti, INDEXTOSTATEIMAGEMASK((fCheck)?2:1), TVIS_STATEIMAGEMASK)
|
|
|
+
|
|
|
+Procedure TreeView_SetCheckState( hwndTV : hwnd; hti : HTreeItem ; fCheck : bool );
|
|
|
+
|
|
|
+var j : cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ IF not fCheck Then // (or inc(longint(fCheck)) if you like it dirty)
|
|
|
+ j:=1
|
|
|
+ Else
|
|
|
+ j:=2;
|
|
|
+
|
|
|
+ TreeView_SetItemState(hwndTV, hti, INDEXTOSTATEIMAGEMASK(j), TVIS_STATEIMAGEMASK)
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+{$ifdef IE5plus}
|
|
|
+// Macro 211
|
|
|
+
|
|
|
+//#define TreeView_GetItemState(hwndTV, hti, mask) \
|
|
|
+// (UINT)SNDMSG((hwndTV), TVM_GETITEMSTATE, (WPARAM)(hti), (LPARAM)(mask))
|
|
|
+
|
|
|
+Function TreeView_GetItemState( hwndTV : hwnd; hti : WPARAM; mask : LPARAM):UINT;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=UINT(SendMessage((hwndTV), TVM_GETITEMSTATE, hti, mask))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+// Macro 212
|
|
|
+// #define TreeView_GetCheckState(hwndTV, hti) \
|
|
|
+// ((((UINT)(SNDMSG((hwndTV), TVM_GETITEMSTATE, (WPARAM)(hti), TVIS_STATEIMAGEMASK))) >> 12) -1)
|
|
|
+
|
|
|
+Function TreeView_GetCheckState( hwndTV : hwnd; hti : WPARAM):UINT;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=((UINT(SendMessage((hwndTV), TVM_GETITEMSTATE, hti, TVIS_STATEIMAGEMASK) shr 12) -1));
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 213
|
|
|
+
|
|
|
+// #define TreeView_SetLineColor(hwnd, clr) \
|
|
|
+// (COLORREF)SNDMSG((hwnd), TVM_SETLINECOLOR, 0, (LPARAM)(clr))
|
|
|
+
|
|
|
+Function TreeView_SetLineColor( hwnd : hwnd; clr : LPARAM):COLORREF;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=COLORREF(SendMessage((hwnd), TVM_SETLINECOLOR, 0, clr))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 214
|
|
|
+
|
|
|
+// #define TreeView_GetLineColor(hwnd) \
|
|
|
+// (COLORREF)SNDMSG((hwnd), TVM_GETLINECOLOR, 0, 0)
|
|
|
+
|
|
|
+Function TreeView_GetLineColor( hwnd : hwnd):COLORREF;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=COLORREF(SendMessage((hwnd), TVM_GETLINECOLOR, 0, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 215
|
|
|
+// #define TreeView_MapAccIDToHTREEITEM(hwnd, id) \
|
|
|
+// (HTREEITEM)SNDMSG((hwnd), TVM_MAPACCIDTOHTREEITEM, id, 0)
|
|
|
+
|
|
|
+Function TreeView_MapAccIDToHTREEITEM( hwnd : hwnd; id :uint):HTREEITEM;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=HTREEITEM(SendMessage((hwnd), TVM_MAPACCIDTOHTREEITEM, id, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 216
|
|
|
+// #define TreeView_MapHTREEITEMToAccID(hwnd, htreeitem) \
|
|
|
+// (UINT)SNDMSG((hwnd), TVM_MAPHTREEITEMTOACCID, (WPARAM)htreeitem, 0)
|
|
|
+
|
|
|
+Function TreeView_MapHTREEITEMToAccID( hwnd : hwnd; htreeitem : WPARAM):UINT;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=UINT(SendMessage((hwnd), TVM_MAPHTREEITEMTOACCID, htreeitem, 0))
|
|
|
+end;
|
|
|
+{$endif}
|
|
|
+
|
|
|
+// Macro 217
|
|
|
+
|
|
|
+//#define TabCtrl_GetImageList(hwnd) \
|
|
|
+// (HIMAGELIST)SNDMSG((hwnd), TCM_GETIMAGELIST, 0, DWord(0))
|
|
|
+
|
|
|
+Function TabCtrl_GetImageList( hwnd : hwnd):HIMAGELIST;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=HIMAGELIST(SendMessage((hwnd), TCM_GETIMAGELIST, 0, DWord(0)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 218
|
|
|
+
|
|
|
+//#define TabCtrl_SetImageList(hwnd, himl) \
|
|
|
+// (HIMAGELIST)SNDMSG((hwnd), TCM_SETIMAGELIST, 0, (LPARAM)(HIMAGELIST)(himl))
|
|
|
+
|
|
|
+Function TabCtrl_SetImageList( hwnd : hwnd; himl : HIMAGELIST):HIMAGELIST;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=HIMAGELIST(SendMessage((hwnd), TCM_SETIMAGELIST, 0, himl))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 219
|
|
|
+
|
|
|
+//#define TabCtrl_GetItemCount(hwnd) \
|
|
|
+// (int)SNDMSG((hwnd), TCM_GETITEMCOUNT, 0, DWord(0))
|
|
|
+
|
|
|
+Function TabCtrl_GetItemCount( hwnd : hwnd):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwnd), TCM_GETITEMCOUNT, 0, DWord(0)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 220
|
|
|
+
|
|
|
+//#define TabCtrl_GetItem(hwnd, iItem, pitem) \
|
|
|
+// (BOOL)SNDMSG((hwnd), TCM_GETITEM, (WPARAM)(int)(iItem), (LPARAM)(TC_ITEM *)(pitem))
|
|
|
+
|
|
|
+Function TabCtrl_GetItem( hwnd : hwnd; iItem : cint;var pitem : TC_ITEM ):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), TCM_GETITEM, iItem, Longint(@pitem)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 221
|
|
|
+
|
|
|
+//#define TabCtrl_SetItem(hwnd, iItem, pitem) \
|
|
|
+// (BOOL)SNDMSG((hwnd), TCM_SETITEM, (WPARAM)(int)(iItem), (LPARAM)(TC_ITEM *)(pitem))
|
|
|
+
|
|
|
+Function TabCtrl_SetItem( hwnd : hwnd; iItem : cint;var pitem : TC_ITEM ):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), TCM_SETITEM, iItem, Longint(@pitem)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 222
|
|
|
+
|
|
|
+//#define TabCtrl_InsertItem(hwnd, iItem, pitem) \
|
|
|
+// (int)SNDMSG((hwnd), TCM_INSERTITEM, (WPARAM)(int)(iItem), (LPARAM)(const TC_ITEM *)(pitem))
|
|
|
+
|
|
|
+Function TabCtrl_InsertItem( hwnd : hwnd; iItem : cint;const pitem : TC_ITEM ):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwnd), TCM_INSERTITEM, iItem, Longint(@pitem)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 223
|
|
|
+
|
|
|
+//#define TabCtrl_DeleteItem(hwnd, i) \
|
|
|
+// (BOOL)SNDMSG((hwnd), TCM_DELETEITEM, (WPARAM)(int)(i), DWord(0))
|
|
|
+
|
|
|
+Function TabCtrl_DeleteItem( hwnd : hwnd; i : cint):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), TCM_DELETEITEM, (i), DWord(0)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 224
|
|
|
+
|
|
|
+//#define TabCtrl_DeleteAllItems(hwnd) \
|
|
|
+// (BOOL)SNDMSG((hwnd), TCM_DELETEALLITEMS, 0, DWord(0))
|
|
|
+
|
|
|
+Function TabCtrl_DeleteAllItems( hwnd : hwnd):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), TCM_DELETEALLITEMS, 0, DWord(0)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 225
|
|
|
+
|
|
|
+//#define TabCtrl_GetItemRect(hwnd, i, prc) \
|
|
|
+// (BOOL)SNDMSG((hwnd), TCM_GETITEMRECT, (WPARAM)(int)(i), (LPARAM)(RECT *)(prc))
|
|
|
+
|
|
|
+Function TabCtrl_GetItemRect( hwnd : hwnd; i : cint;var prc : RECT ):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), TCM_GETITEMRECT, (i), Longint(@prc)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 226
|
|
|
+
|
|
|
+//#define TabCtrl_GetCurSel(hwnd) \
|
|
|
+// (int)SNDMSG((hwnd), TCM_GETCURSEL, 0, 0)
|
|
|
+
|
|
|
+Function TabCtrl_GetCurSel( hwnd : hwnd):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwnd), TCM_GETCURSEL, 0, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 227
|
|
|
+
|
|
|
+//#define TabCtrl_SetCurSel(hwnd, i) \
|
|
|
+// (int)SNDMSG((hwnd), TCM_SETCURSEL, (WPARAM)(i), 0)
|
|
|
+
|
|
|
+Function TabCtrl_SetCurSel( hwnd : hwnd; i : WPARAM):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwnd), TCM_SETCURSEL, (i), 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 228
|
|
|
+
|
|
|
+//#define TabCtrl_HitTest(hwndTC, pinfo) \
|
|
|
+// (int)SNDMSG((hwndTC), TCM_HITTEST, 0, (LPARAM)(TC_HITTESTINFO *)(pinfo))
|
|
|
+
|
|
|
+Function TabCtrl_HitTest( hwndTC : hwnd;var pinfo : TC_HITTESTINFO ):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwndTC), TCM_HITTEST, 0, Longint(@pinfo)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 229
|
|
|
+
|
|
|
+//#define TabCtrl_SetItemExtra(hwndTC, cb) \
|
|
|
+// (BOOL)SNDMSG((hwndTC), TCM_SETITEMEXTRA, (WPARAM)(cb), DWord(0))
|
|
|
+
|
|
|
+Function TabCtrl_SetItemExtra( hwndTC : hwnd; cb : WPARAM):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwndTC), TCM_SETITEMEXTRA, cb, DWord(0)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 230
|
|
|
+
|
|
|
+//#define TabCtrl_AdjustRect(hwnd, bLarger, prc) \
|
|
|
+// (int)SNDMSG(hwnd, TCM_ADJUSTRECT, (WPARAM)(BOOL)(bLarger), (LPARAM)(RECT *)prc)
|
|
|
+
|
|
|
+Function TabCtrl_AdjustRect( hwnd : hwnd; bLarger : BOOL;var prc : RECT ):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage(hwnd, TCM_ADJUSTRECT, Wparam(bLarger), Lparam(@prc)));
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 231
|
|
|
+
|
|
|
+//#define TabCtrl_SetItemSize(hwnd, x, y) \
|
|
|
+// (DWORD)SNDMSG((hwnd), TCM_SETITEMSIZE, 0, MAKELPARAM(x,y))
|
|
|
+
|
|
|
+Function TabCtrl_SetItemSize( hwnd : hwnd; x : cint ; y : cint ):DWORD;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=DWORD(SendMessage((hwnd), TCM_SETITEMSIZE, 0, MAKELPARAM(x,y)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 232
|
|
|
+
|
|
|
+//#define TabCtrl_RemoveImage(hwnd, i) \
|
|
|
+// (void)SNDMSG((hwnd), TCM_REMOVEIMAGE, i, DWord(0))
|
|
|
+
|
|
|
+Procedure TabCtrl_RemoveImage( hwnd : hwnd; i : cint);
|
|
|
+
|
|
|
+Begin
|
|
|
+SendMessage((hwnd), TCM_REMOVEIMAGE, i, DWord(0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 233
|
|
|
+
|
|
|
+//#define TabCtrl_SetPadding(hwnd, cx, cy) \
|
|
|
+// (void)SNDMSG((hwnd), TCM_SETPADDING, 0, MAKELPARAM(cx, cy))
|
|
|
+
|
|
|
+Procedure TabCtrl_SetPadding( hwnd : hwnd; cx : cint ; cy : cint );
|
|
|
+
|
|
|
+Begin
|
|
|
+SendMessage((hwnd), TCM_SETPADDING, 0, MAKELPARAM(cx, cy))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 234
|
|
|
+
|
|
|
+//#define TabCtrl_GetRowCount(hwnd) \
|
|
|
+// (int)SNDMSG((hwnd), TCM_GETROWCOUNT, 0, DWord(0))
|
|
|
+
|
|
|
+Function TabCtrl_GetRowCount( hwnd : hwnd):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwnd), TCM_GETROWCOUNT, 0, DWord(0)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 235
|
|
|
+
|
|
|
+//#define TabCtrl_GetToolTips(hwnd) \
|
|
|
+// (HWND)SNDMSG((hwnd), TCM_GETTOOLTIPS, 0, DWord(0))
|
|
|
+
|
|
|
+Function TabCtrl_GetToolTips( hwnd : hwnd):HWND;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=Windows.HWND(SendMessage((hwnd), TCM_GETTOOLTIPS, 0, DWord(0)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 236
|
|
|
+
|
|
|
+//#define TabCtrl_SetToolTips(hwnd, hwndTT) \
|
|
|
+// (void)SNDMSG((hwnd), TCM_SETTOOLTIPS, (WPARAM)(hwndTT), DWord(0))
|
|
|
+
|
|
|
+Procedure TabCtrl_SetToolTips( hwnd : hwnd; hwndTT : WPARAM);
|
|
|
+
|
|
|
+Begin
|
|
|
+SendMessage((hwnd), TCM_SETTOOLTIPS, hwndTT, DWord(0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 237
|
|
|
+
|
|
|
+//#define TabCtrl_GetCurFocus(hwnd) \
|
|
|
+// (int)SNDMSG((hwnd), TCM_GETCURFOCUS, 0, 0)
|
|
|
+
|
|
|
+Function TabCtrl_GetCurFocus( hwnd : hwnd):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwnd), TCM_GETCURFOCUS, 0, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 238
|
|
|
+
|
|
|
+//#define TabCtrl_SetCurFocus(hwnd, i) \
|
|
|
+// SNDMSG((hwnd),TCM_SETCURFOCUS, i, 0)
|
|
|
+
|
|
|
+Procedure TabCtrl_SetCurFocus( hwnd : hwnd; i : cint );
|
|
|
+
|
|
|
+Begin
|
|
|
+SendMessage((hwnd),TCM_SETCURFOCUS, i, 0)
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 239
|
|
|
+
|
|
|
+//#define TabCtrl_SetMinTabWidth(hwnd, x) \
|
|
|
+// (int)SNDMSG((hwnd), TCM_SETMINTABWIDTH, 0, x)
|
|
|
+
|
|
|
+Function TabCtrl_SetMinTabWidth( hwnd : hwnd; x : cint ):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwnd), TCM_SETMINTABWIDTH, 0, x))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 240
|
|
|
+
|
|
|
+//#define TabCtrl_DeselectAll(hwnd, fExcludeFocus)\
|
|
|
+// (void)SNDMSG((hwnd), TCM_DESELECTALL, fExcludeFocus, 0)
|
|
|
+
|
|
|
+Procedure TabCtrl_DeselectAll( hwnd : hwnd; fExcludeFocus :cint );
|
|
|
+
|
|
|
+Begin
|
|
|
+SendMessage((hwnd), TCM_DESELECTALL, fExcludeFocus, 0)
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 241
|
|
|
+
|
|
|
+//#define TabCtrl_HighlightItem(hwnd, i, fHighlight) \
|
|
|
+// (BOOL)SNDMSG((hwnd), TCM_HIGHLIGHTITEM, (WPARAM)(i), (LPARAM)MAKELONG (fHighlight, 0))
|
|
|
+
|
|
|
+Function TabCtrl_HighlightItem( hwnd : hwnd; i : WPARAM; fHighlight :bool ):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), TCM_HIGHLIGHTITEM, (i), LPARAM(MAKELONG (cint(fHighlight), 0))))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 242
|
|
|
+
|
|
|
+//#define TabCtrl_SetExtendedStyle(hwnd, dw)\
|
|
|
+// (DWORD)SNDMSG((hwnd), TCM_SETEXTENDEDSTYLE, 0, dw)
|
|
|
+
|
|
|
+Function TabCtrl_SetExtendedStyle( hwnd : hwnd; dw : cint):DWORD;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=DWORD(SendMessage((hwnd), TCM_SETEXTENDEDSTYLE, 0,lparam(dw)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 243
|
|
|
+
|
|
|
+//#define TabCtrl_GetExtendedStyle(hwnd)\
|
|
|
+// (DWORD)SNDMSG((hwnd), TCM_GETEXTENDEDSTYLE, 0, 0)
|
|
|
+
|
|
|
+Function TabCtrl_GetExtendedStyle( hwnd : hwnd):DWORD;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=DWORD(SendMessage((hwnd), TCM_GETEXTENDEDSTYLE, 0, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 244
|
|
|
+
|
|
|
+//#define TabCtrl_SetUnicodeFormat(hwnd, fUnicode) \
|
|
|
+// (BOOL)SNDMSG((hwnd), TCM_SETUNICODEFORMAT, (WPARAM)(fUnicode), 0)
|
|
|
+
|
|
|
+Function TabCtrl_SetUnicodeFormat( hwnd : hwnd; fUnicode : WPARAM):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), TCM_SETUNICODEFORMAT, fUnicode, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 245
|
|
|
+
|
|
|
+//#define TabCtrl_GetUnicodeFormat(hwnd) \
|
|
|
+// (BOOL)SNDMSG((hwnd), TCM_GETUNICODEFORMAT, 0, 0)
|
|
|
+
|
|
|
+Function TabCtrl_GetUnicodeFormat( hwnd : hwnd):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), TCM_GETUNICODEFORMAT, 0, 0));
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 246
|
|
|
+
|
|
|
+//#define Animate_Create(hwndP, id, dwStyle, hInstance) \
|
|
|
+// CreateWindow(ANIMATE_CLASS, NULL, \
|
|
|
+// dwStyle, 0, 0, 0, 0, hwndP, (HMENU)(id), hInstance, NULL)
|
|
|
+
|
|
|
+Function Animate_Create(hwndP :HWND;id:HMENU;dwStyle:dword;hInstance:HINST):HWND;
|
|
|
+
|
|
|
+Begin
|
|
|
+ result:=CreateWindow(ANIMATE_CLASS, NIL,
|
|
|
+ dwStyle, 0, 0, 0, 0, hwndP, id, hInstance, NIL);
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 247
|
|
|
+//#define Animate_Open(hwnd, szName) (BOOL)SNDMSG(hwnd, ACM_OPEN, 0, (LPARAM)(LPTSTR)(szName))
|
|
|
+
|
|
|
+Function Animate_Open(hwndP :HWND;szName:LPTSTR):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage(hwndp, ACM_OPEN, 0, LPARAM(szName)));
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 248
|
|
|
+//#define Animate_OpenEx(hwnd, hInst, szName) (BOOL)SNDMSG(hwnd, ACM_OPEN, (WPARAM)(hInst), (LPARAM)(LPTSTR)(szName))
|
|
|
+
|
|
|
+Function Animate_OpenEx(hwndP :HWND;HInst:HInst; szName:LPTSTR):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage(hwndp, ACM_OPEN, hinst, LPARAM(szName)));
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 249
|
|
|
+//#define Animate_Play(hwnd, from, to, rep) (BOOL)SNDMSG(hwnd, ACM_PLAY, (WPARAM)(rep), (LPARAM)MAKELONG(from, to))
|
|
|
+
|
|
|
+Function Animate_Play(hwndP :HWND;from,_to,rep:uint):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage(hwndP, ACM_PLAY, wparam(rep), LPARAM(MAKELONG(From,_to))));
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 250
|
|
|
+//#define Animate_Stop(hwnd) (BOOL)SNDMSG(hwnd, ACM_STOP, 0, 0)
|
|
|
+
|
|
|
+Function Animate_stop(hwndP :HWND):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage(hwndP, ACM_STOP, 0, 0));
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 251
|
|
|
+//#define Animate_Close(hwnd) Animate_Open(hwnd, NULL)
|
|
|
+
|
|
|
+Function Animate_close(hwndP :HWND):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(Animate_Open(hwndP,NIL));
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 252
|
|
|
+//#define Animate_Seek(hwnd, frame) Animate_Play(hwnd, frame, frame, 1)
|
|
|
+
|
|
|
+Function Animate_Seek(hwndP :HWND;frame:uint):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(Animate_Play(hwndP,frame,frame,1));
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 253
|
|
|
+//#define MonthCal_GetCurSel(hmc, pst) (BOOL)SNDMSG(hmc, MCM_GETCURSEL, 0, (LPARAM)(pst))
|
|
|
+
|
|
|
+function MonthCal_GetCurSel(hwndMC:HWND; lpSysTime :LPSYSTEMTIME):Bool;
|
|
|
+
|
|
|
+begin
|
|
|
+ Result:=BOOL(SendMessage(hwndmc, MCM_GETCURSEL , 0, LPARAM(lpsystime)));
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 254
|
|
|
+//#define MonthCal_SetCurSel(hmc, pst) (BOOL)SNDMSG(hmc, MCM_SETCURSEL, 0, (LPARAM)(pst))
|
|
|
+
|
|
|
+function MonthCal_SetCurSel(hwndMC:HWND; lpSysTime :LPSYSTEMTIME):Bool;
|
|
|
+
|
|
|
+begin
|
|
|
+ Result:=BOOL(SendMessage(hwndmc, MCM_SETCURSEL, 0, LPARAM(lpsystime)));
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 255
|
|
|
+//#define MonthCal_GetMaxSelCount(hmc) (DWORD)SNDMSG(hmc, MCM_GETMAXSELCOUNT, 0, DWord(0))
|
|
|
+
|
|
|
+function MonthCal_GetMaxSelCount(hwndMC:HWND):Bool;
|
|
|
+
|
|
|
+begin
|
|
|
+ Result:=BOOL(SendMessage(hwndmc, MCM_GETMAXSELCOUNT, 0, LPARAM(0)));
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 256
|
|
|
+//#define MonthCal_SetMaxSelCount(hmc, n) (BOOL)SNDMSG(hmc, MCM_SETMAXSELCOUNT, (WPARAM)(n), DWord(0))
|
|
|
+
|
|
|
+function MonthCal_SetMaxSelCount(hwndMC:HWND;n:uint):Bool;
|
|
|
+
|
|
|
+begin
|
|
|
+ Result:=BOOL(SendMessage(hwndmc, MCM_SETMAXSELCOUNT,WPARAM(N), LPARAM(0)));
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 257
|
|
|
+//#define MonthCal_GetSelRange(hmc, rgst) SNDMSG(hmc, MCM_GETSELRANGE, 0, (LPARAM)(rgst))
|
|
|
+
|
|
|
+function MonthCal_GetSelRange(hwndMC:HWND; lpSysTime :LPSYSTEMTIME):Bool;
|
|
|
+
|
|
|
+begin
|
|
|
+ Result:=BOOL(SendMessage(hwndmc, MCM_GETSELRANGE,WPARAM(0), LPARAM(lpsystime)));
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 258
|
|
|
+//#define MonthCal_SetSelRange(hmc, rgst) SNDMSG(hmc, MCM_SETSELRANGE, 0, (LPARAM)(rgst))
|
|
|
+
|
|
|
+function MonthCal_SetSelRange(hwndMC:HWND; lpSysTime :LPSYSTEMTIME):Bool;
|
|
|
+
|
|
|
+begin
|
|
|
+ Result:=BOOL(SendMessage(hwndmc, MCM_SETSELRANGE,WPARAM(0), LPARAM(lpsystime)));
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 259
|
|
|
+//#define MonthCal_GetMonthRange(hmc, gmr, rgst) (DWORD)SNDMSG(hmc, MCM_GETMONTHRANGE, (WPARAM)(gmr), (LPARAM)(rgst))
|
|
|
+
|
|
|
+function MonthCal_GetMonthRange(hwndMC:HWND; gmr: DWORD;lpSysTime :LPSYSTEMTIME):Bool;
|
|
|
+
|
|
|
+begin
|
|
|
+ Result:=BOOL(SendMessage(hwndmc, MCM_GETMONTHRANGE,WPARAM(gmr), LPARAM(lpsystime)));
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 260
|
|
|
+//#define MonthCal_SetDayState(hmc, cbds, rgds) SNDMSG(hmc, MCM_SETDAYSTATE, (WPARAM)(cbds), (LPARAM)(rgds))
|
|
|
+
|
|
|
+function MonthCal_SetDayState(hwndMC:HWND; gmr: Longint;lpDay :LPMONTHDAYSTATE):Bool;
|
|
|
+
|
|
|
+begin
|
|
|
+ Result:=BOOL(SendMessage(hwndmc, MCM_SETDAYSTATE,WPARAM(gmr), LPARAM(lpDay)));
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 261
|
|
|
+// #define MonthCal_GetMinReqRect(hmc, prc) SNDMSG(hmc, MCM_GETMINREQRECT, 0, (LPARAM)(prc))
|
|
|
+
|
|
|
+function MonthCal_GetMinReqRect(hwndMC:HWND; lpr :LPRect):Bool;
|
|
|
+
|
|
|
+begin
|
|
|
+ Result:=BOOL(SendMessage(hwndmc, MCM_GETMINREQRECT,0, LPARAM(lpr)));
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 262
|
|
|
+// #define MonthCal_SetColor(hmc, iColor, clr) SNDMSG(hmc, MCM_SETCOLOR, iColor, clr)
|
|
|
+
|
|
|
+function MonthCal_SetColor(hwndMC:HWND; ic:longint;clr:COLORREF):Bool;
|
|
|
+
|
|
|
+begin
|
|
|
+ Result:=BOOL(SendMessage(hwndmc, MCM_SETCOLOR,ic, LPARAM(clr)));
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 263
|
|
|
+// #define MonthCal_GetColor(hmc, iColor) SNDMSG(hmc, MCM_GETCOLOR, iColor, 0)
|
|
|
+
|
|
|
+function MonthCal_GetColor(hwndMC:HWND; ic:longint):Bool;
|
|
|
+
|
|
|
+begin
|
|
|
+ Result:=BOOL(SendMessage(hwndmc, MCM_GETCOLOR,ic, 0));
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 264
|
|
|
+// #define MonthCal_SetToday(hmc, pst) SNDMSG(hmc, MCM_SETTODAY, 0, (LPARAM)(pst))
|
|
|
+
|
|
|
+function MonthCal_SetToday(hwndMC:HWND; lps:LPSYSTEMTIME):Bool;
|
|
|
+
|
|
|
+begin
|
|
|
+ Result:=BOOL(SendMessage(hwndmc, MCM_SETTODAY,0, LPARAM(lps)));
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 265
|
|
|
+// #define MonthCal_GetToday(hmc, pst) (BOOL)SNDMSG(hmc, MCM_GETTODAY, 0, (LPARAM)(pst))
|
|
|
+
|
|
|
+function MonthCal_GetToday(hwndMC:HWND; lps:LPSYSTEMTIME):Bool;
|
|
|
+
|
|
|
+begin
|
|
|
+ Result:=BOOL(SendMessage(hwndmc, MCM_GETTODAY,0, LPARAM(lps)));
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 266
|
|
|
+// #define MonthCal_HitTest(hmc, pinfo) \
|
|
|
+// SNDMSG(hmc, MCM_HITTEST, 0, (LPARAM)(PMCHITTESTINFO)(pinfo))
|
|
|
+
|
|
|
+FUNCTION MonthCal_HitTest( hmc :HWND ; pinfo : PMCHITTESTINFO):DWORD;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=DWORD(SendMessage(hmc, MCM_HITTEST, 0, LPARAM(pinfo)));
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 267
|
|
|
+// #define MonthCal_SetFirstDayOfWeek(hmc, iDay) \
|
|
|
+// SNDMSG(hmc, MCM_SETFIRSTDAYOFWEEK, 0, iDay)
|
|
|
+
|
|
|
+function MonthCal_SetFirstDayOfWeek( hmc : HWND ; iDay :LONGINT ):DWORD;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=SendMessage(hmc, MCM_SETFIRSTDAYOFWEEK, 0, iDay);
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 268
|
|
|
+// #define MonthCal_GetFirstDayOfWeek(hmc) \
|
|
|
+// (DWORD)SNDMSG(hmc, MCM_GETFIRSTDAYOFWEEK, 0, 0)
|
|
|
+
|
|
|
+Function MonthCal_GetFirstDayOfWeek( hmc : HWND ):DWORD;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=DWORD(SendMessage(hmc, MCM_GETFIRSTDAYOFWEEK, 0, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 269
|
|
|
+// #define MonthCal_GetRange(hmc, rgst) \
|
|
|
+// (DWORD)SNDMSG(hmc, MCM_GETRANGE, 0, (LPARAM)(rgst))
|
|
|
+
|
|
|
+Function MonthCal_GetRange( hmc : HWND ; rgst : LPSYSTEMTIME):DWORD;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=DWORD(SendMessage(hmc, MCM_GETRANGE, 0, lparam(rgst)));
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 270
|
|
|
+// #define MonthCal_SetRange(hmc, gd, rgst) \
|
|
|
+// (BOOL)SNDMSG(hmc, MCM_SETRANGE, (WPARAM)(gd), (LPARAM)(rgst))
|
|
|
+
|
|
|
+Function MonthCal_SetRange( hmc : HWND ; gd : DWORD; rgst : LPSYSTEMTIME):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage(hmc, MCM_SETRANGE, gd,LPARAM(rgst)))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 271
|
|
|
+// #define MonthCal_GetMonthDelta(hmc) \
|
|
|
+// (int)SNDMSG(hmc, MCM_GETMONTHDELTA, 0, 0)
|
|
|
+
|
|
|
+Function MonthCal_GetMonthDelta( hmc :hwnd ):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage(hmc, MCM_GETMONTHDELTA, 0, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 272
|
|
|
+// #define MonthCal_SetMonthDelta(hmc, n) \
|
|
|
+// (int)SNDMSG(hmc, MCM_SETMONTHDELTA, n, 0)
|
|
|
+
|
|
|
+Function MonthCal_SetMonthDelta( hmc :hwnd ; n :cint ):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage(hmc, MCM_SETMONTHDELTA, n, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 273
|
|
|
+
|
|
|
+// #define MonthCal_GetMaxTodayWidth(hmc) \
|
|
|
+// (DWORD)SNDMSG(hmc, MCM_GETMAXTODAYWIDTH, 0, 0)
|
|
|
+
|
|
|
+Function MonthCal_GetMaxTodayWidth( hmc :hwnd ):DWORD;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=DWORD(SendMessage(hmc, MCM_GETMAXTODAYWIDTH, 0, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 274
|
|
|
+// #define MonthCal_SetUnicodeFormat(hwnd, fUnicode) \
|
|
|
+// (BOOL)SNDMSG((hwnd), MCM_SETUNICODEFORMAT, (WPARAM)(fUnicode), 0)
|
|
|
+
|
|
|
+Function MonthCal_SetUnicodeFormat( hwnd : hwnd; fUnicode : bool):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), MCM_SETUNICODEFORMAT, wparam(fUnicode), 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 275
|
|
|
+
|
|
|
+// #define MonthCal_GetUnicodeFormat(hwnd) \
|
|
|
+// (BOOL)SNDMSG((hwnd), MCM_GETUNICODEFORMAT, 0, 0)
|
|
|
+
|
|
|
+Function MonthCal_GetUnicodeFormat( hwnd : hwnd):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), MCM_GETUNICODEFORMAT, 0, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 276
|
|
|
+// #define DateTime_GetSystemtime(hdp, pst) (DWORD)SNDMSG(hdp, DTM_GETSYSTEMTIME, 0, (LPARAM)(pst))
|
|
|
+
|
|
|
+// Macro 277
|
|
|
+
|
|
|
+//#define DateTime_SetSystemtime(hdp, gd, pst) (BOOL)SNDMSG(hdp, DTM_SETSYSTEMTIME, (WPARAM)(gd), (LPARAM)(pst))
|
|
|
+
|
|
|
+// Macro 278
|
|
|
+
|
|
|
+//#define DateTime_GetRange(hdp, rgst) (DWORD)SNDMSG(hdp, DTM_GETRANGE, 0, (LPARAM)(rgst))
|
|
|
+
|
|
|
+// Macro 279
|
|
|
+
|
|
|
+//#define DateTime_SetRange(hdp, gd, rgst) (BOOL)SNDMSG(hdp, DTM_SETRANGE, (WPARAM)(gd), (LPARAM)(rgst))
|
|
|
+
|
|
|
+// Macro 280
|
|
|
+
|
|
|
+//#define DateTime_SetFormat(hdp, sz) (BOOL)SNDMSG(hdp, DTM_SETFORMAT, 0, (LPARAM)(sz))
|
|
|
+
|
|
|
+// Macro 281
|
|
|
+
|
|
|
+//#define DateTime_SetMonthCalColor(hdp, iColor, clr) SNDMSG(hdp, DTM_SETMCCOLOR, iColor, clr)
|
|
|
+
|
|
|
+// Macro 282
|
|
|
+
|
|
|
+//#define DateTime_GetMonthCalColor(hdp, iColor) SNDMSG(hdp, DTM_GETMCCOLOR, iColor, 0)
|
|
|
+
|
|
|
+// Macro 283
|
|
|
+
|
|
|
+//#define DateTime_GetMonthCal(hdp) (HWND)SNDMSG(hdp, DTM_GETMONTHCAL, 0, 0)
|
|
|
+
|
|
|
+// Macro 284
|
|
|
+
|
|
|
+//#define DateTime_SetMonthCalFont(hdp, hfont, fRedraw) SNDMSG(hdp, DTM_SETMCFONT, (WPARAM)(hfont), (LPARAM)(fRedraw))
|
|
|
+
|
|
|
+// Macro 285
|
|
|
+
|
|
|
+//#define DateTime_GetMonthCalFont(hdp) SNDMSG(hdp, DTM_GETMCFONT, 0, 0)
|
|
|
+
|
|
|
+// Macro 286
|
|
|
+
|
|
|
+//#define MAKEIPRANGE(low, high) ((LPARAM)(WORD)(((BYTE)(high) << 8) + (BYTE)(low)))
|
|
|
+
|
|
|
+// Macro 287
|
|
|
+
|
|
|
+//#define MAKEIPADDRESS(b1,b2,b3,b4) ((LPARAM)(((DWORD)(b1)<<24)+((DWORD)(b2)<<16)+((DWORD)(b3)<<8)+((DWORD)(b4))))
|
|
|
+
|
|
|
+// Macro 288
|
|
|
+
|
|
|
+//#define FIRST_IPADDRESS(x) ((x>>24) & 0xff)
|
|
|
+
|
|
|
+// Macro 289
|
|
|
+
|
|
|
+//#define SECOND_IPADDRESS(x) ((x>>16) & 0xff)
|
|
|
+
|
|
|
+// Macro 290
|
|
|
+
|
|
|
+//#define THIRD_IPADDRESS(x) ((x>>8) & 0xff)
|
|
|
+
|
|
|
+// Macro 291
|
|
|
+
|
|
|
+//#define FOURTH_IPADDRESS(x) (x & 0xff)
|
|
|
+
|
|
|
+// Macro 292
|
|
|
+
|
|
|
+//#define Pager_SetChild(hwnd, hwndChild) \
|
|
|
+// (void)SNDMSG((hwnd), PGM_SETCHILD, 0, (LPARAM)(hwndChild))
|
|
|
+
|
|
|
+Procedure Pager_SetChild( hwnd : hwnd; hwndChild : LPARAM);
|
|
|
+
|
|
|
+Begin
|
|
|
+SendMessage((hwnd), PGM_SETCHILD, 0, hwndChild)
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 293
|
|
|
+
|
|
|
+//#define Pager_RecalcSize(hwnd) \
|
|
|
+// (void)SNDMSG((hwnd), PGM_RECALCSIZE, 0, 0)
|
|
|
+
|
|
|
+Procedure Pager_RecalcSize( hwnd : hwnd);
|
|
|
+
|
|
|
+Begin
|
|
|
+SendMessage((hwnd), PGM_RECALCSIZE, 0, 0)
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 294
|
|
|
+
|
|
|
+//#define Pager_ForwardMouse(hwnd, bForward) \
|
|
|
+// (void)SNDMSG((hwnd), PGM_FORWARDMOUSE, (WPARAM)(bForward), 0)
|
|
|
+
|
|
|
+Procedure Pager_ForwardMouse( hwnd : hwnd; bForward : WPARAM);
|
|
|
+
|
|
|
+Begin
|
|
|
+SendMessage((hwnd), PGM_FORWARDMOUSE, bForward, 0)
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 295
|
|
|
+
|
|
|
+//#define Pager_SetBkColor(hwnd, clr) \
|
|
|
+// (COLORREF)SNDMSG((hwnd), PGM_SETBKCOLOR, 0, (LPARAM)(clr))
|
|
|
+
|
|
|
+Function Pager_SetBkColor( hwnd : hwnd; clr : LPARAM):COLORREF;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=COLORREF(SendMessage((hwnd), PGM_SETBKCOLOR, 0, clr))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 296
|
|
|
+
|
|
|
+//#define Pager_GetBkColor(hwnd) \
|
|
|
+// (COLORREF)SNDMSG((hwnd), PGM_GETBKCOLOR, 0, 0)
|
|
|
+
|
|
|
+Function Pager_GetBkColor( hwnd : hwnd):COLORREF;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=COLORREF(SendMessage((hwnd), PGM_GETBKCOLOR, 0, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 297
|
|
|
+
|
|
|
+//#define Pager_SetBorder(hwnd, iBorder) \
|
|
|
+// (int)SNDMSG((hwnd), PGM_SETBORDER, 0, (LPARAM)(iBorder))
|
|
|
+
|
|
|
+Function Pager_SetBorder( hwnd : hwnd; iBorder : LPARAM):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwnd), PGM_SETBORDER, 0, iBorder))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 298
|
|
|
+// #define Pager_GetBorder(hwnd) \
|
|
|
+// (int)SNDMSG((hwnd), PGM_GETBORDER, 0, 0)
|
|
|
+
|
|
|
+Function Pager_GetBorder( hwnd : hwnd):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwnd), PGM_GETBORDER, 0, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 299
|
|
|
+
|
|
|
+//#define Pager_SetPos(hwnd, iPos) \
|
|
|
+// (int)SNDMSG((hwnd), PGM_SETPOS, 0, (LPARAM)(iPos))
|
|
|
+
|
|
|
+Function Pager_SetPos( hwnd : hwnd; iPos : LPARAM):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwnd), PGM_SETPOS, 0, iPos))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 300
|
|
|
+
|
|
|
+//#define Pager_GetPos(hwnd) \
|
|
|
+// (int)SNDMSG((hwnd), PGM_GETPOS, 0, 0)
|
|
|
+
|
|
|
+Function Pager_GetPos( hwnd : hwnd):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwnd), PGM_GETPOS, 0, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 301
|
|
|
+
|
|
|
+//#define Pager_SetButtonSize(hwnd, iSize) \
|
|
|
+// (int)SNDMSG((hwnd), PGM_SETBUTTONSIZE, 0, (LPARAM)(iSize))
|
|
|
+
|
|
|
+Function Pager_SetButtonSize( hwnd : hwnd; iSize : LPARAM):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwnd), PGM_SETBUTTONSIZE, 0, iSize))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 302
|
|
|
+
|
|
|
+//#define Pager_GetButtonSize(hwnd) \
|
|
|
+// (int)SNDMSG((hwnd), PGM_GETBUTTONSIZE, 0,0)
|
|
|
+
|
|
|
+Function Pager_GetButtonSize( hwnd : hwnd):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwnd), PGM_GETBUTTONSIZE, 0,0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 303
|
|
|
+
|
|
|
+//#define Pager_GetButtonState(hwnd, iButton) \
|
|
|
+// (DWORD)SNDMSG((hwnd), PGM_GETBUTTONSTATE, 0, (LPARAM)(iButton))
|
|
|
+
|
|
|
+Function Pager_GetButtonState( hwnd : hwnd; iButton : LPARAM):DWORD;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=DWORD(SendMessage((hwnd), PGM_GETBUTTONSTATE, 0, iButton))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 304
|
|
|
+// #define Pager_GetDropTarget(hwnd, ppdt) \
|
|
|
+// (void)SNDMSG((hwnd), PGM_GETDROPTARGET, 0, (LPARAM)(ppdt))
|
|
|
+
|
|
|
+Procedure Pager_GetDropTarget( hwnd : hwnd; ppdt : LPARAM);
|
|
|
+
|
|
|
+Begin
|
|
|
+SendMessage((hwnd), PGM_GETDROPTARGET, 0, ppdt)
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 305
|
|
|
+// #define Button_GetIdealSize(hwnd, psize)\
|
|
|
+// (BOOL)SNDMSG((hwnd), BCM_GETIDEALSIZE, 0, (LPARAM)(psize))
|
|
|
+
|
|
|
+Function Button_GetIdealSize( hwnd : hwnd; psize : LPARAM):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), BCM_GETIDEALSIZE, 0, psize))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 306
|
|
|
+// #define Button_SetImageList(hwnd, pbuttonImagelist)\
|
|
|
+// (BOOL)SNDMSG((hwnd), BCM_SETIMAGELIST, 0, (LPARAM)(pbuttonImagelist))
|
|
|
+
|
|
|
+Function Button_SetImageList( hwnd : hwnd; pbuttonImagelist : LPARAM):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), BCM_SETIMAGELIST, 0, pbuttonImagelist))
|
|
|
+end;
|
|
|
+
|
|
|
+// Macro 307
|
|
|
+// #define Button_GetImageList(hwnd, pbuttonImagelist)\
|
|
|
+// (BOOL)SNDMSG((hwnd), BCM_GETIMAGELIST, 0, (LPARAM)(pbuttonImagelist))
|
|
|
+
|
|
|
+Function Button_GetImageList( hwnd : hwnd; pbuttonImagelist : LPARAM):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), BCM_GETIMAGELIST, 0, pbuttonImagelist))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 308
|
|
|
+// #define Button_SetTextMargin(hwnd, pmargin)\
|
|
|
+// (BOOL)SNDMSG((hwnd), BCM_SETTEXTMARGIN, 0, (LPARAM)(pmargin))
|
|
|
+
|
|
|
+Function Button_SetTextMargin( hwnd : hwnd; pmargin : LPARAM):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), BCM_SETTEXTMARGIN, 0, pmargin))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 309
|
|
|
+// #define Button_GetTextMargin(hwnd, pmargin)\
|
|
|
+// (BOOL)SNDMSG((hwnd), BCM_GETTEXTMARGIN, 0, (LPARAM)(pmargin))
|
|
|
+
|
|
|
+Function Button_GetTextMargin( hwnd : hwnd; pmargin : LPARAM):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), BCM_GETTEXTMARGIN, 0, pmargin))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 310
|
|
|
+// #define Edit_SetCueBannerText(hwnd, lpcwText) \
|
|
|
+// (BOOL)SNDMSG((hwnd), EM_SETCUEBANNER, 0, (LPARAM)(lpcwText))
|
|
|
+
|
|
|
+Function Edit_SetCueBannerText( hwnd : hwnd; lpcwText : LPARAM):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), EM_SETCUEBANNER, 0, lpcwText))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 311
|
|
|
+//#define Edit_GetCueBannerText(hwnd, lpwText, cchText) \
|
|
|
+// (BOOL)SNDMSG((hwnd), EM_GETCUEBANNER, (WPARAM)(lpwText), (LPARAM)(cchText))
|
|
|
+
|
|
|
+Function Edit_GetCueBannerText( hwnd : hwnd; lpwText : WPARAM; cchText : LPARAM):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), EM_GETCUEBANNER, lpwText, cchText))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 312
|
|
|
+// #define Edit_ShowBalloonTip(hwnd, peditballoontip) \
|
|
|
+// (BOOL)SNDMSG((hwnd), EM_SHOWBALLOONTIP, 0, (LPARAM)(peditballoontip))
|
|
|
+
|
|
|
+Function Edit_ShowBalloonTip( hwnd : hwnd; peditballoontip : LPARAM):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), EM_SHOWBALLOONTIP, 0, peditballoontip))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 313
|
|
|
+// #define Edit_HideBalloonTip(hwnd) \
|
|
|
+// (BOOL)SNDMSG((hwnd), EM_HIDEBALLOONTIP, 0, 0)
|
|
|
+
|
|
|
+Function Edit_HideBalloonTip( hwnd : hwnd):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), EM_HIDEBALLOONTIP, 0, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 314
|
|
|
+//#define ComboBox_SetMinVisible(hwnd, iMinVisible) \
|
|
|
+// (BOOL)SNDMSG((hwnd), CB_SETMINVISIBLE, (WPARAM)iMinVisible, 0)
|
|
|
+
|
|
|
+Function ComboBox_SetMinVisible( hwnd : hwnd; iMinVisible : WPARAM):BOOL;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=BOOL(SendMessage((hwnd), CB_SETMINVISIBLE, iMinVisible, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+// Macro 315
|
|
|
+// #define ComboBox_GetMinVisible(hwnd) \
|
|
|
+// (int)SNDMSG((hwnd), CB_GETMINVISIBLE, 0, 0)
|
|
|
+
|
|
|
+Function ComboBox_GetMinVisible( hwnd : hwnd):cint;
|
|
|
+
|
|
|
+Begin
|
|
|
+ Result:=cint(SendMessage((hwnd), CB_GETMINVISIBLE, 0, 0))
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+End.
|