VarParseNumFromStr 函数 (oleauto.h)

分析字符串,并创建它所表示的数字的与类型无关的说明。

语法

HRESULT VarParseNumFromStr(
  [in]  LPCOLESTR strIn,
  [in]  LCID      lcid,
  [in]  ULONG     dwFlags,
  [out] NUMPARSE  *pnumprs,
  [out] BYTE      *rgbDig
);

参数

[in] strIn

要转换的输入字符串。

[in] lcid

区域设置标识符。

[in] dwFlags

使调用方能够控制分析,从而定义数字的可接受语法。 如果此字段设置为零,则输入字符串必须只包含十进制数字。 设置每个定义的标志位可以分析该语法功能。 例如, VarI2FromStr) 使用的标准自动化分析 (具有 (NUMPRS_STD) 设置的所有标志。

[out] pnumprs

分析的结果。

[out] rgbDig

0-7、0–9 或 0-15 范围内的数字的值,具体取决于数字是八进制、十进制还是十六进制。 所有前导零已被去除。 对于十进制数字,尾随零也会被去除,除非数字为零,在这种情况下,将存在一个零数字。

返回值

此函数可以返回其中一个值。

返回代码 说明
S_OK
成功。
E_OUTOFMEMORY
内部内存分配失败。 (仅用于 DBCS 创建所有宽字符映射为 narrow 的副本。)
DISP_E_TYPEMISMATCH
字符串中没有有效的数字,或者没有与左括号匹配的右括号。 在前一种情况下,NUMPARSE 结构中的 cDig 和 cchUsed 将为零。 在后者中,NUMPARSE 结构和数字数组将完全更新,就像存在右括号一样。
DISP_E_OVERFLOW
对于十六进制数字和八进制数字,数组中的位数多于可以容纳的数字。 对于十进制,指数超过可能的最大值。 在这两种情况下,NUMPARSE 结构和数字数组在十进制 (完全更新,cchUsed 字段排除整个指数) 。

要求

要求
目标平台 Windows
标头 oleauto.h
Library OleAut32.lib
DLL OleAut32.dll