NUMPARSE Structure [Automation]
Flags used by both dwInFlags and dwOutFlags:
NUMPRS_LEADING_WHITE NUMPRS_TRAILING_WHITE NUMPRS_LEADING_PLUS NUMPRS_TRAILING_PLUS NUMPRS_LEADING_MINUS NUMPRS_TRAILING_MINUS NUMPRS_HEX_OCT NUMPRS_PARENS NUMPRS_DECIMAL NUMPRS_THOUSANDS NUMPRS_CURRENCY NUMPRS_EXPONENT NUMPRS_USE_ALL NUMPRS_STD
Flags used by dwOutFlags only:
NUMPRS_NEG NUMPRS_INEXACT
The caller of VarParseNumFromStr must initialize two elements of the passed-in NUMPARSE structure:
typedef struct {
int cDig;
unsigned long dwInFlags;
unsigned long dwOutFlags;
int cchUsed;
int nBaseShift;
int nPwr10;
} NUMPARSE;
The cDig element is set to the size of the rgbDig array, and dwInFlags is set to parsing options. All other elements may be uninitialized and are set by the function, except on error, as described in the following paragraphs. The cDig element is also modified by the function to reflect the actual number of digits written to the rgbDig array.
The cchUsed element of the NUMPARSE structure is filled in with the number of characters (from the beginning of the string) that were successfully parsed. This allows the caller to determine if the entire string was part of the number (as required by functions such as VarI2FromStr), or where to continue parsing the string.
The nBaseShift element gives the number of bits per digit (3 or 4 for octal and hexadecimal numbers, and zero for decimal).
The following apply only to decimal numbers:
nPwr10 sets the decimal point position by giving the power of 10 of the least significant digit.
If the number is negative, NUMPRS_NEG will be set in dwOutFlags.
If there are more non-zero decimal digits than will fit into the digit array, the NUMPRS_INEXACT flag will be set.