031
02.05.2003, 18:46 Uhr
~0xdeadbeef
Gast
|
Ein IDispatch ist ein Interface, dass vom Windows-internen ORB-artigen Viech zur Verfügung gestellt wird. COM ist im Grunde ein CORBA-Konzept - Windows hält sich Objekte im Speicher fest, und stellt dann über den ORB Interfaces zur Verfügung. IDispatch ist ein Interface, dass speziell für das hin- und herreichen von Objekten zwischen verschiedenen Applikationen gedacht ist - nehmen wir an, du willst ein Range-Objekt aus einem Excel-VBA-Makro in einer C++-Applikation verwenden - du wirst ein IDispatch-Interface durch die Gegend reichen. Mit einem IDispatch-Interface kann im wesentlichen über Late Binding Methodenaufrufe durchführen und die Anzahl der Referenzen auf ein Objekt verwalten. Die Methodenaufrufe laufen über Strings - du gibst den Namen der Methode, die du aufrufen willst, als Stringkonstante mit. Die Referenzverwaltung soll bewirken, dass das eigentliche Objekt nicht vorzeitig zerstört wird, ist aber natürlich sehr haarig zu handhaben.
Was die CStatic-Geschichte angeht - zum einen sehe ich keinen Grund, warum ein Label sich nicht in der Größe verändern lassen sollte, zum anderen kriegt man so etwas leicht durch ein vernünftiges Design des Klassenbaums hin. Schau dir Java an - die leiten auch alles von Object ab, und da funktioniert es. |