* vista items till WC_STATICA, roughly at 80% now.

git-svn-id: trunk@13203 -
This commit is contained in:
marco 2009-05-27 16:26:32 +00:00
parent baca8ec9b6
commit 3af4741b5e

View File

@ -59,12 +59,14 @@ CONST CommCtrlDLL = 'comctl32.dll';
{$DEFINE IE3PLUS}
{$DEFINE IE4PLUS}
{$define IE5plus}
{$define WIN32XP}
{$define win32vista} // till lvgroup
{$define WIN32XP} // also 0x501, win2003
{$define win32vista} // till WC_STATICA
{$define ie501plus}
{$ifdef win32}
{$define _win32}
{$endif win32}
{$define ie6plus}
{$define NTDDI_WIN7}
{$ifdef win64}
{$define _win32}
@ -103,6 +105,26 @@ CONST CommCtrlDLL = 'comctl32.dll';
// NOSCROLLBAR Scrollbar control.
//
//=============================================================================
// Moved items due to forward defining limitations
Const
MAX_LINKID_TEXT = 48;
L_MAX_URL_LENGTH = (2048 + 32 + length('://'));
Type
tagLITEM = Record
mask : UINT;
iLink : cint;
state : UINT;
stateMask : UINT;
szID : Array [0..MAX_LINKID_TEXT-1] OF WCHAR;
szUrl : Array [0..L_MAX_URL_LENGTH-1] OF WCHAR;
END;
LITEM = tagLITEM;
PLITEM = ^tagLITEM;
TLITEM = tagLITEM;
// PLITEM = ^tagLITEM;
// include <prsht.h>
@ -3749,7 +3771,7 @@ CONST
LVSIL_NORMAL = 0;
LVSIL_SMALL = 1;
LVSIL_STATE = 2;
LVSIL_GROUPHEADER = 3;
LVM_SETIMAGELIST = (LVM_FIRST + 3);
// Macro 43
@ -3896,7 +3918,8 @@ Type
LV_ITEM = LVITEM;
TLVItem = LVITEM;
PLVItem = LPLVITEM;
TLV_ITEM = LVITEM;
PLV_ITEM = PLVITEM;
CONST
LPSTR_TEXTCALLBACKW = LPWSTR(-1);
LPSTR_TEXTCALLBACKA = LPSTR (-1);
@ -4865,6 +4888,22 @@ TYPE
stateMask : UINT;
state : UINT;
uAlign : UINT;
{$ifdef win32vista}
pszSubtitle : LPWSTR;
cchSubtitle : UINT;
pszTask : LPWSTR;
cchTask : UINT;
pszDescriptionTop : LPWSTR;
cchDescriptionTop : UINT;
pszDescriptionBottom: LPWSTR;
cchDescriptionBottom: UINT;
iTitleImage : cint;
iExtendedImage : cint;
iFirstItem : cint; // Read only
cItems : UINT; // Read only
pszSubsetTitle : LPWSTR;// NULL if group is not subset
cchSubsetTitle : UINT;
{$endif}
END;
LVGROUP = tagLVGROUP;
PLVGROUP = ^tagLVGROUP;
@ -4995,11 +5034,14 @@ CONST
LVTVIF_FIXEDWIDTH = $00000001;
LVTVIF_FIXEDHEIGHT = $00000002;
LVTVIF_FIXEDSIZE = $00000003;
{$ifdef win32vista}
LVTVIF_EXTENDED = $00000004;
{$endif}
LVTVIM_TILESIZE = $00000001;
LVTVIM_COLUMNS = $00000002;
LVTVIM_LABELMARGIN = $00000004;
TYPE
tagLVTILEVIEWINFO = Record
@ -5020,6 +5062,9 @@ TYPE
iItem : cint;
cColumns : UINT;
puColumns : PUINT;
{$ifdef win32vista}
piColFmt : PCINT;
{$endif}
END;
LVTILEINFO = tagLVTILEINFO;
PLVTILEINFO = ^tagLVTILEINFO;
@ -5166,8 +5211,96 @@ CONST
// Macro 153
Function ListView_MapIDToIndex( hwnd : hwnd; id : WPARAM):UINT;
const LVM_ISITEMVISIBLE = (LVM_FIRST + 182);
// macro 153b
function ListView_IsItemVisible(hwnd:hwnd; aindex:cuint):cuint;
// (UINT)SNDMSG((hwnd), LVM_ISITEMVISIBLE, (WPARAM)(index), (LPARAM)0)
{$ENDIF}
{$ifdef win32vista}
CONST
LVM_GETEMPTYTEXT = (LVM_FIRST + 204);
LVM_GETFOOTERRECT = (LVM_FIRST + 205);
LVM_GETFOOTERINFO = (LVM_FIRST + 206);
LVM_GETFOOTERITEMRECT = (LVM_FIRST + 207);
LVM_GETFOOTERITEM = (LVM_FIRST + 208);
LVM_GETITEMINDEXRECT = (LVM_FIRST + 209);
LVM_SETITEMINDEXSTATE = (LVM_FIRST + 210);
LVM_GETNEXTITEMINDEX = (LVM_FIRST + 211);
// footer flags
LVFF_ITEMCOUNT = $00000001;
// footer item flags
LVFIF_TEXT = $00000001;
LVFIF_STATE = $00000002;
// footer item state
LVFIS_FOCUSED = $0001;
TYPE
tagLVFOOTERINFO = Record
mask : CUINT; // LVFF_*
pszText : LPWSTR;
cchTextMax: CINT;
cItems : CUINT;
end;
LVFOOTERINFO = tagLVFOOTERINFO;
LPLVFOOTERINFO = ^tagLVFOOTERINFO;
TLVFOOTERINFO = tagLVFOOTERINFO;
PLVFOOTERINFO = LPLVFOOTERINFO;
tagLVFOOTERITEM = Record
mask : CUINT; // LVFIF_*
iItem : CINT;
pszText : LPWSTR;
cchTextMax: CINT;
state : CUINT; // LVFIS_*
stateMask : CUINT; // LVFIS_*
end;
LVFOOTERITEM = tagLVFOOTERITEM;
LPLVFOOTERITEM = ^tagLVFOOTERITEM;
TLVFOOTERITEM = tagLVFOOTERITEM;
PLVFOOTERITEM = LPLVFOOTERITEM;
// supports a single item in multiple groups.
tagLVITEMINDEX = Record
iItem : CINT; // listview item index
iGroup : CINT; // group index (must be -1 if group view is not enabled)
end;
LVITEMINDEX = tagLVITEMINDEX;
PLVITEMINDEX = ^tagLVITEMINDEX;
tLVITEMINDEX = TAGLVITEMINDEX;
function ListView_SetGroupHeaderImageList(hwnd:HWNd;himl:HIMAGELIST):HIMAGELIST;
function ListView_GetGroupHeaderImageList(hwnd:HWND):HIMAGELIST;
function ListView_GetEmptyText(hwnd:HWND;pszText:LPWSTR; cchText:CUINT):BOOL;
function ListView_GetFooterRect(hwnd:HWND; prc:PRECT):BOOL;
function ListView_GetFooterInfo(hwnd:HWND;plvfi: LPLVFOOTERINFO ):BOOL;
function ListView_GetFooterItemRect(hwnd:HWND;iItem:CUINT;prc:PRECT):BOOL;
function ListView_GetFooterItem(hwnd:HWND;iItem:CUINT; pfi:PLVFOOTERITEM):BOOL;
function ListView_GetItemIndexRect(hwnd:hwnd; plvii:PLVITEMINDEX; iSubItem:clong; code:clong; prc:LPRECT) :BOOL;
function ListView_SetItemIndexState(hwndLV:HWND; plvii:PLVITEMINDEX; data:CUINT; mask:CUINT):HRESULT;
function ListView_GetNextItemIndex(hwnd:HWND;plvii:PLVITEMINDEX; flags:LPARAM):BOOL;
{$endif}
Type
{$IFDEF UNICODE}
@ -5504,6 +5637,19 @@ CONST
LVN_MARQUEEBEGIN = (LVN_FIRST-56);
{$ENDIF}
{$ifdef win32vista}
Type
tagNMLVLIN = Record
hdr: NMHDR;
link: LITEM;
iItem: cint;
iSubItem: cint;
end;
NMLVLINK = tagNMLVLIN;
TNMLVLINK = tagNMLVLIN;
PNMLVLINK = ^tagNMLVLIN;
{$endif}
{$ifdef ie4plus}
TYPE
@ -5551,6 +5697,17 @@ CONST
LVN_GETINFOTIPA = (LVN_FIRST-57);
LVN_GETINFOTIPW = (LVN_FIRST-58);
LVN_INCREMENTALSEARCHA = (LVN_FIRST-62);
LVN_INCREMENTALSEARCHW = (LVN_FIRST-63);
LVNSCH_DEFAULT = -1;
LVNSCH_ERROR = -2;
LVNSCH_IGNORE = -3;
{$ifdef win32vista}
LVN_COLUMNDROPDOWN = (LVN_FIRST-64);
LVN_COLUMNOVERFLOWCLICK = (LVN_FIRST-66);
{$endif}
Const
{$IFDEF UNICODE}
@ -5567,7 +5724,7 @@ type
{$ENDIF} // _WIN32_IE >= 0x0400
{$ifdef win32xp}
{$ifdef win32xp} // actually 2003
tagNMLVSCROLL = Record
hdr : NMHDR;
dx : cint;
@ -5580,10 +5737,29 @@ type
CONST
LVN_BEGINSCROLL = (LVN_FIRST-80) ;
LVN_BEGINSCROLL = (LVN_FIRST-80);
LVN_ENDSCROLL = (LVN_FIRST-81);
// {$ENDIF}
{$ifdef win32vista}
LVN_LINKCLICK = (LVN_FIRST-84);
LVN_GETEMPTYMARKUP = (LVN_FIRST-87);
EMF_CENTERED = $00000001; // render markup centered in the listview area
Type
tagNMLVEMPTYMARKUP = Record
hdr : NMHDR;
// out params from client back to listview
dwFlags :DWORD; // EMF_*
szMarkup : array[0..L_MAX_URL_LENGTH-1] of wchar; // markup displayed
end;
NMLVEMPTYMARKUP = tagNMLVEMPTYMARKUP;
TNMLVEMPTYMARKUP = tagNMLVEMPTYMARKUP;
PNMLVEMPTYMARKUP = ^tagNMLVEMPTYMARKUP;
{$endif}
{$ENDIF} // NOLISTVIEW
//====== TREEVIEW CONTROL =====================================================
@ -5628,9 +5804,20 @@ CONST
{$ifdef ie5plus}
TVS_NOHSCROLL = $8000; // TVS_NOSCROLL overrides this
{$ENDIF}
{$ifdef win32vista}
TVS_EX_MULTISELECT = $0002;
TVS_EX_DOUBLEBUFFER = $0004;
TVS_EX_NOINDENTSTATE = $0008;
TVS_EX_RICHTOOLTIP = $0010;
TVS_EX_AUTOHSCROLL = $0020;
TVS_EX_FADEINOUTEXPANDOS = $0040;
TVS_EX_PARTIALCHECKBOXES = $0080;
TVS_EX_EXCLUSIONCHECKBOXES = $0100;
TVS_EX_DIMMEDCHECKBOXES = $0200;
TVS_EX_DRAWIMAGEASYNC = $0400;
{$endif}
{$ENDIF}
// end_r_commctrl
TYPE
@ -5647,6 +5834,10 @@ CONST
{$ifdef ie4plus}
TVIF_INTEGRAL = $0080;
{$ENDIF}
{$ifdef win32vista}
TVIF_STATEEX = $0100;
TVIF_EXPANDEDIMAGE = $0200;
{$endif}
TVIS_SELECTED = $0002;
TVIS_CUT = $0004;
TVIS_DROPHILITED = $0008;
@ -5661,6 +5852,25 @@ CONST
TVIS_STATEIMAGEMASK = $F000;
TVIS_USERMASK = $F000;
// IE6
TVIS_EX_FLAT = $0001;
{$ifdef win32vista}
TVIS_EX_DISABLED = $0002;
{$endif}
TVIS_EX_ALL = $0002;
Type
// Structure for TreeView's NM_TVSTATEIMAGECHANGING notification
tagNMTVSTATEIMAGECHANGING = Record
hdr : NMHDR;
hti : HTREEITEM;
iOldStateImageIndex : cint;
iNewStateImageIndex : cint;
end;
NMTVSTATEIMAGECHANGING = tagNMTVSTATEIMAGECHANGING;
LPNMTVSTATEIMAGECHANGING = ^tagNMTVSTATEIMAGECHANGING;
Const
I_CHILDRENCALLBACK = (-1);
Type
tagTVITEMA = Record
@ -5674,6 +5884,14 @@ Type
iSelectedImage : cint;
cChildren : cint;
lParam : LPARAM;
{$ifdef ie6plus}
uStateEx : cUINT;
hwnd : HWND;
iExpandedImage : cint;
{$endif}
{$ifdef NTDDI_WIN7}
iPadding : cint;
{$endif}
END;
TVITEMA = tagTVITEMA;
LPTVITEMA = ^tagTVITEMA;
@ -5692,6 +5910,14 @@ Type
iSelectedImage : cint;
cChildren : cint;
lParam : LPARAM;
{$ifdef ie6plus}
uStateEx : cUINT;
hwnd : HWND;
iExpandedImage : cint;
{$endif}
{$ifdef NTDDI_WIN7}
iPadding : cint;
{$endif}
END;
TVITEMW = tagTVITEMW;
LPTVITEMW = ^tagTVITEMW;
@ -5953,12 +6179,13 @@ CONST
TVGN_PREVIOUSVISIBLE = $0007;
TVGN_DROPHILITE = $0008;
TVGN_CARET = $0009;
{$ifdef ie4plus}
TVGN_LASTVISIBLE = $000A;
{$ENDIF} // _WIN32_IE >= 0x0400
{$ifdef win32xp}
{$ifdef ie6plus}
TVGN_NEXTSELECTED = $000B;
{$endif}
{$ifdef win32xp} // 0x501
TVSI_NOSINGLEEXPAND = $8000; // Should not conflict with TVGN flags.
{$ENDIF}
@ -5975,6 +6202,9 @@ function TreeView_GetDropHilite(hwnd:hwnd) : HTREEITEM;inline;
function TreeView_GetRoot(hwnd:hwnd) : HTREEITEM;inline;
function TreeView_GetLastVisible(hwnd:hwnd) : HTREEITEM;inline;
{$ifdef win32vista}
function TreeView_GetNextSelected(hwnd:hwnd; hitem:HTREEITEM):HTREEITEM;inline;
{$endif}
CONST
TVM_SELECTITEM = (TV_FIRST + 11);
@ -6367,10 +6597,41 @@ CONST
// Macro 216
Function TreeView_MapHTREEITEMToAccID( hwnd : hwnd; htreeitem : WPARAM):UINT;
{$ENDIF}
{$ifdef win32vista}
CONST
TVM_GETSELECTEDCOUNT = (TV_FIRST + 70);
TVM_SHOWINFOTIP = (TV_FIRST + 71);
TVM_GETITEMPARTRECT = (TV_FIRST + 72);
Type
TVITEMPART = (TVGIPR_BUTTON = $0001);
pTVITEMPART = ^TVITEMPART;
tagTVGETITEMPARTRECTINFO = Record
hti :HTREEITEM ;
prc :PRECT;
partID :TVITEMPART;
end;
TVGETITEMPARTRECTINFO = tagTVGETITEMPARTRECTINFO;
function TreeView_GetSelectedCount(hwnd:hwnd):DWORD;
// (DWORD)SNDMSG((hwnd), TVM_GETSELECTEDCOUNT, 0, 0)
function TreeView_ShowInfoTip(hwnd:HWND; hitem:HTREEITEM):DWORD;
// (DWORD)SNDMSG((hwnd), TVM_SHOWINFOTIP, 0, (LPARAM)(hitem))
function TreeView_GetItemPartRect(hwnd:HWND; hitem:HTREEITEM; prc:prect; partid:TVITEMPART):bool;
//{ TVGETITEMPARTRECTINFO info; \
// info.hti = (hitem); \
// info.prc = (prc); \
// info.partID = (partid); \
// (BOOL)SNDMSG((hwnd), TVM_GETITEMPARTRECT, 0, (LPARAM)&info); \
{$endif}
TYPE
PFNTVCOMPARE =function (lparam1:LPARAM;lparam2:LPARAM;lParamSort:LParam): cint; STDCALL;
TTVCompare = PFNTVCOMPARE;
@ -6504,6 +6765,35 @@ Type
LPNMTVDISPINFO = LPNMTVDISPINFOA;
{$ENDIF}
{$ifdef IE6plus}
tagTVDISPINFOEXA = Record
hdr : NMHDR;
item :TVITEMEXA;
end;
NMTVDISPINFOEXA = tagTVDISPINFOEXA;
LPNMTVDISPINFOEXA = ^tagTVDISPINFOEXA;
tagTVDISPINFOEXW = Record
hdr : NMHDR;
item :TVITEMEXW;
end;
NMTVDISPINFOEXW = tagTVDISPINFOEXW;
LPNMTVDISPINFOEXW = ^tagTVDISPINFOEXW;
{$IFDEF UNICODE}
NMTVDISPINFOEX = NMTVDISPINFOEXW;
LPNMTVDISPINFOEX = LPNMTVDISPINFOEXW;
{$ELSE}
NMTVDISPINFOEX = NMTVDISPINFOEXA;
LPNMTVDISPINFOEX = LPNMTVDISPINFOEXA;
{$ENDIF}
TV_DISPINFOEXA = NMTVDISPINFOEXA;
TV_DISPINFOEXW = NMTVDISPINFOEXW;
TV_DISPINFOEX = NMTVDISPINFOEX;
{$endif}
{$ifdef ie3plus}
TV_DISPINFOA = NMTVDISPINFOA;
@ -6550,6 +6840,14 @@ CONST
TVNRET_SKIPOLD = 1;
TVNRET_SKIPNEW = 2;
{$ifdef win32vista}
TVN_ITEMCHANGINGA = (TVN_FIRST-16);
TVN_ITEMCHANGINGW = (TVN_FIRST-17);
TVN_ITEMCHANGEDA = (TVN_FIRST-18);
TVN_ITEMCHANGEDW = (TVN_FIRST-19);
TVN_ASYNCDRAW = (TVN_FIRST-20);
{$endif}
{$ENDIF} // 0x400
@ -6680,6 +6978,41 @@ CONST
{$ENDIF} // _WIN32_IE >= 0x0400
{$ifdef ie6plus}
Type
tagTVITEMCHANGE = packed record
hdr : NMHDR;
uChanged : UINT;
hItem : HTREEITEM;
uStateNew : UINT;
uStateOld : UINT;
lParam : LPARAM;
end;
NMTVITEMCHANGE = tagTVITEMCHANGE;
PNMTVITEMCHANGE = ^NMTVITEMCHANGE;
tagNMTVASYNCDRAW = packed record
hdr : NMHDR;
pimldp : PIMAGELISTDRAWPARAMS; { the draw that failed }
hr : HRESULT; { why it failed }
hItem : HTREEITEM; { item that failed to draw icon }
lParam : LPARAM; { its data }
dwRetFlags : DWORD; { Out Params }
iRetImageIndex : longint; { What listview should do on return }
end; { used if ADRF_DRAWIMAGE is returned }
NMTVASYNCDRAW = tagNMTVASYNCDRAW;
PNMTVASYNCDRAW = ^NMTVASYNCDRAW;
CONST
{$IFDEF UNICODE}
TVN_ITEMCHANGING = TVN_ITEMCHANGINGW;
TVN_ITEMCHANGED = TVN_ITEMCHANGEDW;
{$ELSE}
TVN_ITEMCHANGING = TVN_ITEMCHANGINGA;
TVN_ITEMCHANGED = TVN_ITEMCHANGEDA;
{$ENDIF}
{$endif}
{$ENDIF} // NOTREEVIEW
{$ifdef ie3plus}
@ -6805,7 +7138,9 @@ CONST
{$ifdef ie4plus}
CBES_EX_NOSIZELIMIT = $00000008;
CBES_EX_CASESENSITIVE = $00000010;
{$ifdef win32vista}
CBES_EX_TEXTENDELLIPSIS = $00000020;
{$endif}
TYPE
DummyStruct9 = Record
@ -8875,18 +9210,100 @@ CONST
BCN_HOTITEMCHANGE = (BCN_FIRST + $0001);
BST_HOT = $0200;
{$ifdef win32vista}
BST_DROPDOWNPUSHED = $0400;
// BUTTON STYLES
BS_SPLITBUTTON = $00000000C; // This block L suffixed (unsigned)
BS_DEFSPLITBUTTON = $00000000D;
BS_COMMANDLINK = $00000000E;
BS_DEFCOMMANDLINK = $00000000F;
// SPLIT BUTTON INFO mask flags
BCSIF_GLYPH = $00001;
BCSIF_IMAGE = $00002;
BCSIF_STYLE = $00004;
BCSIF_SIZE = $00008;
// SPLIT BUTTON STYLE flags
BCSS_NOSPLIT = $00001;
BCSS_STRETCH = $00002;
BCSS_ALIGNLEFT = $00004;
BCSS_IMAGE = $00008;
BCM_SETDROPDOWNSTATE = (BCM_FIRST + $0006);
BCM_SETSPLITINFO = (BCM_FIRST + $0007);
BCM_GETSPLITINFO = (BCM_FIRST + $0008);
BCM_SETNOTE = (BCM_FIRST + $0009);
BCM_GETNOTE = (BCM_FIRST + $000A);
BCM_GETNOTELENGTH = (BCM_FIRST + $000B);
BCM_SETSHIELD = (BCM_FIRST + $000C);
// Value to pass to BCM_SETIMAGELIST to indicate that no glyph should be
// displayed
BCCL_NOGLYPH = HIMAGELIST(-1);
BCN_DROPDOWN = (BCN_FIRST + $0002);
Type
tagBUTTON_SPLITINFO = record
mask : UINT;
himlGlyph : HIMAGELIST;
uSplitStyle : UINT;
size : SIZE;
end;
BUTTON_SPLITINFO = tagBUTTON_SPLITINFO;
PBUTTON_SPLITINFO = ^BUTTON_SPLITINFO;
LPBUTTON_SPLITINFO = PBUTTON_SPLITINFO;
{ NOTIFICATION MESSAGES }
tagNMBCDROPDOWN = packed record
hdr : NMHDR;
rcButton : RECT;
end;
NMBCDROPDOWN = tagNMBCDROPDOWN;
PNMBCDROPDOWN = ^NMBCDROPDOWN;
LPNMBCDROPDOWN = PNMBCDROPDOWN;
// BUTTON MESSAGES
function Button_SetDropDownState(hwnd:HWND; fDropDown:BOOL) : BOOL;
// (BOOL)SNDMSG((hwnd), BCM_SETDROPDOWNSTATE, (WPARAM)(fDropDown), 0)
function Button_SetSplitInfo(hwnd:HWND; pInfo:PBUTTON_SPLITINFO):BOOL;
// (BOOL)SNDMSG((hwnd), BCM_SETSPLITINFO, 0, (LPARAM)(pInfo))
function Button_GetSplitInfo(hwnd:HWND; pInfo:PBUTTON_SPLITINFO) :BOOL;
// (BOOL)SNDMSG((hwnd), BCM_GETSPLITINFO, 0, (LPARAM)(pInfo))
function Button_SetNote(hwnd:HWND; psz:LPCWSTR) :BOOL;
// (BOOL)SNDMSG((hwnd), BCM_SETNOTE, 0, (LPARAM)(psz))
function Button_GetNote(hwnd:HWND; psz:LPCWSTR; pcc:cint) :BOOL;
// (BOOL)SNDMSG((hwnd), BCM_GETNOTE, (WPARAM)pcc, (LPARAM)psz)
function Button_GetNoteLength(hwnd:HWND) :LRESULT;
// (LRESULT)SNDMSG((hwnd), BCM_GETNOTELENGTH, 0, 0)
// Macro to use on a button or command link to display an elevated icon
function Button_SetElevationRequiredState(hwnd:HWND; fRequired:BOOL) :LRESULT;
// (LRESULT)SNDMSG((hwnd), BCM_SETSHIELD, 0, (LPARAM)fRequired)
{$endif}
{$ENDIF}
{$ENDIF} // NOBUTTON
/// ===================== End Button Control =========================
/// ====================== Static Control =============================
{$IFNDEF NOSTATIC}
const
{$IFDEF _WIN32}
// Static Class Name
@ -9104,8 +9521,8 @@ CONST
{$ifdef win32xp}
INVALID_LINK_INDEX = (-1);
MAX_LINKID_TEXT = 48;
L_MAX_URL_LENGTH = (2048 + 32 + length('://'));
WC_LINK = {L}'SysLink';
@ -9134,19 +9551,6 @@ CONST
TYPE
tagLITEM = Record
mask : UINT;
iLink : cint;
state : UINT;
stateMask : UINT;
szID : Array [0..MAX_LINKID_TEXT-1] OF WCHAR;
szUrl : Array [0..L_MAX_URL_LENGTH-1] OF WCHAR;
END;
LITEM = tagLITEM;
PLITEM = ^tagLITEM;
TLITEM = tagLITEM;
// PLITEM = ^tagLITEM;
tagLHITTESTINFO = Record
pt : POINT;
@ -10981,8 +11385,77 @@ Function ListView_MapIDToIndex( hwnd : hwnd; id : WPARAM):UINT;
Begin
Result:=UINT(SendMessage((hwnd), LVM_MAPIDTOINDEX, id, LPARAM(0)));
end;
function ListView_IsItemVisible(hwnd:hwnd; aindex:cuint):cuint;
begin
Result:=UINT(SendMessage((hwnd),LVM_ISITEMVISIBLE, WPARAM(aindex), LPARAM(0)));
end;
{$ENDIF}
{$ifdef win32vista}
function ListView_SetGroupHeaderImageList(hwnd:HWNd;himl:HIMAGELIST):HIMAGELIST;
begin
Result:=HIMAGELIST(SendMessage((hwnd),LVM_SETIMAGELIST, WPARAM(LVSIL_GROUPHEADER), LPARAM(HIMAGELIST((himl)))));
end;
function ListView_GetGroupHeaderImageList(hwnd:HWND):HIMAGELIST;
begin
Result:=HIMAGELIST(SendMessage((hwnd),LVM_GETIMAGELIST, WPARAM(LVSIL_GROUPHEADER),LPARAM(0)));
end;
function ListView_GetEmptyText(hwnd:HWND;pszText:LPWSTR; cchText:CUINT):BOOL;
begin
Result:=BOOL(SendMessage((hwnd),LVM_GETEMPTYTEXT, WPARAM(cchText), LPARAM(pszText)));
end;
function ListView_GetFooterRect(hwnd:HWND; prc:PRECT):BOOL;
begin
Result:=BOOL(SendMessage((hwnd),LVM_GETFOOTERRECT, WPARAM(0), LPARAM(prc)));
end;
function ListView_GetFooterInfo(hwnd:HWND;plvfi: LPLVFOOTERINFO ):BOOL;
begin
Result:=BOOL(SendMessage((hwnd),LVM_GETFOOTERINFO, WPARAM(0), LPARAM(plvfi)));
end;
function ListView_GetFooterItemRect(hwnd:HWND;iItem:CUINT;prc:PRECT):BOOL;
begin
Result:=BOOL(SendMessage((hwnd),LVM_GETFOOTERITEMRECT, WPARAM(iItem), LPARAM(prc)));
end;
function ListView_GetFooterItem(hwnd:HWND;iItem:CUINT; pfi:PLVFOOTERITEM):BOOL;
begin
Result:=BOOL(SendMessage((hwnd),LVM_GETFOOTERITEM, WPARAM(iItem), LPARAM(pfi)));
end;
// (hwnd), LVM_GETITEMINDEXRECT, (WPARAM)(LVITEMINDEX*)(plvii), \
// ((prc) ? ((((LPRECT)(prc))->top = (iSubItem)), (((LPRECT)(prc))->left = (code)), (LPARAM)(prc)) : (LPARAM)(LPRECT)NULL))
function ListView_GetItemIndexRect(hwnd:hwnd; plvii:PLVITEMINDEX; iSubItem:clong; code:clong; prc:LPRECT) :BOOL;
begin
if assigned(prc) then
begin
prc^.top:=iSubItem;
prc^.left:=code;
end;
Result:=BOOL(SendMessage((hwnd), LVM_GETITEMINDEXRECT, WPARAM(pLVITEMINDEX(plvii)), LPARAM(PRC)));
end;
function ListView_SetItemIndexState(hwndLV:HWND; plvii:PLVITEMINDEX; data:CUINT; mask:CUINT):HRESULT;
var macro_lvi: LV_ITEM ;
begin
macro_lvi.stateMask := (mask);
macro_lvi.state := (data);
Result:=HRESULT(SendMessage((hwndLV),LVM_SETITEMINDEXSTATE, WPARAM(pLVITEMINDEX(plvii)), LPARAM(PLV_ITEM(@macro_lvi))));
end;
function ListView_GetNextItemIndex(hwnd:HWND;plvii:PLVITEMINDEX; flags:LPARAM):BOOL;
begin
Result:=BOOL(SendMessage((hwnd),LVM_GETNEXTITEMINDEX, WPARAM(pLVITEMINDEX(plvii)), MAKELPARAM(flags, 0)));
end;
{$endif}
// Macro 154
// #define ListView_SetBkImage(hwnd, plvbki) \
// (BOOL)SNDMSG((hwnd), LVM_SETBKIMAGE, 0, (LPARAM)(plvbki))
@ -11718,6 +12191,27 @@ Begin
end;
{$endif}
{$ifdef win32vista}
function TreeView_GetSelectedCount(hwnd:hwnd):DWORD;
Begin
Result:=DWORD(SendMessage((hwnd),TVM_GETSELECTEDCOUNT, 0, 0));
end;
function TreeView_ShowInfoTip(hwnd:HWND; hitem:HTREEITEM):DWORD;
Begin
Result:=DWORD(SendMessage((hwnd),TVM_SHOWINFOTIP, 0, LPARAM(hitem)));
end;
function TreeView_GetItemPartRect(hwnd:HWND; hitem:HTREEITEM; prc:prect; partid:TVITEMPART):bool;
var info : TVGETITEMPARTRECTINFO;
Begin
info.hti := (hitem);
info.prc := (prc);
info.partID := (partid);
Result:=BOOL(SendMessage((hwnd), TVM_GETITEMPARTRECT, 0, LPARAM(@info)));
end;
{$endif}
// Macro 217
//#define TabCtrl_GetImageList(hwnd) \
@ -12741,5 +13235,49 @@ Begin
Result:=cint(SendMessage((hwnd), CB_GETMINVISIBLE, 0, 0))
end;
{$ifdef win32vista}
function TreeView_GetNextSelected(hwnd:hwnd; hitem:HTREEITEM):HTREEITEM;inline;
begin
result:=TreeView_GetNextItem(hwnd, hitem, TVGN_NEXTSELECTED)
end;
{$endif}
{$ifdef win32vista}
function Button_SetDropDownState(hwnd:HWND; fDropDown:BOOL) : BOOL;
Begin
Result:=BOOL(SendMessage((hwnd), BCM_SETDROPDOWNSTATE, WPARAM(fDropDown), 0));
end;
function Button_SetSplitInfo(hwnd:HWND; pInfo:PBUTTON_SPLITINFO):BOOL;
Begin
Result:=BOOL(SendMessage((hwnd), BCM_SETSPLITINFO, 0, LPARAM(pInfo)));
end;
function Button_GetSplitInfo(hwnd:HWND; pInfo:PBUTTON_SPLITINFO) :BOOL;
Begin
Result:=BOOL(SendMessage((hwnd), BCM_GETSPLITINFO, 0, LPARAM(pInfo)));
end;
function Button_SetNote(hwnd:HWND; psz:LPCWSTR) :BOOL;
Begin
Result:=BOOL(SendMessage((hwnd), BCM_SETNOTE, 0, LPARAM(psz)));
end;
function Button_GetNote(hwnd:HWND; psz:LPCWSTR; pcc:cint) :BOOL;
Begin
Result:=BOOL(SendMessage((hwnd), BCM_GETNOTE, WPARAM(pcc), LPARAM(psz)));
end;
function Button_GetNoteLength(hwnd:HWND) :LRESULT;
Begin
Result:=LRESULT(SendMessage((hwnd), BCM_GETNOTELENGTH, 0, 0));
end;
// Macro to use on a button or command link to display an elevated icon
function Button_SetElevationRequiredState(hwnd:HWND; fRequired:BOOL) :LRESULT;
Begin
Result:=LRESULT(SendMessage((hwnd), BCM_SETSHIELD, 0, LPARAM(fRequired)));
end;
{$endif}
End.