путаешь указатели с данными
Код:

$ExtraPuTTY = EnvGet("ExtraPuTTY") ; путь к программе
$thConn = DllStructCreate("ulong") ; структура описателя соединения
If $ExtraPuTTY == "" Then Exit MsgBox(16, "Script Error!", "Переменная окружения ExtraPuTTY не задана!")
$hDll = DllOpen($ExtraPuTTY & "\ExtraPuTTY.dll")
If $hDll=-1 Then Exit MsgBox(16, "Script Error!", "Файл ExtraPuTTY.DLL не найден!")
$aRet = DllCall($hDll, "int", "Connexion", _
"str", "94.100.177.6", "ptr", DllStructGetPtr($thConn), _
"str", "", "str", "", "int", 0, _
"int", 0, "int", 110, _
"int", 0, "ptr", 0 )
If @error Then MsgBox(16, "DllCall Error!", @error &":"& @extended)
$hConn = DllStructGetData($thConn, 1) ; Получаем описатель соединения
ConsoleWrite("Результат выполнения ф-ции Connexion = "& $aRet[0] &@CRLF)
$iMax = 1024 ; размер буфера
$tBuf = DllStructCreate("char["& $iMax &"]") ; буфер
$tpBuf = DllStructCreate("ptr") ; указатель на буфер
DllStructSetData($tpBuf, 1, DllStructGetPtr($tBuf)) ; устанавливаем указатель
$aRet = DllCall($hDll, "int", "SendRcvData", _
"ulong", $hConn, "str", "USER ivan@mybox.ru", _
"str", "", "str", "", "long", 1000, _
"int", DllStructGetPtr($tpBuf), "int", $iMax, _
"int", 0)
ConsoleWrite("Результат выполнения ф-ции SendRcvData = "& $aRet[0] &@CRLF)
ConsoleWrite("Содержимое буфера:"& DllStructGetData($tBuf,1) &@CRLF)
; Закрываем соединение
If $hConn <> 0 Then
DllCall($hDll, "int", "CloseConnexion", "ulong", $hConn)
EndIf
З.Ы. в комплекте идет скомпиленый пример
"SampleConnexion.exe" - полезная тулза для ручной установки соединения и проверки всех TELNET-команд