Newsgroup: it.comp.lang.delphi
Titolo: SubClassing

Salve a tutti.
La SetWindowLong con parametro GWL_WNDPROC funziona anche su finestre create
da altri processi?
Windows dice che "non si dovrebbe"... ma non dice che non si può fare.... e
poi da altre parti c'è scritto che si può fare ("stando attenti...").
Ho provato però inutilmente a sublclassare altre finestre... finora avevo
provato solo con finestre appartenenti alla mia applicazione.
La domanda è ... qual è la sintassi corretta o le regole "speciali" da
seguire in questo tipo di tecnica?
Grazie&Ciao, Davide DG

 seguire in questo tipo di tecnica?
Non so a che livello tu sia con gli hook ... se ti va possiamo provare a
farlo assieme.
Fammi sapere,
Ciao!
--
- Carlo -

interessata e poi richiamare da la SetWindowLong ...
Forse anche un thread remoto su piattaforme NT/2K.

 ha scritto nel messaggio
news:09vfvss22u5kblteo...@4ax.com...

Si, fai riferimento a CreateRemoteThread ... non la ho citata perchè non
esiste su Win9x, ho provato a dare una soluzione "universale" ...
--
- Carlo -

 farlo assieme.
Solo teoria, mai applicata ^_^
Grazie mille per la risposta intanto!!    Davide DG.

> Forse anche un thread remoto su piattaforme NT/2K.
Grazie, per adesso comunque sto cercando solo di capire il meccanismo
"generale" e cmq non devo utilizzarlo (a breve scadenza) su NT/2k
Grazie, Davide DG

 Grazie mille per la risposta intanto!!
Di nulla ...


 Andrea, ma funziona solo sotto NT/2K.
Se non ricordo male un'alternativa c'è e si chiama super-classing...
C'erano un paio di funzioni dell'API che permettevano di registrare una
classe "al di sopra" di un'altra...
Ricordo di aver già affrontato la cosa ma non ho sottomano la mia cartella
di "esempietti & esperimenti vari"...
Qualcuno ha trovato il modo di avere 48h di tempo al giorno???
--
Andrea Magni
E-Mail: 
ama...@interac.it

 Qualcuno ha trovato il modo di avere 48h di tempo al giorno???
Ma Andrea è facile!!
Basta non studiare!! ... prendi me, per esempio... domani ho comipitino di
biologia cellulare...
e invece di studiare la riparazione del dna... sono qui a gironzolare in
internet... ;P
Ciao. Davide DG

Sto cercando di alterare il funzionamento di alcune finestre ... ;P
Non so se la "via degli hook" sia una strada sicura, ma credo sia uno
sforzo non necessario. E' sicuro che sotto Win32 (sotto Win16 era
consentito, ma sconsigliato) non e' possibile sub-classare finestre
create da altri processi usando il metodo classico
GetWindowLong/SetWindowLong. Un metodo sicuro e' quello di usare il
"superclassing", che consiste nel creare una classe "al di sopra"
della classe base. In sostanza, si tratta di costruire una window
procedure, che verra' chiamata prima della reale window procedure, un
po' come succede per le funzioni filtro degli hook.

 po' come succede per le funzioni filtro degli hook.
Grazie, me ne aveva già parlato Andrea M., però qual è la strada da seguire
per il super
classing?
In termini pratici, quindi, cheddevofà? ;P
Ieri ho spulciato un po' l'help (di fretta... perchè oggi avevo
compitino...)... c'entra qualcosa
la funzione setclasslong col parametro GCL_WNDPROC ?
Ciao e grazie, Davide DG

In termini pratici, quindi, cheddevofà? ;P
Secondo "Safe subclassing in Win32" di Kyle Marsh (su MSDN), il
"superclassing" va bene solo quando le finestre vengono create DOPO il
suo utilizzo e quindi non va bene per il tuo caso (non ricordavo
questa caratteristica). Cio' che si propone, come alternativa e'
quello di creare un hook di tipo CBT.

 Cio' che si propone, come alternativa e' quello di creare un hook di tipo
CBT.
Grazie, proverň.
Ciao, Davide DG