Verwenden der Containerfunktionalität
In den vorherigen Abschnitten wurden einige der erforderlichen aufruferseitigen Unterstützung beschrieben, die ein ActiveX-Steuerelement haben muss, um auf bestimmte Features seines Containers zugreifen zu können. In der folgenden Tabelle wird die Verwendung containerseitiger Schnittstellen eines Steuerelements und der Zeitpunkt einer solchen Verwendung beschrieben.
Schnittstelle | Containerobjekt | Verbrauch |
---|---|---|
IOleClientSite |
Website |
Steuerelemente, die IOleObject implementieren, rufen IOleClientSite-Methoden als Teil des OLE-Standardprotokolls auf, insbesondere die Methoden SaveObject, ShowObject, OnShowWindow (nur, wenn ein Aktivierungsstatus für separate Fenster unterstützt wird), RequestNewObjectLayout und GetContainer (wenn 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 gekennzeichnet. |
IOleInPlaceSite |
Website |
Steuerelemente, die über eine direkte Aktivierung und möglicherweise einen aktiven UI-Zustand verfügen, rufen IOleInPlaceSite-Methoden (in der Regel alle mit Ausnahme von ContextSensitiveHelp) als Teil des Standardmäßigen OLE-In-Situ-Aktivierungsprotokolls auf. |
Iadvisesink |
Website |
Control ruft OnDataChange auf, wenn das Steuerelement IDataObject unterstützt, OnViewChange , wenn das Steuerelement IViewObject2 unterstützt, und OnClose, OnSave und OnRename , wenn das Steuerelement IOleObject unterstützt. |
IOleControlSite |
Website |
Wenn dies unterstützt wird, ruft das Steuerelement OnControlInfoChanged bei mnemonics-Änderung, LockInPlaceActive und TransformCoords auf, wenn Ereignisse ausgelöst werden (die letztere Methode wird nur verwendet, wenn Koordinaten als Ereignisargumente übergeben werden), OnFocus und TranslateAccelerator , wenn das Steuerelement einen aktiven Benutzeroberflächenstatus aufweist, und GetExtendedControl , wenn das Steuerelement eigenschaften des erweiterten Steuerelements (Containerbesitz) untersuchen möchte. |
IDispatch (Umgebungseigenschaften) |
Website |
Wird für den Zugriff auf Umgebungseigenschaften verwendet. |
Ipropertynotifysink |
Varies |
Ein Steuerelement muss OnChanged und OnRequestEdit für alle Steuerelementeigenschaften generieren, die als [bindbar] bzw. [request] gekennzeichnet sind. |
Andere Ereignissenkenschnittstellen |
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 es seine eigenen Ereignisschnittstellen aufruft, da das Steuerelement diese Schnittstellen definiert. |
IOleInPlaceFrame |
Frame |
Wird verwendet, wenn ein Steuerelement über einen aktiven Zustand der direkten 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 direkten Benutzeroberfläche verfügt, der Ui-Tools auf Dokument- oder Bereichsebene erfordert. Dieser Fall ist selten. |