The core problem here is that VBScript (the underlying engine) does not
support byte arrays.

I don't have a solution for you, but here is a related trick to get a
long from a byte array, using the newObjects SFMain object. It also
deals with the big endian/little endian problem, which you probably
won't have.

AddObject "NewObjects.utilctls.StringUtilities","su"
AddObject "newObjects.utilctls.SFMain","FS"
Set file=FS.OpenFile(DataFile)
...

Function getLong(offset)
        Dim y
        file.pos=offset
        y=file.readbin(4)
        y=su.BinToHex(y) 'convert the byte array into a format we can use
        y=Right("00000000" & y,8) 'left pad it to 8 characters long
        getlong=CLng("&h" & Mid(y,7,2) & Mid(y,5,2) & Mid(y,3,2) & Mid(y,1,2))
'reverse the byte order
End Function


>>From the TechNote 26 description it appears that API calls can be made
>passing parameters as in "ByRef X As Byte()" with no problem.  However
>due to VBScript limitations what you pass in (and get back) are arrays
>of Integer (or "short" i.e. VT_I2, signed 16-bit integers).
>
>The issue I have is that I need to be able to write these out (for
>example to disk) as a stream of Byte values.
>
>I could easily use the newObjects SFMain object to create an SFStream
>object and call its WriteBin method.  However SFStream expects a Variant
>buffer parameter containing an array of subtype Byte (VT_UI1).
>
>I can see that the array of Integer subtype has advantages in allowing
>VBScript manipulation, but I now seem to have a mismatch between DECLARE
>and SFStream.
>
>So my question is:  Does anybody have a suggestion for resolving this
>mismatch, or do I have something confused on my part?
>
>- Bob
>
>
>
>------------------------------------
>
>Yahoo! Groups Links
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"nsb-ce" group.
To post to this group, send email to nsb...@googlegroups.com.
To unsubscribe from this group, send email to 
nsb-ce+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/nsb-ce?hl=en.

Reply via email to