Debes de pasar el puntero del indice menor de un array byte ( Lbound() ) con el API.
Declare Function RegSetValueExA Lib "advapi32.dll" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByRef lpData As Long, ByVal cbData As Long) As Long
rtn = RegSetValueExA(hKey, Entry, 0, REG_BINARY, byval varptr(ByteArray(lbound(ByteArray))), TamañoArray)
Ejemplo:
Dim ByteArray() As Byte
ByteArray = Strings.StrConv("", vbFromUnicode)
rtn = RegSetValueExB(hKey, Entry, 0, REG_BINARY, byval varptr(ByteArray(LBound(ByteArray))), IIf(LBound(ByteArray) = 0, 1, 0) + UBound(ByteArray))
' // Aun que al usar StrConv() se puede obvia el Indice menor de esta manera
rtn = RegSetValueExB(hKey, Entry, 0, REG_BINARY, byval varptr(ByteArray(0)), UBound(ByteArray) + 1)
MsgBox "La longirud es de: " & IIf(LBound(ByteArray) = 0, 1, 0) + UBound(ByteArray)
Obviamente hayq ue abrir el registro con las apis
RegOpenKeyEx y cerralo despues con
RegCloseKeyP.D.: No puese el ejemplo completo ya que lo demas es una jalada que encuentras en la MSDN.
Temibles Lunas!¡.