Sdílet prostřednictvím


Rozhraní ovládacích prvků ActiveX

Kromě jiných mechanismů pro komunikaci mezi ovládacím prvku a jeho klientem určuje technologie ovládacích prvků ActiveX IOleControl a IOleControlSite rozhraní pro komunikaci řízení klienta. K dispozici je také rozhraní ISimpleFrameSite pro jednoduché kontejnery ovládacích prvků.

Tato tři rozhraní jsou však specifická pro ovládací prvky a nejsou obecně užitečná mimo kontext ovládacích prvků. Tato rozhraní jsou definována následujícím způsobem.

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); 
  } 
 

Některé ovládací prvky, jako je skupinové pole, jsou pouze jednoduchým kontejnerem jiných ovládacích prvků. V takových případech nemusí jednoduchý ovládací prvek označovaný jako jednoduchý rámec implementovat všechny požadavky na kontejner. Většinu volání rozhraní může delegovat z jeho obsažených ovládacích prvků do kontejneru, který spravuje jednoduchý rámec. Kromě volání rozhraní musí jednoduchý rámec také řešit zprávy systému Windows, které mohou pocházet z ovládacích prvků v něm. Z tohoto důvodu kontejner poskytuje ISimpleFrameSite umožnit, aby tyto jednoduché ovládací prvky rámce předávaly zprávy do kontejneru. PreMessageFilter nejprve zpracuje zprávu; PostMessageFilter je volána po zpracování samotné zprávy jednoduchý rámec.

ovládací prvky ActiveX