我正在vboxapi
通过 COM 使用,我注意到一个错误......IMedium.CreateBaseStorage
按照他们的定义调用它会产生一个错误,“无效的 VARIANT 类型:20”。我将 20 的值更改为 19,这是另一个(整数)参数的 VARIANT:
def _patch_createBaseStorage(self, aLogicalSize, aVariant):
from win32com.client import Dispatch
LCID = 0x0
ret = self._oleobj_.InvokeTypes(1610743844, LCID, 1, (9, 0),
((19, 1), #used to be: (20, 1),
(19, 1)),aLogicalSize
, aVariant)
if ret is not None:
ret = Dispatch(ret, u'CreateBaseStorage', '{A163C98F-8635-4AA8-B770-A9941737F3EF}', UnicodeToString=0)
return ret
但是,这不起作用,因为该值是硬盘驱动器的大小(以字节为单位),这意味着它最多可以是 4 GB,而我需要制作 80、120、250 GB 的硬盘驱动器等。
那么 8 字节整数的 VARIANT 类型是什么?我假设它是VT_I8
,但数值是多少?为了将来参考,我在哪里可以找到它们?
如果值为 20,那么我就完蛋了,因为那是失败的值……在这种情况下,还有其他人有什么建议吗?