Cita:
Empezado por aguml
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.