共用方式為


ActiveX 控制件介面

除了控件與其客戶端之間通訊的其他機制之外,ActiveX 控件技術還指定用戶端控制通訊的 IOleControlIOleControlSite 介面。 還有適用於簡單控件容器的 ISimpleFrameSite 介面。

不過,這三個介面是控件特有的介面,而且在控件內容之外通常並不有用。 這些介面的定義如下。

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

某些控件,例如群組框,只是其他控件的簡單容器。 在這種情況下,稱為簡單框架的簡單控件不需要實作所有容器需求。 它可以將大部分介面呼叫從其自主控件委派給管理簡單框架的容器。 除了介面呼叫之外,簡單框架也必須處理可能來自其中控件的 Windows 訊息。 基於這個理由,容器會 提供 ISimpleFrameSite ,讓這類簡單的框架控件將訊息傳遞至容器。 PreMessageFilter 會先處理訊息; 在簡單框架處理訊息本身之後,就會呼叫PostMessageFilter

ActiveX 控制項