Hola, yo no uso la función DllCall, pero aquí hay un ejemplo de la función por si te vale:
Código: Seleccionar todo
Func _Base64Encode($Data)
Local $Base64EncOpcode = "0x5589E5FF7510535657EB1A8B5D088B7DFC8B4D0CE81F000000834508038345FC04836D0C03837D0C007FE08B75FCC606005F5E5BC9C21000E8410000004142434445464748494A4B4C4D4E4F505152535455565758595A6162636465666768696A6B6C6D6E6F707172737475767778797A303132333435363738392B2F005A0FB633C1EE0201D68A06880731C083F901760C0FB6430125F0000000C1E8040FB63383E603C1E60409C601D68A0688470183F90176210FB6430225C0000000C1E8060FB6730183E60FC1E60209C601D68A06884702EB04C647023D83F90276100FB6730283E63F01D68A06884703EB04C647033DC3"
Local $Ret
Local $CodeBuffer = DllStructCreate("byte[" & BinaryLen($Base64EncOpcode) & "]")
If @error Or $CodeBuffer = 0 Then Return SetError(1, 0, -1)
DllStructSetData($CodeBuffer, 1, $Base64EncOpcode)
If @error Then Return SetError(2, 0, -1)
Local $Input = DllStructCreate("byte[" & BinaryLen($Data) & "]")
If @error Or $Input = 0 Then Return SetError(3, 0, -1)
DllStructSetData($Input, 1, $Data)
If @error Then Return SetError(4, 0, -1)
Local $Output = DllStructCreate("char[" & Int(BinaryLen($Data) * 4 / 3) + 4 & "]")
If @error Or $Output = 0 Then Return SetError(5, 0, -1)
DllCall("user32.dll", "none", "CallWindowProc", "ptr", DllStructGetPtr($CodeBuffer), "ptr", DllStructGetPtr($Input), _
"int", BinaryLen($Data), "ptr", DllStructGetPtr($Output), "int", 0)
If @error Then Return SetError(6, 0, -1)
$Ret = DllStructGetData($Output, 1)
$Input = 0
$Output = 0
$CodeBuffer = 0
Return $Ret
EndFunc
Y otro ejemplo:
http://www.autoitscript.com/forum/topic ... ntry563559
Puedes mirar más info en la ayuda aquí: DllCall ( "dll", "return type", "function" [, type1, param1 [, type n, param n]] )
http://www.autoitscript.com/autoit3/doc ... llCall.htm
No obstante puede que la función ya exista en Autoit con lo que NO necesitas usar DLLcall()
Salu22:)