Verwenden der Funktionalität des Containers
In den vorherigen Abschnitten wurden einige der erforderlichen aufruferseitigen Unterstützungen beschrieben, die ein ActiveX-Steuerelement aufweisen muss, um auf bestimmte Features seines Containers zugreifen zu können. In der folgenden Tabelle wird die Verwendung containerseitiger Schnittstellen durch ein Steuerelement und deren Verwendung beschrieben.
| Schnittstelle | Containerobjekt | Verbrauch |
|---|---|---|
| IOleClientSite |
Website |
Steuerelemente, die IOleObject implementieren, rufen IOleClientSite-Methoden als Teil des standardmäßigen OLE-Einbettungsprotokolls auf, insbesondere die Methoden SaveObject, ShowObject, OnShowWindow (nur, wenn ein Aktivierungszustand mit separatem Fenster unterstützt wird), RequestNewObjectLayoutund GetContainer (wenn die Kommunikation mit anderen Steuerelementen gewünscht ist). Die GetMoniker-Methode wird nur verwendet, wenn das Steuerelement extern verknüpft werden kann, d. h., das Steuerelement ist nicht mit OLEMISC _ CANTLINKINSIDE markiert. |
| IOleInPlaceSite |
Website |
Steuerelemente, die über eine aktive Aktivierungs- und ggf. einen aktiven Zustand der Benutzeroberfläche verfügen, rufen IOleInPlaceSite-Methoden (im Allgemeinen alle mit Ausnahme von ContextSensitiveHelp)als Teil des standardmäßigen ole-Aktivierungsprotokolls auf. |
| Iadvisesink |
Website |
Das Steuerelement ruft OnDataChange auf, wenn das Steuerelement IDataObject, OnViewChange, wenn das Steuerelement IViewObject2unterstützt, und OnClose, OnSaveund OnRename unterstützt, wenn das Steuerelement IOleObjectunterstützt. |
| IOleControlSite |
Website |
Falls unterstützt, ruft die Steuerung OnControlInfoChanged auf, wenn sich mnemonics ändert, LockInPlaceActive und TransformCoords, wenn Ereignisse ausgelöst werden (letztere Methode wird nur verwendet, wenn Koordinaten als Ereignisargumente übergeben werden), OnFocus und TranslateAccelerator, wenn das Steuerelement über einen aktiven Zustand der Benutzeroberfläche verfügt, und GetExtendedControl, wenn das Steuerelement erweiterte Steuerelementeigenschaften (containereigen) anzeigen möchte. |
| IDispatch (Umgebungseigenschaften) |
Website |
Wird verwendet, um auf Umgebungseigenschaften zuzugreifen. |
| Ipropertynotifysink |
Varies |
Ein Steuerelement muss OnChanged und OnRequestEdit für alle Steuerelementeigenschaften generieren, die als bindbar gekennzeichnet sind, [ ] [ bzw. anfordern. ] |
| Andere Schnittstellen der Ereignissenke |
Varies |
Ein Steuerelement, das über andere ausgehende Schnittstellen als IPropertyNotifySink verfügt, wird anderen Schnittstellenzeigern der richtigen IID an die IConnectionPoint::Advise-Implementierungen des Steuerelements übergeben (die sich normalerweise in Unterobjekten des Steuerelements befinden). Ein Steuerelement weiß immer, wie seine eigenen Ereignisschnittstellen aufgerufen werden, da das Steuerelement diese Schnittstellen definiert. |
| IOleInPlaceFrame |
Frame |
Wird verwendet, wenn ein Steuerelement über einen aktiven Zustand der benutzeroberfläche verfügt, der Tools auf Frameebene oder Menüelemente erfordert. |
| IOleInPlaceUIWindow |
Dokument |
Wird nur verwendet, wenn ein Steuerelement über einen aktiven Zustand der benutzeroberfläche verfügt, der Benutzeroberflächentools auf Dokument- oder Bereichsebene erfordert. Dieser Fall ist selten. |