私はインターフェイス定義(IDL)以下で、サードパーティ製のCOMサーバーにアクセスする必要があります。Python win32 com: 'out'パラメータを扱う方法は?
interface IDisplay : IDispatch
{
HRESULT getFramebuffer (
[in] ULONG aScreenId,
[out] IFramebuffer * * aFramebuffer,
[out] LONG * aXOrigin,
[out] LONG * aYOrigin);
};
あなたが見ることができるように、それは[アウト]パラメータmodificatorsを経由して3つの値を返します。どのようにpython win32 COM API経由でこれを処理するには?例えば、私は、オブジェクトを作成し、それからIDisplayを得る:
object = win32com.client.Dispatch("VirtualBox.VirtualBox")
display = object.display
それが動作するようdisplay.getFrameBuffer()を呼び出すためにどのように?私はさまざまな方法を試しましたが、2番目の引数([IFrameBufferの場合は[out])に常に「型不一致」があります。
私はこれを試しましたが、パラメータの数が無効です。 COMサーバーが第三者である場合、MakePyの使用方法がわかりません。バイナリとしてシステムにインストールされ、COMサーバーを登録します。 APIを変更することは可能ですか? – grigoryvp