fpc/rtl/win32/commctrl.pp
2005-02-14 17:13:06 +00:00

12331 lines
379 KiB
ObjectPascal

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.