Constants defining array elements are given values that are zero-based in C; that is, the numbering of the array elements starts at zero, not one.
For example, in the DevQueryCaps function, the sixth element of the ulArray parameter is CAPS_HEIGHT, which is equated to 5.
Count parameters related to such arrays always mean the actual number of elements available; therefore, again using the DevQueryCaps function as an example, if all elements up to and including CAPS_HEIGHT are provided for, lCount could be set to (CAPS_HEIGHT+1).
In functions for which the starting array element can be specified, this is always zero-based, and so the C element number constants can be used directly. For example, to start with the CAPS_HEIGHT element, the lStart parameter can be set to CAPS_HEIGHT.