Steuerelementereignisse (COM)

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

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

Ein Container kann mindestens eine der ausgehenden Schnittstellen unterstützen, die durch ein Steuerelement definiert werden. Das Steuerelement sollte für Container vorbereitet sein, die nur unterstützung für einige ihrer ausgehenden Schnittstellen bieten.

Steuerelemente unterstützen vier Arten von Ereignissen:

  • Fordern Sie Ereignisse an. Ein Steuerelement fordert von seinem Client die Berechtigung an, etwas zu tun, indem es eine Methode in der ausgehenden Schnittstelle aufruft und so ein Anforderungsereignis auslöst. Der Client signalisiert das Steuerelement über einen booleschen Out-Parameter in der Methode, die das Steuerelement aufgerufen hat. Der Client kann daher verhindern, dass das Steuerelement die Aktion ausführt.
  • Vor Ereignissen. Ein Steuerelement benachrichtigt seinen Client, dass es etwas tun wird, indem es eine Methode in der ausgehenden Schnittstelle aufruft und so ein Before-Ereignis auslöst. Der Client hat nicht die Möglichkeit, die Aktion zu verhindern, aber er kann alle erforderlichen Schritte unter Berücksichtigung der aktion ausführen, die im Entstehen steht.
  • Nach Ereignissen. Ein Steuerelement benachrichtigt seinen Client darüber, dass es gerade etwas getan hat, indem es eine Methode in der ausgehenden Schnittstelle aufruft und so ein After-Ereignis auslöst. Auch hier kann der Client diese Aktion nicht abbrechen, aber er kann angesichts der aufgetretenen Aktion die erforderlichen Schritte ausführen.
  • Ereignisse ausführen. Ein Steuerelement löst ein Do-Ereignis aus, damit der Client die Aktion des Steuerelements außer Kraft setzen und alternative oder zusätzliche Aktionen bereitstellt. Normalerweise verfügt die Methode, die ein Steuerelement für ein Do-Ereignis aufruft, über eine Reihe von Parametern für die Aushandlung mit dem Client über die aktionen, die auftreten werden.

Die folgenden Dispids sind für Standardereignisse definiert, die Von Steuerelementen unterstützt werden können: Click, DblClick, KeyDown, KeyPress, KeyUp, MouseMove, MouseUp und Error. Alle diese Standardereignisse weisen negative DISPID-Werte auf, die ihre Standard-status.

Die IOleControl::FreezeEvents-Methode teilt einem Steuerelement beim Aufrufen mit TRUE mit, ob der Container die Behandlung von Ereignissen aus dem Steuerelement stört, bis FreezeEvents erneut mit FALSE aufgerufen wird. Während dieser Zeit kann die Steuerung 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ösen, wenn FreezeEvents mit FALSE aufgerufen wird.

ActiveX-Steuerelemente