Ver Mensaje Individual
  #21  
Antiguo 28-09-2014
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.210
Reputación: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Cita:
Empezado por aguml Ver Mensaje
cuando dices hacer subclasing de ventanas windows ¿Te refieres a hacer un inline a un proceso externo? ¿Algo asi como un hook pero en vez de a una api hacerlo sobre el mismo codigo del proceso?
Puede ser en nuestro proceso o en otro, mediante inyección de código, una dll por ejemplo, en otro proceso y desde él hacer subclassing en la ventana que nos interese. Cambias la función de tratamiento de la ventana en cuestión por la tuya obligando a responder a los mensajes como tu decidas. esto se hace con la API SetWindowLong con nIndex = GWL_WNDPROC. deberás guardar el puntero de la función original para usarla si es preciso y para devolver a su estado original la ventana en cuestión. esto se hace con GetWindowLong con nIndex = GWL_WNDPROC. En el foro tienes algún ejemplo como este (en un proceso externo) o este otro (en nuestro proceso).

En realidad no se le puede llamar hook en sentido estricto, aunque se podría decir que es un hook al WindProc de una ventana. Sobre hooks también tienes información en el foro y en DA.


Saludos.
Responder Con Cita