Freigeben über


Steuerelementereignisse (COM)

Neben der Bereitstellung von Eigenschaften und Methoden stellt ein Steuerelement auch ausgehende Schnittstellen bereit, um den Client über Ereignisse zu benachrichtigen. Der Client muss die Behandlung dieser Ereignisse unterstützen. Weitere Informationen zur Funktionsweise von verbinderbaren Objekten finden Sie unter Ereignisse in COM- und Connectable Objects-.

Ein Steuerelement kann unterschiedliche ausgehende Schnittstellen für unterschiedliche Zwecke unterstützen. Alle ausgehenden Schnittstellen werden als Quellschnittstellen in den Typinformationen des Steuerelements markiert, aber nur eine ist als Standard gekennzeichnet, um anzugeben, dass es sich um die primäre ausgehende Schnittstelle handelt.

Ein Container kann eine oder mehrere der ausgehenden Schnittstellen unterstützen, die durch ein Steuerelement definiert sind. Das Steuerelement sollte darauf vorbereitet sein, Container zu behandeln, die nur Unterstützung für einige ihrer ausgehenden Schnittstellen bieten.

Steuerelemente unterstützen vier Arten von Ereignissen:

  • Anforderungsereignisse. Ein Steuerelement fordert die Berechtigung des Clients an, etwas zu tun, indem eine Methode in der ausgehenden Schnittstelle aufgerufen wird, wodurch ein Anforderungsereignis ausgelöst wird. Der Client signalisiert das Steuerelement über einen booleschen, out-parameter in der Methode, die das Steuerelement aufgerufen hat. Der Client kann somit verhindern, dass das Steuerelement die Aktion ausführt.
  • Vor Ereignissen. Ein Steuerelement benachrichtigt seinen Client hat, dass er eine Aktion ausführt, indem eine Methode in der ausgehenden Schnittstelle aufgerufen wird, wodurch ein Vorher-Ereignis ausgelöst wird. Der Client hat nicht die Möglichkeit, die Aktion zu verhindern, aber er kann alle erforderlichen Schritte ausführen, wenn die Aktion ausgeführt wird.
  • Nach Ereignissen. Ein Steuerelement benachrichtigt seinen Client, dass er gerade etwas getan hat, indem eine Methode in der ausgehenden Schnittstelle aufgerufen wird, wodurch ein After-Ereignis ausgelöst wird. Auch hier kann der Client diese Aktion nicht abbrechen, aber er kann die erforderlichen Schritte ausführen, wenn die aktion aufgetreten ist.
  • Führen Sie Ereignisse aus. Ein Steuerelement löst ein Do-Ereignis aus, damit der Client die Aktion des Steuerelements außer Kraft setzt und alternative oder ergänzende Aktionen bereitstellt. In der Regel weist die Methode, die ein Steuerelement für ein Do-Ereignis aufruft, eine Reihe von Parametern für die Verhandlungen mit dem Client über die Aktionen auf, die auftreten.

Die folgenden Dispids werden für Standardereignisse definiert, die Steuerelemente unterstützen können: Click, DblClick, KeyDown, KeyPress, KeyUp, MouseMove, MouseUp und Error. Alle diese Standardereignisse weisen negative DISPID-Werte auf, die ihren Standardstatus angeben.

Die IOleControl::FreezeEvents-Methode, die mit TRUE-aufgerufen wird, teilt einem Steuerelement mit, ob der Container Ereignisse vom Steuerelement behandelt, bis FreezeEvents erneut mit FALSE-aufgerufen wird. Während dieser Zeit kann das Steuerelement nicht davon abhängen, dass der Container tatsächlich Ereignisse verarbeitet. Wenn ein Ereignis behandelt werden muss, sollte das Steuerelement das Ereignis in die Warteschlange stellen, um es auszulöschen, wenn FreezeEvents- mit FALSE-aufgerufen wird.

ActiveX-Steuerelemente