次の方法で共有


コンテナーの機能の使用

前のセクションでは、コンテナーの特定の機能にアクセスするために ActiveX コントロールに必要な呼び出し元側のサポートについて説明しました。 次の表では、コンテナー側インターフェイスのコントロールの使用方法と、そのような使用が発生するタイミングについて説明します。

インターフェイス Container オブジェクト 使用方法
IOleClientSite
サイト
IOleObject を実装するコントロールは、標準の OLE 埋め込みプロトコルの一部として IOleClientSite メソッドを呼び出します。具体的には、 SaveObjectShowObjectOnShowWindow (別ウィンドウのアクティブ化状態がサポートされている場合のみ)、 RequestNewObjectLayout、 および GetContainer (他のコントロールとの通信が必要な場合) の各メソッドを呼び出します。 GetMoniker メソッドは、コントロールを外部にリンクできる場合、つまりコントロールが OLEMISC_CANTLINKINSIDE でマークされていない場合にのみ使用されます。
IOleInPlaceSite
サイト
インプレース アクティブ化があり、場合によっては UI アクティブ状態のコントロールは、標準の OLE インプレース アクティブ化プロトコルの一部として IOleInPlaceSite メソッド (通常は ContextSensitiveHelpを除くすべてのメソッド) を呼び出します。
IAdviseSink
サイト
コントロールが IDataObject をサポートしている場合は OnDataChange、コントロールが IViewObject2 をサポートしている場合は OnViewChange、コントロールが IOleObject をサポートしている場合は OnCloseOnSaveOnRename を呼び出します。
IOleControlSite
サイト
サポートされている場合、コントロールは、ニーモニックが変更されたときに OnControlInfoChanged を呼び出し、イベントが発生したときに LockInPlaceActiveTransformCoords を呼び出し (後者のメソッドは、座標がイベント引数として渡された場合にのみ使用されます)、コントロールに UI アクティブ状態がある場合は OnFocusTranslateAccelerator を呼び出し、コントロールが拡張コントロール (コンテナ所有) プロパティを見たい場合は GetExtendedControl を呼び出します。
IDispatch (アンビエントプロパティ)
サイト
アンビエント プロパティにアクセスするために使用されます。
IPropertyNotifySink
可変
コントロールは、[バインド可能] と [request] としてマークされているコントロール プロパティに対して、それぞれ OnChangedOnRequestEdit を生成する必要があります。
その他のイベント シンク インターフェイス
可変
IPropertyNotifySink 以外の送信インターフェイスを持つコントロールは、正しい IID の他のインターフェイスポインタが、コントロールの IConnectionPoint::Advise 実装 (通常はコントロールのサブオブジェクト内にあります) に渡されます。 コントロールではそれらのインターフェイスが定義されているため、コントロールは常に独自のイベント インターフェイスを呼び出す方法を認識します。
IOleInPlaceFrame
フレーム
フレーム レベルのツールまたはメニュー項目を必要とするインプレース UI のアクティブな状態がコントロールにある場合に使用されます。
IOleInPlaceUIWindow
Document
ドキュメント レベルまたはウィンドウ レベルの UI ツールを必要とするインプレース UI のアクティブな状態がコントロールにある場合にのみ使用されます。 これは稀なケースです。

コントロール