Techwiki:Win32k/LISTBOX

From ReactOS Wiki
Jump to: navigation, search

Windows List Box Structure

// based on SCROLLINFO used in user32!xxxSetLBScrollParms
typedef struct _SCROLLLBPOS 
{
/* 000 */ INT  cItems;
/* 004 */ UINT iPage;
/* 008 */ INT  iPos;
/* 00c */ UINT fMask;
/* 010 */ INT  iReturn;
} SCROLLLBPOS, *PSCROLLLBPOS;

typedef struct _LBIV // Size: 0xb0
{
/* 000 */ PWND   spwndParent;
/* 004 */ PWND   spwnd;   
/* 008 */ INT    iTop;
/* 00c */ INT    iSel;
/* 010 */ INT    iSelBase;
/* 014 */ INT    cItemFullMax;
/* 018 */ INT    cMac;
/* 01c */ INT    cMax;
/* 020  */BYTE * rgpch;
/* 024 */ HANDLE hStrings;
/* 028 */ INT    cchStrings;
/* 02c */ INT    ichAlloc;
/* 030 */ INT    cxChar;
/* 034 */ INT    cyChar;
/* 038 */ INT    cxColumn;
/* 03c */ INT    itemsPerColumn;
/* 040 */ INT    numberOfColumns;
/* 044 */ POINT  ptPrev;
/* 04c */ UINT   OwnerDraw:2;
/* 04c */ UINT   fRedraw:1;
/* 04c */ UINT   fDeferUpdate:1;
/* 04c */ UINT   wMultiple:2;
/* 04c */ UINT   fSort:1;
/* 04c */ UINT   fNotify:1;
/* 04c */ UINT   fMouseDown:1;
/* 04c */ UINT   fCaptured:1;
/* 04c */ UINT   fCaret:1;
/* 04c */ UINT   fDoubleClick:1;
/* 04c */ UINT   fCaretOn:1;
/* 04c */ UINT   fAddSelMode:1;
/* 04c */ UINT   fHasStrings:1;
/* 04c */ UINT   fHasData:1;
/* 04c */ UINT   fNewItemState:1;
/* 04c */ UINT   fUseTabStops:1;
/* 04c */ UINT   fMultiColumn:1;
/* 04c */ UINT   fNoIntegralHeight:1;
/* 04c */ UINT   fWantKeyboardInput:1;
/* 04c */ UINT   fDisableNoScroll:1;
/* 04c */ UINT   fHorzBar:1;
/* 04c */ UINT   fVertBar:1;
/* 04c */ UINT   fFromInsert:1;
/* 04c */ UINT   fNoSel:1;
/* 04c */ UINT   fHorzInitialized : 1;
/* 04c */ UINT   fVertInitialized : 1;
/* 04c */ UINT   fSized : 1;
/* 04c */ UINT   fIgnoreSizeMsg : 1;
/* 04c */ UINT   fInitialized : 1;
/* 04c */ UINT   fRightAlign:1;
/* 04c */ UINT   fRtoLReading:1;
/* 04c */ UINT   fSmoothScroll:1;
/* 054 */ INT    xRightOrigin;
/* 058 */ INT    iLastSelection;
/* 05c */ INT    iMouseDown;
/* 060 */ INT    iLastMouseMove;
/* 064 */ INT *  iTabPixelPositions;
/* 068 */ HFONT  hFont;
/* 06c */ INT    xOrigin;
/* 070 */ INT    maxWidth;
/* 074 */ PCBOX  pcbox;
/* 078 */ HDC    hdc;
/* 07c */ DWORD  dwLocaleId;
/* 080 */ INT    iTypeSearch;
/* 084 */ LPWSTR pszTypeSearch;
/* 088 */ SCROLLLBPOS HPos; 
/* 09c */ SCROLLLBPOS VPos;
} LBIV, *PLBIV;

// Window Extra data container.
typedef struct _WND2LB
{
  WND;
  PLBIV pLBiv;
} WND2LB, *PWND2LB;

References