Как обрабатывать несколько выходных параметров с win32com? - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь вызвать функцию с ком-сервера с подписью (файл .idl):

typedef [v1_enum] enum Mode
{
   Mode1,
   Mode2
}
Mode;

[id(33)] HRESULT GetPosition
(
    [out] double* x,
    [out] double* y,
    [in] Mode positionMode
);

Код python выглядит так:

import win32com.client

obj = win32com.client.gencache.EnsureDispatch('Server.Object.1')

from win32com.client import constants as c
(x,y) = obj.GetPosition(Mode=c.Mode1)
# I tried also x,y=... x=...

И я получить сообщение об ошибке

pywintypes.com_error: (-2147352562, 'Недопустимое количество параметров.', Нет, Нет)

Хорошо работает при передаче параметров в функции или возвращая одиночные выходные аргументы, например:

obj.setValue(42)
x = obj.getValue()

Как мне работать с несколькими выходными параметрами?

...