COM4J将字节数组传递给COM方法

时间:2012-07-18 19:17:27

标签: java com com4j

我试图通过com4j库从java调用一些COM方法。在我有权访问的文档中,COM方法的签名是:

HRESULT method1 ([in] VARIANT (SafeArray UI1) vInBuf, 
                [out] VARIANT (SafeArray UI1) *pvOutBuf,
                [out, retval] long *plResult)

我想将一个字节数组传递给该方法,并从中获取一个字节数组。 Com4J生成的界面显示为:

@DISPID(2) 
@VTID(8)
int method1 (
  @MarshalAs(NativeType.VARIANT) java.lang.Object vSendData,
  java.lang.Object pvReceiveData);

但是我不知道发送它们的格式。

byte[] req = new byte[]{1,2,3,4};
byte[] res = new byte[512];
method1(req,res); 

似乎不起作用。也没有将它们声明为对象或诸如此类的东西。 我已经研究了com4j.SafeArray(http://com4j.kohsuke.org/apidocs/com4j/SafeArray.html),但我无法理解我应该如何将数组放入其中。

有没有其他人使用过com4j库并想出了如何发送/接收字节数组?

0 个答案:

没有答案