где я могу найти коды типа VARIANT?(проблема vboxapi) - PullRequest
0 голосов
/ 02 марта 2011

Я использую vboxapi через COM, и я заметил ошибку ... вызов IMedium.CreateBaseStorage, поскольку они определили это, выдает ошибку "Недопустимый тип VARIANT: 20".Я изменил значение с 20 на 19, которое было ВАРИАНТОМ другого (целочисленного) параметра:

        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 гигабайта, в то время как мне нужно сделать 80, 120, 250 ГБ жестких дисков и т.д.Я предполагаю, что это VT_I8, но каково числовое значение?И для дальнейшего использования, где я могу их найти?

Если значение равно 20, то я облажался, так как это значение не подходит ... в таком случае, у кого-нибудь еще есть совет?

1 Ответ

1 голос
/ 03 марта 2011

Здесь - это один источник (таблица внизу).

...