Subclassing ist nichts anderes, als daß du für (jeweils) ein bestimmtes Fenster die Fensterfunktion durch eine eigene austauscht und so wahlweise vor der Bearbeitung durch die alte Fensterfunktion oder danach deine Bearbeitung vornimmst. Alternativ kannst du natürlich auch einfach die orginale Fensterfunktion nicht mehr aufrufen, wodurch die Mausnachrichten z.B. abgefangen werden können.
Das Gegenteil davon ist Superclassing, wo die Fensterfunktion einer kompletten Fensterklasse ausgetauscht wird.
Für
DLL-Injection gibt es dutzende Methoden. Die leichteste ist auf NT-basierten Systemen in einem ganz bestimmten Schlüssel den Namen deiner
DLL abzulegen. Damit wird deine
DLL in jeden gestarteten Prozess geladen.