Hola invitado         31 Jul, 2010 - 07:53
Menú principal
 
Ads
 
Patrocinadores
 
Anuncios
 
© 2009 PortalFox
Llamar a _Execute() desde un hilo diferente (Christof Wollenhaupt) Traducción lecturas 1978
 Enviado por amby en Viernes, 26 Enero, 2007
Artículos Christof Wollenhaupt soluciona el problema de que VFP ejecute código originado en un hilo diferente.

Llamar a _Execute() desde un hilo diferente

Artículo original: Calling _Execute() from a different thread
http://www.foxpert.com/KnowlBits_200609_6.htm
Autor: Christof Wollenhaupt (http://www.foxpert.com/knowlbits.htm)
Traducido por: Ana María Bisbé York (amby@telefonica.net)
Para: PortalFox (http://www.portalfox.com)


Usted puede llamar a la función API _EXECUTE únicamente desde dentro del mismo hilo que emplea Visual FoxPro para cargar la librería. Llamar la función desde un hilo diferente causa problemas a Visual FoxPro. Si necesita ejecutar código originado en un hilo diferente, puede utilizar en su lugar, SendMessage. He aquí el código para la FLL. Ante todo, necesita una variable que almacene el controlador de ventana:

HWND hWndMain = NULL;

Luego, necesita una función que llame una aplicación VFP al controlador de registro

void FLL_Register( ParamBlk *Param )
{
  hWndMain = (HWND) (Param->p[0].val.ev_long);
}

Finalmente siempre que desee utilizar _Execute(), utilice en su lugar, código como este

LRESULT Result;
Result = SendMessage( hWndMain, WM_USER, 0, 0 );

He aquí el código que carga la FLL y finaliza el mensaje

Set Library To Sample.FLL Additive
BindEvent( _VFP.Hwnd, 0x400, This, "WndProc" )
FLL_REGISTER( _VFP.Hwnd )

La rutina WdnProc tiene la siguiente apariencia

Procedure WndProc( tnHwnd, tnMsg, tnWParam, tnLParam )
  Do case
    Case m.tnMsg == 0x400
      * Haga algo
      Return 2
  EndCase
EndProc

El valor devuelto (en este ejemplo es 2) se devuelve a la FLL en el valor Result. Similar a _Execute, la FLL está suspendida hasta que el programa VFP procese el mensaje.


 Versión imprimible  
Llamar a _Execute() desde un hilo diferente (Christof Wollenhaupt) Traducción | Entrar/Crear una cuenta | 0 Comentarios
Los comentarios son propiedad de sus respectivos autores.
No somos responsables de su contenido.



Todas las marcas y los logos utilizados en este sitio son propiedad de sus respectivos dueños.
Los artículos, noticias y comentarios son propiedad y responsabilidad de sus respectivos autores.
Copyright © 2000-2010 PortalFox. Todos los derechos reservados.