An application sends the LB_INITSTORAGE message before adding a large number of items to a list box. This message allocates memory for storing list box items.
LB_INITSTORAGE
wParam = (WPARAM) (int) cItems; // number of items to add
lParam = (LPARAM) (DWORD) cb; // amount of memory to allocate, in bytes
Windows 95 and Windows 98: 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 list box is limited only by available memory.
If the message is successful, the return value is the total number of items for which memory has been pre-allocated, that is, the total number of items added by all successful LB_INITSTORAGE messages.
If the message fails, the return value is LB_ERRSPACE.
Windows NT: For Windows NT version 4.0, this message does not allocate the specified amount of memory; however, it always returns the value specified in the cItems parameter. For Windows NT version 5.0, the message allocates memory and returns the success and error values described above.
The LB_INITSTORAGE 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: Requires version 4.0 or later.
Windows: Requires Windows 95 or later.
Windows CE: Requires version 1.0 or later.
Header: Declared in winuser.h.
List Boxes Overview, List Box Messages, LB_ADDFILE, LB_ADDSTRING, LB_DIR, LB_INSERTSTRING