Function vbHexToStr(HexStr)
    On Error Resume Next
    Dim sLen, tStr
    Dim i, ret

    HexStr = Trim(HexStr)
    sLen = (Len(HexStr) - 2) / 4
    ret = ""
    For i = 0 To sLen - 2
        tStr = "&h" & Mid(HexStr, 3 + 4 * i, 4)
        ret = ret & ChrW(CInt(tStr))
    Next
    vbHexToStr = ret
End Function
Function vbStringToHex(s)
  On Error Resume Next
  Dim r, tStr, sHex,k
  r = "0x"
  For k = 1 To Len(s)
    sHex = Hex(AscB(MidB(Mid(s, k, 1), 2, 1)))
    If CInt("&h" & sHex) < 16 Then
        sHex = "0" & sHex
    End If
    r = r & sHex
    sHex = Hex(AscB(MidB(Mid(s, k, 1), 1, 1)))
    If CInt("&h" & sHex) < 16 Then
        sHex = "0" & sHex
    End If
    r = r & sHex
  Next
  vbStringToHex = r
End Function


Function bytes2BSTR(vIn)

	Dim strReturn,i,ThisCharCode,innerCode,Hight8,Low8,NextCharCode
	strReturn = ""
	
	For i = 1 To LenB(vIn)
		ThisCharCode = AscB(MidB(vIn,i,1))
		If ThisCharCode < &H80 Then
			strReturn = strReturn & Chr(ThisCharCode)
		Else
			NextCharCode = AscB(MidB(vIn,i+1,1))
			strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
			i = i + 1
		End If
	Next
	
	bytes2BSTR = strReturn
	
End Function