Any chance you could try this instead... VARIANT(VT_ARRAY|VT_BSTR, "Payload")
Since it looks like you want an Array string, not an Array of unsigned integers... [id(3)] HRESULT SetDataBits([in] long Bitlength, [in] SAFEARRAY(char) *ppsa); I could be wrong, but I'd play around with the Variant stuff to pass in other forms to the Variant Array since it is complaining there. Steven ________________________________ From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of David Ho Sent: Sunday, November 23, 2008 5:11 PM To: perl-win32-users@listserv.activestate.com Subject: Re: passing a SAFEARRAY to COM server Broadcasting my cry for help to a wider audience... On Sun, Nov 23, 2008 at 4:06 PM, David Ho <[EMAIL PROTECTED]> wrote: Hello Jan, Sorry to bother you, but I have been trying to find a solution to pass a UDP payload from Perl to a COM server without much luck. I would very much like to get your input on this. My first go at it is to try passing in a VARIANT(VT_ARRAY|VT_UI1, "Payload") to an IDL interface method of the following. my $Data = Variant(VT_ARRAY|VT_UI1, "Payload"); my $DataUnit = $SDU->{DataUnit}; $DataUnit->SetDataBits($BitLength, $Data); [id(3)] HRESULT SetDataBits([in] long Bitlength, [in] SAFEARRAY(char) *ppsa); However Perl is complaining about a type mismatch. [4216:0183F33C] Dispatch "SetDataBits" [4216:0183F33C] QueryPkgVar(Win32::OLE::Warn) returns 1 [4216:0183F33C] ReportOleError: hr=0x80020005 warnlvl=1 Win32::OLE(0.1709-QC1) error 0x80020005: "Type mismatch" in METHOD/PROPERTYGET "SetDataBits" argument 2[4216:0183F33C] Win32::OLE::Tie::Fetch(0x01931f94,'___Perl___OleObject___') Can you shine some light as to what I am doing horribly wrong? Is there a better way of passing a byteArray to COM? Because the Perl Socket interface returns UDP packets as scalars, I am wondering what the most efficient method to pass that to COM. Thanks very much in advance, David _______________________________________________ Perl-Win32-Users mailing list Perl-Win32-Users@listserv.ActiveState.com To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs