2011-03-02 1 views
0

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?

+0

a également publié cela sur les [forums virtualbox] (http://forums.virtualbox.org/viewtopic.php?f=6&t=39552#). – Claudiu

Répondre

1

Here est une source (table en bas).

Questions connexes