Mir ging es eigentlich eher darum, dass MakeProcInstance in diesem Falle - genau so wie übrigens in deinem Beispiel mit EnumWindows - überflüssig ist: MakeProcInstance dient ja gerade dazu, einen zusätzlichen Parameter, eben Self, unterzubringen. Aber sowohl EnumWindows als auch CreateThread bieten Platz für einen zusätzlichen Parameter, der vom Aufruf der
API-Funktion direkt an den Callback durchgereicht wird. MakeProcInstance wird nur benötigt, wenn diese Möglichkeit nicht von der
API zur Verfügung gestellt wird.