Allocates memory for storing list box items. An application sends this message before adding a large number of items to a list box.
LB_INITSTORAGE
wParam = (WPARAM) (int) cItems; // number of items to add
lParam = (LPARAM) (DWORD) cb; // amount of memory to allocate, in bytes
Parameters
cItems
Specifies the number of items to add.
Windows 95: The wParam parameter is limited to 16-bit values. This means list boxes cannot contain more than 32,767 items. Although the number of items is restricted, the total size in bytes of the items in a listbox is limited only by available memory.
cb
Specifies the amount of memory, in bytes, to allocate for item strings.
Return Values
The return value is the maximum number of items that the memory object can store before another memory reallocation is needed, if successful. It is LB_ERRSPACE if not enough memory is available.
Remarks
Windows 95: This message helps speed up the initialization of list boxes that have a large number of items (more than 100). It reserves the specified amount of memory so that subsequent LB_ADDSTRING, LB_INSERTSTRING, LB_DIR, and LB_ADDFILE messages take the shortest possible time. You can use estimates for the cItems and cb parameters. If you overestimate, the extra memory is allocated; if you underestimate, the normal allocation is used for items that exceed the requested amount.
Windows NT: This message is not needed on Windows NT. It does not reserve the specified amount of memory, because available memory is virtually unlimited. The return value is always the value specified in the cItems parameter.
See Also