Значение REG_BINARY будет возвращено в виде массива байтов. VBScript может ссылаться на массив байтов в переменной и может передавать этот массив байтов либо как вариант другой функции, либо как ссылку на массив байтов. Однако сам VBScript ничего не может сделать с массивом.
Вам понадобится какой-то другой компонент, чтобы выполнить конкатенацию: -
Function ConcatByteArrays(ra, rb)
Dim oStream : Set oStream = CreateObject("ADODB.Stream")
oStream.Open
oStream.Type = 1 'Binary'
oStream.Write ra
oStream.Write rb
oStream.Position = 0
ConcatByteArrays = oStream.Read(LenB(ra) + LenB(rb))
oStream.Close
End Function
В приведенном выше коде я использую объект ADODB.Stream, который вездесущий на поддерживаемых в настоящее время платформах.
Если у вас действительно есть несколько массивов, которые вы хотите объединить, вы можете использовать следующий класс: -
Class ByteArrayBuilder
Private moStream
Sub Class_Initialize()
Set moStream = CreateObject("ADODB.Stream")
moStream.Open
moStream.Type = 1
End Sub
Public Sub Append(rabyt)
moStream.Write rabyt
End Sub
Public Property Get Length
Length = moStream.Size
End Property
Public Function GetArray()
moStream.Position = 0
GetArray = moStream.Read(moStream.Size)
End Function
Sub Class_Terminate()
moStream.Close
End Sub
End Class
Вызовите append столько раз, сколько у вас есть массивов, и получите полученный массив с помощью GetArray.