2025-04-27 07:49:33 -04:00

96 lines
3.4 KiB
C

#define VLB_OK 0
#define VLB_ERR -1
#define VLB_ENDOFFILE -1
#define VLBS_USEDATAVALUES 0x8000L
#define VLBS_3DFRAME 0x4000L
#define VLBS_NOTIFY 0x0001L
#define VLBS_NOREDRAW 0x0004L
#define VLBS_OWNERDRAWFIXED 0x0010L
#define VLBS_HASSTRINGS 0x0040L
#define VLBS_USETABSTOPS 0x0080L
#define VLBS_NOINTEGRALHEIGHT 0x0100L
#define VLBS_WANTKEYBOARDINPUT 0x0400L
#define VLBS_DISABLENOSCROLL 0x1000L
// Application->VLIST messages
// Corresponding to LB_ messages
#define VLB_RESETCONTENT (WM_USER+500)
#define VLB_SETCURSEL (WM_USER+501)
#define VLB_GETCURSEL (WM_USER+502)
#define VLB_GETTEXT (WM_USER+503)
#define VLB_GETTEXTLEN (WM_USER+504)
#define VLB_GETCOUNT (WM_USER+505)
#define VLB_SELECTSTRING (WM_USER+506)
#define VLB_FINDSTRING (WM_USER+507)
#define VLB_GETITEMRECT (WM_USER+508)
#define VLB_GETITEMDATA (WM_USER+509)
#define VLB_SETITEMDATA (WM_USER+510)
#define VLB_SETITEMHEIGHT (WM_USER+511)
#define VLB_GETITEMHEIGHT (WM_USER+512)
#define VLB_FINDSTRINGEXACT (WM_USER+513)
#define VLB_INITIALIZE (WM_USER+514)
#define VLB_SETTABSTOPS (WM_USER+515)
#define VLB_GETTOPINDEX (WM_USER+516)
#define VLB_SETTOPINDEX (WM_USER+517)
#define VLB_GETHORIZONTALEXTENT (WM_USER+518)
#define VLB_SETHORIZONTALEXTENT (WM_USER+519)
// Unique to VLIST
#define VLB_UPDATEPAGE (WM_USER+520)
#define VLB_GETLINES (WM_USER+521)
#define VLB_GETSCROLLPOS (WM_USER+522)
#define VLB_HSCROLL (WM_USER+523)
#define VLB_PAGEDOWN (WM_USER+524)
#define VLB_PAGEUP (WM_USER+525)
#define VLB_GETLISTBOXSTYLE (WM_USER+526)
#define VLB_GETFOCUSHWND (WM_USER+527)
#define VLB_GETVLISTSTYLE (WM_USER+528)
#define VLB_TOVLIST_MSGMIN VLB_RESETCONTENT
#define VLB_TOVLIST_MSGMAX VLB_GETVLISTSTYLE
// VLIST->Application messages
// Conflicts with VLB_
#define VLBR_FINDSTRING (WM_USER+600)
#define VLBR_FINDSTRINGEXACT (WM_USER+601)
#define VLBR_SELECTSTRING (WM_USER+602)
#define VLBR_GETITEMDATA (WM_USER+603)
#define VLBR_GETTEXT (WM_USER+604)
#define VLBR_GETTEXTLEN (WM_USER+605)
// Unique Messages
//
#define VLB_FIRST (WM_USER+606)
#define VLB_PREV (WM_USER+607)
#define VLB_NEXT (WM_USER+608)
#define VLB_LAST (WM_USER+609)
#define VLB_FINDITEM (WM_USER+610)
#define VLB_RANGE (WM_USER+611)
#define VLB_FINDPOS (WM_USER+612)
#define VLB_DONE (WM_USER+613)
// VLIST->Application Notifications
#define VLBN_FREEITEM (WM_USER+700)
#define VLBN_FREEALL (WM_USER+701)
#define VLB_TOAPP_MSGMIN VLB_FINDSTRING
#define VLB_TOAPP_MSGMAX VLBN_FREEALL
#define IDS_VLBOXNAME 1
typedef struct _VLBStruct {
int nCtlID;
int nStatus;
LONG lData; // current data value
LONG lIndex; // current index
LONG lSelItem; // current selection (if data value)
LPTSTR lpTextPointer;
LPTSTR lpFindString;
} VLBSTRUCT;
typedef VLBSTRUCT FAR* LPVLBSTRUCT;
#define VLIST_CLASSNAME "VList"
extern BOOL WINAPI RegisterVListBox(HINSTANCE);