Ola hermanos , primer dar las felicitaciones ao foro , no conecia , és bueno , a ver se me ayudam ,
Bueno ,lo que necessito és pasar esta lhamada de vb6 a DllCall , se podeis claro
CallWindowProc VarPtr(sData(0)), StrPtr(sValue), VarPtr(sBuffer(0)), 0, 0
Gracias de Antemano
Ayuda DllCall
- BasicOs
- Site Admin
- Mensajes: 2091
- Registrado: 21 Nov 2006, 19:24
- Ubicación: El Internet - (Canarias, España)
- Contactar:
Re: Ayuda DllCall
Hola, yo no uso la función DllCall, pero aquí hay un ejemplo de la función por si te vale:
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:)
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
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:)
- Chefito
- Profesional del Autoit
- Mensajes: 2035
- Registrado: 21 Feb 2008, 18:42
- Ubicación: Albacete/Cuenca (España)
Re: Ayuda DllCall
Como bien intuye BasicOs, esa función está definida en AutoIt. Se encuentra en la udf winapi.au3. Se denomina _WinAPI_CallWindowProc .
Mira en la ayuda que te la explica y te trae un ejemplo.
Saludos.
Mira en la ayuda que te la explica y te trae un ejemplo.
Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).