Freigeben über


ActiveX-Steuerelementschnittstellen

Neben anderen Mechanismen für die Kommunikation zwischen dem Steuerelement und seinem Client gibt die ActiveX-Steuerungstechnologie die IOleControl- und IOleControlSite- Schnittstellen für die Clientsteuerungskommunikation an. Es gibt auch die ISimpleFrameSite- Schnittstelle für einfache Steuerelementcontainer.

Diese drei Schnittstellen sind jedoch spezifisch für Steuerelemente und sind im Allgemeinen außerhalb des Kontexts von Steuerelementen nicht nützlich. Diese Schnittstellen werden wie folgt definiert.

interface IOleControl : IUnknown 
  { 
    HRESULT GetControlInfo([out] CONTROLINFO *pCI); 
    HRESULT OnMnemonic([in] LPMSG pMsg); 
    HRESULT OnAmbientPropertyChange([in] DISPID dispID); 
    HRESULT FreezeEvents([in] BOOL bFreeze); 
  } 
 
interface IOleControlSite : IUnknown 
  { 
    HRESULT OnControlInfoChanged(void); 
    HRESULT LockInPlaceActive([in] BOOL fLock); 
    HRESULT GetExtendedControl([out] IDispatch **ppDisp); 
    HRESULT TransformCoords([in-out] POINTL *pptlHimetric, [in-out] POINTF *pptfContainer, [in] DWORD dwFlags); 
    HRESULT TranslateAccelerator([in] LPMSG pMsg, [in] DWORD grfModifiers); 
    HRESULT OnFocus([in] BOOL fGotFocus); 
    HRESULT ShowPropertyFrame(void); 
  } 
 
interface ISimpleFrameSite : IUnknown 
  { 
    HRESULT PreMessageFilter([in] HWND hWnd, [in] UINT msg, [in] WPARAM wp, [in] LPARAM lp, 
        [out] LRESULT *plResult, [out] DWORD *pdwCookie); 
    HRESULT PostMessageFilter([in] HWND hWnd, [in] UINT msg, [in] WPARAM wp, [in] LPARAM lp, 
        [out] LRESULT *plResult, [in] DWORD dwCookie); 
  } 
 

Einige Steuerelemente, z. B. ein Gruppenfeld, sind lediglich ein einfacher Container anderer Steuerelemente. In solchen Fällen muss das einfache Steuerelement, das als einfacher Frame bezeichnet wird, nicht alle Containeranforderungen implementieren. Sie kann die meisten Schnittstellenaufrufe von den enthaltenen Steuerelementen an den Container delegieren, der den einfachen Frame verwaltet. Neben Schnittstellenaufrufen muss der einfache Frame auch mit Windows-Nachrichten umgehen, die potenziell von Steuerelementen darin stammen. Aus diesem Grund stellt ein Container ISimpleFrameSite- bereit, damit solche einfachen Framesteuerelemente Nachrichten an den Container übergeben können. PreMessageFilter verarbeitet die Nachricht zuerst; PostMessageFilter- wird aufgerufen, nachdem der einfache Frame die Nachricht selbst verarbeitet hat.

ActiveX-Steuerelemente