J'utilise vboxapi
à travers le COM, et j'ai remarqué un bug ... appelant IMedium.CreateBaseStorage
comme ils l'ont défini, il génère une erreur, "Type VARIANT non valide: 20". J'ai changé la valeur de 20 à 19, qui était le VARIANT de l'autre (entier) paramètre:où puis-je trouver les codes de type VARIANT? (problème vboxapi)
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
cependant, cela ne fonctionne pas, la valeur est la taille du disque dur en octets, ce qui signifie il peut être d'au plus 4 gigaoctets, alors que j'ai besoin de faire des disques durs de 80, 120, 250 Go, etc.
Alors, quel est le type VARIANT d'un entier de 8 octets? Je suppose que c'est VT_I8
, mais quelle est la valeur numérique? Et pour référence future, où puis-je les trouver?
Si la valeur est 20 alors je suis foutu, puisque c'est la valeur qui échoue ... dans ce cas, quelqu'un d'autre a un conseil?
a également publié cela sur les [forums virtualbox] (http://forums.virtualbox.org/viewtopic.php?f=6&t=39552#). – Claudiu