Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Init faf6e42 Nov 12, 2012
1 contributor

Users who have contributed to this file

12386 lines (10924 sloc) 389 KB
{*******************************************************}
{ }
{ Delphi Runtime Library }
{ }
{ File: CommCtrl.h }
{ Copyright (c) Microsoft Corporation. }
{ All Rights Reserved. }
{ }
{ Translator: Embarcadero Technologies, Inc. }
{ Copyright(c) 1995-2010 Embarcadero Technologies, Inc. }
{ }
{*******************************************************}
{ Minimalistic edition }
{ Makes EXE about 40 kB smaller! }
{ ActiveX (and Variants) and some ImageList routines }
{ excluded }
{ Define MiniRTL variable to switch mini-mode on }
{ (and ensure the unit is included before }
{ its standard RTL copy!) }
{ If you use RTL units that use CommCtrl, you'll have }
{ to copy them near this file }
{*******************************************************}
{ Win32 Common Controls Interface Unit }
{*******************************************************}
unit CommCtrl;
{$WEAKPACKAGEUNIT}
{$IFDEF MiniRTL} // don't show compiler messages leaving all these places for EBMT to fix
{$WARNINGS OFF}
{$HINTS OFF}
{$ENDIF}
interface
(*$HPPEMIT '' *)
(*$HPPEMIT '#include <CommCtrl.h>' *)
(*$HPPEMIT '' *)
{ Although the COMMCTRL unit requires the ActiveX unit, COMMCTRL.HPP does }
{ not require ActiveX.hpp to compile. Hence the $NOINCLUDE directive. }
{$IFNDEF MiniRTL}
(*$NOINCLUDE ActiveX *)
{$ENDIF}
uses Messages, Windows{$IFNDEF MiniRTL}, ActiveX{$ENDIF};
{ From prsht.h -- Interface for the Windows Property Sheet Pages }
const
{$EXTERNALSYM MAXPROPPAGES}
MAXPROPPAGES = 100;
{$EXTERNALSYM PSP_DEFAULT}
PSP_DEFAULT = $00000000;
{$EXTERNALSYM PSP_DLGINDIRECT}
PSP_DLGINDIRECT = $00000001;
{$EXTERNALSYM PSP_USEHICON}
PSP_USEHICON = $00000002;
{$EXTERNALSYM PSP_USEICONID}
PSP_USEICONID = $00000004;
{$EXTERNALSYM PSP_USETITLE}
PSP_USETITLE = $00000008;
{$EXTERNALSYM PSP_RTLREADING}
PSP_RTLREADING = $00000010;
{$EXTERNALSYM PSP_HASHELP}
PSP_HASHELP = $00000020;
{$EXTERNALSYM PSP_USEREFPARENT}
PSP_USEREFPARENT = $00000040;
{$EXTERNALSYM PSP_USECALLBACK}
PSP_USECALLBACK = $00000080;
{$EXTERNALSYM PSP_PREMATURE}
PSP_PREMATURE = $00000400;
{$EXTERNALSYM PSP_HIDEHEADER}
PSP_HIDEHEADER = $00000800;
{$EXTERNALSYM PSP_USEHEADERTITLE}
PSP_USEHEADERTITLE = $00001000;
{$EXTERNALSYM PSP_USEHEADERSUBTITLE}
PSP_USEHEADERSUBTITLE = $00002000;
{$EXTERNALSYM PSPCB_RELEASE}
PSPCB_RELEASE = 1;
{$EXTERNALSYM PSPCB_CREATE}
PSPCB_CREATE = 2;
{$EXTERNALSYM PSH_DEFAULT}
PSH_DEFAULT = $00000000;
{$EXTERNALSYM PSH_PROPTITLE}
PSH_PROPTITLE = $00000001;
{$EXTERNALSYM PSH_USEHICON}
PSH_USEHICON = $00000002;
{$EXTERNALSYM PSH_USEICONID}
PSH_USEICONID = $00000004;
{$EXTERNALSYM PSH_PROPSHEETPAGE}
PSH_PROPSHEETPAGE = $00000008;
{$EXTERNALSYM PSH_WIZARDHASFINISH}
PSH_WIZARDHASFINISH = $00000010;
PSH_MULTILINETABS = $00000010;
{$EXTERNALSYM PSH_WIZARD}
PSH_WIZARD = $00000020;
{$EXTERNALSYM PSH_USEPSTARTPAGE}
PSH_USEPSTARTPAGE = $00000040;
{$EXTERNALSYM PSH_NOAPPLYNOW}
PSH_NOAPPLYNOW = $00000080;
{$EXTERNALSYM PSH_USECALLBACK}
PSH_USECALLBACK = $00000100;
{$EXTERNALSYM PSH_HASHELP}
PSH_HASHELP = $00000200;
{$EXTERNALSYM PSH_MODELESS}
PSH_MODELESS = $00000400;
{$EXTERNALSYM PSH_RTLREADING}
PSH_RTLREADING = $00000800;
{$EXTERNALSYM PSH_WIZARDCONTEXTHELP}
PSH_WIZARDCONTEXTHELP = $00001000;
{$EXTERNALSYM PSH_WIZARD97}
PSH_WIZARD97 = $00002000;
{$EXTERNALSYM PSH_WATERMARK}
PSH_WATERMARK = $00008000;
{$EXTERNALSYM PSH_USEHBMWATERMARK}
PSH_USEHBMWATERMARK = $00010000; // user pass in a hbmWatermark instead of pszbmWatermark
{$EXTERNALSYM PSH_USEHPLWATERMARK}
PSH_USEHPLWATERMARK = $00020000; //
{$EXTERNALSYM PSH_STRETCHWATERMARK}
PSH_STRETCHWATERMARK = $00040000; // stretchwatermark also applies for the header
{$EXTERNALSYM PSH_HEADER}
PSH_HEADER = $00080000;
{$EXTERNALSYM PSH_USEHBMHEADER}
PSH_USEHBMHEADER = $00100000;
{$EXTERNALSYM PSH_USEPAGELANG}
PSH_USEPAGELANG = $00200000; // use frame dialog template matched to page
{$EXTERNALSYM PSCB_INITIALIZED}
PSCB_INITIALIZED = 1;
{$EXTERNALSYM PSCB_PRECREATE}
PSCB_PRECREATE = 2;
{$EXTERNALSYM PSN_FIRST}
PSN_FIRST = -200;
{$EXTERNALSYM PSN_LAST}
PSN_LAST = -299;
{$EXTERNALSYM PSN_SETACTIVE}
PSN_SETACTIVE = PSN_FIRST - 0;
{$EXTERNALSYM PSN_KILLACTIVE}
PSN_KILLACTIVE = PSN_FIRST - 1;
{$EXTERNALSYM PSN_APPLY}
PSN_APPLY = PSN_FIRST - 2;
{$EXTERNALSYM PSN_RESET}
PSN_RESET = PSN_FIRST - 3;
{$EXTERNALSYM PSN_HELP}
PSN_HELP = PSN_FIRST - 5;
{$EXTERNALSYM PSN_WIZBACK}
PSN_WIZBACK = PSN_FIRST - 6;
{$EXTERNALSYM PSN_WIZNEXT}
PSN_WIZNEXT = PSN_FIRST - 7;
{$EXTERNALSYM PSN_WIZFINISH}
PSN_WIZFINISH = PSN_FIRST - 8;
{$EXTERNALSYM PSN_QUERYCANCEL}
PSN_QUERYCANCEL = PSN_FIRST - 9;
{$EXTERNALSYM PSN_GETOBJECT}
PSN_GETOBJECT = PSN_FIRST - 10;
{$EXTERNALSYM PSNRET_NOERROR}
PSNRET_NOERROR = 0;
{$EXTERNALSYM PSNRET_INVALID}
PSNRET_INVALID = 1;
{$EXTERNALSYM PSNRET_INVALID_NOCHANGEPAGE}
PSNRET_INVALID_NOCHANGEPAGE = 2;
{$EXTERNALSYM PSM_SETCURSEL}
PSM_SETCURSEL = WM_USER + 101;
{$EXTERNALSYM PSM_REMOVEPAGE}
PSM_REMOVEPAGE = WM_USER + 102;
{$EXTERNALSYM PSM_ADDPAGE}
PSM_ADDPAGE = WM_USER + 103;
{$EXTERNALSYM PSM_CHANGED}
PSM_CHANGED = WM_USER + 104;
{$EXTERNALSYM PSM_RESTARTWINDOWS}
PSM_RESTARTWINDOWS = WM_USER + 105;
{$EXTERNALSYM PSM_REBOOTSYSTEM}
PSM_REBOOTSYSTEM = WM_USER + 106;
{$EXTERNALSYM PSM_CANCELTOCLOSE}
PSM_CANCELTOCLOSE = WM_USER + 107;
{$EXTERNALSYM PSM_QUERYSIBLINGS}
PSM_QUERYSIBLINGS = WM_USER + 108;
{$EXTERNALSYM PSM_UNCHANGED}
PSM_UNCHANGED = WM_USER + 109;
{$EXTERNALSYM PSM_APPLY}
PSM_APPLY = WM_USER + 110;
{$EXTERNALSYM PSM_SETTITLE}
PSM_SETTITLE = WM_USER + 111;
{$EXTERNALSYM PSM_SETTITLEW}
PSM_SETTITLEW = WM_USER + 120;
{$EXTERNALSYM PSM_SETWIZBUTTONS}
PSM_SETWIZBUTTONS = WM_USER + 112;
{$EXTERNALSYM PSM_PRESSBUTTON}
PSM_PRESSBUTTON = WM_USER + 113;
{$EXTERNALSYM PSM_SETCURSELID}
PSM_SETCURSELID = WM_USER + 114;
{$EXTERNALSYM PSM_SETFINISHTEXT}
PSM_SETFINISHTEXT = WM_USER + 115;
{$EXTERNALSYM PSM_SETFINISHTEXTW}
PSM_SETFINISHTEXTW = WM_USER + 121;
{$EXTERNALSYM PSM_GETTABCONTROL}
PSM_GETTABCONTROL = WM_USER + 116;
{$EXTERNALSYM PSM_ISDIALOGMESSAGE}
PSM_ISDIALOGMESSAGE = WM_USER + 117;
{$EXTERNALSYM PSWIZB_BACK}
PSWIZB_BACK = $00000001;
{$EXTERNALSYM PSWIZB_NEXT}
PSWIZB_NEXT = $00000002;
{$EXTERNALSYM PSWIZB_FINISH}
PSWIZB_FINISH = $00000004;
{$EXTERNALSYM PSWIZB_DISABLEDFINISH}
PSWIZB_DISABLEDFINISH = $00000008;
{$EXTERNALSYM PSBTN_BACK}
PSBTN_BACK = 0;
{$EXTERNALSYM PSBTN_NEXT}
PSBTN_NEXT = 1;
{$EXTERNALSYM PSBTN_FINISH}
PSBTN_FINISH = 2;
{$EXTERNALSYM PSBTN_OK}
PSBTN_OK = 3;
{$EXTERNALSYM PSBTN_APPLYNOW}
PSBTN_APPLYNOW = 4;
{$EXTERNALSYM PSBTN_CANCEL}
PSBTN_CANCEL = 5;
{$EXTERNALSYM PSBTN_HELP}
PSBTN_HELP = 6;
{$EXTERNALSYM PSBTN_MAX}
PSBTN_MAX = 6;
{$EXTERNALSYM ID_PSRESTARTWINDOWS}
ID_PSRESTARTWINDOWS = 2;
{$EXTERNALSYM ID_PSREBOOTSYSTEM}
ID_PSREBOOTSYSTEM = ID_PSRESTARTWINDOWS or 1;
{$EXTERNALSYM WIZ_CXDLG}
WIZ_CXDLG = 276;
{$EXTERNALSYM WIZ_CYDLG}
WIZ_CYDLG = 140;
{$EXTERNALSYM WIZ_CXBMP}
WIZ_CXBMP = 80;
{$EXTERNALSYM WIZ_BODYX}
WIZ_BODYX = 92;
{$EXTERNALSYM WIZ_BODYCX}
WIZ_BODYCX = 184;
{$EXTERNALSYM PROP_SM_CXDLG}
PROP_SM_CXDLG = 212;
{$EXTERNALSYM PROP_SM_CYDLG}
PROP_SM_CYDLG = 188;
{$EXTERNALSYM PROP_MED_CXDLG}
PROP_MED_CXDLG = 227;
{$EXTERNALSYM PROP_MED_CYDLG}
PROP_MED_CYDLG = 215;
{$EXTERNALSYM PROP_LG_CXDLG}
PROP_LG_CXDLG = 252;
{$EXTERNALSYM PROP_LG_CYDLG}
PROP_LG_CYDLG = 218;
type
HPropSheetPage = Pointer;
PPropSheetPageA = ^TPropSheetPageA;
PPropSheetPageW = ^TPropSheetPageW;
PPropSheetPage = PPropSheetPageW;
{$EXTERNALSYM LPFNPSPCALLBACKA}
LPFNPSPCALLBACKA = function(Wnd: HWnd; Msg: Integer;
PPSP: PPropSheetPageA): Integer stdcall;
{$EXTERNALSYM LPFNPSPCALLBACKW}
LPFNPSPCALLBACKW = function(Wnd: HWnd; Msg: Integer;
PPSP: PPropSheetPageW): Integer stdcall;
{$EXTERNALSYM LPFNPSPCALLBACK}
LPFNPSPCALLBACK = LPFNPSPCALLBACKW;
TFNPSPCallbackA = LPFNPSPCALLBACKA;
TFNPSPCallbackW = LPFNPSPCALLBACKW;
TFNPSPCallback = TFNPSPCallbackW;
{$EXTERNALSYM _PROPSHEETPAGEA}
_PROPSHEETPAGEA = record
dwSize: DWORD;
dwFlags: DWORD;
hInstance: THandle;
case Integer of
0: (
pszTemplate: PAnsiChar);
1: (
pResource: Pointer;
case Integer of
0: (
hIcon: THandle);
1: (
pszIcon: PAnsiChar;
pszTitle: PAnsiChar;
pfnDlgProc: Pointer;
lParam: Longint;
pfnCallback: TFNPSPCallbackA;
pcRefParent: PInteger;
pszHeaderTitle: PAnsiChar; // this is displayed in the header
pszHeaderSubTitle: PAnsiChar)); //
end;
{$EXTERNALSYM _PROPSHEETPAGEW}
_PROPSHEETPAGEW = record
dwSize: DWORD;
dwFlags: DWORD;
hInstance: THandle;
case Integer of
0: (
pszTemplate: PWideChar);
1: (
pResource: Pointer;
case Integer of
0: (
hIcon: THandle);
1: (
pszIcon: PWideChar;
pszTitle: PWideChar;
pfnDlgProc: Pointer;
lParam: Longint;
pfnCallback: TFNPSPCallbackW;
pcRefParent: PInteger;
pszHeaderTitle: PWideChar; // this is displayed in the header
pszHeaderSubTitle: PWideChar)); //
end;
{$EXTERNALSYM _PROPSHEETPAGE}
_PROPSHEETPAGE = _PROPSHEETPAGEW;
TPropSheetPageA = _PROPSHEETPAGEA;
TPropSheetPageW = _PROPSHEETPAGEW;
TPropSheetPage = TPropSheetPageW;
{$EXTERNALSYM PROPSHEETPAGEA}
PROPSHEETPAGEA = _PROPSHEETPAGEA;
{$EXTERNALSYM PROPSHEETPAGEW}
PROPSHEETPAGEW = _PROPSHEETPAGEW;
{$EXTERNALSYM PROPSHEETPAGE}
PROPSHEETPAGE = PROPSHEETPAGEW;
{$EXTERNALSYM PFNPROPSHEETCALLBACK}
PFNPROPSHEETCALLBACK = function(Wnd: HWnd; Msg: Integer;
LParam: Integer): Integer stdcall;
TFNPropSheetCallback = PFNPROPSHEETCALLBACK;
PPropSheetHeaderA = ^TPropSheetHeaderA;
PPropSheetHeaderW = ^TPropSheetHeaderW;
PPropSheetHeader = PPropSheetHeaderW;
{$EXTERNALSYM _PROPSHEETHEADERA}
_PROPSHEETHEADERA = record
dwSize: DWORD;
dwFlags: DWORD;
hwndParent: HWnd;
hInstance: THandle;
case Integer of
0: (
hIcon: THandle);
1: (
pszIcon: PAnsiChar;
pszCaption: PAnsiChar;
nPages: Integer;
case Integer of
0: (
nStartPage: Integer);
1: (
pStartPage: PAnsiChar;
case Integer of
0: (
ppsp: PPropSheetPageA);
1: (
phpage: Pointer;
pfnCallback: TFNPropSheetCallback;
case Integer of
0: (
hbmWatermark: HBITMAP);
1: (
pszbmWatermark: PAnsiChar;
hplWatermark: HPALETTE;
// Header bitmap shares the palette with watermark
case Integer of
0: (
hbmHeader: HBITMAP);
1: (
pszbmHeader: PAnsiChar)))));
end;
{$EXTERNALSYM _PROPSHEETHEADERW}
_PROPSHEETHEADERW = record
dwSize: DWORD;
dwFlags: DWORD;
hwndParent: HWnd;
hInstance: THandle;
case Integer of
0: (
hIcon: THandle);
1: (
pszIcon: PWideChar;
pszCaption: PWideChar;
nPages: Integer;
case Integer of
0: (
nStartPage: Integer);
1: (
pStartPage: PWideChar;
case Integer of
0: (
ppsp: PPropSheetPageW);
1: (
phpage: Pointer;
pfnCallback: TFNPropSheetCallback;
case Integer of
0: (
hbmWatermark: HBITMAP);
1: (
pszbmWatermark: PWideChar;
hplWatermark: HPALETTE;
// Header bitmap shares the palette with watermark
case Integer of
0: (
hbmHeader: HBITMAP);
1: (
pszbmHeader: PWideChar)))));
end;
{$EXTERNALSYM _PROPSHEETHEADER}
_PROPSHEETHEADER = _PROPSHEETHEADERW;
TPropSheetHeaderA = _PROPSHEETHEADERA;
TPropSheetHeaderW = _PROPSHEETHEADERW;
TPropSheetHeader = TPropSheetHeaderW;
{$EXTERNALSYM LPFNADDPROPSHEETPAGE}
LPFNADDPROPSHEETPAGE = function(hPSP: HPropSheetPage;
lParam: Longint): BOOL stdcall;
TFNAddPropSheetPage = LPFNADDPROPSHEETPAGE;
{$EXTERNALSYM LPFNADDPROPSHEETPAGES}
LPFNADDPROPSHEETPAGES = function(lpvoid: Pointer; pfn: TFNAddPropSheetPage;
lParam: Longint): BOOL stdcall;
TFNAddPropSheetPages = LPFNADDPROPSHEETPAGES;
{$EXTERNALSYM CreatePropertySheetPage}
function CreatePropertySheetPage(var PSP: TPropSheetPage): HPropSheetPage; stdcall;
{$EXTERNALSYM CreatePropertySheetPageA}
function CreatePropertySheetPageA(var PSP: TPropSheetPageA): HPropSheetPage; stdcall;
{$EXTERNALSYM CreatePropertySheetPageW}
function CreatePropertySheetPageW(var PSP: TPropSheetPageW): HPropSheetPage; stdcall;
{$EXTERNALSYM DestroyPropertySheetPage}
function DestroyPropertySheetPage(hPSP: HPropSheetPage): BOOL; stdcall;
{$EXTERNALSYM PropertySheet}
function PropertySheet(var PSH: TPropSheetHeader): Integer; stdcall;
{$EXTERNALSYM PropertySheetA}
function PropertySheetA(var PSH: TPropSheetHeaderA): Integer; stdcall;
{$EXTERNALSYM PropertySheetW}
function PropertySheetW(var PSH: TPropSheetHeaderW): Integer; stdcall;
{ From commctrl.h }
type
{$EXTERNALSYM tagINITCOMMONCONTROLSEX}
tagINITCOMMONCONTROLSEX = packed record
dwSize: DWORD; // size of this structure
dwICC: DWORD; // flags indicating which classes to be initialized
end;
PInitCommonControlsEx = ^TInitCommonControlsEx;
TInitCommonControlsEx = tagINITCOMMONCONTROLSEX;
const
{$EXTERNALSYM ICC_LISTVIEW_CLASSES}
ICC_LISTVIEW_CLASSES = $00000001; // listview, header
{$EXTERNALSYM ICC_TREEVIEW_CLASSES}
ICC_TREEVIEW_CLASSES = $00000002; // treeview, tooltips
{$EXTERNALSYM ICC_BAR_CLASSES}
ICC_BAR_CLASSES = $00000004; // toolbar, statusbar, trackbar, tooltips
{$EXTERNALSYM ICC_TAB_CLASSES}
ICC_TAB_CLASSES = $00000008; // tab, tooltips
{$EXTERNALSYM ICC_UPDOWN_CLASS}
ICC_UPDOWN_CLASS = $00000010; // updown
{$EXTERNALSYM ICC_PROGRESS_CLASS}
ICC_PROGRESS_CLASS = $00000020; // progress
{$EXTERNALSYM ICC_HOTKEY_CLASS}
ICC_HOTKEY_CLASS = $00000040; // hotkey
{$EXTERNALSYM ICC_ANIMATE_CLASS}
ICC_ANIMATE_CLASS = $00000080; // animate
{$EXTERNALSYM ICC_WIN95_CLASSES}
ICC_WIN95_CLASSES = $000000FF;
{$EXTERNALSYM ICC_DATE_CLASSES}
ICC_DATE_CLASSES = $00000100; // month picker, date picker, time picker, updown
{$EXTERNALSYM ICC_USEREX_CLASSES}
ICC_USEREX_CLASSES = $00000200; // comboex
{$EXTERNALSYM ICC_COOL_CLASSES}
ICC_COOL_CLASSES = $00000400; // rebar (coolbar) control
{$EXTERNALSYM ICC_INTERNET_CLASSES}
ICC_INTERNET_CLASSES = $00000800;
{$EXTERNALSYM ICC_PAGESCROLLER_CLASS}
ICC_PAGESCROLLER_CLASS = $00001000; // page scroller
{$EXTERNALSYM ICC_NATIVEFNTCTL_CLASS}
ICC_NATIVEFNTCTL_CLASS = $00002000; // native font control
{ For Windows >= XP }
{$EXTERNALSYM ICC_STANDARD_CLASSES}
ICC_STANDARD_CLASSES = $00004000;
{$EXTERNALSYM ICC_LINK_CLASS}
ICC_LINK_CLASS = $00008000;
{$EXTERNALSYM InitCommonControls}
procedure InitCommonControls; stdcall;
{$EXTERNALSYM InitCommonControlsEx}
function InitCommonControlsEx(var ICC: TInitCommonControlsEx): Bool; { Re-defined below }
const
{$EXTERNALSYM IMAGE_BITMAP}
IMAGE_BITMAP = 0;
const
{$EXTERNALSYM ODT_HEADER}
ODT_HEADER = 100;
{$EXTERNALSYM ODT_TAB}
ODT_TAB = 101;
{$EXTERNALSYM ODT_LISTVIEW}
ODT_LISTVIEW = 102;
{ ====== Ranges for control message IDs ======================= }
const
{$EXTERNALSYM LVM_FIRST}
LVM_FIRST = $1000; { ListView messages }
{$EXTERNALSYM TV_FIRST}
TV_FIRST = $1100; { TreeView messages }
{$EXTERNALSYM HDM_FIRST}
HDM_FIRST = $1200; { Header messages }
{$EXTERNALSYM TCM_FIRST}
TCM_FIRST = $1300; { Tab control messages }
{$EXTERNALSYM PGM_FIRST}
PGM_FIRST = $1400; { Pager control messages }
{ For Windows >= XP }
{$EXTERNALSYM ECM_FIRST}
ECM_FIRST = $1500; { Edit control messages }
{$EXTERNALSYM BCM_FIRST}
BCM_FIRST = $1600; { Button control messages }
{$EXTERNALSYM CBM_FIRST}
CBM_FIRST = $1700; { Combobox control messages }
{$EXTERNALSYM CCM_FIRST}
CCM_FIRST = $2000; { Common control shared messages }
{$EXTERNALSYM CCM_LAST}
CCM_LAST = CCM_FIRST + $200;
{$EXTERNALSYM CCM_SETBKCOLOR}
CCM_SETBKCOLOR = CCM_FIRST + 1; // lParam is bkColor
type
{$EXTERNALSYM tagCOLORSCHEME}
tagCOLORSCHEME = packed record
dwSize: DWORD;
clrBtnHighlight: COLORREF; // highlight color
clrBtnShadow: COLORREF; // shadow color
end;
PColorScheme = ^TColorScheme;
TColorScheme = tagCOLORSCHEME;
const
{$EXTERNALSYM CCM_SETCOLORSCHEME}
CCM_SETCOLORSCHEME = CCM_FIRST + 2; // lParam is color scheme
{$EXTERNALSYM CCM_GETCOLORSCHEME}
CCM_GETCOLORSCHEME = CCM_FIRST + 3; // fills in COLORSCHEME pointed to by lParam
{$EXTERNALSYM CCM_GETDROPTARGET}
CCM_GETDROPTARGET = CCM_FIRST + 4;
{$EXTERNALSYM CCM_SETUNICODEFORMAT}
CCM_SETUNICODEFORMAT = CCM_FIRST + 5;
{$EXTERNALSYM CCM_GETUNICODEFORMAT}
CCM_GETUNICODEFORMAT = CCM_FIRST + 6;
{$EXTERNALSYM CCM_SETVERSION}
CCM_SETVERSION = CCM_FIRST + $7;
{$EXTERNALSYM CCM_GETVERSION}
CCM_GETVERSION = CCM_FIRST + $8;
{$EXTERNALSYM CCM_SETNOTIFYWINDOW}
CCM_SETNOTIFYWINDOW = CCM_FIRST + $9; { wParam == hwndParent. }
{ For Windows >= XP }
{$EXTERNALSYM CCM_SETWINDOWTHEME}
CCM_SETWINDOWTHEME = CCM_FIRST + $B;
{$EXTERNALSYM CCM_DPISCALE}
CCM_DPISCALE = CCM_FIRST + $C; { wParam == Awareness }
{$EXTERNALSYM INFOTIPSIZE}
INFOTIPSIZE = 1024; // for tooltips
{ ====== WM_NOTIFY codes (NMHDR.code values) ================== }
const
{$EXTERNALSYM NM_FIRST}
NM_FIRST = 0- 0; { generic to all controls }
{$EXTERNALSYM NM_LAST}
NM_LAST = 0- 99;
{$EXTERNALSYM LVN_FIRST}
LVN_FIRST = 0-100; { listview }
{$EXTERNALSYM LVN_LAST}
LVN_LAST = 0-199;
{$EXTERNALSYM HDN_FIRST}
HDN_FIRST = 0-300; { header }
{$EXTERNALSYM HDN_LAST}
HDN_LAST = 0-399;
{$EXTERNALSYM TVN_FIRST}
TVN_FIRST = 0-400; { treeview }
{$EXTERNALSYM TVN_LAST}
TVN_LAST = 0-499;
{$EXTERNALSYM TTN_FIRST}
TTN_FIRST = 0-520; { tooltips }
{$EXTERNALSYM TTN_LAST}
TTN_LAST = 0-549;
{$EXTERNALSYM TCN_FIRST}
TCN_FIRST = 0-550; { tab control }
{$EXTERNALSYM TCN_LAST}
TCN_LAST = 0-580;
{ Shell reserved (0-580) - (0-589) }
{$EXTERNALSYM CDN_FIRST}
CDN_FIRST = 0-601; { common dialog (new) }
{$EXTERNALSYM CDN_LAST}
CDN_LAST = 0-699;
{$EXTERNALSYM TBN_FIRST}
TBN_FIRST = 0-700; { toolbar }
{$EXTERNALSYM TBN_LAST}
TBN_LAST = 0-720;
{$EXTERNALSYM UDN_FIRST}
UDN_FIRST = 0-721; { updown }
{$EXTERNALSYM UDN_LAST}
UDN_LAST = 0-740;
{$EXTERNALSYM MCN_FIRST}
MCN_FIRST = 0-750; { monthcal }
{$EXTERNALSYM MCN_LAST}
MCN_LAST = 0-759;
{$EXTERNALSYM DTN_FIRST}
DTN_FIRST = 0-760; { datetimepick }
{$EXTERNALSYM DTN_LAST}
DTN_LAST = 0-799;
{$EXTERNALSYM CBEN_FIRST}
CBEN_FIRST = 0-800; { combo box ex }
{$EXTERNALSYM CBEN_LAST}
CBEN_LAST = 0-830;
{$EXTERNALSYM RBN_FIRST}
RBN_FIRST = 0-831; { coolbar }
{$EXTERNALSYM RBN_LAST}
RBN_LAST = 0-859;
{$EXTERNALSYM IPN_FIRST}
IPN_FIRST = 0-860; { internet address }
{$EXTERNALSYM IPN_LAST}
IPN_LAST = 0-879; { internet address }
{$EXTERNALSYM SBN_FIRST}
SBN_FIRST = 0-880; { status bar }
{$EXTERNALSYM SBN_LAST}
SBN_LAST = 0-899;
{$EXTERNALSYM PGN_FIRST}
PGN_FIRST = 0-900; { Pager Control }
{$EXTERNALSYM PGN_LAST}
PGN_LAST = 0-950;
{$EXTERNALSYM WMN_FIRST}
WMN_FIRST = 0-1000;
{$EXTERNALSYM WMN_LAST}
WMN_LAST = 0-1200;
{ For Windows >= XP }
{$EXTERNALSYM BCN_FIRST}
BCN_FIRST = 0-1250;
{$EXTERNALSYM BCN_LAST}
BCN_LAST = 0-1350;
{ For Windows >= Vista }
{$EXTERNALSYM TRBN_FIRST}
TRBN_FIRST = 0-1501; { trackbar }
{$EXTERNALSYM TRBN_LAST}
TRBN_LAST = 0-1519;
{$EXTERNALSYM MSGF_COMMCTRL_BEGINDRAG}
MSGF_COMMCTRL_BEGINDRAG = $4200;
{$EXTERNALSYM MSGF_COMMCTRL_SIZEHEADER}
MSGF_COMMCTRL_SIZEHEADER = $4201;
{$EXTERNALSYM MSGF_COMMCTRL_DRAGSELECT}
MSGF_COMMCTRL_DRAGSELECT = $4202;
{$EXTERNALSYM MSGF_COMMCTRL_TOOLBARCUST}
MSGF_COMMCTRL_TOOLBARCUST = $4203;
{ ====== Generic WM_NOTIFY notification codes ================= }
const
{$EXTERNALSYM NM_OUTOFMEMORY}
NM_OUTOFMEMORY = NM_FIRST-1;
{$EXTERNALSYM NM_CLICK}
NM_CLICK = NM_FIRST-2;
{$EXTERNALSYM NM_DBLCLK}
NM_DBLCLK = NM_FIRST-3;
{$EXTERNALSYM NM_RETURN}
NM_RETURN = NM_FIRST-4;
{$EXTERNALSYM NM_RCLICK}
NM_RCLICK = NM_FIRST-5;
{$EXTERNALSYM NM_RDBLCLK}
NM_RDBLCLK = NM_FIRST-6;
{$EXTERNALSYM NM_SETFOCUS}
NM_SETFOCUS = NM_FIRST-7;
{$EXTERNALSYM NM_KILLFOCUS}
NM_KILLFOCUS = NM_FIRST-8;
{$EXTERNALSYM NM_CUSTOMDRAW}
NM_CUSTOMDRAW = NM_FIRST-12;
{$EXTERNALSYM NM_HOVER}
NM_HOVER = NM_FIRST-13;
{$EXTERNALSYM NM_NCHITTEST}
NM_NCHITTEST = NM_FIRST-14; // uses NMMOUSE struct
{$EXTERNALSYM NM_KEYDOWN}
NM_KEYDOWN = NM_FIRST-15; // uses NMKEY struct
{$EXTERNALSYM NM_RELEASEDCAPTURE}
NM_RELEASEDCAPTURE = NM_FIRST-16;
{$EXTERNALSYM NM_SETCURSOR}
NM_SETCURSOR = NM_FIRST-17; // uses NMMOUSE struct
{$EXTERNALSYM NM_CHAR}
NM_CHAR = NM_FIRST-18; // uses NMCHAR struct
{$EXTERNALSYM NM_TOOLTIPSCREATED}
NM_TOOLTIPSCREATED = NM_FIRST-19; { notify of when the tooltips window is create }
{$EXTERNALSYM NM_LDOWN}
NM_LDOWN = NM_FIRST-20;
{$EXTERNALSYM NM_RDOWN}
NM_RDOWN = NM_FIRST-21;
{$EXTERNALSYM NM_THEMECHANGED}
NM_THEMECHANGED = NM_FIRST-22;
{ For Windows >= Vista }
{$EXTERNALSYM NM_FONTCHANGED}
NM_FONTCHANGED = NM_FIRST-23;
{$EXTERNALSYM NM_CUSTOMTEXT}
NM_CUSTOMTEXT = NM_FIRST-24; { uses NMCUSTOMTEXT struct }
{$EXTERNALSYM NM_TVSTATEIMAGECHANGING}
NM_TVSTATEIMAGECHANGING = NM_FIRST-24; { uses NMTVSTATEIMAGECHANGING struct, defined after HTREEITEM }
type
{$EXTERNALSYM tagNMMOUSE}
tagNMMOUSE = packed record
hdr: TNMHdr;
dwItemSpec: DWORD;
dwItemData: DWORD;
pt: TPoint;
dwHitInfo: DWORD; // any specifics about where on the item or control the mouse is
end;
PNMMouse = ^TNMMouse;
TNMMouse = tagNMMOUSE;
PNMClick = ^TNMClick;
TNMClick = tagNMMOUSE;
// Generic structure to request an object of a specific type.
{$EXTERNALSYM tagNMOBJECTNOTIFY}
tagNMOBJECTNOTIFY = packed record
hdr: TNMHdr;
iItem: Integer;
piid: PGUID;
pObject: Pointer;
hResult: HRESULT;
dwFlags: DWORD; // control specific flags (hints as to where in iItem it hit)
end;
PNMObjectNotify = ^TNMObjectNotify;
TNMObjectNotify = tagNMOBJECTNOTIFY;
// Generic structure for a key
{$EXTERNALSYM tagNMKEY}
tagNMKEY = packed record
hdr: TNMHdr;
nVKey: UINT;
uFlags: UINT;
end;
PNMKey = ^TNMKey;
TNMKey = tagNMKEY;
// Generic structure for a character
{$EXTERNALSYM tagNMCHAR}
tagNMCHAR = packed record
hdr: TNMHdr;
ch: UINT;
dwItemPrev: DWORD; // Item previously selected
dwItemNext: DWORD; // Item to be selected
end;
PNMChar = ^TNMChar;
TNMChar = tagNMCHAR;
{ For IE >= 0x0600 }
{ $EXTERNALSYM tagNMCUSTOMTEXT}
tagNMCUSTOMTEXT = record
hdr: NMHDR;
hDC: HDC;
lpString: LPCWSTR;
nCount: Integer;
lpRect: PRect;
uFormat: UINT;
fLink: BOOL;
end;
PNMCustomText = ^TNMCustomText;
TNMCustomText = tagNMCUSTOMTEXT;
{ ==================== CUSTOM DRAW ========================================== }
const
// custom draw return flags
// values under 0x00010000 are reserved for global custom draw values.
// above that are for specific controls
{$EXTERNALSYM CDRF_DODEFAULT}
CDRF_DODEFAULT = $00000000;
{$EXTERNALSYM CDRF_NEWFONT}
CDRF_NEWFONT = $00000002;
{$EXTERNALSYM CDRF_SKIPDEFAULT}
CDRF_SKIPDEFAULT = $00000004;
{$EXTERNALSYM CDRF_NOTIFYPOSTPAINT}
CDRF_NOTIFYPOSTPAINT = $00000010;
{$EXTERNALSYM CDRF_NOTIFYITEMDRAW}
CDRF_NOTIFYITEMDRAW = $00000020;
{$EXTERNALSYM CDRF_NOTIFYSUBITEMDRAW}
CDRF_NOTIFYSUBITEMDRAW = $00000020; // flags are the same, we can distinguish by context
{$EXTERNALSYM CDRF_NOTIFYPOSTERASE}
CDRF_NOTIFYPOSTERASE = $00000040;
// drawstage flags
// values under = $00010000 are reserved for global custom draw values.
// above that are for specific controls
{$EXTERNALSYM CDDS_PREPAINT}
CDDS_PREPAINT = $00000001;
{$EXTERNALSYM CDDS_POSTPAINT}
CDDS_POSTPAINT = $00000002;
{$EXTERNALSYM CDDS_PREERASE}
CDDS_PREERASE = $00000003;
{$EXTERNALSYM CDDS_POSTERASE}
CDDS_POSTERASE = $00000004;
// the = $000010000 bit means it's individual item specific
{$EXTERNALSYM CDDS_ITEM}
CDDS_ITEM = $00010000;
{$EXTERNALSYM CDDS_ITEMPREPAINT}
CDDS_ITEMPREPAINT = CDDS_ITEM or CDDS_PREPAINT;
{$EXTERNALSYM CDDS_ITEMPOSTPAINT}
CDDS_ITEMPOSTPAINT = CDDS_ITEM or CDDS_POSTPAINT;
{$EXTERNALSYM CDDS_ITEMPREERASE}
CDDS_ITEMPREERASE = CDDS_ITEM or CDDS_PREERASE;
{$EXTERNALSYM CDDS_ITEMPOSTERASE}
CDDS_ITEMPOSTERASE = CDDS_ITEM or CDDS_POSTERASE;
{$EXTERNALSYM CDDS_SUBITEM}
CDDS_SUBITEM = $00020000;
// itemState flags
{$EXTERNALSYM CDIS_SELECTED}
CDIS_SELECTED = $0001;
{$EXTERNALSYM CDIS_GRAYED}
CDIS_GRAYED = $0002;
{$EXTERNALSYM CDIS_DISABLED}
CDIS_DISABLED = $0004;
{$EXTERNALSYM CDIS_CHECKED}
CDIS_CHECKED = $0008;
{$EXTERNALSYM CDIS_FOCUS}
CDIS_FOCUS = $0010;
{$EXTERNALSYM CDIS_DEFAULT}
CDIS_DEFAULT = $0020;
{$EXTERNALSYM CDIS_HOT}
CDIS_HOT = $0040;
{$EXTERNALSYM CDIS_MARKED}
CDIS_MARKED = $0080;
{$EXTERNALSYM CDIS_INDETERMINATE}
CDIS_INDETERMINATE = $0100;
{ For Windows >= XP }
{$EXTERNALSYM CDIS_SHOWKEYBOARDCUES}
CDIS_SHOWKEYBOARDCUES = $0200;
{ For Windows >= Vista }
{$EXTERNALSYM CDIS_NEARHOT}
CDIS_NEARHOT = $0400;
{$EXTERNALSYM CDIS_OTHERSIDEHOT}
CDIS_OTHERSIDEHOT = $0800;
{$EXTERNALSYM CDIS_DROPHILITED}
CDIS_DROPHILITED = $1000;
type
{$EXTERNALSYM tagNMCUSTOMDRAWINFO}
tagNMCUSTOMDRAWINFO = packed record
hdr: TNMHdr;
dwDrawStage: DWORD;
hdc: HDC;
rc: TRect;
dwItemSpec: DWORD; // this is control specific, but it's how to specify an item. valid only with CDDS_ITEM bit set
uItemState: UINT;
lItemlParam: LPARAM;
end;
PNMCustomDraw = ^TNMCustomDraw;
TNMCustomDraw = tagNMCUSTOMDRAWINFO;
{$EXTERNALSYM tagNMTTCUSTOMDRAW}
tagNMTTCUSTOMDRAW = packed record
nmcd: TNMCustomDraw;
uDrawFlags: UINT;
end;
PNMTTCustomDraw = ^TNMTTCustomDraw;
TNMTTCustomDraw = tagNMTTCUSTOMDRAW;
{ ====== IMAGE LIST =========================================== }
const
{$EXTERNALSYM CLR_NONE}
CLR_NONE = $FFFFFFFF;
{$EXTERNALSYM CLR_DEFAULT}
CLR_DEFAULT = $FF000000;
type
{$EXTERNALSYM HIMAGELIST}
HIMAGELIST = THandle;
{$EXTERNALSYM _IMAGELISTDRAWPARAMS}
_IMAGELISTDRAWPARAMS = packed record
cbSize: DWORD;
himl: HIMAGELIST;
i: Integer;
hdcDst: HDC;
x: Integer;
y: Integer;
cx: Integer;
cy: Integer;
xBitmap: Integer; // x offest from the upperleft of bitmap
yBitmap: Integer; // y offset from the upperleft of bitmap
rgbBk: COLORREF;
rgbFg: COLORREF;
fStyle: UINT;
dwRop: DWORD;
{ For IE >= 0x0501 }
fState: DWORD;
Frame: DWORD;
crEffect: COLORREF;
end;
PImageListDrawParams = ^TImageListDrawParams;
TImageListDrawParams = _IMAGELISTDRAWPARAMS;
const
{$EXTERNALSYM ILC_MASK}
ILC_MASK = $0001;
{$EXTERNALSYM ILC_COLOR}
ILC_COLOR = $0000;
{$EXTERNALSYM ILC_COLORDDB}
ILC_COLORDDB = $00FE;
{$EXTERNALSYM ILC_COLOR4}
ILC_COLOR4 = $0004;
{$EXTERNALSYM ILC_COLOR8}
ILC_COLOR8 = $0008;
{$EXTERNALSYM ILC_COLOR16}
ILC_COLOR16 = $0010;
{$EXTERNALSYM ILC_COLOR24}
ILC_COLOR24 = $0018;
{$EXTERNALSYM ILC_COLOR32}
ILC_COLOR32 = $0020;
{$EXTERNALSYM ILC_PALETTE}
ILC_PALETTE = $0800;
{ For Windows >= XP }
{$EXTERNALSYM ILC_MIRROR}
ILC_MIRROR = $00002000; { Mirror the icons contained, if the process is mirrored }
{$EXTERNALSYM ILC_PERITEMMIRROR}
ILC_PERITEMMIRROR = $00008000; { Causes the mirroring code to mirror each item when inserting a set of images, verses the whole strip }
{ For Windows >= Vista }
{$EXTERNALSYM ILC_ORIGINALSIZE}
ILC_ORIGINALSIZE = $00010000; { Imagelist should accept smaller than set images and apply OriginalSize based on image added }
{$EXTERNALSYM ILC_HIGHQUALITYSCALE}
ILC_HIGHQUALITYSCALE = $00020000; { Imagelist should enable use of the high quality scaler. }
{$EXTERNALSYM ImageList_Create}
function ImageList_Create(CX, CY: Integer; Flags: UINT;
Initial, Grow: Integer): HIMAGELIST; stdcall;
{$EXTERNALSYM ImageList_Destroy}
function ImageList_Destroy(ImageList: HIMAGELIST): Bool; stdcall;
{$EXTERNALSYM ImageList_GetImageCount}
function ImageList_GetImageCount(ImageList: HIMAGELIST): Integer; stdcall;
{$EXTERNALSYM ImageList_SetImageCount}
function ImageList_SetImageCount(himl: HIMAGELIST; uNewCount: UINT): Integer; stdcall;
{$EXTERNALSYM ImageList_Add}
function ImageList_Add(ImageList: HIMAGELIST; Image, Mask: HBitmap): Integer; stdcall;
{$EXTERNALSYM ImageList_ReplaceIcon}
function ImageList_ReplaceIcon(ImageList: HIMAGELIST; Index: Integer;
Icon: HIcon): Integer; stdcall;
{$EXTERNALSYM ImageList_SetBkColor}
function ImageList_SetBkColor(ImageList: HIMAGELIST; ClrBk: TColorRef): TColorRef; stdcall;
{$EXTERNALSYM ImageList_GetBkColor}
function ImageList_GetBkColor(ImageList: HIMAGELIST): TColorRef; stdcall;
{$EXTERNALSYM ImageList_SetOverlayImage}
function ImageList_SetOverlayImage(ImageList: HIMAGELIST; Image: Integer;
Overlay: Integer): Bool; stdcall;
{$EXTERNALSYM ImageList_AddIcon}
function ImageList_AddIcon(ImageList: HIMAGELIST; Icon: HIcon): Integer; inline;
const
{$EXTERNALSYM ILD_NORMAL}
ILD_NORMAL = $0000;
{$EXTERNALSYM ILD_TRANSPARENT}
ILD_TRANSPARENT = $0001;
{$EXTERNALSYM ILD_MASK}
ILD_MASK = $0010;
{$EXTERNALSYM ILD_IMAGE}
ILD_IMAGE = $0020;
{$EXTERNALSYM ILD_ROP}
ILD_ROP = $0040;
{$EXTERNALSYM ILD_BLEND25}
ILD_BLEND25 = $0002;
{$EXTERNALSYM ILD_BLEND50}
ILD_BLEND50 = $0004;
{$EXTERNALSYM ILD_OVERLAYMASK}
ILD_OVERLAYMASK = $0F00;
{$EXTERNALSYM ILD_PRESERVEALPHA}
ILD_PRESERVEALPHA = $00001000; // This preserves the alpha channel in dest
{$EXTERNALSYM ILD_SCALE}
ILD_SCALE = $00002000; // Causes the image to be scaled to cx, cy instead of clipped
{$EXTERNALSYM ILD_DPISCALE}
ILD_DPISCALE = $00004000;
{ For Windows >= Vista }
{$EXTERNALSYM ILD_ASYNC}
ILD_ASYNC = $00008000;
{$EXTERNALSYM IndexToOverlayMask}
function IndexToOverlayMask(Index: Integer): Integer; inline;
const
{$EXTERNALSYM ILD_SELECTED}
ILD_SELECTED = ILD_BLEND50;
{$EXTERNALSYM ILD_FOCUS}
ILD_FOCUS = ILD_BLEND25;
{$EXTERNALSYM ILD_BLEND}
ILD_BLEND = ILD_BLEND50;
{$EXTERNALSYM CLR_HILIGHT}
CLR_HILIGHT = CLR_DEFAULT;
{$EXTERNALSYM ILS_NORMAL}
ILS_NORMAL = $00000000;
{$EXTERNALSYM ILS_GLOW}
ILS_GLOW = $00000001;
{$EXTERNALSYM ILS_SHADOW}
ILS_SHADOW = $00000002;
{$EXTERNALSYM ILS_SATURATE}
ILS_SATURATE = $00000004;
{$EXTERNALSYM ILS_ALPHA}
ILS_ALPHA = $00000008;
{ For Windows >= Vista }
{$EXTERNALSYM ILGT_NORMAL}
ILGT_NORMAL = $00000000;
{$EXTERNALSYM ILGT_ASYNC}
ILGT_ASYNC = $00000001;
{$EXTERNALSYM ImageList_Draw}
function ImageList_Draw(ImageList: HIMAGELIST; Index: Integer;
Dest: HDC; X, Y: Integer; Style: UINT): Bool; stdcall;
const
{ For Windows >= Vista }
{$EXTERNALSYM HBITMAP_CALLBACK}
HBITMAP_CALLBACK = HBITMAP(-1); // only for SparseImageList
{$EXTERNALSYM ImageList_Replace}
function ImageList_Replace(ImageList: HIMAGELIST; Index: Integer;
Image, Mask: HBitmap): Bool; stdcall;
{$EXTERNALSYM ImageList_AddMasked}
function ImageList_AddMasked(ImageList: HIMAGELIST; Image: HBitmap;
Mask: TColorRef): Integer; stdcall;
{$EXTERNALSYM ImageList_DrawEx}
function ImageList_DrawEx(ImageList: HIMAGELIST; Index: Integer;
Dest: HDC; X, Y, DX, DY: Integer; Bk, Fg: TColorRef; Style: Cardinal): Bool; stdcall;
{$EXTERNALSYM ImageList_DrawIndirect}
function ImageList_DrawIndirect(pimldp: PImageListDrawParams): Integer; stdcall;
{$EXTERNALSYM ImageList_Remove}
function ImageList_Remove(ImageList: HIMAGELIST; Index: Integer): Bool; stdcall;
{$EXTERNALSYM ImageList_GetIcon}
function ImageList_GetIcon(ImageList: HIMAGELIST; Index: Integer;
Flags: Cardinal): HIcon; stdcall;
{$EXTERNALSYM ImageList_LoadImage}
function ImageList_LoadImage(Instance: THandle; Bmp: PWideChar; CX, Grow: Integer;
Mask: TColorRef; pType, Flags: Cardinal): HIMAGELIST; stdcall;
{$EXTERNALSYM ImageList_LoadImageA}
function ImageList_LoadImageA(Instance: THandle; Bmp: PAnsiChar; CX, Grow: Integer;
Mask: TColorRef; pType, Flags: Cardinal): HIMAGELIST; stdcall;
{$EXTERNALSYM ImageList_LoadImageW}
function ImageList_LoadImageW(Instance: THandle; Bmp: PWideChar; CX, Grow: Integer;
Mask: TColorRef; pType, Flags: Cardinal): HIMAGELIST; stdcall;
const
{$EXTERNALSYM ILCF_MOVE}
ILCF_MOVE = $00000000;
{$EXTERNALSYM ILCF_SWAP}
ILCF_SWAP = $00000001;
{$EXTERNALSYM ImageList_Copy}
function ImageList_Copy(himlDst: HIMAGELIST; iDst: Integer; himlSrc: HIMAGELIST;
Src: Integer; uFlags: UINT): Integer; stdcall;
{$EXTERNALSYM ImageList_BeginDrag}
function ImageList_BeginDrag(ImageList: HIMAGELIST; Track: Integer;
XHotSpot, YHotSpot: Integer): Bool; stdcall;
{$EXTERNALSYM ImageList_EndDrag}
function ImageList_EndDrag: Bool; stdcall;
{$EXTERNALSYM ImageList_DragEnter}
function ImageList_DragEnter(LockWnd: HWnd; X, Y: Integer): Bool; stdcall;
{$EXTERNALSYM ImageList_DragLeave}
function ImageList_DragLeave(LockWnd: HWnd): Bool; stdcall;
{$EXTERNALSYM ImageList_DragMove}
function ImageList_DragMove(X, Y: Integer): Bool; stdcall;
{$EXTERNALSYM ImageList_SetDragCursorImage}
function ImageList_SetDragCursorImage(ImageList: HIMAGELIST; Drag: Integer;
XHotSpot, YHotSpot: Integer): Bool; stdcall;
{$EXTERNALSYM ImageList_DragShowNolock}
function ImageList_DragShowNolock(Show: Bool): Bool; stdcall;
{$EXTERNALSYM ImageList_GetDragImage}
function ImageList_GetDragImage(Point, HotSpot: PPoint): HIMAGELIST; overload; stdcall;
{$EXTERNALSYM ImageList_GetDragImage}
function ImageList_GetDragImage(Point: PPoint; out HotSpot: TPoint): HIMAGELIST; overload; stdcall;
{ macros }
{$EXTERNALSYM ImageList_RemoveAll}
procedure ImageList_RemoveAll(ImageList: HIMAGELIST); inline;
{$EXTERNALSYM ImageList_ExtractIcon}
function ImageList_ExtractIcon(Instance: THandle; ImageList: HIMAGELIST;
Image: Integer): HIcon; inline;
{$EXTERNALSYM ImageList_LoadBitmap}
function ImageList_LoadBitmap(Instance: THandle; Bmp: PWideChar;
CX, Grow: Integer; MasK: TColorRef): HIMAGELIST;
{$EXTERNALSYM ImageList_LoadBitmapA}
function ImageList_LoadBitmapA(Instance: THandle; Bmp: PAnsiChar;
CX, Grow: Integer; MasK: TColorRef): HIMAGELIST;
{$EXTERNALSYM ImageList_LoadBitmapW}
function ImageList_LoadBitmapW(Instance: THandle; Bmp: PWideChar;
CX, Grow: Integer; MasK: TColorRef): HIMAGELIST;
{$IFNDEF MiniRTL}
{$EXTERNALSYM ImageList_Read}
function ImageList_Read(Stream: IStream): HIMAGELIST; stdcall;
{$EXTERNALSYM ImageList_Write}
function ImageList_Write(ImageList: HIMAGELIST; Stream: IStream): BOOL; stdcall;
{$ENDIF}
const
{ For Windows >= XP }
{$EXTERNALSYM ILP_NORMAL}
ILP_NORMAL = 0; { Writes or reads the stream using new sematics for this version of comctl32 }
{$EXTERNALSYM ILP_DOWNLEVEL}
ILP_DOWNLEVEL = 1; { Write or reads the stream using downlevel sematics. }
{$IFNDEF MiniRTL}
{ For Windows >= XP }
{$EXTERNALSYM ImageList_ReadEx}
function ImageList_ReadEx(dwFlags: DWORD; pstm: IStream; const riid: TIID;
var ppv: Pointer): HResult;
{$EXTERNALSYM ImageList_WriteEx}
function ImageList_WriteEx(himl: HIMAGELIST; dwFlags: DWORD;
pstm: IStream): HResult;
{$ENDIF}
type
PImageInfo = ^TImageInfo;
{$EXTERNALSYM _IMAGEINFO}
_IMAGEINFO = packed record
hbmImage: HBitmap;
hbmMask: HBitmap;
Unused1: Integer;
Unused2: Integer;
rcImage: TRect;
end;
TImageInfo = _IMAGEINFO;
{$EXTERNALSYM IMAGEINFO}
IMAGEINFO = _IMAGEINFO;
{$EXTERNALSYM ImageList_GetIconSize}
function ImageList_GetIconSize(ImageList: HIMAGELIST; var CX, CY: Integer): Bool; stdcall;
{$EXTERNALSYM ImageList_SetIconSize}
function ImageList_SetIconSize(ImageList: HIMAGELIST; CX, CY: Integer): Bool; stdcall;
{$EXTERNALSYM ImageList_GetImageInfo}
function ImageList_GetImageInfo(ImageList: HIMAGELIST; Index: Integer;
var ImageInfo: TImageInfo): Bool; stdcall;
{$EXTERNALSYM ImageList_Merge}
function ImageList_Merge(ImageList1: HIMAGELIST; Index1: Integer;
ImageList2: HIMAGELIST; Index2: Integer; DX, DY: Integer): HIMAGELIST; stdcall;
{$EXTERNALSYM ImageList_Duplicate}
function ImageList_Duplicate(himl: HIMAGELIST): HIMAGELIST; stdcall;
{$IFNDEF MiniRTL}
{$EXTERNALSYM HIMAGELIST_QueryInterface}
function HIMAGELIST_QueryInterface(himl: HIMAGELIST; const riid: TIID;
var ppv: Pointer): HResult;
{$ENDIF}
{ ====== HEADER CONTROL ========================== }
const
{$EXTERNALSYM WC_HEADER}
WC_HEADER = 'SysHeader32';
{$EXTERNALSYM HDS_HORZ}
HDS_HORZ = $0000;
{$EXTERNALSYM HDS_BUTTONS}
HDS_BUTTONS = $0002;
{$EXTERNALSYM HDS_HOTTRACK}
HDS_HOTTRACK = $0004;
{$EXTERNALSYM HDS_HIDDEN}
HDS_HIDDEN = $0008;
{$EXTERNALSYM HDS_DRAGDROP}
HDS_DRAGDROP = $0040;
{$EXTERNALSYM HDS_FULLDRAG}
HDS_FULLDRAG = $0080;
{$EXTERNALSYM HDS_FILTERBAR}
HDS_FILTERBAR = $0100;
{ For Windows >= XP }
{$EXTERNALSYM HDS_FLAT}
HDS_FLAT = $0200;
{ For Windows >= Vista }
{$EXTERNALSYM HDS_CHECKBOXES}
HDS_CHECKBOXES = $0400;
{$EXTERNALSYM HDS_NOSIZING}
HDS_NOSIZING = $0800;
{$EXTERNALSYM HDS_OVERFLOW}
HDS_OVERFLOW = $1000;
type
PHDItemA = ^THDItemA;
PHDItemW = ^THDItemW;
PHDItem = PHDItemW;
{$EXTERNALSYM _HD_ITEMA}
_HD_ITEMA = record
Mask: Cardinal;
cxy: Integer;
pszText: PAnsiChar;
hbm: HBITMAP;
cchTextMax: Integer;
fmt: Integer;
lParam: LPARAM;
iImage: Integer; // index of bitmap in ImageList
iOrder: Integer; // where to draw this item
{ For IE >= 0x0500 }
&type: UINT; // [in] filter type (defined what pvFilter is a pointer to)
pvFilter: Pointer; // [in] filter data see above
{ For Windows >= Vista }
state: UINT;
end;
{$EXTERNALSYM _HD_ITEMW}
_HD_ITEMW = record
Mask: Cardinal;
cxy: Integer;
pszText: PWideChar;
hbm: HBITMAP;
cchTextMax: Integer;
fmt: Integer;
lParam: LPARAM;
iImage: Integer; // index of bitmap in ImageList
iOrder: Integer; // where to draw this item
{ For IE >= 0x0500 }
&type: UINT; // [in] filter type (defined what pvFilter is a pointer to)
pvFilter: Pointer; // [in] filter data see above
{ For Windows >= Vista }
state: UINT;
end;
{$EXTERNALSYM _HD_ITEM}
_HD_ITEM = _HD_ITEMW;
THDItemA = _HD_ITEMA;
THDItemW = _HD_ITEMW;
THDItem = THDItemW;
{$EXTERNALSYM HD_ITEMA}
HD_ITEMA = _HD_ITEMA;
{$EXTERNALSYM HD_ITEMW}
HD_ITEMW = _HD_ITEMW;
{$EXTERNALSYM HD_ITEM}
HD_ITEM = HD_ITEMW;
const
{$EXTERNALSYM HDI_WIDTH}
HDI_WIDTH = $0001;
{$EXTERNALSYM HDI_HEIGHT}
HDI_HEIGHT = HDI_WIDTH;
{$EXTERNALSYM HDI_TEXT}
HDI_TEXT = $0002;
{$EXTERNALSYM HDI_FORMAT}
HDI_FORMAT = $0004;
{$EXTERNALSYM HDI_LPARAM}
HDI_LPARAM = $0008;
{$EXTERNALSYM HDI_BITMAP}
HDI_BITMAP = $0010;
{$EXTERNALSYM HDI_IMAGE}
HDI_IMAGE = $0020;
{$EXTERNALSYM HDI_DI_SETITEM}
HDI_DI_SETITEM = $0040;
{$EXTERNALSYM HDI_ORDER}
HDI_ORDER = $0080;
{ For IE >= 0x0500 }
{$EXTERNALSYM HDI_FILTER}
HDI_FILTER = $0100;
{ For Windows >= Vista }
{$EXTERNALSYM HDI_STATE}
HDI_STATE = $0200;
{$EXTERNALSYM HDF_LEFT}
HDF_LEFT = $0000; { Same as LVCFMT_LEFT }
{$EXTERNALSYM HDF_RIGHT}
HDF_RIGHT = $0001; { Same as LVCFMT_RIGHT }
{$EXTERNALSYM HDF_CENTER}
HDF_CENTER = $0002; { Same as LVCFMT_CENTER }
{$EXTERNALSYM HDF_JUSTIFYMASK}
HDF_JUSTIFYMASK = $0003; { Same as LVCFMT_JUSTIFYMASK }
{$EXTERNALSYM HDF_RTLREADING}
HDF_RTLREADING = $0004; { Same as LVCFMT_LEFT }
{$EXTERNALSYM HDF_BITMAP}
HDF_BITMAP = $2000;
{$EXTERNALSYM HDF_STRING}
HDF_STRING = $4000;
{$EXTERNALSYM HDF_OWNERDRAW}
HDF_OWNERDRAW = $8000; { Same as LVCFMT_COL_HAS_IMAGES }
{$EXTERNALSYM HDF_IMAGE}
HDF_IMAGE = $0800; { Same as LVCFMT_IMAGE }
{$EXTERNALSYM HDF_BITMAP_ON_RIGHT}
HDF_BITMAP_ON_RIGHT = $1000; { Same as LVCFMT_BITMAP_ON_RIGHT }
{ For Windows >= XP }
{$EXTERNALSYM HDF_SORTUP}
HDF_SORTUP = $0400;
{$EXTERNALSYM HDF_SORTDOWN}
HDF_SORTDOWN = $0200;
{ For Windows >= Vista }
{$EXTERNALSYM HDF_CHECKBOX}
HDF_CHECKBOX = $0040;
{$EXTERNALSYM HDF_CHECKED}
HDF_CHECKED = $0080;
{$EXTERNALSYM HDF_FIXEDWIDTH}
HDF_FIXEDWIDTH = $0100; { Can't resize the column; same as LVCFMT_FIXED_WIDTH }
{$EXTERNALSYM HDF_SPLITBUTTON}
HDF_SPLITBUTTON = $1000000; { Column is a split button; same as LVCFMT_SPLITBUTTON }
{ For Windows >= Vista }
{$EXTERNALSYM HDIS_FOCUSED}
HDIS_FOCUSED = $00000001;
{$EXTERNALSYM HDM_GETITEMCOUNT}
HDM_GETITEMCOUNT = HDM_FIRST + 0;
{$EXTERNALSYM Header_GetItemCount}
function Header_GetItemCount(Header: HWnd): Integer; inline;
const
{$EXTERNALSYM HDM_INSERTITEMW}
HDM_INSERTITEMW = HDM_FIRST + 10;
{$EXTERNALSYM HDM_INSERTITEMA}
HDM_INSERTITEMA = HDM_FIRST + 1;
{$IFDEF UNICODE}
{$EXTERNALSYM HDM_INSERTITEM}
HDM_INSERTITEM = HDM_INSERTITEMW;
{$ELSE}
{$EXTERNALSYM HDM_INSERTITEM}
HDM_INSERTITEM = HDM_INSERTITEMA;
{$ENDIF}
{$EXTERNALSYM Header_InsertItem}
function Header_InsertItem(Header: HWnd; Index: Integer;
const Item: THDItem): Integer; inline;
{$EXTERNALSYM Header_InsertItemA}
function Header_InsertItemA(Header: HWnd; Index: Integer;
const Item: THDItemA): Integer; inline;
{$EXTERNALSYM Header_InsertItemW}
function Header_InsertItemW(Header: HWnd; Index: Integer;
const Item: THDItemW): Integer; inline;
const
{$EXTERNALSYM HDM_DELETEITEM}
HDM_DELETEITEM = HDM_FIRST + 2;
{$EXTERNALSYM Header_DeleteItem}
function Header_DeleteItem(Header: HWnd; Index: Integer): Bool; inline;
const
{$EXTERNALSYM HDM_GETITEMW}
HDM_GETITEMW = HDM_FIRST + 11;
{$EXTERNALSYM HDM_GETITEMA}
HDM_GETITEMA = HDM_FIRST + 3;
{$IFDEF UNICODE}
{$EXTERNALSYM HDM_GETITEM}
HDM_GETITEM = HDM_GETITEMW;
{$ELSE}
{$EXTERNALSYM HDM_GETITEM}
HDM_GETITEM = HDM_GETITEMA;
{$ENDIF}
{$EXTERNALSYM Header_GetItem}
function Header_GetItem(Header: HWnd; Index: Integer;
var Item: THDItem): Bool; inline;
{$EXTERNALSYM Header_GetItemA}
function Header_GetItemA(Header: HWnd; Index: Integer;
var Item: THDItemA): Bool; inline;
{$EXTERNALSYM Header_GetItemW}
function Header_GetItemW(Header: HWnd; Index: Integer;
var Item: THDItemW): Bool; inline;
const
{$EXTERNALSYM HDM_SETITEMA}
HDM_SETITEMA = HDM_FIRST + 4;
{$EXTERNALSYM HDM_SETITEMW}
HDM_SETITEMW = HDM_FIRST + 12;
{$IFDEF UNICODE}
{$EXTERNALSYM HDM_SETITEM}
HDM_SETITEM = HDM_SETITEMW;
{$ELSE}
{$EXTERNALSYM HDM_SETITEM}
HDM_SETITEM = HDM_SETITEMA;
{$ENDIF}
{$EXTERNALSYM Header_SetItem}
function Header_SetItem(Header: HWnd; Index: Integer; const Item: THDItem): Bool; inline;
{$EXTERNALSYM Header_SetItemA}
function Header_SetItemA(Header: HWnd; Index: Integer; const Item: THDItemA): Bool; inline;
{$EXTERNALSYM Header_SetItemW}
function Header_SetItemW(Header: HWnd; Index: Integer; const Item: THDItemW): Bool; inline;
type
PHDLayout = ^THDLayout;
{$EXTERNALSYM _HD_LAYOUT}
_HD_LAYOUT = packed record
Rect: ^TRect;
WindowPos: PWindowPos;
end;
THDLayout = _HD_LAYOUT;
{$EXTERNALSYM HD_LAYOUT}
HD_LAYOUT = _HD_LAYOUT;
const
{$EXTERNALSYM HDM_LAYOUT}
HDM_LAYOUT = HDM_FIRST + 5;
{$EXTERNALSYM Header_Layout}
function Header_Layout(Header: HWnd; Layout: PHDLayout): Bool; inline;
const
{$EXTERNALSYM HHT_NOWHERE}
HHT_NOWHERE = $0001;
{$EXTERNALSYM HHT_ONHEADER}
HHT_ONHEADER = $0002;
{$EXTERNALSYM HHT_ONDIVIDER}
HHT_ONDIVIDER = $0004;
{$EXTERNALSYM HHT_ONDIVOPEN}
HHT_ONDIVOPEN = $0008;
{$EXTERNALSYM HHT_ABOVE}
HHT_ABOVE = $0100;
{$EXTERNALSYM HHT_BELOW}
HHT_BELOW = $0200;
{$EXTERNALSYM HHT_TORIGHT}
HHT_TORIGHT = $0400;
{$EXTERNALSYM HHT_TOLEFT}
HHT_TOLEFT = $0800;
{ For Windows >= Vista }
{$EXTERNALSYM HHT_ONITEMSTATEICON}
HHT_ONITEMSTATEICON = $1000;
{$EXTERNALSYM HHT_ONDROPDOWN}
HHT_ONDROPDOWN = $2000;
{$EXTERNALSYM HHT_ONOVERFLOW}
HHT_ONOVERFLOW = $4000;
type
PHDHitTestInfo = ^THDHitTestInfo;
{$EXTERNALSYM _HD_HITTESTINFO}
_HD_HITTESTINFO = packed record
Point: TPoint;
Flags: Cardinal;
Item: Integer;
end;
THDHitTestInfo = _HD_HITTESTINFO;
{$EXTERNALSYM HD_HITTESTINFO}
HD_HITTESTINFO = _HD_HITTESTINFO;
const
HDSIL_NORMAL = 0;
{$EXTERNALSYM HDSIL_NORMAL}
HDSIL_STATE = 1;
{$EXTERNALSYM HDSIL_STATE}
{$EXTERNALSYM HDM_HITTEST}
HDM_HITTEST = HDM_FIRST + 6;
{$EXTERNALSYM HDM_GETITEMRECT}
HDM_GETITEMRECT = HDM_FIRST + 7;
{$EXTERNALSYM HDM_SETIMAGELIST}
HDM_SETIMAGELIST = HDM_FIRST + 8;
{$EXTERNALSYM HDM_GETIMAGELIST}
HDM_GETIMAGELIST = HDM_FIRST + 9;
{$EXTERNALSYM HDM_ORDERTOINDEX}
HDM_ORDERTOINDEX = HDM_FIRST + 15;
{$EXTERNALSYM HDM_CREATEDRAGIMAGE}
HDM_CREATEDRAGIMAGE = HDM_FIRST + 16; // wparam = which item = by index;
{$EXTERNALSYM HDM_GETORDERARRAY}
HDM_GETORDERARRAY = HDM_FIRST + 17;
{$EXTERNALSYM HDM_SETORDERARRAY}
HDM_SETORDERARRAY = HDM_FIRST + 18;
{$EXTERNALSYM HDM_SETHOTDIVIDER}
HDM_SETHOTDIVIDER = HDM_FIRST + 19;
{$EXTERNALSYM HDM_SETUNICODEFORMAT}
HDM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
{$EXTERNALSYM HDM_GETUNICODEFORMAT}
HDM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
{ For IE >= 0x0500 }
{$EXTERNALSYM HDM_SETBITMAPMARGIN}
HDM_SETBITMAPMARGIN = HDM_FIRST + 20;
{$EXTERNALSYM HDM_GETBITMAPMARGIN}
HDM_GETBITMAPMARGIN = HDM_FIRST + 21;
{$EXTERNALSYM HDM_SETFILTERCHANGETIMEOUT}
HDM_SETFILTERCHANGETIMEOUT = HDM_FIRST + 22;
{$EXTERNALSYM HDM_EDITFILTER}
HDM_EDITFILTER = HDM_FIRST + 23;
{$EXTERNALSYM HDM_CLEARFILTER}
HDM_CLEARFILTER = HDM_FIRST + 24;
{ For Windows >= 0x0600 }
// Not currently implemented
//{$EXTERNALSYM HDM_TRANSLATEACCELERATOR}
//HDM_TRANSLATEACCELERATOR = CCM_TRANSLATEACCELERATOR;
{ For Windows >= Vista}
{$EXTERNALSYM HDM_GETITEMDROPDOWNRECT}
HDM_GETITEMDROPDOWNRECT = HDM_FIRST + 25; // rect of item's drop down button
{$EXTERNALSYM HDM_GETOVERFLOWRECT}
HDM_GETOVERFLOWRECT = HDM_FIRST + 26; // rect of overflow button
{$EXTERNALSYM HDM_GETFOCUSEDITEM}
HDM_GETFOCUSEDITEM = HDM_FIRST + 27;
{$EXTERNALSYM HDM_SETFOCUSEDITEM}
HDM_SETFOCUSEDITEM = HDM_FIRST + 28;
{$EXTERNALSYM Header_GetItemRect}
function Header_GetItemRect(hwnd: HWND; iItem: Integer; lprc: PRect): Integer; inline;
{$EXTERNALSYM Header_SetImageList}
function Header_SetImageList(hwnd: HWND; himl: HIMAGELIST): HIMAGELIST; inline;
{$EXTERNALSYM Header_GetImageList}
function Header_GetImageList(hwnd: HWND): HIMAGELIST; inline;
{$EXTERNALSYM Header_OrderToIndex}
function Header_OrderToIndex(hwnd: HWND; i: Integer): Integer; inline
{$EXTERNALSYM Header_CreateDragImage}
function Header_CreateDragImage(hwnd: HWND; i: Integer): HIMAGELIST; inline;
{$EXTERNALSYM Header_GetOrderArray}
function Header_GetOrderArray(hwnd: HWND; iCount: Integer; lpi: PInteger): Integer; inline;
{$EXTERNALSYM Header_SetOrderArray}
function Header_SetOrderArray(hwnd: HWND; iCount: Integer; lpi: PInteger): Integer; inline;
// 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
{$EXTERNALSYM Header_SetHotDivider}
function Header_SetHotDivider(hwnd: HWND; fPos: BOOL; dw: DWORD): Integer; inline;
// 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)
{$EXTERNALSYM Header_SetUnicodeFormat}
function Header_SetUnicodeFormat(hwnd: HWND; fUnicode: BOOL): Integer; inline;
{$EXTERNALSYM Header_GetUnicodeFormat}
function Header_GetUnicodeFormat(hwnd: HWND): Integer; inline;
{ For IE >= 0x0500 }
{$EXTERNALSYM Header_SetBitmapMargin}
function Header_SetBitmapMargin(hwnd: HWND; iWidth: Integer): Integer; inline;
{$EXTERNALSYM Header_GetBitmapMargin}
function Header_GetBitmapMargin(hwnd: HWND): Integer; inline;
{$EXTERNALSYM Header_SetFilterChangeTimeout}
function Header_SetFilterChangeTimeout(hwnd: HWND; i: Integer): Integer; inline;
{$EXTERNALSYM Header_EditFilter}
function Header_EditFilter(hwnd: HWND; i: Integer; fDiscardChanges: BOOL): Integer; inline;
{$EXTERNALSYM Header_ClearFilter}
function Header_ClearFilter(hwnd: HWND; i: Integer): Integer; inline;
{$EXTERNALSYM Header_ClearAllFilters}
function Header_ClearAllFilters(hwnd: HWND): Integer; inline;
{ For Windows >= Vista}
{$EXTERNALSYM Header_GetItemDropDownRect}
function Header_GetItemDropDownRect(hwnd: HWND; iItem: Integer; var lprc: TRect): BOOL; inline;
{$EXTERNALSYM Header_GetOverflowRect}
function Header_GetOverflowRect(hwnd: HWND; var lprc: TRect): BOOL; inline;
{$EXTERNALSYM Header_GetFocusedItem}
function Header_GetFocusedItem(hwnd: HWND): Integer; inline;
{$EXTERNALSYM Header_SetFocusedItem}
function Header_SetFocusedItem(hwnd: HWND; iItem: Integer): BOOL; inline;
const
{$EXTERNALSYM HDN_ITEMCHANGINGA}
HDN_ITEMCHANGINGA = HDN_FIRST-0;
{$EXTERNALSYM HDN_ITEMCHANGEDA}
HDN_ITEMCHANGEDA = HDN_FIRST-1;
{$EXTERNALSYM HDN_ITEMCLICKA}
HDN_ITEMCLICKA = HDN_FIRST-2;
{$EXTERNALSYM HDN_ITEMDBLCLICKA}
HDN_ITEMDBLCLICKA = HDN_FIRST-3;
{$EXTERNALSYM HDN_DIVIDERDBLCLICKA}
HDN_DIVIDERDBLCLICKA = HDN_FIRST-5;
{$EXTERNALSYM HDN_BEGINTRACKA}
HDN_BEGINTRACKA = HDN_FIRST-6;
{$EXTERNALSYM HDN_ENDTRACKA}
HDN_ENDTRACKA = HDN_FIRST-7;
{$EXTERNALSYM HDN_TRACKA}
HDN_TRACKA = HDN_FIRST-8;
{$EXTERNALSYM HDN_GETDISPINFOA}
HDN_GETDISPINFOA = HDN_FIRST-9;
{$EXTERNALSYM HDN_BEGINDRAG}
HDN_BEGINDRAG = HDN_FIRST-10;
{$EXTERNALSYM HDN_ENDDRAG}
HDN_ENDDRAG = HDN_FIRST-11;
{ For IE >= 0x0500 }
{$EXTERNALSYM HDN_FILTERCHANGE}
HDN_FILTERCHANGE = HDN_FIRST-12;
{$EXTERNALSYM HDN_FILTERBTNCLICK}
HDN_FILTERBTNCLICK = HDN_FIRST-13;
{ For IE >= 0x0600 }
{$EXTERNALSYM HDN_BEGINFILTEREDIT}
HDN_BEGINFILTEREDIT = HDN_FIRST-14;
{$EXTERNALSYM HDN_ENDFILTEREDIT}
HDN_ENDFILTEREDIT = HDN_FIRST-15;
{ For Windows >= Vista }
{$EXTERNALSYM HDN_ITEMSTATEICONCLICK}
HDN_ITEMSTATEICONCLICK = HDN_FIRST-16;
{$EXTERNALSYM HDN_ITEMKEYDOWN}
HDN_ITEMKEYDOWN = HDN_FIRST-17;
{$EXTERNALSYM HDN_DROPDOWN}
HDN_DROPDOWN = HDN_FIRST-18;
{$EXTERNALSYM HDN_OVERFLOWCLICK}
HDN_OVERFLOWCLICK = HDN_FIRST-19;
{$EXTERNALSYM HDN_ITEMCHANGINGW}
HDN_ITEMCHANGINGW = HDN_FIRST-20;
{$EXTERNALSYM HDN_ITEMCHANGEDW}
HDN_ITEMCHANGEDW = HDN_FIRST-21;
{$EXTERNALSYM HDN_ITEMCLICKW}
HDN_ITEMCLICKW = HDN_FIRST-22;
{$EXTERNALSYM HDN_ITEMDBLCLICKW}
HDN_ITEMDBLCLICKW = HDN_FIRST-23;
{$EXTERNALSYM HDN_DIVIDERDBLCLICKW}
HDN_DIVIDERDBLCLICKW = HDN_FIRST-25;
{$EXTERNALSYM HDN_BEGINTRACKW}
HDN_BEGINTRACKW = HDN_FIRST-26;
{$EXTERNALSYM HDN_ENDTRACKW}
HDN_ENDTRACKW = HDN_FIRST-27;
{$EXTERNALSYM HDN_TRACKW}
HDN_TRACKW = HDN_FIRST-28;
{$EXTERNALSYM HDN_GETDISPINFOW}
HDN_GETDISPINFOW = HDN_FIRST-29;
{$IFDEF UNICODE}
{$EXTERNALSYM HDN_ITEMCHANGING}
HDN_ITEMCHANGING = HDN_ITEMCHANGINGW;
{$EXTERNALSYM HDN_ITEMCHANGED}
HDN_ITEMCHANGED = HDN_ITEMCHANGEDW;
{$EXTERNALSYM HDN_ITEMCLICK}
HDN_ITEMCLICK = HDN_ITEMCLICKW;
{$EXTERNALSYM HDN_ITEMDBLCLICK}
HDN_ITEMDBLCLICK = HDN_ITEMDBLCLICKW;
{$EXTERNALSYM HDN_DIVIDERDBLCLICK}
HDN_DIVIDERDBLCLICK = HDN_DIVIDERDBLCLICKW;
{$EXTERNALSYM HDN_BEGINTRACK}
HDN_BEGINTRACK = HDN_BEGINTRACKW;
{$EXTERNALSYM HDN_ENDTRACK}
HDN_ENDTRACK = HDN_ENDTRACKW;
{$EXTERNALSYM HDN_TRACK}
HDN_TRACK = HDN_TRACKW;
{$EXTERNALSYM HDN_GETDISPINFO}
HDN_GETDISPINFO = HDN_GETDISPINFOW;
{$ELSE}
{$EXTERNALSYM HDN_ITEMCHANGING}
HDN_ITEMCHANGING = HDN_ITEMCHANGINGA;
{$EXTERNALSYM HDN_ITEMCHANGED}
HDN_ITEMCHANGED = HDN_ITEMCHANGEDA;
{$EXTERNALSYM HDN_ITEMCLICK}
HDN_ITEMCLICK = HDN_ITEMCLICKA;
{$EXTERNALSYM HDN_ITEMDBLCLICK}
HDN_ITEMDBLCLICK = HDN_ITEMDBLCLICKA;
{$EXTERNALSYM HDN_DIVIDERDBLCLICK}
HDN_DIVIDERDBLCLICK = HDN_DIVIDERDBLCLICKA;
{$EXTERNALSYM HDN_BEGINTRACK}
HDN_BEGINTRACK = HDN_BEGINTRACKA;
{$EXTERNALSYM HDN_ENDTRACK}
HDN_ENDTRACK = HDN_ENDTRACKA;
{$EXTERNALSYM HDN_TRACK}
HDN_TRACK = HDN_TRACKA;
{$EXTERNALSYM HDN_GETDISPINFO}
HDN_GETDISPINFO = HDN_GETDISPINFOA;
{$ENDIF}
type
{$EXTERNALSYM tagNMHEADERA}
tagNMHEADERA = packed record
Hdr: TNMHdr;
Item: Integer;
Button: Integer;
PItem: PHDItemA;
end;
{$EXTERNALSYM tagNMHEADERW}
tagNMHEADERW = packed record
Hdr: TNMHdr;
Item: Integer;
Button: Integer;
PItem: PHDItemW;
end;
{$EXTERNALSYM tagNMHEADER}
tagNMHEADER = tagNMHEADERW;
{$EXTERNALSYM HD_NOTIFYA}
HD_NOTIFYA = tagNMHEADERA;
{$EXTERNALSYM HD_NOTIFYW}
HD_NOTIFYW = tagNMHEADERW;
{$EXTERNALSYM HD_NOTIFY}
HD_NOTIFY = HD_NOTIFYW;
PHDNotifyA = ^THDNotifyA;
PHDNotifyW = ^THDNotifyW;
PHDNotify = PHDNotifyW;
THDNotifyA = tagNMHEADERA;
THDNotifyW = tagNMHEADERW;
THDNotify = THDNotifyW;
{$EXTERNALSYM tagNMHDDISPINFOA}
tagNMHDDISPINFOA = record
hdr: TNMHdr;
iItem: Integer;
mask: UINT;
pszText: PAnsiChar;
cchTextMax: Integer;
iImage: Integer;
lParam: LPARAM;
end;
{$EXTERNALSYM tagNMHDDISPINFOW}
tagNMHDDISPINFOW = record
hdr: TNMHdr;
iItem: Integer;
mask: UINT;
pszText: PWideChar;
cchTextMax: Integer;
iImage: Integer;
lParam: LPARAM;
end;
{$EXTERNALSYM tagNMHDDISPINFO}
tagNMHDDISPINFO = tagNMHDDISPINFOW;
PNMHDispInfoA = ^TNMHDispInfoA;
PNMHDispInfoW = ^TNMHDispInfoW;
PNMHDispInfo = PNMHDispInfoW;
TNMHDispInfoA = tagNMHDDISPINFOA;
TNMHDispInfoW = tagNMHDDISPINFOW;
TNMHDispInfo = TNMHDispInfoW;
{ ====== TOOLBAR CONTROL =================== }
const
{$EXTERNALSYM TOOLBARCLASSNAME}
TOOLBARCLASSNAME = 'ToolbarWindow32';
type
PTBButton = ^TTBButton;
{$EXTERNALSYM _TBBUTTON}
_TBBUTTON = packed record
iBitmap: Integer;
idCommand: Integer;
fsState: Byte;
fsStyle: Byte;
bReserved: array[1..2] of Byte;
dwData: Longint;
iString: Integer;
end;
TTBButton = _TBBUTTON;
PColorMap = ^TColorMap;
{$EXTERNALSYM _COLORMAP}
_COLORMAP = packed record
cFrom: TColorRef;
cTo: TColorRef;
end;
TColorMap = _COLORMAP;
{$EXTERNALSYM COLORMAP}
COLORMAP = _COLORMAP;
{$EXTERNALSYM CreateToolBarEx}
function CreateToolBarEx(Wnd: HWnd; ws: Longint; ID: UINT;
Bitmaps: Integer; BMInst: THandle; BMID: Cardinal; Buttons: PTBButton;
NumButtons: Integer; dxButton, dyButton: Integer;
dxBitmap, dyBitmap: Integer; StructSize: UINT): HWnd; stdcall;
{$EXTERNALSYM CreateMappedBitmap}
function CreateMappedBitmap(Instance: THandle; Bitmap: Integer;
Flags: UINT; ColorMap: PColorMap; NumMaps: Integer): HBitmap; stdcall;
const
{$EXTERNALSYM CMB_MASKED}
CMB_MASKED = $02;
{$EXTERNALSYM TBSTATE_CHECKED}
TBSTATE_CHECKED = $01;
{$EXTERNALSYM TBSTATE_PRESSED}
TBSTATE_PRESSED = $02;
{$EXTERNALSYM TBSTATE_ENABLED}
TBSTATE_ENABLED = $04;
{$EXTERNALSYM TBSTATE_HIDDEN}
TBSTATE_HIDDEN = $08;
{$EXTERNALSYM TBSTATE_INDETERMINATE}
TBSTATE_INDETERMINATE = $10;
{$EXTERNALSYM TBSTATE_WRAP}
TBSTATE_WRAP = $20;
{$EXTERNALSYM TBSTATE_ELLIPSES}
TBSTATE_ELLIPSES = $40;
{$EXTERNALSYM TBSTATE_MARKED}
TBSTATE_MARKED = $80;
{$EXTERNALSYM TBSTYLE_BUTTON}
TBSTYLE_BUTTON = $00;
{$EXTERNALSYM TBSTYLE_SEP}
TBSTYLE_SEP = $01;
{$EXTERNALSYM TBSTYLE_CHECK}
TBSTYLE_CHECK = $02;
{$EXTERNALSYM TBSTYLE_GROUP}
TBSTYLE_GROUP = $04;
{$EXTERNALSYM TBSTYLE_CHECKGROUP}
TBSTYLE_CHECKGROUP = TBSTYLE_GROUP or TBSTYLE_CHECK;
{$EXTERNALSYM TBSTYLE_DROPDOWN}
TBSTYLE_DROPDOWN = $08;
{$EXTERNALSYM TBSTYLE_AUTOSIZE}
TBSTYLE_AUTOSIZE = $0010; // automatically calculate the cx of the button
{$EXTERNALSYM TBSTYLE_NOPREFIX}
TBSTYLE_NOPREFIX = $0020; // if this button should not have accel prefix
{$EXTERNALSYM TBSTYLE_TOOLTIPS}
TBSTYLE_TOOLTIPS = $0100;
{$EXTERNALSYM TBSTYLE_WRAPABLE}
TBSTYLE_WRAPABLE = $0200;
{$EXTERNALSYM TBSTYLE_ALTDRAG}
TBSTYLE_ALTDRAG = $0400;
{$EXTERNALSYM TBSTYLE_FLAT}
TBSTYLE_FLAT = $0800;
{$EXTERNALSYM TBSTYLE_LIST}
TBSTYLE_LIST = $1000;
{$EXTERNALSYM TBSTYLE_CUSTOMERASE}
TBSTYLE_CUSTOMERASE = $2000;
{$EXTERNALSYM TBSTYLE_REGISTERDROP}
TBSTYLE_REGISTERDROP = $4000;
{$EXTERNALSYM TBSTYLE_TRANSPARENT}
TBSTYLE_TRANSPARENT = $8000;
{$EXTERNALSYM TBSTYLE_EX_DRAWDDARROWS}
TBSTYLE_EX_DRAWDDARROWS = $00000001;
{ For IE >= 0x0500 }
{$EXTERNALSYM BTNS_BUTTON}
BTNS_BUTTON = TBSTYLE_BUTTON;
{$EXTERNALSYM BTNS_SEP}
BTNS_SEP = TBSTYLE_SEP;
{$EXTERNALSYM BTNS_CHECK}
BTNS_CHECK = TBSTYLE_CHECK;
{$EXTERNALSYM BTNS_GROUP}
BTNS_GROUP = TBSTYLE_GROUP;
{$EXTERNALSYM BTNS_CHECKGROUP}
BTNS_CHECKGROUP = TBSTYLE_CHECKGROUP;
{$EXTERNALSYM BTNS_DROPDOWN}
BTNS_DROPDOWN = TBSTYLE_DROPDOWN;
{$EXTERNALSYM BTNS_AUTOSIZE}
BTNS_AUTOSIZE = TBSTYLE_AUTOSIZE;
{$EXTERNALSYM BTNS_NOPREFIX}
BTNS_NOPREFIX = TBSTYLE_NOPREFIX;
{ For IE >= 0x0501 }
{$EXTERNALSYM BTNS_SHOWTEXT}
BTNS_SHOWTEXT = $0040; // ignored unless TBSTYLE_EX_MIXEDBUTTONS is set
{ For IE >= 0x0500 }
{$EXTERNALSYM BTNS_WHOLEDROPDOWN}
BTNS_WHOLEDROPDOWN = $0080; // draw drop-down arrow, but without split arrow section
{ For IE >= 0x0501 }
{$EXTERNALSYM TBSTYLE_EX_MIXEDBUTTONS}
TBSTYLE_EX_MIXEDBUTTONS = $00000008;
{$EXTERNALSYM TBSTYLE_EX_HIDECLIPPEDBUTTONS}
TBSTYLE_EX_HIDECLIPPEDBUTTONS = $00000010; // don't show partially obscured buttons
{ For Windows >= XP }
{$EXTERNALSYM TBSTYLE_EX_DOUBLEBUFFER}
TBSTYLE_EX_DOUBLEBUFFER = $00000080; // Double Buffer the toolbar
type
// Custom Draw Structure
{$EXTERNALSYM _NMTBCUSTOMDRAW}
_NMTBCUSTOMDRAW = packed record
nmcd: TNMCustomDraw;
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
// will cause button to highlight like a menu
rcText: TRect; // Rect for text
nStringBkMode: Integer;
nHLStringBkMode: Integer;
{ For Windows >= XP }
iListGap: Integer;
end;
PNMTBCustomDraw = ^TNMTBCustomDraw;
TNMTBCustomDraw = _NMTBCUSTOMDRAW;
const
// Toolbar custom draw return flags
{$EXTERNALSYM TBCDRF_NOEDGES}
TBCDRF_NOEDGES = $00010000; // Don't draw button edges
{$EXTERNALSYM TBCDRF_HILITEHOTTRACK}
TBCDRF_HILITEHOTTRACK = $00020000; // Use color of the button bk when hottracked
{$EXTERNALSYM TBCDRF_NOOFFSET}
TBCDRF_NOOFFSET = $00040000; // Don't offset button if pressed
{$EXTERNALSYM TBCDRF_NOMARK}
TBCDRF_NOMARK = $00080000; // Don't draw default highlight of image/text for TBSTATE_MARKED
{$EXTERNALSYM TBCDRF_NOETCHEDEFFECT}
TBCDRF_NOETCHEDEFFECT = $00100000; // Don't draw etched effect for disabled items
{ For IE >= 0x0500 }
{$EXTERNALSYM TBCDRF_BLENDICON}
TBCDRF_BLENDICON = $00200000; // Use ILD_BLEND50 on the icon image
{$EXTERNALSYM TBCDRF_NOBACKGROUND}
TBCDRF_NOBACKGROUND = $00400000; // Use ILD_BLEND50 on the icon image
{ For Windows >= Vista }
{$EXTERNALSYM TBCDRF_USECDCOLORS}
TBCDRF_USECDCOLORS = $00800000; // Use CustomDrawColors to RenderText regardless of VisualStyle
{$EXTERNALSYM TB_ENABLEBUTTON}
TB_ENABLEBUTTON = WM_USER + 1;
{$EXTERNALSYM TB_CHECKBUTTON}
TB_CHECKBUTTON = WM_USER + 2;
{$EXTERNALSYM TB_PRESSBUTTON}
TB_PRESSBUTTON = WM_USER + 3;
{$EXTERNALSYM TB_HIDEBUTTON}
TB_HIDEBUTTON = WM_USER + 4;
{$EXTERNALSYM TB_INDETERMINATE}
TB_INDETERMINATE = WM_USER + 5;
{$EXTERNALSYM TB_MARKBUTTON}
TB_MARKBUTTON = WM_USER + 6;
{$EXTERNALSYM TB_ISBUTTONENABLED}
TB_ISBUTTONENABLED = WM_USER + 9;
{$EXTERNALSYM TB_ISBUTTONCHECKED}
TB_ISBUTTONCHECKED = WM_USER + 10;
{$EXTERNALSYM TB_ISBUTTONPRESSED}
TB_ISBUTTONPRESSED = WM_USER + 11;
{$EXTERNALSYM TB_ISBUTTONHIDDEN}
TB_ISBUTTONHIDDEN = WM_USER + 12;
{$EXTERNALSYM TB_ISBUTTONINDETERMINATE}
TB_ISBUTTONINDETERMINATE = WM_USER + 13;
{$EXTERNALSYM TB_ISBUTTONHIGHLIGHTED}
TB_ISBUTTONHIGHLIGHTED = WM_USER + 14;
{$EXTERNALSYM TB_SETSTATE}
TB_SETSTATE = WM_USER + 17;
{$EXTERNALSYM TB_GETSTATE}
TB_GETSTATE = WM_USER + 18;
{$EXTERNALSYM TB_ADDBITMAP}
TB_ADDBITMAP = WM_USER + 19;
type
PTBAddBitmap = ^TTBAddBitmap;
{$EXTERNALSYM tagTBADDBITMAP}
tagTBADDBITMAP = packed record
hInst: THandle;
nID: UINT;
end;
TTBAddBitmap = tagTBADDBITMAP;
{$EXTERNALSYM TBADDBITMAP}
TBADDBITMAP = tagTBADDBITMAP;
const
{$EXTERNALSYM HINST_COMMCTRL}
HINST_COMMCTRL = THandle(-1);
{$EXTERNALSYM IDB_STD_SMALL_COLOR}
IDB_STD_SMALL_COLOR = 0;
{$EXTERNALSYM IDB_STD_LARGE_COLOR}
IDB_STD_LARGE_COLOR = 1;
{$EXTERNALSYM IDB_VIEW_SMALL_COLOR}
IDB_VIEW_SMALL_COLOR = 4;
{$EXTERNALSYM IDB_VIEW_LARGE_COLOR}
IDB_VIEW_LARGE_COLOR = 5;
{$EXTERNALSYM IDB_HIST_SMALL_COLOR}
IDB_HIST_SMALL_COLOR = 8;
{$EXTERNALSYM IDB_HIST_LARGE_COLOR}
IDB_HIST_LARGE_COLOR = 9;
{$EXTERNALSYM IDB_HIST_NORMAL}
IDB_HIST_NORMAL = 12;
{$EXTERNALSYM IDB_HIST_HOT}
IDB_HIST_HOT = 13;
{$EXTERNALSYM IDB_HIST_DISABLED}
IDB_HIST_DISABLED = 14;
{$EXTERNALSYM IDB_HIST_PRESSED}
IDB_HIST_PRESSED = 15;
{ icon indexes for standard bitmap }
{$EXTERNALSYM STD_CUT}
STD_CUT = 0;
{$EXTERNALSYM STD_COPY}
STD_COPY = 1;
{$EXTERNALSYM STD_PASTE}
STD_PASTE = 2;
{$EXTERNALSYM STD_UNDO}
STD_UNDO = 3;
{$EXTERNALSYM STD_REDOW}
STD_REDOW = 4;
{$EXTERNALSYM STD_DELETE}
STD_DELETE = 5;
{$EXTERNALSYM STD_FILENEW}
STD_FILENEW = 6;
{$EXTERNALSYM STD_FILEOPEN}
STD_FILEOPEN = 7;
{$EXTERNALSYM STD_FILESAVE}
STD_FILESAVE = 8;
{$EXTERNALSYM STD_PRINTPRE}
STD_PRINTPRE = 9;
{$EXTERNALSYM STD_PROPERTIES}
STD_PROPERTIES = 10;
{$EXTERNALSYM STD_HELP}
STD_HELP = 11;
{$EXTERNALSYM STD_FIND}
STD_FIND = 12;
{$EXTERNALSYM STD_REPLACE}
STD_REPLACE = 13;
{$EXTERNALSYM STD_PRINT}
STD_PRINT = 14;
{ icon indexes for standard view bitmap }
{$EXTERNALSYM VIEW_LARGEICONS}
VIEW_LARGEICONS = 0;
{$EXTERNALSYM VIEW_SMALLICONS}
VIEW_SMALLICONS = 1;
{$EXTERNALSYM VIEW_LIST}
VIEW_LIST = 2;
{$EXTERNALSYM VIEW_DETAILS}
VIEW_DETAILS = 3;
{$EXTERNALSYM VIEW_SORTNAME}
VIEW_SORTNAME = 4;
{$EXTERNALSYM VIEW_SORTSIZE}
VIEW_SORTSIZE = 5;
{$EXTERNALSYM VIEW_SORTDATE}
VIEW_SORTDATE = 6;
{$EXTERNALSYM VIEW_SORTTYPE}
VIEW_SORTTYPE = 7;
{$EXTERNALSYM VIEW_PARENTFOLDER}
VIEW_PARENTFOLDER = 8;
{$EXTERNALSYM VIEW_NETCONNECT}
VIEW_NETCONNECT = 9;
{$EXTERNALSYM VIEW_NETDISCONNECT}
VIEW_NETDISCONNECT = 10;
{$EXTERNALSYM VIEW_NEWFOLDER}
VIEW_NEWFOLDER = 11;
{$EXTERNALSYM VIEW_VIEWMENU}
VIEW_VIEWMENU = 12;
{ icon indexes for history bitmap }
{$EXTERNALSYM HIST_BACK}
HIST_BACK = 0;
{$EXTERNALSYM HIST_FORWARD}
HIST_FORWARD = 1;
{$EXTERNALSYM HIST_FAVORITES}
HIST_FAVORITES = 2;
{$EXTERNALSYM HIST_ADDTOFAVORITES}
HIST_ADDTOFAVORITES = 3;
{$EXTERNALSYM HIST_VIEWTREE}
HIST_VIEWTREE = 4;
{$EXTERNALSYM TB_ADDBUTTONSA}
TB_ADDBUTTONSA = WM_USER + 20;
{$EXTERNALSYM TB_INSERTBUTTONA}
TB_INSERTBUTTONA = WM_USER + 21;
{$EXTERNALSYM TB_DELETEBUTTON}
TB_DELETEBUTTON = WM_USER + 22;
{$EXTERNALSYM TB_GETBUTTON}
TB_GETBUTTON = WM_USER + 23;
{$EXTERNALSYM TB_BUTTONCOUNT}
TB_BUTTONCOUNT = WM_USER + 24;
{$EXTERNALSYM TB_COMMANDTOINDEX}
TB_COMMANDTOINDEX = WM_USER + 25;
type
PTBSaveParamsA = ^TTBSaveParamsA;
PTBSaveParamsW = ^TTBSaveParamsW;
PTBSaveParams = PTBSaveParamsW;
{$EXTERNALSYM tagTBSAVEPARAMSA}
tagTBSAVEPARAMSA = record
hkr: THandle;
pszSubKey: PAnsiChar;
pszValueName: PAnsiChar;
end;
{$EXTERNALSYM tagTBSAVEPARAMSW}
tagTBSAVEPARAMSW = record
hkr: THandle;
pszSubKey: PWideChar;
pszValueName: PWideChar;
end;
{$EXTERNALSYM tagTBSAVEPARAMS}
tagTBSAVEPARAMS = tagTBSAVEPARAMSW;
TTBSaveParamsA = tagTBSAVEPARAMSA;
TTBSaveParamsW = tagTBSAVEPARAMSW;
TTBSaveParams = TTBSaveParamsW;
{$EXTERNALSYM TBSAVEPARAMSA}
TBSAVEPARAMSA = tagTBSAVEPARAMSA;
{$EXTERNALSYM TBSAVEPARAMSW}
TBSAVEPARAMSW = tagTBSAVEPARAMSW;
{$EXTERNALSYM TBSAVEPARAMS}
TBSAVEPARAMS = TBSAVEPARAMSW;
const
{$EXTERNALSYM TB_SAVERESTOREA}
TB_SAVERESTOREA = WM_USER + 26;
{$EXTERNALSYM TB_ADDSTRINGA}
TB_ADDSTRINGA = WM_USER + 28;
{$EXTERNALSYM TB_GETBUTTONTEXTA}
TB_GETBUTTONTEXTA = WM_USER + 45;
{$EXTERNALSYM TBN_GETBUTTONINFOA}
TBN_GETBUTTONINFOA = TBN_FIRST-0;
{$EXTERNALSYM TB_SAVERESTOREW}
TB_SAVERESTOREW = WM_USER + 76;
{$EXTERNALSYM TB_ADDSTRINGW}
TB_ADDSTRINGW = WM_USER + 77;
{$EXTERNALSYM TB_GETBUTTONTEXTW}
TB_GETBUTTONTEXTW = WM_USER + 75;
{$EXTERNALSYM TBN_GETBUTTONINFOW}
TBN_GETBUTTONINFOW = TBN_FIRST-20;
{$IFDEF UNICODE}
{$EXTERNALSYM TB_SAVERESTORE}
TB_SAVERESTORE = TB_SAVERESTOREW;
{$EXTERNALSYM TB_ADDSTRING}
TB_ADDSTRING = TB_ADDSTRINGW;
{$EXTERNALSYM TB_GETBUTTONTEXT}
TB_GETBUTTONTEXT = TB_GETBUTTONTEXTW;
{$EXTERNALSYM TBN_GETBUTTONINFO}
TBN_GETBUTTONINFO = TBN_GETBUTTONINFOW;
{$ELSE}
{$EXTERNALSYM TB_SAVERESTORE}
TB_SAVERESTORE = TB_SAVERESTOREA;
{$EXTERNALSYM TB_ADDSTRING}
TB_ADDSTRING = TB_ADDSTRINGA;
{$EXTERNALSYM TB_GETBUTTONTEXT}
TB_GETBUTTONTEXT = TB_GETBUTTONTEXTA;
{$EXTERNALSYM TBN_GETBUTTONINFO}
TBN_GETBUTTONINFO = TBN_GETBUTTONINFOA;
{$ENDIF}
{$EXTERNALSYM TB_CUSTOMIZE}
TB_CUSTOMIZE = WM_USER + 27;
{$EXTERNALSYM TB_GETITEMRECT}
TB_GETITEMRECT = WM_USER + 29;
{$EXTERNALSYM TB_BUTTONSTRUCTSIZE}
TB_BUTTONSTRUCTSIZE = WM_USER + 30;
{$EXTERNALSYM TB_SETBUTTONSIZE}
TB_SETBUTTONSIZE = WM_USER + 31;
{$EXTERNALSYM TB_SETBITMAPSIZE}
TB_SETBITMAPSIZE = WM_USER + 32;
{$EXTERNALSYM TB_AUTOSIZE}
TB_AUTOSIZE = WM_USER + 33;
{$EXTERNALSYM TB_GETTOOLTIPS}
TB_GETTOOLTIPS = WM_USER + 35;
{$EXTERNALSYM TB_SETTOOLTIPS}
TB_SETTOOLTIPS = WM_USER + 36;
{$EXTERNALSYM TB_SETPARENT}
TB_SETPARENT = WM_USER + 37;
{$EXTERNALSYM TB_SETROWS}
TB_SETROWS = WM_USER + 39;
{$EXTERNALSYM TB_GETROWS}
TB_GETROWS = WM_USER + 40;
{$EXTERNALSYM TB_SETCMDID}
TB_SETCMDID = WM_USER + 42;
{$EXTERNALSYM TB_CHANGEBITMAP}
TB_CHANGEBITMAP = WM_USER + 43;
{$EXTERNALSYM TB_GETBITMAP}
TB_GETBITMAP = WM_USER + 44;
{$EXTERNALSYM TB_REPLACEBITMAP}
TB_REPLACEBITMAP = WM_USER + 46;
{$EXTERNALSYM TB_SETINDENT}
TB_SETINDENT = WM_USER + 47;
{$EXTERNALSYM TB_SETIMAGELIST}
TB_SETIMAGELIST = WM_USER + 48;
{$EXTERNALSYM TB_GETIMAGELIST}
TB_GETIMAGELIST = WM_USER + 49;
{$EXTERNALSYM TB_LOADIMAGES}
TB_LOADIMAGES = WM_USER + 50;
{$EXTERNALSYM TB_GETRECT}
TB_GETRECT = WM_USER + 51; { wParam is the Cmd instead of index }
{$EXTERNALSYM TB_SETHOTIMAGELIST}
TB_SETHOTIMAGELIST = WM_USER + 52;
{$EXTERNALSYM TB_GETHOTIMAGELIST}
TB_GETHOTIMAGELIST = WM_USER + 53;
{$EXTERNALSYM TB_SETDISABLEDIMAGELIST}
TB_SETDISABLEDIMAGELIST = WM_USER + 54;
{$EXTERNALSYM TB_GETDISABLEDIMAGELIST}
TB_GETDISABLEDIMAGELIST = WM_USER + 55;
{$EXTERNALSYM TB_SETSTYLE}
TB_SETSTYLE = WM_USER + 56;
{$EXTERNALSYM TB_GETSTYLE}
TB_GETSTYLE = WM_USER + 57;
{$EXTERNALSYM TB_GETBUTTONSIZE}
TB_GETBUTTONSIZE = WM_USER + 58;
{$EXTERNALSYM TB_SETBUTTONWIDTH}
TB_SETBUTTONWIDTH = WM_USER + 59;
{$EXTERNALSYM TB_SETMAXTEXTROWS}
TB_SETMAXTEXTROWS = WM_USER + 60;
{$EXTERNALSYM TB_GETTEXTROWS}
TB_GETTEXTROWS = WM_USER + 61;
{$EXTERNALSYM TB_GETOBJECT}
TB_GETOBJECT = WM_USER + 62; // wParam == IID, lParam void **ppv
{$EXTERNALSYM TB_GETHOTITEM}
TB_GETHOTITEM = WM_USER + 71;
{$EXTERNALSYM TB_SETHOTITEM}
TB_SETHOTITEM = WM_USER + 72; // wParam == iHotItem
{$EXTERNALSYM TB_SETANCHORHIGHLIGHT}
TB_SETANCHORHIGHLIGHT = WM_USER + 73; // wParam == TRUE/FALSE
{$EXTERNALSYM TB_GETANCHORHIGHLIGHT}
TB_GETANCHORHIGHLIGHT = WM_USER + 74;
{$EXTERNALSYM TB_MAPACCELERATORA}
TB_MAPACCELERATORA = WM_USER + 78; // wParam == ch, lParam int * pidBtn
type
{$EXTERNALSYM TBINSERTMARK}
TBINSERTMARK = packed record
iButton: Integer;
dwFlags: DWORD;
end;
PTBInsertMark = ^TTBInsertMark;
TTBInsertMark = TBINSERTMARK;
const
{$EXTERNALSYM TBIMHT_AFTER}
TBIMHT_AFTER = $00000001; // TRUE = insert After iButton, otherwise before
{$EXTERNALSYM TBIMHT_BACKGROUND}
TBIMHT_BACKGROUND = $00000002; // TRUE iff missed buttons completely
{$EXTERNALSYM TB_GETINSERTMARK}
TB_GETINSERTMARK = WM_USER + 79; // lParam == LPTBINSERTMARK
{$EXTERNALSYM TB_SETINSERTMARK}
TB_SETINSERTMARK = WM_USER + 80; // lParam == LPTBINSERTMARK
{$EXTERNALSYM TB_INSERTMARKHITTEST}
TB_INSERTMARKHITTEST = WM_USER + 81; // wParam == LPPOINT lParam == LPTBINSERTMARK
{$EXTERNALSYM TB_MOVEBUTTON}
TB_MOVEBUTTON = WM_USER + 82;
{$EXTERNALSYM TB_GETMAXSIZE}
TB_GETMAXSIZE = WM_USER + 83; // lParam == LPSIZE
{$EXTERNALSYM TB_SETEXTENDEDSTYLE}
TB_SETEXTENDEDSTYLE = WM_USER + 84; // For TBSTYLE_EX_*
{$EXTERNALSYM TB_GETEXTENDEDSTYLE}
TB_GETEXTENDEDSTYLE = WM_USER + 85; // For TBSTYLE_EX_*
{$EXTERNALSYM TB_GETPADDING}
TB_GETPADDING = WM_USER + 86;
{$EXTERNALSYM TB_SETPADDING}
TB_SETPADDING = WM_USER + 87;
{$EXTERNALSYM TB_SETINSERTMARKCOLOR}
TB_SETINSERTMARKCOLOR = WM_USER + 88;
{$EXTERNALSYM TB_GETINSERTMARKCOLOR}
TB_GETINSERTMARKCOLOR = WM_USER + 89;
{$EXTERNALSYM TB_SETCOLORSCHEME}
TB_SETCOLORSCHEME = CCM_SETCOLORSCHEME; // lParam is color scheme
{$EXTERNALSYM TB_GETCOLORSCHEME}
TB_GETCOLORSCHEME = CCM_GETCOLORSCHEME; // fills in COLORSCHEME pointed to by lParam
{$EXTERNALSYM TB_SETUNICODEFORMAT}
TB_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
{$EXTERNALSYM TB_GETUNICODEFORMAT}
TB_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
{$EXTERNALSYM TB_MAPACCELERATORW}
TB_MAPACCELERATORW = WM_USER + 90; // wParam == ch, lParam int * pidBtn
{$IFDEF UNICODE}
{$EXTERNALSYM TB_MAPACCELERATOR}
TB_MAPACCELERATOR = TB_MAPACCELERATORW;
{$ELSE}
{$EXTERNALSYM TB_MAPACCELERATOR}
TB_MAPACCELERATOR = TB_MAPACCELERATORA;
{$ENDIF}
type
{$EXTERNALSYM TBREPLACEBITMAP}
TBREPLACEBITMAP = packed record
hInstOld: THandle;
nIDOld: Cardinal;
hInstNew: THandle;
nIDNew: Cardinal;
nButtons: Integer;
end;
PTBReplaceBitmap = ^TTBReplaceBitmap;
TTBReplaceBitmap = TBREPLACEBITMAP;
const
{$EXTERNALSYM TBBF_LARGE}
TBBF_LARGE = $0001;
{$EXTERNALSYM TB_GETBITMAPFLAGS}
TB_GETBITMAPFLAGS = WM_USER + 41;
{$EXTERNALSYM TBIF_IMAGE}
TBIF_IMAGE = $00000001;
{$EXTERNALSYM TBIF_TEXT}
TBIF_TEXT = $00000002;
{$EXTERNALSYM TBIF_STATE}
TBIF_STATE = $00000004;
{$EXTERNALSYM TBIF_STYLE}
TBIF_STYLE = $00000008;
{$EXTERNALSYM TBIF_LPARAM}
TBIF_LPARAM = $00000010;
{$EXTERNALSYM TBIF_COMMAND}
TBIF_COMMAND = $00000020;
{$EXTERNALSYM TBIF_SIZE}
TBIF_SIZE = $00000040;
{$EXTERNALSYM TBIF_BYINDEX}
TBIF_BYINDEX = $80000000;
type
{$EXTERNALSYM TBBUTTONINFOA}
TBBUTTONINFOA = record
cbSize: UINT;
dwMask: DWORD;
idCommand: Integer;
iImage: Integer;
fsState: Byte;
fsStyle: Byte;
cx: Word;
lParam: DWORD;
pszText: PAnsiChar;
cchText: Integer;
end;
{$EXTERNALSYM TBBUTTONINFOW}
TBBUTTONINFOW = record
cbSize: UINT;
dwMask: DWORD;
idCommand: Integer;
iImage: Integer;
fsState: Byte;
fsStyle: Byte;
cx: Word;
lParam: DWORD;
pszText: PWideChar;
cchText: Integer;
end;
{$EXTERNALSYM TBBUTTONINFO}
TBBUTTONINFO = TBBUTTONINFOW;
PTBButtonInfoA = ^TTBButtonInfoA;
PTBButtonInfoW = ^TTBButtonInfoW;
PTBButtonInfo = PTBButtonInfoW;
TTBButtonInfoA = TBBUTTONINFOA;
TTBButtonInfoW = TBBUTTONINFOW;
TTBButtonInfo = TTBButtonInfoW;
const
// BUTTONINFO APIs do NOT support the string pool.
{$EXTERNALSYM TB_GETBUTTONINFOW}
TB_GETBUTTONINFOW = WM_USER + 63;
{$EXTERNALSYM TB_SETBUTTONINFOW}
TB_SETBUTTONINFOW = WM_USER + 64;
{$EXTERNALSYM TB_GETBUTTONINFOA}
TB_GETBUTTONINFOA = WM_USER + 65;
{$EXTERNALSYM TB_SETBUTTONINFOA}
TB_SETBUTTONINFOA = WM_USER + 66;
{$IFDEF UNICODE}
{$EXTERNALSYM TB_GETBUTTONINFO}
TB_GETBUTTONINFO = TB_GETBUTTONINFOW;
{$EXTERNALSYM TB_SETBUTTONINFO}
TB_SETBUTTONINFO = TB_SETBUTTONINFOW;
{$ELSE}
{$EXTERNALSYM TB_GETBUTTONINFO}
TB_GETBUTTONINFO = TB_GETBUTTONINFOA;
{$EXTERNALSYM TB_SETBUTTONINFO}
TB_SETBUTTONINFO = TB_SETBUTTONINFOA;
{$ENDIF}
{$EXTERNALSYM TB_INSERTBUTTONW}
TB_INSERTBUTTONW = WM_USER + 67;
{$EXTERNALSYM TB_ADDBUTTONSW}
TB_ADDBUTTONSW = WM_USER + 68;
{$EXTERNALSYM TB_HITTEST}
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;.
{$IFDEF UNICODE}
{$EXTERNALSYM TB_INSERTBUTTON}
TB_INSERTBUTTON = TB_INSERTBUTTONW;
{$EXTERNALSYM TB_ADDBUTTONS}
TB_ADDBUTTONS = TB_ADDBUTTONSW;
{$ELSE}
{$EXTERNALSYM TB_INSERTBUTTON}
TB_INSERTBUTTON = TB_INSERTBUTTONA;
{$EXTERNALSYM TB_ADDBUTTONS}
TB_ADDBUTTONS = TB_ADDBUTTONSA;
{$ENDIF}
{$EXTERNALSYM TB_SETDRAWTEXTFLAGS}
TB_SETDRAWTEXTFLAGS = WM_USER + 70; // wParam == mask lParam == bit values
{$EXTERNALSYM TB_GETSTRINGW}
TB_GETSTRINGW = WM_USER + 91;
{$EXTERNALSYM TB_GETSTRINGA}
TB_GETSTRINGA = WM_USER + 92;
{$EXTERNALSYM TB_GETSTRING}
{$IFDEF UNICODE}
TB_GETSTRING = TB_GETSTRINGW;
{$ELSE}
TB_GETSTRING = TB_GETSTRINGA;
{$ENDIF}
{ For Windows >= XP }
{$EXTERNALSYM TBMF_PAD}
TBMF_PAD = $00000001;
{$EXTERNALSYM TBMF_BARPAD}
TBMF_BARPAD = $00000002;
{$EXTERNALSYM TBMF_BUTTONSPACING}
TBMF_BUTTONSPACING = $00000004;
type
{ For Windows >= XP }
{ $EXTERNALSYM TBMETRICSA}
TBMETRICSA = packed record
cbSize: Integer;
dwMask: DWORD;
cxPad: Integer; { PAD }
cyPad: Integer;
cxBarPad: Integer;{ BARPAD }
cyBarPad: Integer;
cxButtonSpacing: Integer;{ BUTTONSPACING }
cyButtonSpacing: Integer;
end;
{ $EXTERNALSYM TBMETRICSW}
TBMETRICSW = packed record
cbSize: Integer;
dwMask: DWORD;
cxPad: Integer; { PAD }
cyPad: Integer;
cxBarPad: Integer;{ BARPAD }
cyBarPad: Integer;
cxButtonSpacing: Integer;{ BUTTONSPACING }
cyButtonSpacing: Integer;
end;
{$EXTERNALSYM TBMETRICS}
TBMETRICS = TBMETRICSW;
PTBMetricsA = ^TTBMetricsA;
PTBMetricsW = ^TTBMetricsW;
PTBMetrics = PTBMetricsW;
TTBMetricsA = TBMETRICSA;
TTBMetricsW = TBMETRICSW;
TTBMetrics = TTBMetricsW;
const
{ For Windows >= XP }
{$EXTERNALSYM TB_GETMETRICS}
TB_GETMETRICS = WM_USER + 101;
{$EXTERNALSYM TB_SETMETRICS}
TB_SETMETRICS = WM_USER + 102;
{ For Windows >= Vista }
{$EXTERNALSYM TB_GETITEMDROPDOWNRECT}
TB_GETITEMDROPDOWNRECT = WM_USER + 103;
{$EXTERNALSYM TB_SETPRESSEDIMAGELIST}
TB_SETPRESSEDIMAGELIST = WM_USER + 104;
{$EXTERNALSYM TB_GETPRESSEDIMAGELIST}
TB_GETPRESSEDIMAGELIST = WM_USER + 105;
{ For Windows >= XP }
{$EXTERNALSYM TB_SETWINDOWTHEME}
TB_SETWINDOWTHEME = CCM_SETWINDOWTHEME;
const
{$EXTERNALSYM TBN_BEGINDRAG}
TBN_BEGINDRAG = TBN_FIRST-1;
{$EXTERNALSYM TBN_ENDDRAG}
TBN_ENDDRAG = TBN_FIRST-2;
{$EXTERNALSYM TBN_BEGINADJUST}
TBN_BEGINADJUST = TBN_FIRST-3;
{$EXTERNALSYM TBN_ENDADJUST}
TBN_ENDADJUST = TBN_FIRST-4;
{$EXTERNALSYM TBN_RESET}
TBN_RESET = TBN_FIRST-5;
{$EXTERNALSYM TBN_QUERYINSERT}
TBN_QUERYINSERT = TBN_FIRST-6;
{$EXTERNALSYM TBN_QUERYDELETE}
TBN_QUERYDELETE = TBN_FIRST-7;
{$EXTERNALSYM TBN_TOOLBARCHANGE}
TBN_TOOLBARCHANGE = TBN_FIRST-8;
{$EXTERNALSYM TBN_CUSTHELP}
TBN_CUSTHELP = TBN_FIRST-9;
{$EXTERNALSYM TBN_DROPDOWN}
TBN_DROPDOWN = TBN_FIRST-10;
{$EXTERNALSYM TBN_CLOSEUP}
TBN_CLOSEUP = TBN_FIRST-11;
{$EXTERNALSYM TBN_GETOBJECT}
TBN_GETOBJECT = TBN_FIRST-12;
{$EXTERNALSYM TBN_RESTORE}
TBN_RESTORE = TBN_FIRST-21;
{$EXTERNALSYM TBN_SAVE}
TBN_SAVE = TBN_FIRST-22;
type
// Structure for TBN_HOTITEMCHANGE notification
{$EXTERNALSYM tagNMTBHOTITEM}
tagNMTBHOTITEM = packed record
hdr: TNMHdr;
idOld: Integer;
idNew: Integer;
dwFlags: DWORD; // HICF_*
end;
PNMTBHotItem = ^TNMTBHotItem;
TNMTBHotItem = tagNMTBHOTITEM;
const
// Hot item change flags
{$EXTERNALSYM HICF_OTHER}
HICF_OTHER = $00000000;
{$EXTERNALSYM HICF_MOUSE}
HICF_MOUSE = $00000001; // Triggered by mouse
{$EXTERNALSYM HICF_ARROWKEYS}
HICF_ARROWKEYS = $00000002; // Triggered by arrow keys
{$EXTERNALSYM HICF_ACCELERATOR}
HICF_ACCELERATOR = $00000004; // Triggered by accelerator
{$EXTERNALSYM HICF_DUPACCEL}
HICF_DUPACCEL = $00000008; // This accelerator is not unique
{$EXTERNALSYM HICF_ENTERING}
HICF_ENTERING = $00000010; // idOld is invalid
{$EXTERNALSYM HICF_LEAVING}
HICF_LEAVING = $00000020; // idNew is invalid
{$EXTERNALSYM HICF_RESELECT}
HICF_RESELECT = $00000040; // hot item reselected
{$EXTERNALSYM TBN_HOTITEMCHANGE}
TBN_HOTITEMCHANGE = TBN_FIRST - 13;
{$EXTERNALSYM TBN_DRAGOUT}
TBN_DRAGOUT = TBN_FIRST - 14; // this is sent when the user clicks down on a button then drags off the button
{$EXTERNALSYM TBN_DELETINGBUTTON}
TBN_DELETINGBUTTON = TBN_FIRST - 15; // uses TBNOTIFY
{$EXTERNALSYM TBN_GETDISPINFOA}
TBN_GETDISPINFOA = TBN_FIRST - 16; // This is sent when the toolbar needs some display information
{$EXTERNALSYM TBN_GETDISPINFOW}
TBN_GETDISPINFOW = TBN_FIRST - 17; // This is sent when the toolbar needs some display information
{$EXTERNALSYM TBN_GETINFOTIPA}
TBN_GETINFOTIPA = TBN_FIRST - 18;
{$EXTERNALSYM TBN_GETINFOTIPW}
TBN_GETINFOTIPW = TBN_FIRST - 19;
type
{$EXTERNALSYM tagNMTBGETINFOTIPA}
tagNMTBGETINFOTIPA = record
hdr: TNMHdr;
pszText: PAnsiChar;
cchTextMax: Integer;
iItem: Integer;
lParam: LPARAM;
end;
{$EXTERNALSYM tagNMTBGETINFOTIPW}
tagNMTBGETINFOTIPW = record
hdr: TNMHdr;
pszText: PWideChar;
cchTextMax: Integer;
iItem: Integer;
lParam: LPARAM;
end;
{$EXTERNALSYM tagNMTBGETINFOTIP}
tagNMTBGETINFOTIP = tagNMTBGETINFOTIPW;
PNMTBGetInfoTipA = ^TNMTBGetInfoTipA;
PNMTBGetInfoTipW = ^TNMTBGetInfoTipW;
PNMTBGetInfoTip = PNMTBGetInfoTipW;
TNMTBGetInfoTipA = tagNMTBGETINFOTIPA;
TNMTBGetInfoTipW = tagNMTBGETINFOTIPW;
TNMTBGetInfoTip = TNMTBGetInfoTipW;
const
{$EXTERNALSYM TBNF_IMAGE}
TBNF_IMAGE = $00000001;
{$EXTERNALSYM TBNF_TEXT}
TBNF_TEXT = $00000002;
{$EXTERNALSYM TBNF_DI_SETITEM}
TBNF_DI_SETITEM = $10000000;
type
{$EXTERNALSYM NMTBDISPINFOA}
NMTBDISPINFOA = record
hdr: TNMHdr;
dwMask: DWORD; // [in] Specifies the values requested .[out] Client ask the data to be set for future use
idCommand: Integer; // [in] id of button we're requesting info for
lParam: DWORD; // [in] lParam of button
iImage: Integer; // [out] image index
pszText: PAnsiChar; // [out] new text for item
cchText: Integer; // [in] size of buffer pointed to by pszText
end;
{$EXTERNALSYM NMTBDISPINFOW}
NMTBDISPINFOW = record
hdr: TNMHdr;
dwMask: DWORD; // [in] Specifies the values requested .[out] Client ask the data to be set for future use
idCommand: Integer; // [in] id of button we're requesting info for
lParam: DWORD; // [in] lParam of button
iImage: Integer; // [out] image index
pszText: PWideChar; // [out] new text for item
cchText: Integer; // [in] size of buffer pointed to by pszText
end;
{$EXTERNALSYM NMTBDISPINFO}
NMTBDISPINFO = NMTBDISPINFOW;
PNMTBDispInfoA = ^TNMTBDispInfoA;
PNMTBDispInfoW = ^TNMTBDispInfoW;
PNMTBDispInfo = PNMTBDispInfoW;
TNMTBDispInfoA = NMTBDISPINFOA;
TNMTBDispInfoW = NMTBDISPINFOW;
TNMTBDispInfo = TNMTBDispInfoW;
const
// Return codes for TBN_DROPDOWN
{$EXTERNALSYM TBDDRET_DEFAULT}
TBDDRET_DEFAULT = 0;
{$EXTERNALSYM TBDDRET_NODEFAULT}
TBDDRET_NODEFAULT = 1;
{$EXTERNALSYM TBDDRET_TREATPRESSED}
TBDDRET_TREATPRESSED = 2; // Treat as a standard press button
type
{$EXTERNALSYM tagNMTOOLBARA}
tagNMTOOLBARA = record
hdr: TNMHdr;
iItem: Integer;
tbButton: TTBButton;
cchText: Integer;
pszText: PAnsiChar;
end;
{$EXTERNALSYM tagNMTOOLBARW}
tagNMTOOLBARW = record
hdr: TNMHdr;
iItem: Integer;
tbButton: TTBButton;
cchText: Integer;
pszText: PWideChar;
end;
{$EXTERNALSYM tagNMTOOLBAR}
tagNMTOOLBAR = tagNMTOOLBARW;
PNMToolBarA = ^TNMToolBarA;
PNMToolBarW = ^TNMToolBarW;
PNMToolBar = PNMToolBarW;
TNMToolBarA = tagNMTOOLBARA;
TNMToolBarW = tagNMTOOLBARW;
TNMToolBar = TNMToolBarW;
{ ====== REBAR CONTROL =================== }
const
{$EXTERNALSYM REBARCLASSNAME}
REBARCLASSNAME = 'ReBarWindow32';
type
{$EXTERNALSYM tagREBARINFO}
tagREBARINFO = packed record
cbSize: UINT;
fMask: UINT;
himl: HIMAGELIST;
end;
PReBarInfo = ^TReBarInfo;
TReBarInfo = tagREBARINFO;
const
{$EXTERNALSYM RBIM_IMAGELIST}
RBIM_IMAGELIST = $00000001;
{$EXTERNALSYM RBS_TOOLTIPS}
RBS_TOOLTIPS = $00000100;
{$EXTERNALSYM RBS_VARHEIGHT}
RBS_VARHEIGHT = $00000200;
{$EXTERNALSYM RBS_BANDBORDERS}
RBS_BANDBORDERS = $00000400;
{$EXTERNALSYM RBS_FIXEDORDER}
RBS_FIXEDORDER = $00000800;
{$EXTERNALSYM RBS_REGISTERDROP}
RBS_REGISTERDROP = $00001000;
{$EXTERNALSYM RBS_AUTOSIZE}
RBS_AUTOSIZE = $00002000;
{$EXTERNALSYM RBS_VERTICALGRIPPER}
RBS_VERTICALGRIPPER = $00004000; // this always has the vertical gripper (default for horizontal mode)
{$EXTERNALSYM RBS_DBLCLKTOGGLE}
RBS_DBLCLKTOGGLE = $00008000;
{$EXTERNALSYM RBBS_BREAK}
RBBS_BREAK = $00000001; // break to new line
{$EXTERNALSYM RBBS_FIXEDSIZE}
RBBS_FIXEDSIZE = $00000002; // band can't be sized
{$EXTERNALSYM RBBS_CHILDEDGE}
RBBS_CHILDEDGE = $00000004; // edge around top and bottom of child window
{$EXTERNALSYM RBBS_HIDDEN}
RBBS_HIDDEN = $00000008; // don't show
{$EXTERNALSYM RBBS_NOVERT}
RBBS_NOVERT = $00000010; // don't show when vertical
{$EXTERNALSYM RBBS_FIXEDBMP}
RBBS_FIXEDBMP = $00000020; // bitmap doesn't move during band resize
{$EXTERNALSYM RBBS_VARIABLEHEIGHT}
RBBS_VARIABLEHEIGHT = $00000040; // allow autosizing of this child vertically
{$EXTERNALSYM RBBS_GRIPPERALWAYS}
RBBS_GRIPPERALWAYS = $00000080; // always show the gripper
{$EXTERNALSYM RBBS_NOGRIPPER}
RBBS_NOGRIPPER = $00000100; // never show the gripper
{ For IE >= 0x0500 }
{$EXTERNALSYM RBBS_USECHEVRON}
RBBS_USECHEVRON = $00000200; { display drop-down button for this band if it's sized smaller than ideal width }
{ For IE >= 0x0501 }
{$EXTERNALSYM RBBS_HIDETITLE}
RBBS_HIDETITLE = $00000400; { keep band title hidden }
{$EXTERNALSYM RBBS_TOPALIGN}
RBBS_TOPALIGN = $00000800; { keep band in top row }
{$EXTERNALSYM RBBIM_STYLE}
RBBIM_STYLE = $00000001;
{$EXTERNALSYM RBBIM_COLORS}
RBBIM_COLORS = $00000002;
{$EXTERNALSYM RBBIM_TEXT}
RBBIM_TEXT = $00000004;
{$EXTERNALSYM RBBIM_IMAGE}
RBBIM_IMAGE = $00000008;
{$EXTERNALSYM RBBIM_CHILD}
RBBIM_CHILD = $00000010;
{$EXTERNALSYM RBBIM_CHILDSIZE}
RBBIM_CHILDSIZE = $00000020;
{$EXTERNALSYM RBBIM_SIZE}
RBBIM_SIZE = $00000040;
{$EXTERNALSYM RBBIM_BACKGROUND}
RBBIM_BACKGROUND = $00000080;
{$EXTERNALSYM RBBIM_ID}
RBBIM_ID = $00000100;
{$EXTERNALSYM RBBIM_IDEALSIZE}
RBBIM_IDEALSIZE = $00000200;
{$EXTERNALSYM RBBIM_LPARAM}
RBBIM_LPARAM = $00000400;
{$EXTERNALSYM RBBIM_HEADERSIZE}
RBBIM_HEADERSIZE = $00000800; // control the size of the header
{ For Windows >= Vista }
{$EXTERNALSYM RBBIM_CHEVRONLOCATION}
RBBIM_CHEVRONLOCATION = $00001000;
{$EXTERNALSYM RBBIM_CHEVRONSTATE}
RBBIM_CHEVRONSTATE = $00002000;
type
{$EXTERNALSYM tagREBARBANDINFOA}
tagREBARBANDINFOA = record
cbSize: UINT;
fMask: UINT;
fStyle: UINT;
clrFore: TColorRef;
clrBack: TColorRef;
lpText: PAnsiChar;
cch: UINT;
iImage: Integer;
hwndChild: HWnd;
cxMinChild: UINT;
cyMinChild: UINT;
cx: UINT;
hbmBack: HBitmap;
wID: UINT;
cyChild: UINT;
cyMaxChild: UINT;
cyIntegral: UINT;
cxIdeal: UINT;
lParam: LPARAM;
cxHeader: UINT;
rcChevronLocation: TRect; // the rect is in client co-ord wrt hwndChild
uChevronState: UINT; // STATE_SYSTEM_*
end;
{$EXTERNALSYM tagREBARBANDINFOW}
tagREBARBANDINFOW = record
cbSize: UINT;
fMask: UINT;
fStyle: UINT;
clrFore: TColorRef;
clrBack: TColorRef;
lpText: PWideChar;
cch: UINT;
iImage: Integer;
hwndChild: HWnd;
cxMinChild: UINT;
cyMinChild: UINT;
cx: UINT;
hbmBack: HBitmap;
wID: UINT;
cyChild: UINT;
cyMaxChild: UINT;
cyIntegral: UINT;
cxIdeal: UINT;
lParam: LPARAM;
cxHeader: UINT;
rcChevronLocation: TRect; // the rect is in client co-ord wrt hwndChild
uChevronState: UINT; // STATE_SYSTEM_*
end;
{$EXTERNALSYM tagREBARBANDINFO}
tagREBARBANDINFO = tagREBARBANDINFOW;
PReBarBandInfoA = ^TReBarBandInfoA;
PReBarBandInfoW = ^TReBarBandInfoW;
PReBarBandInfo = PReBarBandInfoW;
TReBarBandInfoA = tagREBARBANDINFOA;
TReBarBandInfoW = tagREBARBANDINFOW;
TReBarBandInfo = TReBarBandInfoW;
const
{$EXTERNALSYM RB_INSERTBANDA}
RB_INSERTBANDA = WM_USER + 1;
{$EXTERNALSYM RB_DELETEBAND}
RB_DELETEBAND = WM_USER + 2;
{$EXTERNALSYM RB_GETBARINFO}
RB_GETBARINFO = WM_USER + 3;
{$EXTERNALSYM RB_SETBARINFO}
RB_SETBARINFO = WM_USER + 4;
RB_GETBANDINFO_PRE_IE4 = WM_USER + 5;
{$EXTERNALSYM RB_SETBANDINFOA}
RB_SETBANDINFOA = WM_USER + 6;
{$EXTERNALSYM RB_SETPARENT}
RB_SETPARENT = WM_USER + 7;
{$EXTERNALSYM RB_HITTEST}
RB_HITTEST = WM_USER + 8;
{$EXTERNALSYM RB_GETRECT}
RB_GETRECT = WM_USER + 9;
{$EXTERNALSYM RB_INSERTBANDW}
RB_INSERTBANDW = WM_USER + 10;
{$EXTERNALSYM RB_SETBANDINFOW}
RB_SETBANDINFOW = WM_USER + 11;
{$EXTERNALSYM RB_GETBANDCOUNT}
RB_GETBANDCOUNT = WM_USER + 12;
{$EXTERNALSYM RB_GETROWCOUNT}
RB_GETROWCOUNT = WM_USER + 13;
{$EXTERNALSYM RB_GETROWHEIGHT}
RB_GETROWHEIGHT = WM_USER + 14;
{$EXTERNALSYM RB_IDTOINDEX}
RB_IDTOINDEX = WM_USER + 16; // wParam == id
{$EXTERNALSYM RB_GETTOOLTIPS}
RB_GETTOOLTIPS = WM_USER + 17;
{$EXTERNALSYM RB_SETTOOLTIPS}
RB_SETTOOLTIPS = WM_USER + 18;
{$EXTERNALSYM RB_SETBKCOLOR}
RB_SETBKCOLOR = WM_USER + 19; // sets the default BK color
{$EXTERNALSYM RB_GETBKCOLOR}
RB_GETBKCOLOR = WM_USER + 20; // defaults to CLR_NONE
{$EXTERNALSYM RB_SETTEXTCOLOR}
RB_SETTEXTCOLOR = WM_USER + 21;
{$EXTERNALSYM RB_GETTEXTCOLOR}
RB_GETTEXTCOLOR = WM_USER + 22; // defaults to 0x00000000
{$EXTERNALSYM RB_SIZETORECT}
RB_SIZETORECT = WM_USER + 23; // resize the rebar/break bands and such to this rect (lparam;
{ For Windows >= XP }
{$EXTERNALSYM RBSTR_CHANGERECT}
RBSTR_CHANGERECT = $0001; { flags for RB_SIZETORECT }
{$EXTERNALSYM RB_SETCOLORSCHEME}
RB_SETCOLORSCHEME = CCM_SETCOLORSCHEME; { lParam is color scheme }
{$EXTERNALSYM RB_GETCOLORSCHEME}
RB_GETCOLORSCHEME = CCM_GETCOLORSCHEME; { fills in COLORSCHEME pointed to by lParam }
// for manual drag control
// lparam == cursor pos
// -1 means do it yourself.
// -2 means use what you had saved before
{$EXTERNALSYM RB_BEGINDRAG}
RB_BEGINDRAG = WM_USER + 24;
{$EXTERNALSYM RB_ENDDRAG}
RB_ENDDRAG = WM_USER + 25;
{$EXTERNALSYM RB_DRAGMOVE}
RB_DRAGMOVE = WM_USER + 26;
{$EXTERNALSYM RB_GETBARHEIGHT}
RB_GETBARHEIGHT = WM_USER + 27;
{$EXTERNALSYM RB_GETBANDINFOW}
RB_GETBANDINFOW = WM_USER + 28;
{$EXTERNALSYM RB_GETBANDINFOA}
RB_GETBANDINFOA = WM_USER + 29;
{$EXTERNALSYM RB_MINIMIZEBAND}
RB_MINIMIZEBAND = WM_USER + 30;
{$EXTERNALSYM RB_MAXIMIZEBAND}
RB_MAXIMIZEBAND = WM_USER + 31;
{$EXTERNALSYM RB_GETDROPTARGET}
RB_GETDROPTARGET = CCM_GETDROPTARGET;
{$EXTERNALSYM RB_GETBANDBORDERS}
RB_GETBANDBORDERS = WM_USER + 34; // returns in lparam = lprc the amount of edges added to band wparam
{$EXTERNALSYM RB_SHOWBAND}
RB_SHOWBAND = WM_USER + 35; // show/hide band
{$EXTERNALSYM RB_SETPALETTE}
RB_SETPALETTE = WM_USER + 37;
{$EXTERNALSYM RB_GETPALETTE}
RB_GETPALETTE = WM_USER + 38;
{$EXTERNALSYM RB_MOVEBAND}
RB_MOVEBAND = WM_USER + 39;
{$EXTERNALSYM RB_SETUNICODEFORMAT}
RB_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
{$EXTERNALSYM RB_GETUNICODEFORMAT}
RB_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
{ For Windows >= XP }
{$EXTERNALSYM RB_GETBANDMARGINS}
RB_GETBANDMARGINS = WM_USER + 40;
{$EXTERNALSYM RB_SETWINDOWTHEME}
RB_SETWINDOWTHEME = CCM_SETWINDOWTHEME;
{ For Windows >= Vista }
{$EXTERNALSYM RB_SETEXTENDEDSTYLE}
RB_SETEXTENDEDSTYLE = WM_USER + 41;
{$EXTERNALSYM RB_GETEXTENDEDSTYLE}
RB_GETEXTENDEDSTYLE = WM_USER + 42;
{ For IE >= 0x0500 }
{$EXTERNALSYM RB_PUSHCHEVRON}
RB_PUSHCHEVRON = WM_USER + 43;
{ For Windows >= Vista }
{$EXTERNALSYM RB_SETBANDWIDTH}
RB_SETBANDWIDTH = WM_USER + 44; { set width for docked band }
{$IFDEF UNICODE}
{$EXTERNALSYM RB_INSERTBAND}
RB_INSERTBAND = RB_INSERTBANDW;
{$EXTERNALSYM RB_SETBANDINFO}
RB_SETBANDINFO = RB_SETBANDINFOW;
{$EXTERNALSYM RB_GETBANDINFO}
RB_GETBANDINFO = RB_GETBANDINFOW;
{$ELSE}
{$EXTERNALSYM RB_INSERTBAND}
RB_INSERTBAND = RB_INSERTBANDA;
{$EXTERNALSYM RB_SETBANDINFO}
RB_SETBANDINFO = RB_SETBANDINFOA;
{$EXTERNALSYM RB_GETBANDINFO}
RB_GETBANDINFO = RB_GETBANDINFOA;
{$ENDIF}
{$EXTERNALSYM RBN_HEIGHTCHANGE}
RBN_HEIGHTCHANGE = RBN_FIRST - 0;
{$EXTERNALSYM RBN_GETOBJECT}
RBN_GETOBJECT = RBN_FIRST - 1;
{$EXTERNALSYM RBN_LAYOUTCHANGED}
RBN_LAYOUTCHANGED = RBN_FIRST - 2;
{$EXTERNALSYM RBN_AUTOSIZE}
RBN_AUTOSIZE = RBN_FIRST - 3;
{$EXTERNALSYM RBN_BEGINDRAG}
RBN_BEGINDRAG = RBN_FIRST - 4;
{$EXTERNALSYM RBN_ENDDRAG}
RBN_ENDDRAG = RBN_FIRST - 5;
{$EXTERNALSYM RBN_DELETINGBAND}
RBN_DELETINGBAND = RBN_FIRST - 6; // Uses NMREBAR
{$EXTERNALSYM RBN_DELETEDBAND}
RBN_DELETEDBAND = RBN_FIRST - 7; // Uses NMREBAR
{$EXTERNALSYM RBN_CHILDSIZE}
RBN_CHILDSIZE = RBN_FIRST - 8;
{ For IE >= 0x0500 }
{$EXTERNALSYM RBN_CHEVRONPUSHED}
RBN_CHEVRONPUSHED = RBN_FIRST - 10;
{ For IE >= 0x0600 }
{$EXTERNALSYM RBN_SPLITTERDRAG}
RBN_SPLITTERDRAG = RBN_FIRST - 11;
{ For IE >= 0x0500 }
{$EXTERNALSYM RBN_MINMAX}
RBN_MINMAX = RBN_FIRST - 21;
{ For Windows >= XP }
{$EXTERNALSYM RBN_AUTOBREAK}
RBN_AUTOBREAK = RBN_FIRST - 22;
type
{$EXTERNALSYM tagNMREBARCHILDSIZE}
tagNMREBARCHILDSIZE = packed record
hdr: TNMHdr;
uBand: UINT;
wID: UINT;
rcChild: TRect;
rcBand: TRect;
end;
PNMReBarChildSize = ^TNMReBarChildSize;
TNMReBarChildSize = tagNMREBARCHILDSIZE;
{$EXTERNALSYM tagNMREBAR}
tagNMREBAR = packed record
hdr: TNMHdr;
dwMask: DWORD; // RBNM_*
uBand: UINT;
fStyle: UINT;
wID: UINT;
lParam: LPARAM;
end;
PNMReBar = ^TNMReBar;
TNMReBar = tagNMREBAR;
const
// Mask flags for NMREBAR
{$EXTERNALSYM RBNM_ID}
RBNM_ID = $00000001;
{$EXTERNALSYM RBNM_STYLE}
RBNM_STYLE = $00000002;
{$EXTERNALSYM RBNM_LPARAM}
RBNM_LPARAM = $00000004;
type
{$EXTERNALSYM tagNMRBAUTOSIZE}
tagNMRBAUTOSIZE = packed record
hdr: TNMHdr;
fChanged: BOOL;
rcTarget: TRect;
rcActual: TRect;
end;
PNMRBAutoSize = ^TNMRBAutoSize;
TNMRBAutoSize = tagNMRBAUTOSIZE;
{ For IE >= 0x0500 }
{$EXTERNALSYM tagNMREBARCHEVRON}
tagNMREBARCHEVRON = packed record
hdr: NMHDR;
uBand: UINT;
wID: UINT;
lParam: LPARAM;
rc: TRect;
lParamNM: LPARAM;
end;
PNMReBarChevron = ^TNMReBarChevron;
TNMReBarChevron = tagNMREBARCHEVRON;
{ For IE >= 0x0600 }
{ $EXTERNALSYM tagNMREBARSPLITTER}
tagNMREBARSPLITTER = packed record
hdr: NMHDR;
rcSizing: TRect;
end;
PNMReBarSplitter = ^TNMReBarSplitter;
TNMReBarSplitter = tagNMREBARSPLITTER;
const
{ For Windows >= XP }
{$EXTERNALSYM RBAB_AUTOSIZE}
RBAB_AUTOSIZE = $0001; { These are not flags and are all mutually exclusive }
{$EXTERNALSYM RBAB_ADDBAND}
RBAB_ADDBAND = $0002;
type
{ $EXTERNALSYM tagNMREBARAUTOBREAK}
tagNMREBARAUTOBREAK = packed record
hdr: NMHDR;
uBand: UINT;
wID: UINT;
lParam: LPARAM;
uMsg: UINT;
fStyleCurrent: UINT;
fAutoBreak: BOOL;
end;
PNMReBarAutoBreak = ^TNMReBarAutoBreak;
TNMReBarAutoBreak = tagNMREBARAUTOBREAK;
const
{$EXTERNALSYM RBHT_NOWHERE}
RBHT_NOWHERE = $0001;
{$EXTERNALSYM RBHT_CAPTION}
RBHT_CAPTION = $0002;
{$EXTERNALSYM RBHT_CLIENT}
RBHT_CLIENT = $0003;
{$EXTERNALSYM RBHT_GRABBER}
RBHT_GRABBER = $0004;
{ For IE >= 0x0500 }
{$EXTERNALSYM RBHT_CHEVRON}
RBHT_CHEVRON = $0008;
{ For IE >= 0x0600 }
{$EXTERNALSYM RBHT_SPLITTER}
RBHT_SPLITTER = $0010;
type
{$EXTERNALSYM _RB_HITTESTINFO}
_RB_HITTESTINFO = packed record
pt: TPoint;
flags: UINT;
iBand: Integer;
end;
PRBHitTestInfo = ^TRBHitTestInfo;
TRBHitTestInfo = _RB_HITTESTINFO;
{ ====== TOOLTIPS CONTROL ========================== }
const
{$EXTERNALSYM TOOLTIPS_CLASS}
TOOLTIPS_CLASS = 'tooltips_class32';
type
PToolInfoA = ^TToolInfoA;
PToolInfoW = ^TToolInfoW;
PToolInfo = PToolInfoW;
{$EXTERNALSYM tagTOOLINFOA}
tagTOOLINFOA = record
cbSize: UINT;
uFlags: UINT;
hwnd: HWND;
uId: UINT;
Rect: TRect;
hInst: THandle;
lpszText: PAnsiChar;
lParam: LPARAM;
{ For Windows >= XP }
lpReserved: Pointer;
end;
{$EXTERNALSYM tagTOOLINFOW}
tagTOOLINFOW = record
cbSize: UINT;
uFlags: UINT;
hwnd: HWND;
uId: UINT;
Rect: TRect;
hInst: THandle;
lpszText: PWideChar;
lParam: LPARAM;
{ For Windows >= XP }
lpReserved: Pointer;
end;
{$EXTERNALSYM tagTOOLINFO}
tagTOOLINFO = tagTOOLINFOW;
TToolInfoA = tagTOOLINFOA;
TToolInfoW = tagTOOLINFOW;
TToolInfo = TToolInfoW;
{$EXTERNALSYM TOOLINFOA}
TOOLINFOA = tagTOOLINFOA;
{$EXTERNALSYM TOOLINFOW}
TOOLINFOW = tagTOOLINFOW;
{$EXTERNALSYM TOOLINFO}
TOOLINFO = TOOLINFOW;
const
{$EXTERNALSYM TTS_ALWAYSTIP}
TTS_ALWAYSTIP = $01;
{$EXTERNALSYM TTS_NOPREFIX}
TTS_NOPREFIX = $02;
{ For IE >= 0x0500 }
{$EXTERNALSYM TTS_NOANIMATE}
TTS_NOANIMATE = $10;
{$EXTERNALSYM TTS_NOFADE}
TTS_NOFADE = $20;
{$EXTERNALSYM TTS_BALLOON}
TTS_BALLOON = $40;
{$EXTERNALSYM TTS_CLOSE}
TTS_CLOSE = $80;
{ For Windows >= Vista }
{$EXTERNALSYM TTS_USEVISUALSTYLE}
TTS_USEVISUALSTYLE = $100; // Use themed hyperlinks
{$EXTERNALSYM TTF_IDISHWND}
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.
{$EXTERNALSYM TTF_CENTERTIP}
TTF_CENTERTIP = $0002;
{$EXTERNALSYM TTF_RTLREADING}
TTF_RTLREADING = $0004;
{$EXTERNALSYM TTF_SUBCLASS}
TTF_SUBCLASS = $0010;
{$EXTERNALSYM TTF_TRACK}
TTF_TRACK = $0020;
{$EXTERNALSYM TTF_ABSOLUTE}
TTF_ABSOLUTE = $0080;
{$EXTERNALSYM TTF_TRANSPARENT}
TTF_TRANSPARENT = $0100;
{$EXTERNALSYM TTF_PARSELINKS}
TTF_PARSELINKS = $1000; // For IE >= 0x0501
{$EXTERNALSYM TTF_DI_SETITEM}
TTF_DI_SETITEM = $8000; // valid only on the TTN_NEEDTEXT callback
{$EXTERNALSYM TTDT_AUTOMATIC}
TTDT_AUTOMATIC = 0;
{$EXTERNALSYM TTDT_RESHOW}
TTDT_RESHOW = 1;
{$EXTERNALSYM TTDT_AUTOPOP}
TTDT_AUTOPOP = 2;
{$EXTERNALSYM TTDT_INITIAL}
TTDT_INITIAL = 3;
// ToolTip Icons (Set with TTM_SETTITLE)
{$EXTERNALSYM TTI_NONE}
TTI_NONE = 0;
{$EXTERNALSYM TTI_INFO}
TTI_INFO = 1;
{$EXTERNALSYM TTI_WARNING}
TTI_WARNING = 2;
{$EXTERNALSYM TTI_ERROR}
TTI_ERROR = 3;
{ For Windows >= Vista }
{$EXTERNALSYM TTI_INFO_LARGE}
TTI_INFO_LARGE = 4;
{$EXTERNALSYM TTI_WARNING_LARGE}
TTI_WARNING_LARGE = 5;
{$EXTERNALSYM TTI_ERROR_LARGE}
TTI_ERROR_LARGE = 6;
// Tool Tip Messages
{$EXTERNALSYM TTM_ACTIVATE}
TTM_ACTIVATE = WM_USER + 1;
{$EXTERNALSYM TTM_SETDELAYTIME}
TTM_SETDELAYTIME = WM_USER + 3;
{$EXTERNALSYM TTM_ADDTOOLA}
TTM_ADDTOOLA = WM_USER + 4;
{$EXTERNALSYM TTM_DELTOOLA}
TTM_DELTOOLA = WM_USER + 5;
{$EXTERNALSYM TTM_NEWTOOLRECTA}
TTM_NEWTOOLRECTA = WM_USER + 6;
{$EXTERNALSYM TTM_GETTOOLINFOA}
TTM_GETTOOLINFOA = WM_USER + 8;
{$EXTERNALSYM TTM_SETTOOLINFOA}
TTM_SETTOOLINFOA = WM_USER + 9;
{$EXTERNALSYM TTM_HITTESTA}
TTM_HITTESTA = WM_USER + 10;
{$EXTERNALSYM TTM_GETTEXTA}
TTM_GETTEXTA = WM_USER + 11;
{$EXTERNALSYM TTM_UPDATETIPTEXTA}
TTM_UPDATETIPTEXTA = WM_USER + 12;
{$EXTERNALSYM TTM_ENUMTOOLSA}
TTM_ENUMTOOLSA = WM_USER + 14;
{$EXTERNALSYM TTM_GETCURRENTTOOLA}
TTM_GETCURRENTTOOLA = WM_USER + 15;
{$EXTERNALSYM TTM_ADDTOOLW}
TTM_ADDTOOLW = WM_USER + 50;
{$EXTERNALSYM TTM_DELTOOLW}
TTM_DELTOOLW = WM_USER + 51;
{$EXTERNALSYM TTM_NEWTOOLRECTW}
TTM_NEWTOOLRECTW = WM_USER + 52;
{$EXTERNALSYM TTM_GETTOOLINFOW}
TTM_GETTOOLINFOW = WM_USER + 53;
{$EXTERNALSYM TTM_SETTOOLINFOW}
TTM_SETTOOLINFOW = WM_USER + 54;
{$EXTERNALSYM TTM_HITTESTW}
TTM_HITTESTW = WM_USER + 55;
{$EXTERNALSYM TTM_GETTEXTW}
TTM_GETTEXTW = WM_USER + 56;
{$EXTERNALSYM TTM_UPDATETIPTEXTW}
TTM_UPDATETIPTEXTW = WM_USER + 57;
{$EXTERNALSYM TTM_ENUMTOOLSW}
TTM_ENUMTOOLSW = WM_USER + 58;
{$EXTERNALSYM TTM_GETCURRENTTOOLW}
TTM_GETCURRENTTOOLW = WM_USER + 59;
{$EXTERNALSYM TTM_WINDOWFROMPOINT}
TTM_WINDOWFROMPOINT = WM_USER + 16;
{$EXTERNALSYM TTM_TRACKACTIVATE}
TTM_TRACKACTIVATE = WM_USER + 17; // wParam = TRUE/FALSE start end lparam = LPTOOLINFO
{$EXTERNALSYM TTM_TRACKPOSITION}
TTM_TRACKPOSITION = WM_USER + 18; // lParam = dwPos
{$EXTERNALSYM TTM_SETTIPBKCOLOR}
TTM_SETTIPBKCOLOR = WM_USER + 19;
{$EXTERNALSYM TTM_SETTIPTEXTCOLOR}
TTM_SETTIPTEXTCOLOR = WM_USER + 20;
{$EXTERNALSYM TTM_GETDELAYTIME}
TTM_GETDELAYTIME = WM_USER + 21;
{$EXTERNALSYM TTM_GETTIPBKCOLOR}
TTM_GETTIPBKCOLOR = WM_USER + 22;
{$EXTERNALSYM TTM_GETTIPTEXTCOLOR}
TTM_GETTIPTEXTCOLOR = WM_USER + 23;
{$EXTERNALSYM TTM_SETMAXTIPWIDTH}
TTM_SETMAXTIPWIDTH = WM_USER + 24;
{$EXTERNALSYM TTM_GETMAXTIPWIDTH}
TTM_GETMAXTIPWIDTH = WM_USER + 25;
{$EXTERNALSYM TTM_SETMARGIN}
TTM_SETMARGIN = WM_USER + 26; // lParam = lprc
{$EXTERNALSYM TTM_GETMARGIN}
TTM_GETMARGIN = WM_USER + 27; // lParam = lprc
{$EXTERNALSYM TTM_POP}
TTM_POP = WM_USER + 28;
{$EXTERNALSYM TTM_UPDATE}
TTM_UPDATE = WM_USER + 29;
{ For IE >= 0X0500 }
{$EXTERNALSYM TTM_GETBUBBLESIZE}
TTM_GETBUBBLESIZE = WM_USER + 30;
{$EXTERNALSYM TTM_ADJUSTRECT}
TTM_ADJUSTRECT = WM_USER + 31;
{$EXTERNALSYM TTM_SETTITLEA}
TTM_SETTITLEA = WM_USER + 32; { wParam = TTI_*, lParam = char* szTitle }
{$EXTERNALSYM TTM_SETTITLEW}
TTM_SETTITLEW = WM_USER + 33; { wParam = TTI_*, lParam = wchar* szTitle }
{ For Windows >= XP }
{$EXTERNALSYM TTM_POPUP}
TTM_POPUP = WM_USER + 34;
{$EXTERNALSYM TTM_GETTITLE}
TTM_GETTITLE = WM_USER + 35; { wParam = 0, lParam = TTGETTITLE* }
type
{ For Windows >= XP }
{ $EXTERNALSYM _TTGETTITLE}
_TTGETTITLE = record
dwSize: DWORD;
uTitleBitmap: Integer;
cch: Integer;
pszTitle: PWCHAR;
end;
PTTGetTitle = ^TTTGetTitle;
TTTGetTitle = _TTGETTITLE;
const
{$IFDEF UNICODE}
{$EXTERNALSYM TTM_ADDTOOL}
TTM_ADDTOOL = TTM_ADDTOOLW;
{$EXTERNALSYM TTM_DELTOOL}
TTM_DELTOOL = TTM_DELTOOLW;
{$EXTERNALSYM TTM_NEWTOOLRECT}
TTM_NEWTOOLRECT = TTM_NEWTOOLRECTW;
{$EXTERNALSYM TTM_GETTOOLINFO}
TTM_GETTOOLINFO = TTM_GETTOOLINFOW;
{$EXTERNALSYM TTM_SETTOOLINFO}
TTM_SETTOOLINFO = TTM_SETTOOLINFOW;
{$EXTERNALSYM TTM_HITTEST}
TTM_HITTEST = TTM_HITTESTW;
{$EXTERNALSYM TTM_GETTEXT}
TTM_GETTEXT = TTM_GETTEXTW;
{$EXTERNALSYM TTM_UPDATETIPTEXT}
TTM_UPDATETIPTEXT = TTM_UPDATETIPTEXTW;
{$EXTERNALSYM TTM_ENUMTOOLS}
TTM_ENUMTOOLS = TTM_ENUMTOOLSW;
{$EXTERNALSYM TTM_GETCURRENTTOOL}
TTM_GETCURRENTTOOL = TTM_GETCURRENTTOOLW;
{$ELSE}
{$EXTERNALSYM TTM_ADDTOOL}
TTM_ADDTOOL = TTM_ADDTOOLA;
{$EXTERNALSYM TTM_DELTOOL}
TTM_DELTOOL = TTM_DELTOOLA;
{$EXTERNALSYM TTM_NEWTOOLRECT}
TTM_NEWTOOLRECT = TTM_NEWTOOLRECTA;
{$EXTERNALSYM TTM_GETTOOLINFO}
TTM_GETTOOLINFO = TTM_GETTOOLINFOA;
{$EXTERNALSYM TTM_SETTOOLINFO}
TTM_SETTOOLINFO = TTM_SETTOOLINFOA;
{$EXTERNALSYM TTM_HITTEST}
TTM_HITTEST = TTM_HITTESTA;
{$EXTERNALSYM TTM_GETTEXT}
TTM_GETTEXT = TTM_GETTEXTA;
{$EXTERNALSYM TTM_UPDATETIPTEXT}
TTM_UPDATETIPTEXT = TTM_UPDATETIPTEXTA;
{$EXTERNALSYM TTM_ENUMTOOLS}
TTM_ENUMTOOLS = TTM_ENUMTOOLSA;
{$EXTERNALSYM TTM_GETCURRENTTOOL}
TTM_GETCURRENTTOOL = TTM_GETCURRENTTOOLA;
{$ENDIF}
{ For IE >= 0X0500 }
{$EXTERNALSYM TTM_SETTITLE}
TTM_SETTITLE = TTM_SETTITLEW;
{ For Windows >= XP }
{$EXTERNALSYM TTM_SETWINDOWTHEME}
TTM_SETWINDOWTHEME = CCM_SETWINDOWTHEME;
{$EXTERNALSYM TTM_RELAYEVENT}
TTM_RELAYEVENT = WM_USER + 7;
{$EXTERNALSYM TTM_GETTOOLCOUNT}
TTM_GETTOOLCOUNT = WM_USER +13;
type
PTTHitTestInfoA = ^TTTHitTestInfoA;
PTTHitTestInfoW = ^TTTHitTestInfoW;
PTTHitTestInfo = PTTHitTestInfoW;
{$EXTERNALSYM _TT_HITTESTINFOA}
_TT_HITTESTINFOA = record
hwnd: HWND;
pt: TPoint;
ti: TToolInfoA;
end;
{$EXTERNALSYM _TT_HITTESTINFOW}
_TT_HITTESTINFOW = record
hwnd: HWND;
pt: TPoint;
ti: TToolInfoW;
end;
{$EXTERNALSYM _TT_HITTESTINFO}
_TT_HITTESTINFO = _TT_HITTESTINFOW;
TTTHitTestInfoA = _TT_HITTESTINFOA;
TTTHitTestInfoW = _TT_HITTESTINFOW;
TTTHitTestInfo = TTTHitTestInfoW;
{$EXTERNALSYM TTHITTESTINFOA}
TTHITTESTINFOA = _TT_HITTESTINFOA;
{$EXTERNALSYM TTHITTESTINFOW}
TTHITTESTINFOW = _TT_HITTESTINFOW;
{$EXTERNALSYM TTHITTESTINFO}
TTHITTESTINFO = TTHITTESTINFOW;
const
{$EXTERNALSYM TTN_NEEDTEXTA}
TTN_NEEDTEXTA = TTN_FIRST - 0;
{$EXTERNALSYM TTN_NEEDTEXTW}
TTN_NEEDTEXTW = TTN_FIRST - 10;
{$IFDEF UNICODE}
{$EXTERNALSYM TTN_NEEDTEXT}
TTN_NEEDTEXT = TTN_NEEDTEXTW;
{$ELSE}
{$EXTERNALSYM TTN_NEEDTEXT}
TTN_NEEDTEXT = TTN_NEEDTEXTA;
{$ENDIF}
{$EXTERNALSYM TTN_SHOW}
TTN_SHOW = TTN_FIRST - 1;
{$EXTERNALSYM TTN_POP}
TTN_POP = TTN_FIRST - 2;
type
tagNMTTDISPINFOA = record
hdr: TNMHdr;
lpszText: PAnsiChar;
szText: array[0..79] of AnsiChar;
hinst: HINST;
uFlags: UINT;
lParam: LPARAM;
end;
// {$EXTERNALSYM tagNMTTDISPINFOA}
tagNMTTDISPINFOW = record
hdr: TNMHdr;
lpszText: PWideChar;
szText: array[0..79] of WideChar;
hinst: HINST;
uFlags: UINT;
lParam: LPARAM;
end;
// {$EXTERNALSYM tagNMTTDISPINFOW}
tagNMTTDISPINFO = tagNMTTDISPINFOW;
PNMTTDispInfoA = ^TNMTTDispInfoA;
PNMTTDispInfoW = ^TNMTTDispInfoW;
PNMTTDispInfo = PNMTTDispInfoW;
TNMTTDispInfoA = tagNMTTDISPINFOA;
TNMTTDispInfoW = tagNMTTDISPINFOW;
TNMTTDispInfo = TNMTTDispInfoW;
{$EXTERNALSYM tagTOOLTIPTEXTA}
tagTOOLTIPTEXTA = tagNMTTDISPINFOA;
{$EXTERNALSYM tagTOOLTIPTEXTW}
tagTOOLTIPTEXTW = tagNMTTDISPINFOW;
{$EXTERNALSYM tagTOOLTIPTEXT}
tagTOOLTIPTEXT = tagTOOLTIPTEXTW;
{$EXTERNALSYM TOOLTIPTEXTA}
TOOLTIPTEXTA = tagNMTTDISPINFOA;
{$EXTERNALSYM TOOLTIPTEXTW}
TOOLTIPTEXTW = tagNMTTDISPINFOW;
{$EXTERNALSYM TOOLTIPTEXT}
TOOLTIPTEXT = TOOLTIPTEXTW;
TToolTipTextA = tagNMTTDISPINFOA;
TToolTipTextW = tagNMTTDISPINFOW;
TToolTipText = TToolTipTextW;
PToolTipTextA = ^TToolTipTextA;
PToolTipTextW = ^TToolTipTextW;
PToolTipText = PToolTipTextW;
{ ====== STATUS BAR CONTROL ================= }
const
{$EXTERNALSYM SBARS_SIZEGRIP}
SBARS_SIZEGRIP = $0100;
{$EXTERNALSYM DrawStatusText}
procedure DrawStatusText(hDC: HDC; lprc: PRect; pzsText: PWideChar;
uFlags: UINT); stdcall;
{$EXTERNALSYM DrawStatusTextA}
procedure DrawStatusTextA(hDC: HDC; lprc: PRect; pzsText: PAnsiChar;
uFlags: UINT); stdcall;
{$EXTERNALSYM DrawStatusTextW}
procedure DrawStatusTextW(hDC: HDC; lprc: PRect; pzsText: PWideChar;
uFlags: UINT); stdcall;
{$EXTERNALSYM CreateStatusWindow}
function CreateStatusWindow(Style: Longint; lpszText: PWideChar;
hwndParent: HWND; wID: UINT): HWND; stdcall;
{$EXTERNALSYM CreateStatusWindowA}
function CreateStatusWindowA(Style: Longint; lpszText: PAnsiChar;
hwndParent: HWND; wID: UINT): HWND; stdcall;
{$EXTERNALSYM CreateStatusWindowW}
function CreateStatusWindowW(Style: Longint; lpszText: PWideChar;
hwndParent: HWND; wID: UINT): HWND; stdcall;
const
{$EXTERNALSYM STATUSCLASSNAME}
STATUSCLASSNAME = 'msctls_statusbar32';
const
{$EXTERNALSYM SB_SETTEXTA}
SB_SETTEXTA = WM_USER+1;
{$EXTERNALSYM SB_GETTEXTA}
SB_GETTEXTA = WM_USER+2;
{$EXTERNALSYM SB_GETTEXTLENGTHA}
SB_GETTEXTLENGTHA = WM_USER+3;
{$EXTERNALSYM SB_SETTIPTEXTA}
SB_SETTIPTEXTA = WM_USER+16;
{$EXTERNALSYM SB_GETTIPTEXTA}
SB_GETTIPTEXTA = WM_USER+18;
{$EXTERNALSYM SB_SETTEXTW}
SB_SETTEXTW = WM_USER+11;
{$EXTERNALSYM SB_GETTEXTW}
SB_GETTEXTW = WM_USER+13;
{$EXTERNALSYM SB_GETTEXTLENGTHW}
SB_GETTEXTLENGTHW = WM_USER+12;
{$EXTERNALSYM SB_SETTIPTEXTW}
SB_SETTIPTEXTW = WM_USER+17;
{$EXTERNALSYM SB_GETTIPTEXTW}
SB_GETTIPTEXTW = WM_USER+19;
{$IFDEF UNICODE}
{$EXTERNALSYM SB_SETTEXT}
SB_SETTEXT = SB_SETTEXTW;
{$EXTERNALSYM SB_GETTEXT}
SB_GETTEXT = SB_GETTEXTW;
{$EXTERNALSYM SB_GETTEXTLENGTH}
SB_GETTEXTLENGTH = SB_GETTEXTLENGTHW;
{$EXTERNALSYM SB_SETTIPTEXT}
SB_SETTIPTEXT = SB_SETTIPTEXTW;
{$EXTERNALSYM SB_GETTIPTEXT}
SB_GETTIPTEXT = SB_GETTIPTEXTW;
{$ELSE}
{$EXTERNALSYM SB_SETTEXT}
SB_SETTEXT = SB_SETTEXTA;
{$EXTERNALSYM SB_GETTEXT}
SB_GETTEXT = SB_GETTEXTA;
{$EXTERNALSYM SB_GETTEXTLENGTH}
SB_GETTEXTLENGTH = SB_GETTEXTLENGTHA;
{$EXTERNALSYM SB_SETTIPTEXT}
SB_SETTIPTEXT = SB_SETTIPTEXTA;
{$EXTERNALSYM SB_GETTIPTEXT}
SB_GETTIPTEXT = SB_GETTIPTEXTA;
{$ENDIF}
{$EXTERNALSYM SB_SETPARTS}
SB_SETPARTS = WM_USER+4;
{$EXTERNALSYM SB_GETPARTS}
SB_GETPARTS = WM_USER+6;
{$EXTERNALSYM SB_GETBORDERS}
SB_GETBORDERS = WM_USER+7;
{$EXTERNALSYM SB_SETMINHEIGHT}
SB_SETMINHEIGHT = WM_USER+8;
{$EXTERNALSYM SB_SIMPLE}
SB_SIMPLE = WM_USER+9;
{$EXTERNALSYM SB_GETRECT}
SB_GETRECT = WM_USER + 10;
{$EXTERNALSYM SB_ISSIMPLE}
SB_ISSIMPLE = WM_USER+14;
{$EXTERNALSYM SB_SETICON}
SB_SETICON = WM_USER+15;
{$EXTERNALSYM SB_GETICON}
SB_GETICON = WM_USER+20;
{$EXTERNALSYM SB_SETUNICODEFORMAT}
SB_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
{$EXTERNALSYM SB_GETUNICODEFORMAT}
SB_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
{$EXTERNALSYM SBT_OWNERDRAW}
SBT_OWNERDRAW = $1000;
{$EXTERNALSYM SBT_NOBORDERS}
SBT_NOBORDERS = $0100;
{$EXTERNALSYM SBT_POPOUT}
SBT_POPOUT = $0200;
{$EXTERNALSYM SBT_RTLREADING}
SBT_RTLREADING = $0400;
{$EXTERNALSYM SBT_TOOLTIPS}
SBT_TOOLTIPS = $0800;
{$EXTERNALSYM SB_SETBKCOLOR}
SB_SETBKCOLOR = CCM_SETBKCOLOR; // lParam = bkColor
// status bar notifications
{$EXTERNALSYM SBN_SIMPLEMODECHANGE}
SBN_SIMPLEMODECHANGE = SBN_FIRST - 0;
{ ====== MENU HELP ========================== }
{$EXTERNALSYM MenuHelp}
procedure MenuHelp(Msg: UINT; wParam: WPARAM; lParam: LPARAM;
hMainMenu: HMENU; hInst: THandle; hwndStatus: HWND; lpwIDs: PUINT); stdcall;
{$EXTERNALSYM ShowHideMenuCtl}
function ShowHideMenuCtl(hWnd: HWND; uFlags: UINT; lpInfo: PINT): Bool; stdcall;
{$EXTERNALSYM GetEffectiveClientRect}
procedure GetEffectiveClientRect(hWnd: HWND; lprc: PRect; lpInfo: PINT); stdcall;
const
{$EXTERNALSYM MINSYSCOMMAND}
MINSYSCOMMAND = SC_SIZE;
{ ====== TRACKBAR CONTROL =================== }
{$EXTERNALSYM TRACKBAR_CLASS}
TRACKBAR_CLASS = 'msctls_trackbar32';
const
{$EXTERNALSYM TBS_AUTOTICKS}
TBS_AUTOTICKS = $0001;
{$EXTERNALSYM TBS_VERT}
TBS_VERT = $0002;
{$EXTERNALSYM TBS_HORZ}
TBS_HORZ = $0000;
{$EXTERNALSYM TBS_TOP}
TBS_TOP = $0004;
{$EXTERNALSYM TBS_BOTTOM}
TBS_BOTTOM = $0000;
{$EXTERNALSYM TBS_LEFT}
TBS_LEFT = $0004;
{$EXTERNALSYM TBS_RIGHT}
TBS_RIGHT = $0000;
{$EXTERNALSYM TBS_BOTH}
TBS_BOTH = $0008;
{$EXTERNALSYM TBS_NOTICKS}
TBS_NOTICKS = $0010;
{$EXTERNALSYM TBS_ENABLESELRANGE}
TBS_ENABLESELRANGE = $0020;
{$EXTERNALSYM TBS_FIXEDLENGTH}
TBS_FIXEDLENGTH = $0040;
{$EXTERNALSYM TBS_NOTHUMB}
TBS_NOTHUMB = $0080;
{$EXTERNALSYM TBS_TOOLTIPS}
TBS_TOOLTIPS = $0100;
{ For IE >= 0x0500 }
{$EXTERNALSYM TBS_REVERSED}
TBS_REVERSED = $0200; { Accessibility hint: the smaller number (usually the min value) means "high" and the larger number (usually the max value) means "low" }
{ For IE >= 0x0501 }
{$EXTERNALSYM TBS_DOWNISLEFT}
TBS_DOWNISLEFT = $0400; { Down=Left and Up=Right (default is Down=Right and Up=Left) }
{ For IE >= 0x0600 }
{$EXTERNALSYM TBS_NOTIFYBEFOREMOVE}
TBS_NOTIFYBEFOREMOVE = $0800; { Trackbar should notify parent before repositioning the slider due to user action (enables snapping) }
{ For NTDDI_VERSION >= NTDDI_LONGHORN }
{$EXTERNALSYM TBS_TRANSPARENTBKGND}
TBS_TRANSPARENTBKGND = $1000; { Background is painted by the parent via WM_PRINTCLIENT }
{$EXTERNALSYM TBM_GETPOS}
TBM_GETPOS = WM_USER;
{$EXTERNALSYM TBM_GETRANGEMIN}
TBM_GETRANGEMIN = WM_USER+1;
{$EXTERNALSYM TBM_GETRANGEMAX}
TBM_GETRANGEMAX = WM_USER+2;
{$EXTERNALSYM TBM_GETTIC}
TBM_GETTIC = WM_USER+3;
{$EXTERNALSYM TBM_SETTIC}
TBM_SETTIC = WM_USER+4;
{$EXTERNALSYM TBM_SETPOS}
TBM_SETPOS = WM_USER+5;
{$EXTERNALSYM TBM_SETRANGE}
TBM_SETRANGE = WM_USER+6;
{$EXTERNALSYM TBM_SETRANGEMIN}
TBM_SETRANGEMIN = WM_USER+7;
{$EXTERNALSYM TBM_SETRANGEMAX}
TBM_SETRANGEMAX = WM_USER+8;
{$EXTERNALSYM TBM_CLEARTICS}
TBM_CLEARTICS = WM_USER+9;
{$EXTERNALSYM TBM_SETSEL}
TBM_SETSEL = WM_USER+10;
{$EXTERNALSYM TBM_SETSELSTART}
TBM_SETSELSTART = WM_USER+11;
{$EXTERNALSYM TBM_SETSELEND}
TBM_SETSELEND = WM_USER+12;
{$EXTERNALSYM TBM_GETPTICS}
TBM_GETPTICS = WM_USER+14;
{$EXTERNALSYM TBM_GETTICPOS}
TBM_GETTICPOS = WM_USER+15;
{$EXTERNALSYM TBM_GETNUMTICS}
TBM_GETNUMTICS = WM_USER+16;
{$EXTERNALSYM TBM_GETSELSTART}
TBM_GETSELSTART = WM_USER+17;
{$EXTERNALSYM TBM_GETSELEND}
TBM_GETSELEND = WM_USER+18;
{$EXTERNALSYM TBM_CLEARSEL}
TBM_CLEARSEL = WM_USER+19;
{$EXTERNALSYM TBM_SETTICFREQ}
TBM_SETTICFREQ = WM_USER+20;
{$EXTERNALSYM TBM_SETPAGESIZE}
TBM_SETPAGESIZE = WM_USER+21;
{$EXTERNALSYM TBM_GETPAGESIZE}
TBM_GETPAGESIZE = WM_USER+22;
{$EXTERNALSYM TBM_SETLINESIZE}
TBM_SETLINESIZE = WM_USER+23;
{$EXTERNALSYM TBM_GETLINESIZE}
TBM_GETLINESIZE = WM_USER+24;
{$EXTERNALSYM TBM_GETTHUMBRECT}
TBM_GETTHUMBRECT = WM_USER+25;
{$EXTERNALSYM TBM_GETCHANNELRECT}
TBM_GETCHANNELRECT = WM_USER+26;
{$EXTERNALSYM TBM_SETTHUMBLENGTH}
TBM_SETTHUMBLENGTH = WM_USER+27;
{$EXTERNALSYM TBM_GETTHUMBLENGTH}
TBM_GETTHUMBLENGTH = WM_USER+28;
{$EXTERNALSYM TBM_SETTOOLTIPS}
TBM_SETTOOLTIPS = WM_USER+29;
{$EXTERNALSYM TBM_GETTOOLTIPS}
TBM_GETTOOLTIPS = WM_USER+30;
{$EXTERNALSYM TBM_SETTIPSIDE}
TBM_SETTIPSIDE = WM_USER+31;
// TrackBar Tip Side flags
{$EXTERNALSYM TBTS_TOP}
TBTS_TOP = 0;
{$EXTERNALSYM TBTS_LEFT}
TBTS_LEFT = 1;
{$EXTERNALSYM TBTS_BOTTOM}
TBTS_BOTTOM = 2;
{$EXTERNALSYM TBTS_RIGHT}
TBTS_RIGHT = 3;
{$EXTERNALSYM TBM_SETBUDDY}
TBM_SETBUDDY = WM_USER+32; // wparam = BOOL fLeft; (or right)
{$EXTERNALSYM TBM_GETBUDDY}
TBM_GETBUDDY = WM_USER+33; // wparam = BOOL fLeft; (or right)
{$EXTERNALSYM TBM_SETUNICODEFORMAT}
TBM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
{$EXTERNALSYM TBM_GETUNICODEFORMAT}
TBM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
{$EXTERNALSYM TB_LINEUP}
TB_LINEUP = 0;
{$EXTERNALSYM TB_LINEDOWN}
TB_LINEDOWN = 1;
{$EXTERNALSYM TB_PAGEUP}
TB_PAGEUP = 2;
{$EXTERNALSYM TB_PAGEDOWN}
TB_PAGEDOWN = 3;
{$EXTERNALSYM TB_THUMBPOSITION}
TB_THUMBPOSITION = 4;
{$EXTERNALSYM TB_THUMBTRACK}
TB_THUMBTRACK = 5;
{$EXTERNALSYM TB_TOP}
TB_TOP = 6;
{$EXTERNALSYM TB_BOTTOM}
TB_BOTTOM = 7;
{$EXTERNALSYM TB_ENDTRACK}
TB_ENDTRACK = 8;
// custom draw item specs
{$EXTERNALSYM TBCD_TICS}
TBCD_TICS = $0001;
{$EXTERNALSYM TBCD_THUMB}
TBCD_THUMB = $0002;
{$EXTERNALSYM TBCD_CHANNEL}
TBCD_CHANNEL = $0003;
{ For Windows >= Vista }
{$EXTERNALSYM TRBN_THUMBPOSCHANGING}
TRBN_THUMBPOSCHANGING = TRBN_FIRST-1;
{ ====== DRAG LIST CONTROL ================== }
type
PDragListInfo = ^TDragListInfo;
{$EXTERNALSYM tagDRAGLISTINFO}
tagDRAGLISTINFO = packed record
uNotification: UINT;
hWnd: HWND;
ptCursor: TPoint;
end;
TDragListInfo = tagDRAGLISTINFO;
{$EXTERNALSYM DRAGLISTINFO}
DRAGLISTINFO = tagDRAGLISTINFO;
const
{$EXTERNALSYM DL_BEGINDRAG}
DL_BEGINDRAG = WM_USER+133;
{$EXTERNALSYM DL_DRAGGING}
DL_DRAGGING = WM_USER+134;
{$EXTERNALSYM DL_DROPPED}
DL_DROPPED = WM_USER+135;
{$EXTERNALSYM DL_CANCELDRAG}
DL_CANCELDRAG = WM_USER+136;
{$EXTERNALSYM DL_CURSORSET}
DL_CURSORSET = 0;
{$EXTERNALSYM DL_STOPCURSOR}
DL_STOPCURSOR = 1;
{$EXTERNALSYM DL_COPYCURSOR}
DL_COPYCURSOR = 2;
{$EXTERNALSYM DL_MOVECURSOR}
DL_MOVECURSOR = 3;
const
{$EXTERNALSYM DRAGLISTMSGSTRING}
DRAGLISTMSGSTRING = 'commctrl_DragListMsg';
{$EXTERNALSYM MakeDragList}
procedure MakeDragList(hLB: HWND); stdcall;
{$EXTERNALSYM DrawInsert}
procedure DrawInsert(hwndParent: HWND; hLB: HWND; nItem: Integer); stdcall;
{$EXTERNALSYM LBItemFromPt}
function LBItemFromPt(hLB: HWND; pt: TPoint; bAutoScroll: Bool): Integer; stdcall;