Unit ComCtl98

////////////////////////////////////////////////////////////////////////////// COMCTL98 // ////////////////////////////////////////////////////////////////////////////// Enhanced COMMCTRL for D3 // * some constants and functions forgoten by Borland,... // ////////////////////////////////////////////////////////////////////////////// Version 1.34 // Date de création : 10/03/1997 // Date dernière modification : 11/03/1998 // ////////////////////////////////////////////////////////////////////////////// Jean-Luc Mattei // jlucm@club-internet.fr / jlucm@mygale.org // ////////////////////////////////////////////////////////////////////////////// REVISIONS : // // 1.10 : // * Added enhanced TreeView style // 1.20 : // * Added (some) IE4 TabControl constants // * Added IE4 ListView Constants and Functions // (Background images) // * Added IE4 DateTime Extended functions // 1.30 : * PageScroller const, type & func // * NativeFontControl const, type & func // * IPAdress const, Type & Func // * FlatScrollBar API's // * New New IE4 ListView & TreeView Message // * Begining of commctl98 (D3) & commctrlEx (D2) unification // * More TreeView const // 1.31 : * PToolTipText Defined for D2 / BC++Buider (thanks to Alper Yazgan)// 1.32 : * New Messages and structures for ListView control // TNMItemActivate instead of TNMListView // TNMLvStateChange and LVN_ODSTATECHANGED notification // iSubItem added to TNMLVCustomDraw structure // 1.33 : * Some errors corrected (D2) // 1.34 : * Added IE4 Toolbar extensions // * IE4 WM_Notify Generic structures // //////////////////////////////////////////////////////////////////////////////

Classes

Functions

