Возможно, в строке есть нулевой символ, потому что строки VB хранят длину строки в памяти непосредственно перед содержимым строки. В вашем случае эта длина равна 256. Когда вы загружаете контент, используя RegQueryValueEx, он завершает строку нулем (в стиле C), но не меняет указанную длину, поэтому в мире VB он по-прежнему длиной 256 символов. Затем, когда вы добавляете вторую строку, она добавляется после первых 256 символов, но MsgBox показывает содержимое только до нулевого символа.
Поскольку RegQueryValueEx помещает длину фактических данных в sLength, вы можете добавить эту строку перед MsgBox
sString = Left$(sString, sLength)