Dim bArray() As Byte
Private Declare Function CryptBinaryToString Lib "Crypt32.dll" Alias _
"CryptBinaryToStringW" (ByRef pbBinary As Byte, _
ByVal cbBinary As Long, ByVal dwFlags As Long, _
ByVal pszString As Long, ByRef pcchString As Long) As Long
Private sub mySendfile(filename)
Dim n As Long
Dim DateiNr As Integer
dim c as string 'string I want to send via socket
n = FileLen(filename)
ReDim bArray(n - 1)
DateiNr = FreeFile
Open filename For Binary Access Read As #DateiNr
Get #DateiNr, , bArray()
Close #DateiNr
c = myBase64Encode(bArray)
End sub
Private Function myBase64Encode(ByRef byt() As Byte) As String
Const CRYPT_STRING_BASE64 As Long = 1
Const CBS As String = "CryptBinaryToString"
Const Routine As String = "Base64.Base64Encode"
Dim lLen As Long
'Determine Base64 output String length required.
If CryptBinaryToString(byt(0), UBound(byt) + 1, CRYPT_STRING_BASE64, StrPtr(vbNullString), lLen) = 0 Then
'RaiseEvent Error(Err.LastDllError, CBS, Routine)
Err.Raise Err.LastDllError, CBS, Routine
GoTo ReleaseHandles
End If
'Convert binary to Base64.
Dim sBase64Buf As String
sBase64Buf = String$(lLen - 1, Chr$(0))
If CryptBinaryToString(byt(0), UBound(byt) + 1, CRYPT_STRING_BASE64, StrPtr(sBase64Buf), lLen) = 0 Then
'RaiseEvent Error(Err.LastDllError, CBS, Routine)
Err.Raise Err.LastDllError, CBS, Routine
GoTo ReleaseHandles
End If
myBase64Encode = Left$(sBase64Buf, lLen - 2)
ReleaseHandles:
End Function