DateTime_GetMonthCalFont - SNDMSG(hdp, DTM_SETMCFONT, (WPARAM)hfont, (LPARAM)fRedraw
DateTime_SetMonthCalFont -
First_IPAdress - #define MAKEIPADDRESS(b1,b2,b3,b4) ((LPARAM)(((DWORD)(b1)<<24)+((DWORD)(b2)<<16)+((DWORD)(b3)<<8)+((DWORD)(b4)))) Get individual number
FlatSB_EnableScrollBar -
FlatSB_GetScrollInfo -
FlatSB_GetScrollPos -
FlatSB_GetScrollProp -
FlatSB_GetScrollRange -
FlatSB_SetScrollInfo -
FlatSB_SetScrollPos -
FlatSB_SetScrollProp -
FlatSB_SetScrollRange -
FlatSB_ShowScrollBar -
Fourth_IPAdress - #define THIRD_IPADDRESS(x) ((x>>8) & 0xff
Header_CreateDragImage - (int)SNDMSG((hwnd), HDM_ORDERTOINDEX, (WPARAM)i, 0
Header_GetImageList - (HIMAGELIST)SNDMSG((hwnd), HDM_SETIMAGELIST, 0, (LPARAM)himl
Header_GetItemEx -
Header_GetItemRect -
Header_GetOrderArray - (HIMAGELIST)SNDMSG((hwnd), HDM_CREATEDRAGIMAGE, (WPARAM)i, 0
Header_InsertItemEx -
Header_OrderToIndex - (HIMAGELIST)SNDMSG((hwnd), HDM_GETIMAGELIST, 0, 0
Header_SetHotDivider - (BOOL)SNDMSG((hwnd), HDM_SETORDERARRAY, (WPARAM)iCount, (LPARAM)lpi) lparam = int array of size HDM_GETITEMCOUNT the array specifies the order that all items should be displayed.
Header_SetImageList - (BOOL)SNDMSG((hwnd), HDM_GETITEMRECT, (WPARAM)iItem, (LPARAM)lprc
Header_SetItemEx -
Header_SetOrderArray - (BOOL)SNDMSG((hwnd), HDM_GETORDERARRAY, (WPARAM)iCount, (LPARAM)lpi
InitializeFlatSB -
ListView_GetBkImage - (BOOL)SNDMSG((hwnd), LVM_SETBKIMAGE, 0, (LPARAM)plvbki
ListView_GetHoverTime - (DWORD)SendMessage((hwndLV), LVM_SETHOVERTIME, 0, dwHoverTimeMs
ListView_GetSelectionMark -
ListView_GetWorkArea - (int)SNDMSG((hwnd), LVM_GETSELECTIONMARK, 0, (LPARAM)i
ListView_SetBkImage - CoInitialize MUST BE CALLED BEFORE USING THIS FUNCTION
ListView_SetHoverTime - (BOOL)SNDMSG((hwnd), LVM_GETWORKAREA, 0, (LPARAM)(RECT FAR*)(prc
ListView_SetSelectionMark - (int)SNDMSG((hwnd), LVM_GETSELECTIONMARK, 0, 0
MakeIPAdress - #define MAKEIPRANGE(low, high) ((LPARAM)(WORD)(((BYTE)(high) << 8) + (BYTE)(low))) And this is a useful macro for making the IP Address to be passed as a LPARAM.
MakeIPRange - The following is a useful macro for passing the range values in the IPM_SETRANGE message.
Pager_ForwardMouse - (void)SNDMSG((hwnd), PGM_RECALCSIZE, 0, 0
Pager_GetBkColor - (COLORREF)SNDMSG((hwnd), PGM_SETBKCOLOR, 0, (LPARAM)clr
Pager_GetBorder - (int)SNDMSG((hwnd), PGM_SETBORDER, 0, (LPARAM)iBorder
Pager_GetButtonSize - (int)SNDMSG((hwnd), PGM_SETBUTTONSIZE, 0, (LPARAM)iSize
Pager_GetButtonState - (int)SNDMSG((hwnd), PGM_GETBUTTONSIZE, 0,0
Pager_GetPos - (int)SNDMSG((hwnd), PGM_SETPOS, 0, (LPARAM)iPos
Pager_RecalcSize - (void)SNDMSG((hwnd), PGM_SETCHILD, 0, (LPARAM)(hwndChild
Pager_SetBkColor - (void)SNDMSG((hwnd), PGM_FORWARDMOUSE, (WPARAM)(bForward), 0
Pager_SetBorder - (COLORREF)SNDMSG((hwnd), PGM_GETBKCOLOR, 0, 0
Pager_SetButtonSize - (int)SNDMSG((hwnd), PGM_GETPOS, 0, 0
Pager_SetChild -
Pager_SetPos - (int)SNDMSG((hwnd), PGM_GETBORDER, 0, 0
Second_IPAdress - #define FIRST_IPADDRESS(x) ((x>>24) & 0xff
TabCtrl_GetExtendedStyle - (DWORD)SNDMSG((hwnd), TCM_SETEXTENDEDSTYLE, 0, dw
TabCtrl_GetItemRect - (DWORD)SNDMSG((hwnd), TCM_GETEXTENDEDSTYLE, 0, 0
TabCtrl_HighlightItem -
TabCtrl_SetExtendedStyle - (BOOL)SNDMSG((hwnd), TCM_HIGHLIGHTITEM, (WPARAM)i, (LPARAM)MAKELONG (fHighlight, 0
Third_IPAdress - #define SECOND_IPADDRESS(x) ((x>>16) & 0xff
UninitializeFlatSB -

Types

PHDItemEx
PHDItemExA
PHDItemExW
PLvBkImage
PLVBkImageA
PLVBkImageW
PNMChar
PNMClick
PNMCustomDrawInfo
PNMIPAdress
PNMItemActivate
PNMKey
PNMLVCustomDraw
PNMLvGetInfoTip
PNMLvGetInfoTipA
PNMLvGetInfoTipW
PNMLvStateChange
PNMMouse
PNMObjectNotify
PNMPgCalcSize
PNMPgScroll
PNMTBCustomDraw
PNMTBDispInfo
PNMTBDispInfoA
PNMTBDispInfoW
PNMTBGetInfoTip
PNMTBGetInfoTipA
PNMTBGetInfoTipW
PNMTBHotItem
PNMTVCustomDraw
PTBButtonInfo
PTBButtonInfoA
PTBButtonInfoW
PTBInsertMark
THDItemEx
THDItemExA
THDItemExW
TLvBkImage
TLVBkImageA
TLVBkImageW
TNMChar
TNMClick
TNMCustomDrawInfo
TNMIPAdress
TNMItemActivate
TNMKey
TNMLVCustomDraw
TNMLvGetInfoTip
TNMLvGetInfoTipA
TNMLvGetInfoTipW
TNMLvStateChange
TNMMouse
TNMObjectNotify
TNMPgCalcSize
TNMPgScroll
TNMTBCustomDraw
TNMTBDispInfo
TNMTBDispInfoA
TNMTBDispInfoW
TNMTBGetInfoTip
TNMTBGetInfoTipA
TNMTBGetInfoTipW
TNMTBHotItem
TNMTVCustomDraw
TTBButtonInfo
TTBButtonInfoA
TTBButtonInfoW
TTBInsertMark

Constants

CCM_FIRST
CCM_GETCOLORSCHEME
CCM_GETDROPTARGET
CCM_GETUNICODEFORMAT
CCM_SETBKCOLOR
CCM_SETCOLORSCHEME
CCM_SETUNICODEFORMAT
CDDS_ITEM
CDDS_ITEMPOSTERASE
CDDS_ITEMPOSTPAINT
CDDS_ITEMPREERASE
CDDS_ITEMPREPAINT
CDDS_POSTERASE
CDDS_POSTPAINT
CDDS_PREERASE
CDDS_PREPAINT
CDDS_SUBITEM
CDDS_SUBITEMPOSTERASE
CDDS_SUBITEMPOSTPAINT
CDDS_SUBITEMPREERASE
CDDS_SUBITEMPREPAINT
CDIS_CHECKED
CDIS_DEFAULT
CDIS_DISABLED
CDIS_FOCUS
CDIS_GRAYED
CDIS_HOT
CDIS_SELECTED
CDRF_DODEFAULT
CDRF_NEWFONT
CDRF_NOTIFYITEMDRAW
CDRF_NOTIFYITEMERASE
CDRF_NOTIFYPOSTERASE
CDRF_NOTIFYPOSTPAINT
CDRF_NOTIFYSUBITEMDRAW
CDRF_SKIPDEFAULT
DTM_GETMCFONT
DTM_SETMCFONT
FSB_ENCARTA_MODE
FSB_FLAT_MODE
FSB_REGULAR_MODE
HDF_BITMAP_ON_RIGHT
HDF_IMAGE
HDI_DI_SETITEM
HDI_IMAGE
HDI_ORDER
HDM_CREATEDRAGIMAGE
HDM_GETIMAGELIST
HDM_GETITEMRECT
HDM_GETORDERARRAY
HDM_ORDERTOINDEX
HDM_SETHOTDIVIDER
HDM_SETIMAGELIST
HDM_SETORDERARRAY
HICF_ACCELERATOR
HICF_ARROWKEYS
HICF_DUPACCEL
HICF_ENTERING
HICF_LEAVING
HICF_MOUSE
HICF_OTHER
HICF_RESELECT
ICC_INTERNET_CLASSES
ICC_NATIVEFNTCTL_CLASS
ICC_PAGESCROLLER_CLASS
IPM_CLEARADDRESS
IPM_GETADDRESS
IPM_ISBLANK
IPM_SETADDRESS
IPM_SETFOCUS
IPM_SETRANGE
IPN_FIELDCHANGED
IPN_FIRST
IPN_LAST
LVBKIF_SOURCE_HBITMAP
LVBKIF_SOURCE_MASK
LVBKIF_SOURCE_NONE
LVBKIF_SOURCE_URL
LVBKIF_STYLE_MASK
LVBKIF_STYLE_NORMAL
LVBKIF_STYLE_TILE
LVGIT_UNFOLDED
LVIF_INDENT
LVIF_NORECOMPUTE
LVKF_ALT
LVKF_CONTROL
LVKF_SHIFT
LVM_GETBKIMAGE
LVM_GETBKIMAGEA
LVM_GETBKIMAGEW
LVM_GETHOVERTIME
LVM_GETNUMBEROFWORKAREAS
LVM_GETSELECTIONMARK
LVM_GETTOOLTIPS
LVM_GETWORKAREA
LVM_GETWORKAREAS
LVM_SETBKIMAGE
LVM_SETBKIMAGEA
LVM_SETBKIMAGEW
LVM_SETHOVERTIME
LVM_SETSELECTIONMARK
LVM_SETTOOLTIPS
LVM_SETWORKAREAS
LVN_GETINFOTIP
LVN_GETINFOTIPA
LVN_GETINFOTIPW
LVN_ITEMACTIVATE
LVN_ODSTATECHANGED
LVSICF_NOINVALIDATEALL
LVSICF_NOSCROLL
LVS_EX_FLATSB
LVS_EX_INFOTIP
LVS_EX_MULTIWORKAREAS
LVS_EX_REGIONAL
LVS_EX_UNDERLINECOLD
LVS_EX_UNDERLINEHOT
LV_MAX_WORKAREAS
NFS_ALL
NFS_BUTTON
NFS_EDIT
NFS_LISTCOMBO
NFS_STATIC
NM_CHAR
NM_CUSTOMDRAW
NM_HOVER
NM_KEYDOWN
NM_NCHITTEST
NM_RELEASEDCAPTURE
NM_SETCURSOR
PGB_BOTTOMORRIGHT
PGB_TOPORLEFT
PGF_CALCHEIGHT
PGF_CALCWIDTH
PGF_DEPRESSED
PGF_GRAYED
PGF_HOT
PGF_INVISIBLE
PGF_NORMAL
PGF_SCROLLDOWN
PGF_SCROLLLEFT
PGF_SCROLLRIGHT
PGF_SCROLLUP
PGK_CONTROL
PGK_MENU
PGK_SHIFT
PGM_FIRST
PGM_FORWARDMOUSE
PGM_GETBKCOLOR
PGM_GETBORDER
PGM_GETBUTTONSIZE
PGM_GETBUTTONSTATE
PGM_GETDROPTARGET
PGM_GETPOS
PGM_RECALCSIZE
PGM_SETBKCOLOR
PGM_SETBORDER
PGM_SETBUTTONSIZE
PGM_SETCHILD
PGM_SETPOS
PGN_CALCSIZE
PGN_FIRST
PGN_LAST
PGN_SCROLL
PGS_AUTOSCROLL
PGS_DRAGNDROP
PGS_HORZ
PGS_VERT
TBCDRF_HILITEHOTTRACK
TBCDRF_NOEDGES
TBCDRF_NOETCHEDEFFECT
TBCDRF_NOMARK
TBCDRF_NOOFFSET
TBDDRET_DEFAULT
TBDDRET_NODEFAULT
TBDDRET_TREATPRESSED
TBIF_COMMAND
TBIF_IMAGE
TBIF_LPARAM
TBIF_SIZE
TBIF_STATE
TBIF_STYLE
TBIF_TEXT
TBIMHT_AFTER
TBIMHT_BACKGROUND
TBNF_DI_SETITEM
TBNF_IMAGE
TBNF_TEXT
TBN_DELETINGBUTTON
TBN_DRAGOUT
TBN_GETDISPINFO
TBN_GETDISPINFOA
TBN_GETDISPINFOW
TBN_GETINFOTIP
TBN_GETINFOTIPA
TBN_GETINFOTIPW
TBN_GETOBJECT
TBN_HOTITEMCHANGE
TBSTATE_MARKED
TBSTYLE_AUTOSIZE
TBSTYLE_EX_DRAWDDARROWS
TBSTYLE_NOPREFIX
TBSTYLE_REGISTERDROP
TBSTYLE_TRANSPARENT
TB_ADDBUTTONS
TB_ADDBUTTONSA
TB_ADDBUTTONSW
TB_GETANCHORHIGHLIGHT
TB_GETBUTTONINFO
TB_GETBUTTONINFOA
TB_GETBUTTONINFOW
TB_GETCOLORSCHEME
TB_GETEXTENDEDSTYLE
TB_GETHOTITEM
TB_GETINSERTMARK
TB_GETINSERTMARKCOLOR
TB_GETMAXSIZE
TB_GETOBJECT
TB_GETPADDING
TB_GETUNICODEFORMAT
TB_HITTEST
TB_INSERTBUTTON
TB_INSERTBUTTONA
TB_INSERTBUTTONW
TB_INSERTMARKHITTEST
TB_ISBUTTONHIGHLIGHTED
TB_MAPACCELERATOR
TB_MAPACCELERATORA
TB_MAPACCELERATORW
TB_MARKBUTTON
TB_MOVEBUTTON
TB_SETANCHORHIGHLIGHT
TB_SETBUTTONINFO
TB_SETBUTTONINFOA
TB_SETBUTTONINFOW
TB_SETCOLORSCHEME
TB_SETDRAWTEXTFLAGS
TB_SETEXTENDEDSTYLE
TB_SETHOTITEM
TB_SETINSERTMARK
TB_SETINSERTMARKCOLOR
TB_SETPADDING
TB_SETUNICODEFORMAT
TCIS_HIGHLIGHTED
TCM_GETEXTENDEDSTYLE
TCM_HIGHLIGHTITEM
TCM_SETEXTENDEDSTYLE
TCN_GETOBJECT
TCS_EX_FLATSEPARATORS
TCS_EX_REGISTERDROP
TCS_FLATBUTTONS
TCS_MULTISELECT
TVGN_LASTVISIBLE
TVIF_INTEGRAL
TVN_GETINFOTIPA
TVN_GETINFOTIPW
TVN_SINGLEEXPAND
TVS_CHECKBOXES
TVS_FULLROWSELECT
TVS_HOTTRACK
TVS_INFOTIP
TVS_NONEVENHEIGHT
TVS_NOSCROLL
TVS_NOTOOLTIPS
TVS_PRIVATEIMAGELISTS
TVS_SHAREDIMAGELISTS
TVS_SINGLEEXPAND
VIEW_VIEWMENU
WC_IPADDRESS
WC_NATIVEFONTCTLA
WC_PAGESCROLLER
WSB_PROP_CXHSCROLL
WSB_PROP_CXHTHUMB
WSB_PROP_CXVSCROLL
WSB_PROP_CYHSCROLL
WSB_PROP_CYVSCROLL
WSB_PROP_CYVTHUMB
WSB_PROP_HBKGCOLOR
WSB_PROP_HSTYLE
WSB_PROP_MASK
WSB_PROP_PALETTE
WSB_PROP_VBKGCOLOR
WSB_PROP_VSTYLE
WSB_PROP_WINSTYLE

Variables


Functions


procedure DateTime_GetMonthCalFont(hdp: HWND);

SNDMSG(hdp, DTM_SETMCFONT, (WPARAM)hfont, (LPARAM)fRedraw

procedure DateTime_SetMonthCalFont(hdp: HWND; hfont: HFONT; fRedraw: Bool);


function First_IPAdress(x : Longint): Byte;

#define MAKEIPADDRESS(b1,b2,b3,b4) ((LPARAM)(((DWORD)(b1)<<24)+((DWORD)(b2)<<16)+((DWORD)(b3)<<8)+((DWORD)(b4)))) Get individual number

function FlatSB_EnableScrollBar(Hwnd: HWND; Int: Integer; Card: Cardinal): Bool;


function FlatSB_GetScrollInfo(Hwnd: HWND; Code: Integer; Var ScrollInfo: TScrollInfo): Bool;


function FlatSB_GetScrollPos(Hwnd: HWND; Code: Integer): Integer;


Function FlatSB_GetScrollProp(Hwnd: HWND; propIndex: Integer; Var Prop: Integer): Bool;


function FlatSB_GetScrollRange(Hwnd: HWND; Code: Integer; Var Min, Max: Integer): Bool;


function FlatSB_SetScrollInfo(Hwnd: HWND; Code: Integer; Var ScrollInfo: TScrollInfo; fRedraw: Bool): Integer;


function FlatSB_SetScrollPos(Hwnd: HWND; Code: Integer; Pos: Integer; fRedraw: Bool): Integer;


function FlatSB_SetScrollProp(Hwnd: HWND; Index: Cardinal; newValue: Integer; B: Bool): Bool;


function FlatSB_SetScrollRange(Hwnd: HWND; Code: Integer; Min: Integer; Max: Integer; fRedraw: Bool): Integer;


function FlatSB_ShowScrollBar(Hwnd: HWND; Int: Integer; B: Bool): Bool;


function Fourth_IPAdress(x : Longint): Byte;

#define THIRD_IPADDRESS(x) ((x>>8) & 0xff

function Header_CreateDragImage(Header: HWnd; Index: Integer): HImageList;

(int)SNDMSG((hwnd), HDM_ORDERTOINDEX, (WPARAM)i, 0

function Header_GetImageList(Header: HWnd): HImageList;

(HIMAGELIST)SNDMSG((hwnd), HDM_SETIMAGELIST, 0, (LPARAM)himl

function Header_GetItemEx(Header: HWnd; Index: Integer; var Item: THDItemEx): Bool;


function Header_GetItemRect(Header: HWnd; Index: Integer; var Rect: TRect): BOOL;


function Header_GetOrderArray(Header: HWnd; iCount: Integer; pi: PInteger): BOOL;

(HIMAGELIST)SNDMSG((hwnd), HDM_CREATEDRAGIMAGE, (WPARAM)i, 0

function Header_InsertItemEx(Header: HWnd; Index: Integer; const Item: THDItemEx): Integer;


function Header_OrderToIndex(Header: HWnd; Order: Integer): Integer;

(HIMAGELIST)SNDMSG((hwnd), HDM_GETIMAGELIST, 0, 0

function Header_SetHotDivider(Header: HWnd; fPos: BOOL; dw: Longint): Integer;

(BOOL)SNDMSG((hwnd), HDM_SETORDERARRAY, (WPARAM)iCount, (LPARAM)lpi) 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

function Header_SetImageList(Header: HWnd; iImageList: Integer): HImageList;

(BOOL)SNDMSG((hwnd), HDM_GETITEMRECT, (WPARAM)iItem, (LPARAM)lprc

function Header_SetItemEx(Header: HWnd; Index: Integer; const Item: THDItemEx): Bool;


function Header_SetOrderArray(Header: HWnd; iCount: Integer; pi: PInteger): BOOL;

(BOOL)SNDMSG((hwnd), HDM_GETORDERARRAY, (WPARAM)iCount, (LPARAM)lpi

function InitializeFlatSB(Hwnd: HWND): Bool;


function ListView_GetBkImage(hwnd: HWND; Var BkImage: TLVBkImage): Bool;

(BOOL)SNDMSG((hwnd), LVM_SETBKIMAGE, 0, (LPARAM)plvbki

function ListView_GetHoverTime(hwndLV: HWND): Longint;

(DWORD)SendMessage((hwndLV), LVM_SETHOVERTIME, 0, dwHoverTimeMs

function ListView_GetSelectionMark(hwnd: HWND): Integer;


function ListView_GetWorkArea(hwnd: HWND; Var prc: TRect): Bool;

(int)SNDMSG((hwnd), LVM_GETSELECTIONMARK, 0, (LPARAM)i

function ListView_SetBkImage(hwnd: HWND; Var BkImage: TLVBkImage): Bool;

CoInitialize MUST BE CALLED BEFORE USING THIS FUNCTION

function ListView_SetHoverTime(hwndLV: HWND; dwHoverTimeMs: Longint): Longint;

(BOOL)SNDMSG((hwnd), LVM_GETWORKAREA, 0, (LPARAM)(RECT FAR*)(prc

function ListView_SetSelectionMark(hwnd: HWND; i: Cardinal): Integer;

(int)SNDMSG((hwnd), LVM_GETSELECTIONMARK, 0, 0

function MakeIPAdress(b1, b2, b3, b4 : Byte): Longint;

#define MAKEIPRANGE(low, high) ((LPARAM)(WORD)(((BYTE)(high) << 8) + (BYTE)(low))) And this is a useful macro for making the IP Address to be passed as a LPARAM.

function MakeIPRange(Low, High : Byte): Longint;

The following is a useful macro for passing the range values in the IPM_SETRANGE message.

procedure Pager_ForwardMouse(hwnd: HWND; bForward: Bool);

(void)SNDMSG((hwnd), PGM_RECALCSIZE, 0, 0

function Pager_GetBkColor(hwnd: HWND): TColorRef;

(COLORREF)SNDMSG((hwnd), PGM_SETBKCOLOR, 0, (LPARAM)clr

function Pager_GetBorder(hwnd: HWND): Integer;

(int)SNDMSG((hwnd), PGM_SETBORDER, 0, (LPARAM)iBorder

function Pager_GetButtonSize(hwnd: HWND): Integer;

(int)SNDMSG((hwnd), PGM_SETBUTTONSIZE, 0, (LPARAM)iSize

function Pager_GetButtonState(hwnd: HWND; iButton: Integer): Longint;

(int)SNDMSG((hwnd), PGM_GETBUTTONSIZE, 0,0

function Pager_GetPos(hwnd: HWND): Integer;

(int)SNDMSG((hwnd), PGM_SETPOS, 0, (LPARAM)iPos

procedure Pager_RecalcSize(hwnd: HWND);

(void)SNDMSG((hwnd), PGM_SETCHILD, 0, (LPARAM)(hwndChild

function Pager_SetBkColor(hwnd: HWND; clr: TColorRef): TColorRef;

(void)SNDMSG((hwnd), PGM_FORWARDMOUSE, (WPARAM)(bForward), 0

function Pager_SetBorder(hwnd: HWND; iBorder: Integer): Integer;

(COLORREF)SNDMSG((hwnd), PGM_GETBKCOLOR, 0, 0

function Pager_SetButtonSize(hwnd: HWND; iSize: Integer): Integer;

(int)SNDMSG((hwnd), PGM_GETPOS, 0, 0

procedure Pager_SetChild(hwnd: HWND; hwndChild: HWND);


function Pager_SetPos(hwnd: HWND; iPos: Integer): Integer;

(int)SNDMSG((hwnd), PGM_GETBORDER, 0, 0

function Second_IPAdress(x : Longint): Byte;

#define FIRST_IPADDRESS(x) ((x>>24) & 0xff

function TabCtrl_GetExtendedStyle(hwnd: HWND): Longint;

(DWORD)SNDMSG((hwnd), TCM_SETEXTENDEDSTYLE, 0, dw

function TabCtrl_GetItemRect(hwnd: HWND; i: Integer; Var prc: TRect): Boolean;

(DWORD)SNDMSG((hwnd), TCM_GETEXTENDEDSTYLE, 0, 0

function TabCtrl_HighlightItem(hwnd: HWND; i : Cardinal; fHighlight : Bool): Bool;


function TabCtrl_SetExtendedStyle(hwnd: HWND; dw: Longint): Longint;

(BOOL)SNDMSG((hwnd), TCM_HIGHLIGHTITEM, (WPARAM)i, (LPARAM)MAKELONG (fHighlight, 0

function Third_IPAdress(x : Longint): Byte;

#define SECOND_IPADDRESS(x) ((x>>16) & 0xff

function UninitializeFlatSB(Hwnd: HWND): HRESULT;


Types


PHDItemEx = PHDItemExA

PHDItemExA = ^THDItemExA
#define TreeView_GetLastVisible(hwnd) TreeView_GetNextItem(hwnd, NULL, TVGN_LASTVISIBLE) (* #define TVM_SETINSERTMARK (TV_FIRST + 26) #define TreeView_SetInsertMark(hwnd, hItem, fAfter) \ (BOOL)SNDMSG((hwnd), TVM_SETINSERTMARK, (WPARAM) (fAfter), (LPARAM) (hItem)) #define TVM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT #define TreeView_SetUnicodeFormat(hwnd, fUnicode) \ (BOOL)SNDMSG((hwnd), TVM_SETUNICODEFORMAT, (WPARAM)(fUnicode), 0) #define TVM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT #define TreeView_GetUnicodeFormat(hwnd) \ (BOOL)SNDMSG((hwnd), TVM_GETUNICODEFORMAT, 0, 0) #define TVM_SETITEMHEIGHT (TV_FIRST + 27) #define TreeView_SetItemHeight(hwnd, iHeight) \ (int)SNDMSG((hwnd), TVM_SETITEMHEIGHT, (WPARAM)iHeight, 0) #define TVM_GETITEMHEIGHT (TV_FIRST + 28) #define TreeView_GetItemHeight(hwnd) \ (int)SNDMSG((hwnd), TVM_GETITEMHEIGHT, 0, 0) #define TVM_SETBKCOLOR (TV_FIRST + 29) #define TreeView_SetBkColor(hwnd, clr) \ (COLORREF)SNDMSG((hwnd), TVM_SETBKCOLOR, 0, (LPARAM)clr) #define TVM_SETTEXTCOLOR (TV_FIRST + 30) #define TreeView_SetTextColor(hwnd, clr) \ (COLORREF)SNDMSG((hwnd), TVM_SETTEXTCOLOR, 0, (LPARAM)clr) #define TVM_GETBKCOLOR (TV_FIRST + 31) #define TreeView_GetBkColor(hwnd) \ (COLORREF)SNDMSG((hwnd), TVM_GETBKCOLOR, 0, 0) #define TVM_GETTEXTCOLOR (TV_FIRST + 32) #define TreeView_GetTextColor(hwnd) \ (COLORREF)SNDMSG((hwnd), TVM_GETTEXTCOLOR, 0, 0) #define TVM_SETSCROLLTIME (TV_FIRST + 33) #define TreeView_SetScrollTime(hwnd, uTime) \ (UINT)SNDMSG((hwnd), TVM_SETSCROLLTIME, uTime, 0) #define TVM_GETSCROLLTIME (TV_FIRST + 34) #define TreeView_GetScrollTime(hwnd) \ (UINT)SNDMSG((hwnd), TVM_GETSCROLLTIME, 0, 0) #if (_WIN32_IE >= 0x0400) #define TVM_SETINSERTMARKCOLOR (TV_FIRST + 37) #define TreeView_SetInsertMarkColor(hwnd, clr) \ (COLORREF)SNDMSG((hwnd), TVM_SETINSERTMARKCOLOR, 0, (LPARAM)clr) #define TVM_GETINSERTMARKCOLOR (TV_FIRST + 38) #define TreeView_GetInsertMarkColor(hwnd) \ (COLORREF)SNDMSG((hwnd), TVM_GETINSERTMARKCOLOR, 0, 0) #endif /* (_WIN32_IE >= 0x0400) */ for tooltips typedef struct tagNMTVGETINFOTIPA NMHDR hdr; LPSTR pszText; int cchTextMax; HTREEITEM hItem; LPARAM lParam; } NMTVGETINFOTIPA, *LPNMTVGETINFOTIPA; typedef struct tagNMTVGETINFOTIPW NMHDR hdr; LPWSTR pszText; int cchTextMax; HTREEITEM hItem; LPARAM lParam; } NMTVGETINFOTIPW, *LPNMTVGETINFOTIPW; #ifdef UNICODE #define TVN_GETINFOTIP TVN_GETINFOTIPW #define NMTVGETINFOTIP NMTVGETINFOTIPW #define LPNMTVGETINFOTIP LPNMTVGETINFOTIPW #else #define TVN_GETINFOTIP TVN_GETINFOTIPA #define NMTVGETINFOTIP NMTVGETINFOTIPA #define LPNMTVGETINFOTIP LPNMTVGETINFOTIPA #endif treeview's customdraw return meaning don't draw images. valid on CDRF_NOTIFYITEMPREPAINT #define TVCDRF_NOIMAGES 0x00010000 *) ==================== HEADER CONTROL ==========================================
PHDItemExW = ^THDItemExW

PLvBkImage = PLvBkImageA

PLVBkImageA = ^TLVBkImageA
#define ListView_SetWorkAreas(hwnd, nWorkAreas, prc) \ (BOOL)SNDMSG((hwnd), LVM_SETWORKAREAS, (WPARAM)(int)nWorkAreas, (LPARAM)(RECT FAR* )(prc)) #define ListView_GetWorkAreas(hwnd, nWorkAreas, prc) \ (BOOL)SNDMSG((hwnd), LVM_GETWORKAREAS, (WPARAM)(int)nWorkAreas, (LPARAM)(RECT FAR* )(prc)) #define ListView_GetNumberOfWorkAreas(hwnd, pnWorkAreas) \ (BOOL)SNDMSG((hwnd), LVM_GETNUMBEROFWORKAREAS, 0, (LPARAM)(UINT * )(pnWorkAreas)) #define ListView_GetSelectionMark(hwnd) \ (int)SNDMSG((hwnd), LVM_GETSELECTIONMARK, 0, 0) #define ListView_SetSelectionMark(hwnd, i) \ (int)SNDMSG((hwnd), LVM_SETSELECTIONMARK, 0, (LPARAM)i) #define ListView_SetToolTips(hwndLV, hwndNewHwnd)\ (HWND)SendMessage((hwndLV), LVM_SETTOOLTIPS, hwndNewHwnd, 0) #define ListView_GetToolTips(hwndLV)\ (HWND)SendMessage((hwndLV), LVM_GETTOOLTIPS, 0, 0)
PLVBkImageW = ^TLVBkImageW

PNMChar = ^TNMChar
Generic structure for a character
PNMClick = PNMMouse
any specifics about where on the item or control the mouse is
PNMCustomDrawInfo = ^TNMCustomDrawInfo

PNMIPAdress = ^TNMIPAdress

PNMItemActivate = ^TNMItemActivate
NMITEMACTIVATE is used instead of NMLISTVIEW in IE >= 0x400 therefore all the fields are the same except for extra uKeyFlags they are used to store key flags at the time of the single click with delayed activation - because by the time the timer goes off a user may not hold the keys (shift, ctrl) any more
PNMKey = ^TNMKey
Generic structure for a key
PNMLVCustomDraw = ^TNMLVCustomDraw

PNMLvGetInfoTip       = PNMLvGetInfoTipA

PNMLvGetInfoTipA = ^TNMLvGetInfoTipA
(BOOL)SNDMSG((hwnd), LVM_GETBKIMAGE, 0, (LPARAM)plvbki
PNMLvGetInfoTipW = ^TNMLvGetInfoTipW

PNMLvStateChange = ^TNMLvStateChange

PNMMouse = ^TNMMouse
native font control ====== Generic IE4 WM_NOTIFY notification structures ============================
PNMObjectNotify = ^TNMObjectNotify
Generic structure to request an object of a specific type.
PNMPgCalcSize = ^TNMPgCalcSize

PNMPgScroll = ^TNMPgScroll
This structure is sent along with PGN_SCROLL notifications
PNMTBCustomDraw = ^TNMTBCustomDraw
Custom Draw Structure
PNMTBDispInfo = PNMTBDispInfoA
[in] size of buffer pointed to by pszText
PNMTBDispInfoA = ^TNMTBDispInfoA

PNMTBDispInfoW = ^TNMTBDispInfoW
[in] size of buffer pointed to by pszText
PNMTBGetInfoTip = PNMTBGetInfoTipA

PNMTBGetInfoTipA = ^TNMTBGetInfoTipA

PNMTBGetInfoTipW = ^TNMTBGetInfoTipW

PNMTBHotItem = ^TNMTBHotItem
Structure for TBN_HOTITEMCHANGE notification //
PNMTVCustomDraw = ^TNMTVCustomDraw
IE 4 ONLY
PTBButtonInfo = PTBButtonInfoA

PTBButtonInfoA = ^TTBButtonInfoA

PTBButtonInfoW = ^TTBButtonInfoW

PTBInsertMark = ^TTBInsertMark
wParam == ch, lParam int * pidBtn
THDItemEx = THDItemExA

THDItemExA = record
Mask : Cardinal;
cxy : Integer;
pszText : PAnsiChar;
hbm : HBITMAP;
cchTextMax : Integer;
fmt : Integer;
lParam : LPARAM;
iImage : Integer;
iOrder : Integer;
end;

THDItemExW = record
Mask : Cardinal;
cxy : Integer;
pszText : PWideChar;
hbm : HBITMAP;
cchTextMax : Integer;
fmt : Integer;
lParam : LPARAM;
iImage : Integer;
iOrder : Integer;
end;

TLvBkImage = TLvBkImageA

TLVBkImageA = record
ulFlags : Longint;
hbm : HBITMAP;
pszImage : PAnsiChar;
cchImageMax : Cardinal;
xOffsetPercent : Integer;
yOffsetPercent : Integer;
end;

TLVBkImageW = record
ulFlags : Longint;
hbm : HBITMAP;
pszImage : PWideChar;
cchImageMax : Cardinal;
xOffsetPercent : Integer;
yOffsetPercent : Integer;
end;

TNMChar = record
hdr : TNMHdr;
ch : Cardinal;
dwItemPrev : Longint;
dwItemNext : Longint;
end;

TNMClick = TNMMouse

TNMCustomDrawInfo = record
hdr : TNMHDR;
dwDrawStage : LONGINT;
hdc : HDC;
rc : TRect;
dwItemSpec : LONGINT;
uItemState : UINT;
lItemlParam : Longint;
end;

TNMIPAdress = record
hdr : TNMHDR;
iField : Integer;
iValue : Integer;
end;

TNMItemActivate = record
hdr : TNMHDR;
iItem : Integer;
iSubItem : Integer;
uNewState : UINT;
uOldState : UINT;
uChanged : UINT;
ptAction : TPoint;
lParam : LPARAM;
uKeyFlags : UINT;
end;

TNMKey = record
hdr : TNMHdr;
nVKey : Cardinal;
uFlags : Cardinal;
end;

TNMLVCustomDraw = record
nmcd : TNMCustomDrawInfo;
clrText : COLORREF;
clrTextBk : COLORREF;
iSubItem : Integer;
end;

TNMLvGetInfoTip       = TNMLvGetInfoTipA

TNMLvGetInfoTipA = record
hdr : TNMHDR;
dwFlags : Longint;
pszText : PAnsiChar;
cchTextMax : Integer;
iItem : Integer;
iSubItem : Integer;
lParam : Longint;
end;

TNMLvGetInfoTipW = record
hdr : TNMHDR;
dwFlags : Longint;
pszText : PWidechar;
cchTextMax : Integer;
iItem : Integer;
iSubItem : Integer;
lParam : Longint;
end;

TNMLvStateChange = record
hdr : TNMHDR;
iFrom : Integer;
iTo : Integer;
uNewState : UINT;
uOldState : UINT;
end;

TNMMouse = record
hdr : TNMHdr;
dwItemSpec : Longint;
dwItemData : Longint;
pt : TPoint;
dwHitInfo : Longint;
end;

TNMObjectNotify = record
hdr : TNMHdr;
iItem : Integer;
piid : Pointer;
pObject : Pointer;
hResult : HRESULT;
dwFlags : Longint;
end;

TNMPgCalcSize = record
hdr : TNMHDR;
dwFlag : Longint;
iWidth : Integer;
iHeight : Integer;
end;

TNMPgScroll = record
hdr : TNMHDR;
fwKeys : Word;
rcParent : TRect;
iDir : Integer;
iXpos : Integer;
iYpos : Integer;
iScroll : Integer;
end;

TNMTBCustomDraw = record
nmcd : TNMCustomDrawInfo;
hbrMonoDither : HBRUSH;
hbrLines : HBRUSH;
hpenLines : HPEN;
clrText : COLORREF;
clrMark : COLORREF;
clrTextHighlight : COLORREF;
clrBtnFace : COLORREF;
clrBtnHighlight : COLORREF;
clrHighlightHotTrack : COLORREF;
rcText : TRect;
nStringBkMode : Integer;
nHLStringBkMode : Integer;
end;

TNMTBDispInfo = TNMTBDispInfoA

TNMTBDispInfoA = record
hdr : TNMHdr;
dwMask : Longint;
idCommand : Integer;
lParam : Longint;
iImage : Integer;
pszText : PAnsiChar;
cchText : Integer;
end;

TNMTBDispInfoW = record
hdr : TNMHdr;
dwMask : Longint;
idCommand : Integer;
lParam : Longint;
iImage : Integer;
pszText : PWideChar;
cchText : Integer;
end;

TNMTBGetInfoTip = TNMTBGetInfoTipA

TNMTBGetInfoTipA = record
hdr : TNMHdr;
pszText : PAnsiChar;
cchTextMax : Integer;
iItem : Integer;
lParam : Longint;
end;

TNMTBGetInfoTipW = record
hdr : TNMHdr;
pszText : PWideChar;
cchTextMax : Integer;
iItem : Integer;
lParam : Longint;
end;

TNMTBHotItem = record
hdr : TNMHdr;
idOld : Integer;
idNew : Integer;
dwFlags : Longint;
end;

TNMTVCustomDraw = record
nmcd : TNMCustomDrawInfo;
clrText : COLORREF;
clrTextBk : COLORREF;
iLevel : Integer;
end;

TTBButtonInfo = TTBButtonInfoA

TTBButtonInfoA = record
cbSize : Cardinal;
dwMask : Longint;
idCommand : Integer;
iImage : Integer;
fsState : Byte;
fsStyle : Byte;
cx : Word;
lParam : Longint;
pszText : PAnsiChar;
cchText : Integer;
end;

TTBButtonInfoW = record
cbSize : Cardinal;
dwMask : Longint;
idCommand : Integer;
iImage : Integer;
fsState : Byte;
fsStyle : Byte;
cx : Word;
lParam : Longint;
pszText : PWideChar;
cchText : Integer;
end;

TTBInsertMark = record
iButton : Integer;
dwFlags : Longint;
end;

Constants

CCM_FIRST = $2000

CCM_GETCOLORSCHEME = (CCM_FIRST + 3)

lParam is color scheme

CCM_GETDROPTARGET = (CCM_FIRST + 4)

fills in COLORSCHEME pointed to by lParam

CCM_GETUNICODEFORMAT = (CCM_FIRST + 6)

CCM_SETBKCOLOR = (CCM_FIRST + 1)

Common control shared messages

CCM_SETCOLORSCHEME = (CCM_FIRST + 2)

lParam is bkColor (* typedef struct tagCOLORSCHEME { DWORD dwSize; COLORREF clrBtnHighlight; // highlight color COLORREF clrBtnShadow; // shadow color } COLORSCHEME, *LPCOLORSCHEME;

CCM_SETUNICODEFORMAT = (CCM_FIRST + 5)

CDDS_ITEM = $000010000

the 0x000010000 bit means it's individual item specific

CDDS_ITEMPOSTERASE = (CDDS_ITEM OR CDDS_POSTERASE)

CDDS_ITEMPOSTPAINT = (CDDS_ITEM OR CDDS_POSTPAINT)

CDDS_ITEMPREERASE = (CDDS_ITEM OR CDDS_PREERASE)

CDDS_ITEMPREPAINT = (CDDS_ITEM OR CDDS_PREPAINT)

CDDS_POSTERASE = $000000004

CDDS_POSTPAINT = $000000002

CDDS_PREERASE = $000000003

CDDS_PREPAINT = $000000001

flags are the same, we can distinguish by context drawstage flags values under 0x00010000 are reserved for global custom draw values. above that are for specific controls

CDDS_SUBITEM = $00020000

IE4 Only

CDDS_SUBITEMPOSTERASE = (CDDS_SUBITEM OR CDDS_POSTERASE)

CDDS_SUBITEMPOSTPAINT = (CDDS_SUBITEM OR CDDS_POSTPAINT)

CDDS_SUBITEMPREERASE = (CDDS_SUBITEM OR CDDS_PREERASE)

CDDS_SUBITEMPREPAINT = (CDDS_SUBITEM OR CDDS_PREPAINT)

CDIS_CHECKED = $0008

CDIS_DEFAULT = $0020

CDIS_DISABLED = $0004

CDIS_FOCUS = $0010

CDIS_GRAYED = $0002

CDIS_HOT = $0040

CDIS_SELECTED = $0001

itemState flags

CDRF_DODEFAULT = $00000000

==================== CUSTOM DRAW ========================================== custom draw return flags values under 0x00010000 are reserved for global custom draw values. above that are for specific controls

CDRF_NEWFONT = $00000002

CDRF_NOTIFYITEMDRAW = $00000020

CDRF_NOTIFYITEMERASE = $00000080

CDRF_NOTIFYPOSTERASE = $00000040

CDRF_NOTIFYPOSTPAINT = $00000010

CDRF_NOTIFYSUBITEMDRAW = $00000020

IE4 Only

CDRF_SKIPDEFAULT = $00000004

DTM_GETMCFONT = (DTM_FIRST + 10)

DTM_SETMCFONT = (DTM_FIRST + 9)

Treat as a standard press button ================ DATETIMEPICK CONTROL ===================================== IE4 EXTENSIONS

FSB_ENCARTA_MODE = 1

FSB_FLAT_MODE = 2

FSB_REGULAR_MODE = 0

HDF_BITMAP_ON_RIGHT = $01000

HDF_IMAGE = $0800

HDI_DI_SETITEM = $0040

HDI_IMAGE = $0020

HDI_ORDER = $0080

HDM_CREATEDRAGIMAGE = (HDM_FIRST + 16)

HDM_GETIMAGELIST = (HDM_FIRST + 9)

HDM_GETITEMRECT = (HDM_FIRST + 7)

HDM_GETORDERARRAY = (HDM_FIRST + 17)

wparam = which item (by index

HDM_ORDERTOINDEX = (HDM_FIRST + 15)

HDM_SETHOTDIVIDER = (HDM_FIRST + 19)

HDM_SETIMAGELIST = (HDM_FIRST + 8)

HDM_SETORDERARRAY = (HDM_FIRST + 18)

HICF_ACCELERATOR = $00000004

Triggered by arrow keys

HICF_ARROWKEYS = $00000002

Triggered by mouse

HICF_DUPACCEL = $00000008

Triggered by accelerator

HICF_ENTERING = $00000010

This accelerator is not unique

HICF_LEAVING = $00000020

idOld is invalid

HICF_MOUSE = $00000001

HICF_OTHER = $00000000

Hot item change flags

HICF_RESELECT = $00000040

idNew is invalid

ICC_INTERNET_CLASSES = $00000800

==================== CUSTOM CONTROL EX ==================================== IE4 ONLY

ICC_NATIVEFNTCTL_CLASS = $00002000

page scroller

ICC_PAGESCROLLER_CLASS = $00001000

IPM_CLEARADDRESS = (WM_USER+100)

#define LVM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT #define ListView_SetUnicodeFormat(hwnd, fUnicode) \ (BOOL)SNDMSG((hwnd), LVM_SETUNICODEFORMAT, (WPARAM)(fUnicode), 0) #define LVM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT #define ListView_GetUnicodeFormat(hwnd) \ (BOOL)SNDMSG((hwnd), LVM_GETUNICODEFORMAT, 0, 0) #define ListView_SetExtendedListViewStyleEx(hwndLV, dwMask, dw)\ (DWORD)SNDMSG((hwndLV), LVM_SETEXTENDEDLISTVIEWSTYLE, dwMask, dw) *) //==================== IP ADRESS EDIT CONTROL============================================ // IE 4 EXTENSIONS // Messages sent to IPAddress controls

IPM_GETADDRESS = (WM_USER+102)

lparam = TCP/IP address

IPM_ISBLANK = (WM_USER+105)

wparam = field

IPM_SETADDRESS = (WM_USER+101)

no parameters

IPM_SETFOCUS = (WM_USER+104)

wparam = field, lparam = range

IPM_SETRANGE = (WM_USER+103)

lresult = # of non black fields. lparam = LPDWORD for TCP/IP address

IPN_FIELDCHANGED = (IPN_FIRST - 0)

IPN_FIRST = (0-860)

uses NMCHAR struct

IPN_LAST = (0-879)

internet address

LVBKIF_SOURCE_HBITMAP = $00000001

LVBKIF_SOURCE_MASK = $00000003

LVBKIF_SOURCE_NONE = $00000000

LVBKIF_SOURCE_URL = $00000002

Not Implemented in CommCtl32.dd V 4.71

LVBKIF_STYLE_MASK = $00000010

LVBKIF_STYLE_NORMAL = $00000000

LVBKIF_STYLE_TILE = $00000010

LVGIT_UNFOLDED = $0001

TNMLVGETINFOTIPA.dwFlag values

LVIF_INDENT = $0010

LVIF_NORECOMPUTE = $0800

LVKF_ALT = $0001

key flags stored in uKeyFlags

LVKF_CONTROL = $0002

LVKF_SHIFT = $0004

LVM_GETBKIMAGE = LVM_GETBKIMAGEA

LVM_GETBKIMAGEA = (LVM_FIRST + 69)

LVM_GETBKIMAGEW = (LVM_FIRST + 139)

LVM_GETHOVERTIME = (LVM_FIRST + 72)

LVM_GETNUMBEROFWORKAREAS = (LVM_FIRST + 73)

LVM_GETSELECTIONMARK = (LVM_FIRST + 66)

LVM_GETTOOLTIPS = (LVM_FIRST + 78)

LVM_GETWORKAREA = (LVM_FIRST + 70)

LVM_GETWORKAREAS = (LVM_FIRST + 70)

LVM_SETBKIMAGE = LVM_SETBKIMAGEA

LVM_SETBKIMAGEA = (LVM_FIRST + 68)

LVM_SETBKIMAGEW = (LVM_FIRST + 138)

LVM_SETHOVERTIME = (LVM_FIRST + 71)

LVM_SETSELECTIONMARK = (LVM_FIRST + 67)

LVM_SETTOOLTIPS = (LVM_FIRST + 74)

LVM_GETSELECTIONMARK = (LVM_FIRST + 66); LVM_SETSELECTIONMARK = (LVM_FIRST + 67);

LVM_SETWORKAREAS = (LVM_FIRST + 65)

LVN_GETINFOTIP = LVN_GETINFOTIPA

LVN_GETINFOTIPA = (LVN_FIRST-57)

LVN_GETINFOTIPW = (LVN_FIRST-58)

LVN_ITEMACTIVATE = (LVN_FIRST-14)

LVN_ODSTATECHANGED = (LVN_FIRST-15)

LVSICF_NOINVALIDATEALL = $00000001

these flags only apply to LVS_OWNERDATA listviews in report or list mode

LVSICF_NOSCROLL = $00000002

LVS_EX_FLATSB = $00000100

(int)SNDMSG((hwnd), HDM_SETHOTDIVIDER, (WPARAM)fPos, (LPARAM)dw) 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) ==================== LIST VIEW ============================================ IE 4 EXTENSIONS

LVS_EX_INFOTIP = $00000400

LVS_EX_MULTIWORKAREAS = $00002000

LVS_EX_REGIONAL = $00000200

cannot be cleared

LVS_EX_UNDERLINECOLD = $00001000

LVS_EX_UNDERLINEHOT = $00000800

listview does InfoTips for you

LV_MAX_WORKAREAS = 16

(DWORD)SendMessage((hwndLV), LVM_GETHOVERTIME, 0, 0

NFS_ALL = $0010

NFS_BUTTON = $0008

NFS_EDIT = $0001

style definition

NFS_LISTCOMBO = $0004

NFS_STATIC = $0002

NM_CHAR = (NM_FIRST-18)

uses NMMOUSE struct

NM_CUSTOMDRAW = (NM_FIRST-12)

Item to be selected

NM_HOVER = (NM_FIRST-13)

NM_KEYDOWN = (NM_FIRST-15)

NM_NCHITTEST = (NM_FIRST-14)

IE4 ONLY

NM_RELEASEDCAPTURE = (NM_FIRST-16)

uses NMKEY struct

NM_SETCURSOR = (NM_FIRST-17)

PGB_BOTTOMORRIGHT = 1

PGB_TOPORLEFT = 0

Scroll button is in hot state The following identifiers specifies the button control

PGF_CALCHEIGHT = 2

PGF_CALCWIDTH = 1

PGF_DEPRESSED = 4

Scroll button is in grayed state

PGF_GRAYED = 2

Scroll button is in normal state

PGF_HOT = 8

Scroll button is in depressed state

PGF_INVISIBLE = 0

--------------------------------------------------------------------------------------- Pager Button State --------------------------------------------------------------------------------------- The scroll can be in one of the following control State

PGF_NORMAL = 1

Scroll button is not visible

PGF_SCROLLDOWN = 2

PGF_SCROLLLEFT = 4

PGF_SCROLLRIGHT = 8

PGF_SCROLLUP = 1

PGK_CONTROL = 2

PGK_MENU = 4

PGK_SHIFT = 1

Keys down

PGM_FIRST = $1400

internet address

PGM_FORWARDMOUSE = (PGM_FIRST + 3)

PGM_GETBKCOLOR = (PGM_FIRST + 5)

PGM_GETBORDER = (PGM_FIRST + 7)

PGM_GETBUTTONSIZE = (PGM_FIRST + 11)

PGM_GETBUTTONSTATE = (PGM_FIRST + 12)

PGM_GETDROPTARGET = CCM_GETDROPTARGET

PGM_GETPOS = (PGM_FIRST + 9)

PGM_RECALCSIZE = (PGM_FIRST + 2)

lParam == hwnd

PGM_SETBKCOLOR = (PGM_FIRST + 4)

PGM_SETBORDER = (PGM_FIRST + 6)

PGM_SETBUTTONSIZE = (PGM_FIRST + 10)

PGM_SETCHILD = (PGM_FIRST + 1)

--------------------------------------------------------------------------------------- Pager Control Messages ---------------------------------------------------------------------------------------

PGM_SETPOS = (PGM_FIRST + 8)

PGN_CALCSIZE = (PGN_FIRST-2)

PGN_CALCSIZE Notification Message

PGN_FIRST = (0-900)

Pager control messages

PGN_LAST = (0-950)

Pager Control

PGN_SCROLL = (PGN_FIRST-1)

PGN_SCROLL Notification Message

PGS_AUTOSCROLL = $00000002

PGS_DRAGNDROP = $00000004

PGS_HORZ = $00000001

PGS_VERT = $00000000

--------------------------------------------------------------------------------------- Pager Control Styles ---------------------------------------------------------------------------------------

TBCDRF_HILITEHOTTRACK = $00020000

Don't draw button edges

TBCDRF_NOEDGES = $00010000

Toolbar custom draw return flags

TBCDRF_NOETCHEDEFFECT = $00100000

Don't draw default highlight of image/text for TBSTATE_MARKED

TBCDRF_NOMARK = $00080000

Don't offset button if pressed

TBCDRF_NOOFFSET = $00040000

Use color of the button bk when hottracked

TBDDRET_DEFAULT = 0

Return codes for TBN_DROPDOWN

TBDDRET_NODEFAULT = 1

TBDDRET_TREATPRESSED = 2

TBIF_COMMAND = $00000020

TBIF_IMAGE = $00000001

TBIF_LPARAM = $00000010

TBIF_SIZE = $00000040

TBIF_STATE = $00000004

TBIF_STYLE = $00000008

TBIF_TEXT = $00000002

TBIMHT_AFTER = $00000001

TBIMHT_BACKGROUND = $00000002

TRUE = insert After iButton, otherwise before

TBNF_DI_SETITEM = $10000000

TBNF_IMAGE = $00000001

TBNF_TEXT = $00000002

TBN_DELETINGBUTTON = (TBN_FIRST - 15)

this is sent when the user clicks down on a button then drags off the button

TBN_DRAGOUT = (TBN_FIRST - 14)

TBN_GETDISPINFO = TBN_GETDISPINFOA

TBN_GETDISPINFOA = (TBN_FIRST - 16)

uses TBNOTIFY

TBN_GETDISPINFOW = (TBN_FIRST - 17)

This is sent when the toolbar needs some display information

TBN_GETINFOTIP = TBN_GETINFOTIPA

TBN_GETINFOTIPA = (TBN_FIRST - 18)

This is sent when the toolbar needs some display information

TBN_GETINFOTIPW = (TBN_FIRST - 19)

TBN_GETOBJECT = (TBN_FIRST - 12)

wParam == mask lParam == bit values

TBN_HOTITEMCHANGE = (TBN_FIRST - 13)

hot item reselected

TBSTATE_MARKED = $80

================ TOOLBAR CONTROL ===================================== IE4 EXTENSIONS

TBSTYLE_AUTOSIZE = $0010

TBSTYLE_EX_DRAWDDARROWS = $00000001

TBSTYLE_NOPREFIX = $0020

automatically calculate the cx of the button

TBSTYLE_REGISTERDROP = $4000

if this button should not have accel prefix

TBSTYLE_TRANSPARENT = $8000

TB_ADDBUTTONS = TB_ADDBUTTONSA

TB_ADDBUTTONSA = (WM_USER + 20)

TB_ADDBUTTONSW = (WM_USER + 68)

TB_GETANCHORHIGHLIGHT = (WM_USER + 74)

wParam == TRUE/FALSE

TB_GETBUTTONINFO = TB_GETBUTTONINFOA

TB_GETBUTTONINFOA = (WM_USER + 65)

TB_GETBUTTONINFOW = (WM_USER + 63)

BUTTONINFO APIs do NOT support the string pool.

TB_GETCOLORSCHEME = CCM_GETCOLORSCHEME

lParam is color scheme

TB_GETEXTENDEDSTYLE = (WM_USER + 85)

For TBSTYLE_EX_

TB_GETHOTITEM = (WM_USER + 71)

wParam == IID, lParam void **ppv

TB_GETINSERTMARK = (WM_USER + 79)

TRUE iff missed buttons completely

TB_GETINSERTMARKCOLOR = (WM_USER + 89)

TB_GETMAXSIZE = (WM_USER + 83)

TB_GETOBJECT = (WM_USER + 62)

TB_GETPADDING = (WM_USER + 86)

For TBSTYLE_EX_

TB_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT

TB_HITTEST = (WM_USER + 69)

TB_INSERTBUTTON = TB_INSERTBUTTONA

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).

TB_INSERTBUTTONA = (WM_USER + 21)

TB_INSERTBUTTONW = (WM_USER + 67)

TB_INSERTMARKHITTEST = (WM_USER + 81)

lParam == LPTBINSERTMARK

TB_ISBUTTONHIGHLIGHTED = (WM_USER + 14)

TB_MAPACCELERATOR = TB_MAPACCELERATORA

wParam == ch, lParam int * pidBtn

TB_MAPACCELERATORA = (WM_USER + 78)

TB_MAPACCELERATORW = (WM_USER + 90)

TB_MARKBUTTON = (WM_USER + 6)

Don't draw etched effect for disabled items

TB_MOVEBUTTON = (WM_USER + 82)

wParam == LPPOINT lParam == LPTBINSERTMARK

TB_SETANCHORHIGHLIGHT = (WM_USER + 73)

wParam == iHotItem

TB_SETBUTTONINFO = TB_SETBUTTONINFOA

TB_SETBUTTONINFOA = (WM_USER + 66)

TB_SETBUTTONINFOW = (WM_USER + 64)

TB_SETCOLORSCHEME = CCM_SETCOLORSCHEME

TB_SETDRAWTEXTFLAGS = (WM_USER + 70)

TB_SETEXTENDEDSTYLE = (WM_USER + 84)

lParam == LPSIZE

TB_SETHOTITEM = (WM_USER + 72)

TB_SETINSERTMARK = (WM_USER + 80)

lParam == LPTBINSERTMARK

TB_SETINSERTMARKCOLOR = (WM_USER + 88)

TB_SETPADDING = (WM_USER + 87)

TB_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT

fills in COLORSCHEME pointed to by lParam

TCIS_HIGHLIGHTED = $0002

IE4 ONLY

TCM_GETEXTENDEDSTYLE = (TCM_FIRST + 53)

optional wParam == mask

TCM_HIGHLIGHTITEM = (TCM_FIRST + 51)

IE4 ONLY

TCM_SETEXTENDEDSTYLE = (TCM_FIRST + 52)

TCN_GETOBJECT = (TCN_FIRST - 3)

IE4 ONLY

TCS_EX_FLATSEPARATORS = $00000001

IE4 ONLY

TCS_EX_REGISTERDROP = $00000002

IE4 ONLY

TCS_FLATBUTTONS = $0008

IE4 ONLY

TCS_MULTISELECT = $0004

SNDMSG(hdp, DTM_GETMCFONT, 0, 0) ==================== TAB CONTROL ==========================================

TVGN_LASTVISIBLE = $000A

TVIF_INTEGRAL = $0080

TVN_GETINFOTIPA = (TVN_FIRST-13)

TVN_GETINFOTIPW = (TVN_FIRST-14)

TVN_SINGLEEXPAND = (TVN_FIRST-15)

TVS_CHECKBOXES = $0100

TVS_FULLROWSELECT = $1000

TVS_HOTTRACK = $0200

TVS_INFOTIP = $0800

TVS_NONEVENHEIGHT = $4000

TVS_NOSCROLL = $2000

TVS_NOTOOLTIPS = $0080

==================== TREE VIEW ==========================================

TVS_PRIVATEIMAGELISTS = $0400

TVS_SHAREDIMAGELISTS = $0000

TVS_SINGLEEXPAND = $0400

VIEW_VIEWMENU = 12

icon indexes for standard view bitmap

WC_IPADDRESS = 'SysIPAddress32'

no parameters

WC_NATIVEFONTCTLA = 'NativeFontCtl'

==================== NATIVE FONT CONTROL============================================ IE 4 EXTENSIONS

WC_PAGESCROLLER = 'SysPager'

Pager Class Name

WSB_PROP_CXHSCROLL = $00000002

WSB_PROP_CXHTHUMB = $00000010

WSB_PROP_CXVSCROLL = $00000008

WSB_PROP_CYHSCROLL = $00000004

WSB_PROP_CYVSCROLL = $00000001

==================== FLAT SCROLLBAR API============================================ IE 4 EXTENSIONS

WSB_PROP_CYVTHUMB = $00000020

WSB_PROP_HBKGCOLOR = $00000080

WSB_PROP_HSTYLE = $00000200

WSB_PROP_MASK = $00000FFF

WSB_PROP_PALETTE = $00000800

WSB_PROP_VBKGCOLOR = $00000040

WSB_PROP_VSTYLE = $00000100

WSB_PROP_WINSTYLE = $00000400


Variables