Estrellas inactivasEstrellas inactivasEstrellas inactivasEstrellas inactivasEstrellas inactivas
 

Llamados a las API de Windows desde Power Builder

Power Builder al igual que otros lenguajes de programación, provee la capacidad de extender las posibilidades del lenguaje tomando funcionalidades que pertenecen al sistema operativo o controles de terceras partes. Este proceso es lo que se llama API (Application Programming Interface). Algunas personas incluyen DLLs que han realizado en C o C++, para usarlos en Power Builder. Pero los mas comunes llamados son los que se hacen a las API del sistema operativo, para que el programador acceda directamente a funciones que desde power builder tocaría desarrollarlas, y el sistema operativo ya las tiene implementadas.

COMO SE HACE EL LLAMADO

Los llamados a los API se realizan a través de la declaración de funciones externas (External Function), que pueden ser globales o locales. Las Global external function, pueden ser utilizadas en cualquier lugar de la aplicación y son guardadas con otras variables globales. las Local external function hacen parte de la definición de una ventana, un menú, o un objeto de usuario.

Ahora en el bloque de código de la external function, definimos la función que deseamos incluir, la cual tiene esta sintaxis:

{acceso} FUNCTION tipodedatoqueretorna Nombredelafuncion ({argumentos}) LYBRARY nombredelalibreria {ALIAS FOR nombreexterno}

La declaración de acceso solo es valido para las local external functions donde puede ser Public, Private, y Protected. tipodedatoqueretorna es el tipo de dato que retorna la funcion.  Nombredelafuncion es el nombre de la función tal como aparece en el archivo DLL. nombredelalibreria  es el nombre del archivo DLL donde la función se encuentra. ALIAS FOR nombreexterno es un nombre diferente que se le puede dar a la función para usarla en el power script.

EJEMPLO DE LLAMADO A  UN API DE WINDOWS

Si por ejemplo usted necesita copiar un archivo de un directorio a otro, usted puede usar una función que se encuentra en Kernel32.dll llamada CopyFileA. Esta función le permite copiar un archivo de un sito a otro. Entonces en el bloque de instrucciones donde declara las Global External Function, coloca este código (o la definición de la función que necesite según la tabla):

FUNCTION boolean CopyFileA(ref string cfrom, ref string cto, boolean flag) LIBRARY "Kernel32.dll"

Y luego desde el power script de la ventana o el sitio de la aplicación donde necesite copiar un archivo, hace el llamado a la función así:

string ls_desde, ls_hasta
boolean lb_flag, lb_ rtn
lb_flag = false
ls_desde = "c:prueba.bmp"
ls_hasta = "c:directorio est.bmp"
lb_rtn = CopyFileA(ls_desde, ls_hasta, lb_flag)

Si desea conocer mas profundamente información acerca de las funciones disponibles consulte la pagina web de los APIS de Windows (En Ingles).

 

Pin It