ATL Servicio Windows

05/05/2005 - 00:56 por JOseM | Informe spam
Salu2 amigos,

Bueno es por el servicio de windows que escribodonde
pongo el codigo que hara mi programa es decir mis
funciones ??????? Loque sucede es que llego a Run() y de
alli este entra en -> while (GetMessage(&msg, 0, 0, 0)) y
bueno hasta que se le de stop...y bueno..quiero meter un
timer para que haga algo a la par y ademas necesito usar
threads dentro de el servicio ya que este lee una base de
datos y logea usuarios en el sistema...De verdad q soy
nuevo en esto y no se donde podria meter cada
codigo..porfavor agradezco de antemano comentarios.y
sugerencias..

gracias..
 

Leer las respuestas

#1 Rodrigo Corral [MVP]
05/05/2005 - 08:56 | Informe spam
Todo depende de lo que quieras hacer:

Los servicios de ATL exponen su funcionalidad en forma de objetos COM lo que
tienes que hacer esa agregar objetos a tu proyecto. Otro tema es si no
necesitas el soporte para exponer objetos COM, lo que tienes que hacer es
definir _ATL_NO_COM_SUPPORT y sobreescribir los metodos de CAtlModule.

Tipicamente se sobreescribe PreMessageLoop para hacer el trabajo que quieras
hacer, por ejemplo abrir un socket que escuche conexiones. Y tambien se
suele sobreescribir OnStop, OnPause... que los llama el SCM cuando paramos o
pausamos el servicio. Por ejemplo...

HRESULT CserviceModule::PreMessageLoop(int nShowCmd)

{

// TODO: Implementa el código que necesites

return
CAtlServiceModuleT<CserviceModule,IDS_SERVICENAME>::PreMessageLoop(nShowCmd);

}


Si quieres hacer un servicio sin utilizar ATL, a base de API lee: Creating a
Simple Win32 Service in C++ en tu MSDN. Tiene varios
ejemplos que puedes usar como base.


Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org

Preguntas similares