Share via


COleControl クラス

OLE コントロールを開発するための強力な基底クラスです。

構文

class COleControl : public CWnd

メンバー

パブリック コンストラクター

名前 説明
COleControl::COleControl COleControl オブジェクトを作成します。

パブリック メソッド

名前 説明
COleControl::AmbientAppearance コントロールの現在の外観を取得します。
COleControl::AmbientBackColor アンビエント BackColor プロパティの値を返します。
COleControl::AmbientDisplayName コンテナーで指定されたコントロールの名前を返します。
COleControl::AmbientFont アンビエント Font プロパティの値を返します。
COleControl::AmbientForeColor アンビエント ForeColor プロパティの値を返します。
COleControl::AmbientLocaleID コンテナーのロケール ID を返します。
COleControl::AmbientScaleUnits コンテナーで使用される単位の種類を返します。
COleControl::AmbientShowGrabHandles グラブ ハンドルを表示するかどうかを決定します。
COleControl::AmbientShowHatching ハッチングを表示するかどうかを指定します。
COleControl::AmbientTextAlign コンテナーで指定されたテキスト配置の種類を返します。
COleControl::AmbientUIDead コントロールがユーザー インターフェイス アクションに応答する必要があるかどうかを判断します。
COleControl::AmbientUserMode コンテナーのモードを決定します。
COleControl::BoundPropertyChanged バインドされたプロパティが変更されたことをコンテナーに通知します。
COleControl::BoundPropertyRequestEdit プロパティ値を編集するためのアクセス許可を要求します。
COleControl::ClientToParent コントロールの原点を基準とした点を、そのコンテナーの原点を基準とした点に変換します。
COleControl::ClipCaretRect キャレット四角形がコントロールによって重なっている場合に調整します。
COleControl::ControlInfoChanged コントロールによって処理されるニーモニックのセットが変更された後、この関数を呼び出します。
COleControl::D isplayError コントロールのユーザーにストック エラー イベントを表示します。
COleControl::D oClick stock DoClick メソッドの実装。
COleControl::D oPropExchange オブジェクトのプロパティを COleControl シリアル化します。
COleControl::D oSuperclassペイント Windows コントロールからサブクラス化された OLE コントロールを再描画します。
COleControl::EnableSimpleFrame コントロールの単純なフレーム サポートを有効にします。
COleControl::ExchangeExtent コントロールの幅と高さをシリアル化します。
COleControl::ExchangeStockProps コントロールのストック プロパティをシリアル化します。
COleControl::ExchangeVersion コントロールのバージョン番号をシリアル化します。
COleControl::FireClick ストック Click イベントを発生します。
COleControl::FireDblClick ストック DblClick イベントを発生します。
COleControl::FireError ストック Error イベントを発生します。
COleControl::FireEvent カスタム イベントを発生します。
COleControl::FireKeyDown ストック KeyDown イベントを発生します。
COleControl::FireKeyPress ストック KeyPress イベントを発生します。
COleControl::FireKeyUp ストック KeyUp イベントを発生します。
COleControl::FireMouseDown ストック MouseDown イベントを発生します。
COleControl::FireMouseMove ストック MouseMove イベントを発生します。
COleControl::FireMouseUp ストック MouseUp イベントを発生します。
COleControl::FireReadyStateChange コントロールの準備完了状態が変更されたときにイベントを発生させます。
COleControl::GetActivationPolicy インターフェイスをサポートするコントロールの既定のアクティブ化動作を IPointerInactive 変更します。
COleControl::GetAmbientProperty 指定したアンビエント プロパティの値を返します。
COleControl::GetAppearance ストックの Appearance プロパティの値を返します。
COleControl::GetBackColor ストック BackColor プロパティの値を返します。
COleControl::GetBorderStyle ストック BorderStyle プロパティの値を返します。
COleControl::GetCapture ウィンドウレスのアクティブ化されたコントロール オブジェクトにマウス キャプチャがあるかどうかを判断します。
COleControl::GetClassID コントロールの OLE クラス ID を取得します。
COleControl::GetClientOffset コントロールの四角形領域の左上隅とクライアント領域の左上隅の違いを取得します。
COleControl::GetClientRect コントロールのクライアント領域のサイズを取得します。
COleControl::GetClientSite コンテナー内の現在のクライアント サイトへのポインターをオブジェクトに照会します。
COleControl::GetControlFlags コントロール フラグの設定を取得します。
COleControl::GetControlSize OLE コントロールの位置とサイズを返します。
COleControl::GetDC ウィンドウレス コントロールがコンテナーからデバイス コンテキストを取得するための手段を提供します。
COleControl::GetEnabled stock Enabled プロパティの値を返します。
COleControl::GetExtendedControl コンテナーに属する拡張コントロール オブジェクトへのポインターを取得します。
COleControl::GetFocus コントロールにフォーカスがあるかどうかを判断します。
COleControl::GetFont ストック Font プロパティの値を返します。
COleControl::GetFontTextMetrics オブジェクトのメトリックを CFontHolder 返します。
COleControl::GetForeColor ストック ForeColor プロパティの値を返します。
COleControl::GetHwnd ストック hWnd プロパティの値を返します。
COleControl::GetMessageString メニュー項目のステータス バーテキストを提供します。
COleControl::GetNotSupported ユーザーがコントロールのプロパティ値にアクセスできないようにします。
COleControl::GetReadyState コントロールの準備状態を返します。
COleControl::GetRectInContainer コンテナーに対するコントロールの四角形を返します。
COleControl::GetStockTextMetrics ストック Font プロパティのメトリックを返します。
COleControl::GetText ストック Text または Caption プロパティの値を返します。
COleControl::GetWindowlessDropTarget ウィンドウなしのコントロールをドラッグ アンド ドロップ操作のターゲットにするには、オーバーライドします。
COleControl::InitializeIIDs コントロールが使用する IID の基底クラスに通知します。
COleControl::InternalGetFont ストック Font プロパティの CFontHolder オブジェクトを返します。
COleControl::InternalGetText ストック キャプションまたは Text プロパティを取得します。
COleControl::InternalSetReadyState コントロールの準備状態を設定し、準備完了状態変更イベントを発生させます。
COleControl::InvalidateControl 表示されているコントロールの領域を無効にして、再描画します。
COleControl::InvalidateRgn 指定されたリージョン内のコンテナー ウィンドウのクライアント領域を無効にします。 領域内のウィンドウなしのコントロールを再描画するために使用できます。
COleControl::IsConvertingVBX OLE コントロールの特殊な読み込みを許可します。
COleControl::IsModified コントロールの状態が変更されたかどうかを判断します。
COleControl::IsOptimizedDraw コンテナーが現在の描画操作用に最適化された描画をサポートしているかどうかを示します。
COleControl::IsSubclassedControl コントロールが Windows コントロールをサブクラス化するかどうかを判断するために呼び出されます。
COleControl::Load 以前の非同期データをリセットし、コントロールの非同期プロパティの新しい読み込みを開始します。
COleControl::LockInPlaceActive コンテナーによってコントロールを非アクティブ化できるかどうかを判断します。
COleControl::OnAmbientPropertyChange アンビエント プロパティが変更されたときに呼び出されます。
COleControl::OnAppearanceChanged ストックの外観プロパティが変更されたときに呼び出されます。
COleControl::OnBackColorChanged ストック BackColor プロパティが変更されたときに呼び出されます。
COleControl::OnBorderStyleChanged ストック BorderStyle プロパティが変更されたときに呼び出されます。
COleControl::OnClick Stock Click イベントを発生させるために呼び出されます。
COleControl::OnClose 呼び出されたコントロールに IOleControl::Close 通知します。
COleControl::OnDoVerb コントロール動詞が実行された後に呼び出されます。
COleControl::OnDraw コントロール自体の再描画が要求されたときに呼び出されます。
COleControl::OnDrawMetafile メタファイル デバイス コンテキストを使用してコントロール自体を再描画するように要求されたときに、コンテナーによって呼び出されます。
COleControl::OnEdit コンテナーによって UI に呼び出され、OLE コントロールがアクティブ化されます。
COleControl::OnEnabledChanged stock Enabled プロパティが変更されたときに呼び出されます。
COleControl::OnEnumVerbs コントロールの動詞を列挙するためにコンテナーによって呼び出されます。
COleControl::OnEventAdvise イベント ハンドラーがコントロールに接続されているか、コントロールから切断されたときに呼び出されます。
COleControl::OnFontChanged ストック Font プロパティが変更されたときに呼び出されます。
COleControl::OnForeColorChanged ストック ForeColor プロパティが変更されたときに呼び出されます。
COleControl::OnFreezeEvents コントロールのイベントがフリーズまたはフローゼン解除されたときに呼び出されます。
COleControl::OnGetColorSet 呼び出されたコントロールに IOleObject::GetColorSet 通知します。
COleControl::OnGetControlInfo ニーモニック情報をコンテナーに提供します。
COleControl::OnGetDisplayString プロパティ値を表す文字列を取得するために呼び出されます。
COleControl::OnGetInPlaceMenu コンテナー メニューとマージされるコントロールのメニューのハンドルを要求します。
COleControl::OnGetNaturalExtent 提案されたサイズに最も近いコントロールの表示サイズを取得するオーバーライド (例テント モード。
COleControl::OnGetPredefinedStrings プロパティに使用できる値を表す文字列を返します。
COleControl::OnGetPredefinedValue 定義済みの文字列に対応する値を返します。
COleControl::OnGetViewExtent コントロールの表示領域のサイズを取得するオーバーライド (2 パス描画を有効にするために使用できます)。
COleControl::OnGetViewRect コントロールのサイズを特定の位置から始まる四角形に変換するには、オーバーライドします。
COleControl::OnGetViewStatus コントロールのビューの状態を取得する場合にオーバーライドします。
COleControl::OnHideToolBars コントロールが UI 非アクティブ化されたときにコンテナーによって呼び出されます。
COleControl::OnInactiveMouseMove マウス ポインターの下にある非アクティブなコントロールのコンテナーがコントロールにディスパッチWM_MOUStandard Edition MOVE メッセージを持つ場合にオーバーライドします。
COleControl::OnInactiveSetCursor マウス ポインターの下にある非アクティブなコントロールのコンテナーがコントロールにWM_Standard Edition TCURSOR メッセージをディスパッチするようにオーバーライドします。
COleControl::OnKeyDownEvent ストック KeyDown イベントが発生した後に呼び出されます。
COleControl::OnKeyPressEvent ストック KeyPress イベントが発生した後に呼び出されます。
COleControl::OnKeyUpEvent ストック KeyUp イベントが発生した後に呼び出されます。
COleControl::OnMapPropertyToPage プロパティの編集に使用するプロパティ ページを示します。
COleControl::OnMnemonic コントロールのニーモニック キーが押されたときに呼び出されます。
COleControl::OnProperties コントロールの "プロパティ" 動詞が呼び出されたときに呼び出されます。
COleControl::OnQueryHitPoint コントロールの表示が特定のポイントと重なるかどうかをクエリする場合にオーバーライドします。
COleControl::OnQueryHitRect コントロールの表示が特定の四角形内の任意のポイントと重なるかどうかをクエリする場合にオーバーライドします。
COleControl::OnRenderData 指定した形式のデータを取得するためにフレームワークによって呼び出されます。
COleControl::OnRenderFileData 指定した形式のファイルからデータを取得するためにフレームワークによって呼び出されます。
COleControl::OnRenderGlobalData 指定した形式でグローバル メモリからデータを取得するためにフレームワークによって呼び出されます。
COleControl::OnResetState コントロールのプロパティを既定値にリセットします。
COleControl::OnSetClientSite 呼び出されたコントロールに IOleControl::SetClientSite 通知します。
COleControl::OnSetData コントロールのデータを別の値に置き換えます。
COleControl::OnSetExtent コントロールのエクステントが変更された後に呼び出されます。
COleControl::OnSetObjectRects コントロールのディメンションが変更された後に呼び出されます。
COleControl::OnShowToolBars コントロールが UI アクティブ化されたときに呼び出されます。
COleControl::OnTextChanged ストック Text または Caption プロパティが変更されたときに呼び出されます。
COleControl::OnWindowlessMessage ウィンドウレス コントロールのウィンドウ メッセージ (マウスおよびキーボード メッセージ以外) を処理します。
COleControl::P arentToClient コンテナーの原点を基準にした点を、コントロールの原点を基準とした点に変換します。
COleControl::P ostModalDialog モーダル ダイアログ ボックスが閉じられたことをコンテナーに通知します。
COleControl::P reModalDialog モーダル ダイアログ ボックスが表示されようとしていることをコンテナーに通知します。
COleControl::RecreateControlWindow コントロールのウィンドウを破棄して再作成します。
COleControl::Refresh コントロールの外観を強制的に再描画します。
COleControl::ReleaseCapture マウス キャプチャを解放します。
COleControl::ReleaseDC ウィンドウレス コントロールのコンテナーの表示デバイス コンテキストを解放します。
COleControl::ReparentControlWindow コントロール ウィンドウの親をリセットします。
COleControl::ResetStockProps ストック プロパティを COleControl 既定値に初期化します。
COleControl::ResetVersion バージョン番号を特定の値に初期化します。
COleControl::ScrollWindow ウィンドウレス コントロールで、ディスプレイ上のインプレースアクティブイメージ内の領域をスクロールできるようにします。
COleControl::SelectFontObject デバイス コンテキストにカスタム Font プロパティを選択します。
COleControl::SelectStockFont デバイス コンテキストにストック Font プロパティを選択します。
COleControl::SerializeExtent コントロールの表示領域をシリアル化または初期化します。
COleControl::SerializeStockProps ストック プロパティを COleControl シリアル化または初期化します。
COleControl::SerializeVersion コントロールのバージョン情報をシリアル化または初期化します。
COleControl::SetAppearance ストック外観プロパティの値を設定します。
COleControl::SetBackColor ストック BackColor プロパティの値を設定します。
COleControl::SetBorderStyle ストック BorderStyle プロパティの値を設定します。
COleControl::SetCapture コントロールのコンテナー ウィンドウがコントロールの代わりにマウス キャプチャを所有するようにします。
COleControl::SetControlSize OLE コントロールの位置とサイズを設定します。
COleControl::SetEnabled stock Enabled プロパティの値を設定します。
COleControl::SetFocus コントロールのコンテナー ウィンドウがコントロールの代わりに入力フォーカスを所有するようにします。
COleControl::SetFont ストック Font プロパティの値を設定します。
COleControl::SetForeColor ストック ForeColor プロパティの値を設定します。
COleControl::SetInitialSize コンテナーに初めて表示するときの OLE コントロールのサイズを設定します。
COleControl::SetModifiedFlag コントロールの変更された状態を変更します。
COleControl::SetNotPermitted 編集要求が失敗したことを示します。
COleControl::SetNotSupported ユーザーによるコントロールのプロパティ値の変更を禁止します。
COleControl::SetRectInContainer コントロールの四角形をコンテナーに対して相対的に設定します。
COleControl::SetText ストックテキストまたはキャプションプロパティの値を設定します。
COleControl::ThrowError OLE コントロールでエラーが発生したことを通知します。
COleControl::TransformCoords コンテナーとコントロールの間の座標値を変換します。
COleControl::TranslateColor OLE_COLOR値を COLORREF 値に変換します。
COleControl::WillAmbientsBeValidDuringLoad 次にコントロールを読み込む際にアンビエント プロパティを使用できるかどうかを決定します。
COleControl::WindowProc オブジェクトの Windows プロシージャを COleControl 提供します。

保護メソッド

名前 説明
COleControl::D rawContent コントロールの外観を更新する必要がある場合にフレームワークによって呼び出されます。
COleControl::D rawMetafile メタファイル デバイス コンテキストが使用されている場合にフレームワークによって呼び出されます。
COleControl::IsInvokeAllowed オートメーション メソッドの呼び出しを有効にします。
COleControl::SetInitialDataFormats コントロールでサポートされているデータ形式の一覧を初期化するためにフレームワークによって呼び出されます。

解説

から CWnd派生したこのクラスは、Windows ウィンドウ オブジェクトのすべての機能に加えて、イベントの発生やメソッドとプロパティをサポートする機能など、OLE に固有の追加機能を継承します。

OLE コントロールを OLE コンテナー アプリケーションに挿入し、双方向のイベント発生システムを使用してコンテナーと通信し、メソッドとプロパティをコンテナーに公開できます。 標準の OLE コンテナーでは、OLE コントロールの基本的な機能のみがサポートされることに注意してください。 OLE コントロールの拡張機能をサポートできません。 イベントの発生は、コントロールで特定のアクションが実行された結果としてイベントがコンテナーに送信されるときに発生します。 さらに、コンテナーは、C++ クラスのメンバー関数とデータ メンバーに似た、公開された一連のメソッドとプロパティを使用してコントロールと通信します。 この方法により、開発者はコントロールの外観を制御し、特定のアクションが発生したときにコンテナーに通知できます。

ウィンドウなしのコントロール

OLE コントロールは、ウィンドウなしでインプレース アクティブに使用できます。 ウィンドウレス コントロールには、次のような大きな利点があります。

  • ウィンドウレス コントロールは透明で四角形以外にすることができます

  • ウィンドウレス コントロールにより、オブジェクトのインスタンス サイズと作成時間が短縮されます

コントロールにはウィンドウは必要ありません。 ウィンドウが提供するサービスは、1 つの共有ウィンドウ (通常はコンテナー) と少しのディスパッチ コードを使用して簡単に提供できます。 ウィンドウを持つことは、ほとんどの場合、オブジェクトに不要な複雑です。

ウィンドウなしのアクティブ化を使用する場合、コンテナー (ウィンドウを含む) は、コントロールの独自のウィンドウによって提供されたサービスを提供する役割を担います。 たとえば、コントロールでキーボード フォーカスのクエリを実行したり、マウス キャプチャに対してクエリを実行したり、デバイス コンテキストを取得したりする必要がある場合、これらの操作はコンテナーによって管理されます。 ウィンドウレス操作メンバー関数は COleControl 、コンテナーに対してこれらの操作を呼び出します。

ウィンドウレスアクティブ化が有効になっている場合、コンテナーはコントロールのIOleInPlaceObjectWindowlessインターフェイス (ウィンドウレスサポート用の IOleInPlaceObject拡張機能) に入力メッセージを委任します。 COleControlこのインターフェイスの実装では、マウス座標を適切に調整した後、コントロールのメッセージ マップを介してこれらのメッセージがディスパッチされます。 これらのメッセージは、通常のウィンドウ メッセージと同様に、対応するエントリをメッセージ マップに追加することで処理できます。

ウィンドウレス コントロールでは、対応するメンバー関数や関連する CWnd Windows API 関数ではなく、常にメンバー関数を使用COleControlする必要があります。

OLE コントロール オブジェクトは、アクティブになったときにのみウィンドウを作成することもできますが、非アクティブ/アクティブ切り替えに必要な作業量が増え、切り替えの速度が低下します。 問題が発生する場合があります。たとえば、テキスト ボックスのグリッドを考えてみましょう。 列を上下にカーソルを合わせて移動する場合、各コントロールをインプレースアクティブ化してから非アクティブ化する必要があります。 非アクティブ/アクティブ切り替えの速度は、スクロール速度に直接影響します。

OLE コントロール フレームワークの開発の詳細については、「MFC ActiveX コントロール」および「概要: MFC ActiveX コントロール プログラムの作成」を参照してください。 ウィンドウなしのコントロールやちらつきのないコントロールなど、OLE コントロールの最適化については、「MFC ActiveX コントロール: 最適化」を参照してください

継承階層

CObject

CCmdTarget

CWnd

COleControl

必要条件

ヘッダー: afxctl.h

COleControl::AmbientBackColor

アンビエント BackColor プロパティの値を返します。

OLE_COLOR AmbientBackColor();

戻り値

コンテナーのアンビエント BackColor プロパティの現在の値 (存在する場合)。 このプロパティがサポートされていない場合、この関数はシステム定義の Windows 背景色を返します。

解説

アンビエント BackColor プロパティは、すべてのコントロールで使用でき、コンテナーによって定義されます。 コンテナーは、このプロパティをサポートするために必要ではないことに注意してください。

COleControl::AmbientDisplayName

コンテナーがコントロールに割り当てた名前は、ユーザーに表示されるエラー メッセージで使用できます。

CString AmbientDisplayName();

戻り値

OLE コントロールの名前。 既定値は長さ 0 の文字列です。

解説

コンテナーは、このプロパティをサポートするために必要ではないことに注意してください。

COleControl::AmbientFont

アンビエント Font プロパティの値を返します。

LPFONTDISP AmbientFont();

戻り値

コンテナーのアンビエント フォント ディスパッチ インターフェイスへのポインター。 既定値は NULL です。 戻り値が NULL と等しくない場合は、その IUnknown::Release メンバー関数を呼び出してフォントを 解放 する必要があります。

解説

アンビエント Font プロパティはコンテナーによって定義され、すべてのコントロールで使用できます。コンテナーは、このプロパティをサポートするために必要ではないことに注意してください。

COleControl::AmbientForeColor

アンビエント ForeColor プロパティの値を返します。

OLE_COLOR AmbientForeColor();

戻り値

コンテナーのアンビエント ForeColor プロパティの現在の値 (存在する場合)。 サポートされていない場合、この関数はシステム定義の Windows テキストの色を返します。

解説

アンビエント ForeColor プロパティは、すべてのコントロールで使用でき、コンテナーによって定義されます。 コンテナーは、このプロパティをサポートするために必要ではないことに注意してください。

COleControl::AmbientLocaleID

コンテナーのロケール ID を返します。

LCID AmbientLocaleID();

戻り値

コンテナーの LocaleID プロパティの値 (存在する場合)。 このプロパティがサポートされていない場合、この関数は 0 を返します。

解説

コントロールでは、LocaleID を使用して、特定のロケールに合わせてユーザー インターフェイスを調整できます。 コンテナーは、このプロパティをサポートするために必要ではないことに注意してください。

COleControl::AmbientAppearance

コントロール オブジェクトの現在の外観設定を取得します。

short AmbientAppearance();

戻り値

コントロールの外観:

  • 0 フラットな外観

  • 1 3D の外観

解説

コントロールの DISPID_AMB (メガバイト)IENT_APPEARANCE プロパティの現在の値を取得するには、この関数を呼び出します。

COleControl::AmbientScaleUnits

コンテナーで使用される単位の種類を返します。

CString AmbientScaleUnits();

戻り値

コンテナーのアンビエント ScaleUnits を含む文字列。 このプロパティがサポートされていない場合、この関数は長さ 0 の文字列を返します。

解説

コンテナーのアンビエント ScaleUnits プロパティを使用すると、twip やセンチメートルなどの選択した単位でラベル付けされた位置または寸法を表示できます。 コンテナーは、このプロパティをサポートするために必要ではないことに注意してください。

COleControl::AmbientShowGrabHandles

コンテナーがアクティブな場合に、コントロールが自身のグラブ ハンドルを表示できるかどうかを決定します。

BOOL AmbientShowGrabHandles();

戻り値

グラブ ハンドルを表示する必要がある場合は 0 以外。それ以外の場合は 0。 このプロパティがサポートされていない場合、この関数は 0 以外の値を返します。

解説

コンテナーは、このプロパティをサポートするために必要ではないことに注意してください。

COleControl::AmbientShowHatching

UI がアクティブな場合に、コンテナーがコントロール自体をハッチング パターンで表示できるかどうかを決定します。

BOOL AmbientShowHatching();

戻り値

ハッチングパターンを表示する必要がある場合は 0 以外。それ以外の場合は 0。 このプロパティがサポートされていない場合、この関数は 0 以外の値を返します。

解説

コンテナーは、このプロパティをサポートするために必要ではないことに注意してください。

COleControl::AmbientTextAlign

コントロール コンテナーで優先されるアンビエント テキストの配置を決定します。

short AmbientTextAlign();

戻り値

コンテナーのアンビエント TextAlign プロパティの状態。 このプロパティがサポートされていない場合、この関数は 0 を返します。

有効な戻り値の一覧を次に示します。

戻り値 説明
0 一般的な配置 (右側の数値、左にテキスト)。
1 左揃え
2 中央
3 右揃え

解説

このプロパティは、すべての埋め込みコントロールで使用でき、コンテナーによって定義されます。 コンテナーは、このプロパティをサポートするために必要ではないことに注意してください。

COleControl::AmbientUIDead

コンテナーがコントロールをユーザー インターフェイス アクションに応答させるかどうかを判断します。

BOOL AmbientUIDead();

戻り値

コントロールがユーザー インターフェイス アクションに応答する必要がある場合は 0 以外。それ以外の場合は 0。 このプロパティがサポートされていない場合、この関数は 0 を返します。

解説

たとえば、コンテナーでは、デザイン モードでこれを TRUE に設定できます。

COleControl::AmbientUserMode

コンテナーがデザイン モードかユーザー モードかを判断します。

BOOL AmbientUserMode();

戻り値

コンテナーがユーザー モードの場合は 0 以外。それ以外の場合は 0 (デザイン モード)。 このプロパティがサポートされていない場合、この関数は TRUE を返します。

解説

たとえば、コンテナーでは、デザイン モードでこれを FAL Standard Edition に設定できます。

COleControl::BoundPropertyChanged

バインドされたプロパティ値が変更されたことを通知します。

void BoundPropertyChanged(DISPID dispid);

パラメーター

dispid
コントロールのバインドされたプロパティのディスパッチ ID。

解説

これは、プロパティ Set メソッドを使用して変更が行われなかった場合でも、プロパティの値が変更されるたびに呼び出す必要があります。 メンバー変数にマップされるバインドされたプロパティに特に注意してください。 このようなメンバー変数が変更されるたびに、 BoundPropertyChanged 呼び出す必要があります。

COleControl::BoundPropertyRequestEdit

コントロールによって提供される IPropertyNotifySink バインドされたプロパティ値を変更するアクセス許可をインターフェイスに要求します。

BOOL BoundPropertyRequestEdit(DISPID dispid);

パラメーター

dispid
コントロールのバインドされたプロパティのディスパッチ ID。

戻り値

変更が許可されている場合は 0 以外。それ以外の場合は 0。 既定値は 0 以外です。

解説

アクセス許可が拒否された場合、コントロールはプロパティの値を変更しないようにする必要があります。 これを行うには、プロパティ値を変更しようとしたアクションを無視するか失敗します。

COleControl::ClientToParent

pPoint の座標を親座標に変換します。

virtual void ClientToParent(
    LPCRECT lprcBounds,
    LPPOINT pPoint) const;

パラメーター

lprcBounds
コンテナー内の OLE コントロールの境界へのポインター。 クライアント領域ではなく、罫線やスクロール バーを含むコントロール全体の領域。

pPoint
親 (コンテナー) の座標に変換される OLE クライアント領域へのポインター。

解説

入力 時の pPoint は、OLE コントロールのクライアント領域 (コントロールのクライアント領域の左上隅) の原点を基準とします。 出力 時の pPoint は、親の原点 (コンテナーの左上隅) を基準とします。

COleControl::ClipCaretRect

キャレット四角形が、重なり合う不透明なオブジェクトによって完全または部分的に覆われている場合に調整します。

BOOL ClipCaretRect(LPRECT lpRect);

パラメーター

lpRect
入力時に 、調整するキャレット領域を含む RECT 構造体へのポインター。 出力では、調整されたキャレット領域。キャレット四角形が完全に覆われている場合は NULL。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

キャレットは、通常、テキストまたはグラフィックスが挿入される場所を示す点滅する線、ブロック、またはビットマップです。

ウィンドウレス オブジェクトは、最初にカーソルがオブジェクトを重ねて部分的に隠れているか完全に隠れているかをチェックしないと、キャレットを安全に表示できません。 これを可能にするために、オブジェクトはキャレットをクリッピング領域に収まるように調整 (縮小) するために使用 ClipCaretRect できます。

キャレットを作成するオブジェクトは、キャレットの四角形を ClipCaretRect 送信し、キャレットに調整された四角形を使用する必要があります。 キャレットが完全に非表示の場合、このメソッドは FAL Standard Edition を返します。この場合、キャレットをまったく表示しないでください。

COleControl::COleControl

COleControl オブジェクトを構築します。

COleControl();

解説

通常、この関数は直接呼び出されません。 代わりに、OLE コントロールは通常、クラス ファクトリによって作成されます。

COleControl::ControlInfoChanged

コントロールでサポートされているニーモニックのセットが変更された場合に、この関数を呼び出します。

void ControlInfoChanged();

解説

この通知を受け取ると、コントロールのコンテナーは IOleControl::GetControlInfo を 呼び出すことによってニーモニックの新しいセットを取得します。 コンテナーは、この通知に応答する必要はありません。

COleControl::D isplayError

ストック Error イベントが処理された後にフレームワークによって呼び出されます (イベント ハンドラーがエラーの表示を抑制していない場合)。

virtual void DisplayError(
    SCODE scode,
    LPCTSTR lpszDescription,
    LPCTSTR lpszSource,
    LPCTSTR lpszHelpFile,
    UINT nHelpID);

パラメーター

Scode
報告される状態コード値。 使用可能なコードの完全な一覧については、「ActiveX コントロール: 高度なトピック」を参照してください。

lpszDescription
報告されるエラーの説明。

lpszSource
エラーを生成するモジュールの名前 (通常は OLE コントロール モジュールの名前)。

lpszHelpFile
エラーの説明を含むヘルプ ファイルの名前。

nHelpID
報告されるエラーのヘルプ コンテキスト ID。

解説

既定の動作では、lpszDescription に含まれるエラーの説明を含むメッセージ ボックスが表示されます。

エラーの表示方法をカスタマイズするには、この関数をオーバーライドします。

COleControl::D oClick

コントロールのマウス クリック 操作をシミュレートします。

void DoClick();

解説

オーバーライド可能な COleControl::OnClick メンバー関数が呼び出され、コントロールでサポートされている場合は stock Click イベントが発生します。

この関数は、DoClick と呼ばれるストック メソッドとして基底クラスで COleControl サポートされています。 詳細については、「ActiveX コントロール: メソッド」を参照してください。

COleControl::D oPropExchange

ストリームやプロパティ セットなどの永続的なストレージ表現からコントロールを読み込んだり格納したりする際に、フレームワークによって呼び出されます。

virtual void DoPropExchange(CPropExchange* pPX);

パラメーター

pPX
CPropExchange オブジェクトを指すポインターです。 フレームワークは、このオブジェクトを提供して、その方向を含むプロパティ交換のコンテキストを確立します。

解説

この関数は通常、OLE コントロールの特定の ユーザー定義プロパティを読み込んだり格納したりするために、PX_ 関数ファミリを呼び出します。

コントロール ウィザードを使用して OLE コントロール プロジェクトを作成した場合、この関数のオーバーライドされたバージョンでは、COleControl::DoPropExchange基底クラス関数の呼び出しでCOleControlサポートされるストック プロパティがシリアル化されます。 OLE コントロールにユーザー定義プロパティを追加するときは、この関数を変更して新しいプロパティをシリアル化する必要があります。 シリアル化の詳細については、「ActiveX コントロール: シリアル化」を参照してください

COleControl::D oSuperclassペイント

Windows コントロールからサブクラス化された OLE コントロールを再描画します。

void DoSuperclassPaint(
    CDC* pDC,
    const CRect& rcBounds);

パラメーター

pDC
コントロール コンテナーのデバイス コンテキストへのポインター。

rcBounds
コントロールを描画する領域。

解説

非アクティブな OLE コントロールの描画を適切に処理するには、この関数を呼び出します。 この関数は、OLE コントロールが Windows コントロールをサブクラス化し、コントロールの関数で OnDraw 呼び出す必要がある場合にのみ使用してください。

この関数と Windows コントロールのサブクラス化の詳細については、「ActiveX コントロール: Windows コントロールのサブクラス化」を参照してください

COleControl::D rawContent

コントロールの外観を更新する必要がある場合にフレームワークによって呼び出されます。

void DrawContent(
    CDC* pDC,
    CRect& rc);

パラメーター

pDC
デバイス コンテキストへのポインター。

rc
描画する四角形の領域。

解説

この関数は、オーバーライド可能な OnDraw 関数を直接呼び出します。

COleControl::D rawMetafile

メタファイル デバイス コンテキストが使用されている場合にフレームワークによって呼び出されます。

void DrawMetafile(
    CDC* pDC,
    CRect& rc);

パラメーター

pDC
メタファイル デバイス コンテキストへのポインター。

rc
描画する四角形の領域。

COleControl::EnableSimpleFrame

OLE コントロールの単純なフレーム特性を有効にします。

void EnableSimpleFrame();

解説

この特性により、コントロールは他のコントロールの視覚的な包含をサポートできますが、実際の OLE 包含はサポートできません。 たとえば、複数のコントロールが含まれたグループ ボックスがあります。 これらのコントロールは OLE に含まれていませんが、同じグループ ボックス内にあります。

COleControl::ExchangeExtent

コントロールのエクステントの状態 (HIMETRIC 単位のディメンション) をシリアル化または初期化します。

BOOL ExchangeExtent(CPropExchange* pPX);

パラメーター

pPX
CPropExchange オブジェクトへのポインター。 フレームワークは、このオブジェクトを提供して、その方向を含むプロパティ交換のコンテキストを確立します。

戻り値

関数が成功した場合は 0 以外。それ以外の場合は 0。

解説

この関数は通常、既定の実装 COleControl::DoPropExchangeで呼び出されます。

COleControl::ExchangeStockProps

コントロールのストック プロパティの状態をシリアル化または初期化します。

void ExchangeStockProps(CPropExchange* pPX);

パラメーター

pPX
CPropExchange オブジェクトへのポインター。 フレームワークは、このオブジェクトを提供して、その方向を含むプロパティ交換のコンテキストを確立します。

解説

この関数は通常、既定の実装 COleControl::DoPropExchangeで呼び出されます。

COleControl::ExchangeVersion

コントロールのバージョン情報の状態をシリアル化または初期化します。

BOOL ExchangeVersion(
    CPropExchange* pPX,
    DWORD dwVersionDefault,
    BOOL bConvert = TRUE);

パラメーター

pPX
CPropExchange オブジェクトを指すポインターです。 フレームワークは、このオブジェクトを提供して、その方向を含むプロパティ交換のコンテキストを確立します。

dwVersionDefault
コントロールの現在のバージョン番号。

bConvert
永続的なデータを保存時に最新の形式に変換するか、読み込まれたのと同じ形式でメイン変換するかを示します。

戻り値

成功した関数の 0 以外。それ以外の場合は 0。

解説

通常、これはコントロールのオーバーライドによって呼び出される最初の COleControl::DoPropExchange関数になります。 読み込み時に、この関数は永続的なデータのバージョン番号を読み取り、それに応じて CPropExchange オブジェクトの バージョン属性を 設定します。 保存時に、この関数は永続データのバージョン番号を書き込みます。

永続化とバージョン管理の詳細については、ActiveX コントロール: シリアル化に関する記事 参照してください。

COleControl::FireClick

アクティブなコントロールの上でマウスがクリックされたときにフレームワークによって呼び出されます。

void FireClick();

解説

このイベントがカスタム イベントとして定義されている場合は、イベントが発生するタイミングを決定します。

Click イベントを自動的に発生させるには、コントロールのイベント マップに Stock Click イベントが定義されている必要があります。

COleControl::FireDblClick

アクティブなコントロールの上でマウスをダブルクリックすると、フレームワークによって呼び出されます。

void FireDblClick();

解説

このイベントがカスタム イベントとして定義されている場合は、イベントが発生するタイミングを決定します。

DblClick イベントの自動起動を発生させるには、コントロールのイベント マップにストック DblClick イベントが定義されている必要があります。

COleControl::FireError

在庫エラー イベントを発生させます。

void FireError(
    SCODE scode,
    LPCTSTR lpszDescription,
    UINT nHelpID = 0);

パラメーター

Scode
報告される状態コード値。 使用可能なコードの完全な一覧については、「ActiveX コントロール: 高度なトピック」を参照してください。

lpszDescription
報告されるエラーの説明。

nHelpID
報告されるエラーのヘルプ ID。

解説

このイベントは、コード内の適切な場所で、コントロール内でエラーが発生したことを通知する方法を提供します。 Click や MouseMove などの他のストック イベントとは異なり、フレームワークによってエラーが発生することはありません。

プロパティ取得関数、プロパティ セット関数、またはオートメーション メソッド中に発生したエラーを報告するには、COleControl::ThrowError を呼び出 します

OLE コントロールの Stock Error イベントの実装では、SCODE 値を使用します。 コントロールでこのイベントを使用し、Visual Basic 4.0 で使用することを意図している場合は、Visual Basic では SCODE 値がサポートされていないため、エラーが発生します。

これを修正するには、コントロールの SCODE パラメーターを手動で変更します。ODL ファイルから .long さらに、SCODE パラメーターを使用するカスタム イベント、メソッド、またはプロパティでも同じ問題が発生します。

COleControl::FireEvent

任意の数の省略可能な引数を使用して、コントロールからユーザー定義イベントを発生させます。

void AFX_CDECL FireEvent(
    DISPID dispid,
    BYTE* pbParams,
...);

パラメーター

dispid
発生するイベントのディスパッチ ID。

pbParams
イベントのパラメーター型の記述子。

解説

通常、この関数は直接呼び出さないでください。 代わりに、コントロールのクラス宣言のイベント マップ セクションでイベント発生関数を呼び出します。

pbParams 引数は、VTS_のスペース区切りのリストです。 スペース (コンマではない) で区切られるこれらの値の 1 つ以上は、関数のパラメーター リストを指定します。 使用できる値は次のとおりです。

記号 パラメーターの型
VTS_COLOR OLE_COLOR
VTS_FONT IFontDisp*
VTS_HANDLE HWND
VTS_PICTURE IPictureDisp*
VTS_OPTEXCLUSIVE OLE_OPTEXCLUSIVE*
VTS_TRISTATE OLE_TRISTATE
VTS_XPOS_HIMETRIC OLE_XPOS_HIMETRIC
VTS_YPOS_HIMETRIC OLE_YPOS_HIMETRIC
VTS_XPOS_PIXELS OLE_XPOS_PIXELS
VTS_YPOS_PIXELS OLE_YPOS_PIXELS
VTS_XSIZE_PIXELS OLE_XSIZE_PIXELS
VTS_YSIZE_PIXELS OLE_XSIZE_PIXELS
VTS_XSIZE_HIMETRIC OLE_XSIZE_HIMETRIC
VTS_YSIZE_HIMETRIC OLE_XSIZE_HIMETRIC

Note

バリアント データ定数へのポインターを提供するVTS_FONTとVTS_PICTUREを除き、すべてのバリアント型に対して追加のバリアント定数が定義されています。 これらの定数には、VTS_P<CONSTANT-NAME 規則を使用して名前が付> けられます。 たとえば、VTS_PCOLORはVTS_COLOR定数へのポインターです。

COleControl::FireKeyDown

コントロールが UI アクティブな間にキーが押されたときにフレームワークによって呼び出されます。

void FireKeyDown(
    USHORT* pnChar,
    short nShiftState);

パラメーター

pnChar
押されたキーの仮想キー コード値へのポインター。 標準的な仮想キー コードの一覧については、Winuser.h を参照してください。

nShiftState
次のフラグの組み合わせが含まれています。

  • SHIFT_MASK アクション中に Shift キーが押されました。

  • CTRL_MASK 操作中に Ctrl キーが押されました。

  • ALT_MASK 操作中に Alt キーが押されました。

解説

このイベントがカスタム イベントとして定義されている場合は、イベントが発生するタイミングを決定します。

KeyDown イベントを自動的に発生させるには、コントロールのイベント マップにストック KeyDown イベントが定義されている必要があります。

COleControl::FireKeyPress

カスタム コントロールがコンテナー内で UI Active である間にキーが押されて離されたときにフレームワークによって呼び出されます。

void FireKeyPress(USHORT* pnChar);

パラメーター

pnChar
押されたキーの文字値へのポインター。

解説

このイベントがカスタム イベントとして定義されている場合は、イベントが発生するタイミングを決定します。

イベントの受信者は pnChar を変更できます。たとえば、すべての小文字を大文字に変換します。 変更された文字を調べる場合は、オーバーライド OnKeyPressEventします。

KeyPress イベントを自動的に発生させるには、コントロールのイベント マップにストック KeyPress イベントが定義されている必要があります。

COleControl::FireKeyUp

カスタム コントロールがコンテナー内で UI アクティブである間にキーが解放されたときにフレームワークによって呼び出されます。

void FireKeyUp(
    USHORT* pnChar,
    short nShiftState);

パラメーター

pnChar
解放されたキーの仮想キー コード値へのポインター。 標準的な仮想キー コードの一覧については、Winuser.h を参照してください。

nShiftState
次のフラグの組み合わせが含まれています。

  • SHIFT_MASK アクション中に Shift キーが押されました。

  • CTRL_MASK 操作中に Ctrl キーが押されました。

  • ALT_MASK 操作中に Alt キーが押されました。

解説

このイベントがカスタム イベントとして定義されている場合は、イベントが発生するタイミングを決定します。

KeyUp イベントを自動的に発生させるには、コントロールのイベント マップにストック KeyUp イベントが定義されている必要があります。

COleControl::FireMouseDown

アクティブなカスタム コントロールの上にマウス ボタンが押されたときにフレームワークによって呼び出されます。

void FireMouseDown(
    short nButton,
    short nShiftState,
    OLE_XPOS_PIXELS x,
    OLE_YPOS_PIXELS y);

パラメーター

nButton
押されたマウス ボタンの数値。 これには、次のいずれかの値を含めることができます。

  • LEFT_BUTTON マウスの左ボタンが押されました。

  • MIDDLE_BUTTON マウスの中央ボタンが押されました。

  • RIGHT_BUTTON マウスの右ボタンが押されました。

nShiftState
次のフラグの組み合わせが含まれています。

  • SHIFT_MASK アクション中に Shift キーが押されました。

  • CTRL_MASK 操作中に Ctrl キーが押されました。

  • ALT_MASK 操作中に Alt キーが押されました。

x
マウス ボタンが押されたときのカーソルの x 座標。 座標は、コントロール ウィンドウの左上隅を基準にしています。

y
マウス ボタンが押されたときのカーソルの y 座標。 座標は、コントロール ウィンドウの左上隅を基準にしています。

解説

このイベントがカスタム イベントとして定義されている場合は、イベントが発生するタイミングを決定します。

MouseDown イベントを自動的に発生させるには、コントロールのイベント マップにストック MouseDown イベントが定義されている必要があります。

COleControl::FireMouseMove

アクティブなカスタム コントロールの上にカーソルが移動されたときにフレームワークによって呼び出されます。

void FireMouseMove(
    short nButton,
    short nShiftState,
    OLE_XPOS_PIXELS x,
    OLE_YPOS_PIXELS y);

パラメーター

nButton
押されたマウス ボタンの数値。 次の値の組み合わせが含まれています。

  • LEFT_BUTTON 操作中にマウスの左ボタンが押されました。

  • MIDDLE_BUTTON 操作中にマウスの中央ボタンが押されました。

  • RIGHT_BUTTON 操作中にマウスの右ボタンが押されました。

nShiftState
次のフラグの組み合わせが含まれています。

  • SHIFT_MASK アクション中に Shift キーが押されました。

  • CTRL_MASK 操作中に Ctrl キーが押されました。

  • ALT_MASK 操作中に Alt キーが押されました。

x
カーソルの x 座標。 座標は、コントロール ウィンドウの左上隅を基準にしています。

y
カーソルの y 座標。 座標は、コントロール ウィンドウの左上隅を基準にしています。

解説

このイベントがカスタム イベントとして定義されている場合は、イベントが発生するタイミングを決定します。

MouseMove イベントの自動起動を発生させるには、コントロールのイベント マップにストック MouseMove イベントが定義されている必要があります。

COleControl::FireMouseUp

アクティブなカスタム コントロール上でマウス ボタンが離されたときにフレームワークによって呼び出されます。

void FireMouseUp(
    short nButton,
    short nShiftState,
    OLE_XPOS_PIXELS x,
    OLE_YPOS_PIXELS y);

パラメーター

nButton
離されたマウス ボタンの数値。 次のいずれかの値を指定できます。

  • LEFT_BUTTON マウスの左ボタンが離されました。

  • MIDDLE_BUTTON マウスの中央ボタンが離されました。

  • RIGHT_BUTTON マウスの右ボタンが離されました。

nShiftState
次のフラグの組み合わせが含まれています。

  • SHIFT_MASK アクション中に Shift キーが押されました。

  • CTRL_MASK 操作中に Ctrl キーが押されました。

  • ALT_MASK 操作中に Alt キーが押されました。

x
マウス ボタンが離されたときのカーソルの x 座標。 座標は、コントロール ウィンドウの左上隅を基準にしています。

y
マウス ボタンが離されたときのカーソルの y 座標。 座標は、コントロール ウィンドウの左上隅を基準にしています。

解説

このイベントがカスタム イベントとして定義されている場合は、イベントが発生するタイミングを決定します。

MouseUp イベントの自動起動を発生させるには、コントロールのイベント マップにストック MouseUp イベントが定義されている必要があります。

COleControl::FireReadyStateChange

コントロールの準備完了状態の現在の値を持つイベントを発生させます。

void FireReadyStateChange();

解説

準備完了状態には、次のいずれかの値を指定できます。

名前 説明
READYSTATE_UNINITIALIZED 既定の初期化状態
READYSTATE_LOADING コントロールは現在、そのプロパティを読み込んでいます
READYSTATE_LOADED コントロールが初期化されました
READYSTATE_INTERACTIVE コントロールには対話型の十分なデータがありますが、すべての非同期データがまだ読み込まれているわけではありません
READYSTATE_COMPLETE コントロールにはすべてのデータが含まれます

GetReadyState を使用して、コントロールの現在の準備状況を判断します。

InternalSetReadyState は、準備完了状態を指定された値に変更し、呼び出 FireReadyStateChangeします。

COleControl::GetActivationPolicy

インターフェイスをサポートするコントロールの既定のアクティブ化動作を IPointerInactive 変更します。

virtual DWORD GetActivationPolicy();

戻り値

POINTERINACTIVE 列挙型からのフラグの組み合わせ。 使用可能なフラグは次のとおりです。

名前 説明
POINTERINACTIVE_ACTIVATEONENTRY オブジェクトは、マウスの移動操作中にマウスがオブジェクトに入ったときにインプレースでアクティブ化する必要があります。
POINTERINACTIVE_DEACTIVATEONLEAVE オブジェクトは、マウスの移動操作中にマウスがオブジェクトから離れたときに非アクティブ化する必要があります。
POINTERINACTIVE_ACTIVATEONDRAG ドラッグ アンド ドロップ操作中にマウスをドラッグすると、オブジェクトがインプレースアクティブになります。

解説

インターフェイスがIPointerInactive有効になっている場合、コンテナーは WM_Standard Edition TCURSOR および WM_MOUStandard Edition MOVE メッセージをそのインターフェイスに委任します。 COleControlこのインターフェイスの実装では、マウス座標を適切に調整した後、コントロールのメッセージ マップを介してこれらのメッセージがディスパッチされます。

コンテナーは、サポートされている非アクティブなオブジェクトIPointerInactiveの上にマウス ポインターを持つ WM_Standard Edition TCURSOR または WM_MOUStandard Edition MOVE メッセージを受信するたびに、インターフェイスを呼び出GetActivationPolicyし、POINTERINACTIVE 列挙体からフラグを返す必要があります。

これらのメッセージは、通常のウィンドウ メッセージと同様に、対応するエントリをメッセージ マップに追加することで処理できます。 ハンドラーでは、最初に値が m_hWnd NULL 以外であることをチェックせずに、メンバー変数 (またはそれを使用するメンバー関数) を使用しないようにします。

マウス カーソルの設定やマウスの移動イベントの発生 (特別な視覚的フィードバックなど) を行うことを目的としたオブジェクトは、POINTERINACTIVE_ACTIVATEONENTRY フラグを返し、アクティブな場合にのみフィードバックを描画する必要があります。 オブジェクトがこのフラグを返した場合、コンテナーはすぐにインプレースでアクティブ化し、呼び出しをトリガーしたのと同じメッセージを転送する GetActivationPolicy必要があります。

POINTERINACTIVE_ACTIVATEONENTRYフラグとPOINTERINACTIVE_DEACTIVATEONLEAVEフラグの両方が返された場合、オブジェクトはマウスがオブジェクトの上にあるときにのみアクティブになります。 POINTERINACTIVE_ACTIVATEONENTRY フラグのみが返された場合、マウスが最初にオブジェクトに入ったときにオブジェクトは 1 回だけアクティブになります。

非アクティブなコントロールを OLE ドラッグ アンド ドロップ操作の対象にすることもできます。 この場合は、コントロールのウィンドウをドロップ ターゲットとして登録できるようにするために、ユーザーがオブジェクトをコントロール上にドラッグした時点でコントロールをアクティブにする必要があります。 ドラッグ中にアクティブ化を実行するには、POINTERINACTIVE_ACTIVATEONDRAG フラグを返します。

DWORD CMyAxCtrl::GetActivationPolicy()
{
   return POINTERINACTIVE_ACTIVATEONDRAG;
}

通信される GetActivationPolicy 情報は、コンテナーによってキャッシュされないようにする必要があります。 代わりに、このメソッドは、マウスが非アクティブなオブジェクトに入るたびに呼び出す必要があります。

非アクティブなオブジェクトがマウスの入力時にインプレース アクティブ化を要求しない場合、そのコンテナーは、オブジェクトの上にマウス ポインターが留まる限り OnInactiveSetCursor を呼び出して、後続の WM_Standard Edition TCURSOR メッセージをこのオブジェクトにディスパッチする必要があります。

IPointerInactive インターフェイスを有効にすることは、通常、コントロールが常にマウス メッセージを処理できるようにしたいことを意味します。 インターフェイスをサポート IPointerInactive していないコンテナーでこの動作を取得するには、表示されたときにコントロールを常にアクティブにする必要があります。つまり、コントロールにはその他のフラグの中に OLEMISC_ACTIVATEWHENVISIBLE フラグが必要です。 ただし、IPointerInactive がサポートされているコンテナーでこのフラグが有効にならないようにするために、OLEMISC_IGNOREACTIVATEWHENVISIBLE フラグを指定することもできます。

static const DWORD BASED_CODE _dwMyOleMisc =
    OLEMISC_ACTIVATEWHENVISIBLE |
    OLEMISC_IGNOREACTIVATEWHENVISIBLE |
    OLEMISC_SETCLIENTSITEFIRST |
    OLEMISC_INSIDEOUT |
    OLEMISC_CANTLINKINSIDE |
    OLEMISC_RECOMPOSEONRESIZE;

COleControl::GetAmbientProperty

コンテナーのアンビエント プロパティの値を取得します。

BOOL GetAmbientProperty(
    DISPID dispid,
    VARTYPE vtProp,
    void* pvProp);

パラメーター

dwDispid
目的のアンビエント プロパティのディスパッチ ID。

vtProp
pvProp返される値の型を指定するバリアント型タグ。

pvProp
プロパティ値または戻り値を受け取る変数のアドレスへのポインター。 このポインターの実際の型は、vtProp指定された型と一致する必要があります。

vtProp pvProp の種類
VT_BOOL BOOL*
VT_BSTR CString*
VT_I2 short*
VT_I4 long*
VT_R4 float*
VT_R8 double*
VT_CY CY*
VT_COLOR OLE_COLOR*
VT_DISPATCH LPDISPATCH*
VT_FONT LPFONTDISP*

戻り値

アンビエント プロパティがサポートされている場合は 0 以外。それ以外の場合は 0。

解説

アンビエント DisplayName プロパティと ScaleUnits プロパティを取得するために使用GetAmbientPropertyする場合は、vtProp を VT_BSTR に設定し、pvPropCString*. アンビエント Font プロパティを取得する場合は、vtProp を VT_FONT に設定し、pvProp を LPFONTDISP* に設定します。

AmbientBackColor や AmbientFont などの一般的なアンビエント プロパティに対して関数が既に提供されていることに注意してください

COleControl::GetAppearance

コントロールのストック外観プロパティの Get 関数を実装します。

short GetAppearance ();

戻り値

戻り値は、成功した場合、現在の外観設定を short (VT_I2) 値として指定します。 コントロールの外観がフラットの場合、この値は 0、コントロールの外観が 3D の場合は 1 です。

COleControl::GetBackColor

コントロールの stock BackColor プロパティの Get 関数を実装します。

OLE_COLOR GetBackColor();

戻り値

戻り値は、成功した場合、現在の背景色をOLE_COLOR値として指定します。 この値は、次の呼び出しを使用して COLORREF 値に TranslateColor変換できます。

COleControl::GetBorderStyle

コントロールの stock BorderStyle プロパティの Get 関数を実装します。

short GetBorderStyle();

戻り値

コントロールに通常の境界線がある場合は 1。コントロールに罫線がない場合は 0。

COleControl::GetCapture

オブジェクトに COleControl マウス キャプチャがあるかどうかを判断します。

CWnd* GetCapture();

戻り値

コントロールがアクティブでウィンドウレスの場合は、コントロールに現在マウス キャプチャがある場合は (コントロールのコンテナーによって決定されます)、キャプチャがない場合は NULL を返 this します。

それ以外の場合は、マウス キャプチャ ( CWnd と同じ) を持つオブジェクトを CWnd::GetCapture返します。

解説

アクティブ化されたウィンドウレス コントロールは、SetCapture が呼び出されたときにマウス キャプチャを受け取ります。

COleControl::GetClassID

コントロールの OLE クラス ID を取得するためにフレームワークによって呼び出されます。

virtual HRESULT GetClassID(LPCLSID pclsid) = 0;

パラメーター

pclsid
クラス ID の場所へのポインター。

戻り値

呼び出しが成功しなかった場合は 0 以外。それ以外の場合は 0。

解説

通常、IMPLEMENT_OLECREATE_EXによって実装されます。

COleControl::GetClientOffset

コントロールの四角形領域の左上隅とクライアント領域の左上隅の違いを取得します。

virtual void GetClientOffset(long* pdxOffset, long* pdyOffset) const;

パラメーター

pdxOffset
OLE コントロールのクライアント領域の水平方向のオフセットへのポインター。

pdyOffset
OLE コントロールのクライアント領域の垂直方向のオフセットへのポインター。

解説

OLE コントロールには、コンテナー内に四角形の領域があります。 コントロールのクライアント領域は、罫線とスクロール バーを除くコントロール領域です。 取得される GetClientOffset オフセットは、コントロールの四角形領域の左上隅とそのクライアント領域の左上隅の差です。 コントロールに標準の罫線とスクロール バー以外のクライアント以外の要素がある場合は、このメンバー関数をオーバーライドしてオフセットを指定します。

COleControl::GetClientRect

コントロールのクライアント領域のサイズを取得します。

virtual void GetClientRect(LPRECT lpRect) const;

パラメーター

lpRect
ウィンドウレス コントロールのクライアント領域の寸法を含む構造体への RECT ポインター。つまり、コントロールのサイズからウィンドウの境界線、フレーム、スクロール バーなどを引いた値です。 lpRect パラメーターは、コントロールの位置ではなく、コントロールのクライアント四角形のサイズを示します。

COleControl::GetClientSite

コンテナー内の現在のクライアント サイトへのポインターをオブジェクトに照会します。

LPOLECLIENTSITE GetClientSite();

戻り値

コンテナー内のコントロールの現在のクライアント サイトへのポインター。

解説

返されるポインターは、.のインスタンス IOleClientSiteを指します。 IOleClientSiteコンテナーによって実装されるインターフェイスは、オブジェクトのコンテキストのビューです。ドキュメント内にアンカーが設定され、そこでストレージ、ユーザー インターフェイス、その他のリソースが取得されます。

COleControl::GetControlFlags

コントロール フラグの設定を取得します。

virtual DWORD GetControlFlags();

戻り値

ControlFlags 列挙型のフラグの ORed の組み合わせ:

enum ControlFlags {
    fastBeginPaint = 0x0001,
    clipPaintDC = 0x0002,
    pointerInactive = 0x0004,
    noFlickerActivate = 0x0008,
    windowlessActivate = 0x0010,
    canOptimizeDraw = 0x0020,
    };

解説

既定では、⾽ GetControlFlags を返します fastBeginPaint | clipPaintDC

名前 説明
fastBeginPaint 設定されている場合は、Beginペイント API (既定で設定) ではなくOLE コントロール用に調整された begin-paint 関数を使用します。
clipPaintDC 設定されていない場合は、呼び出しの実行を無効にIntersectClipRectCOleControlし、小さな速度の利点を得られます。 ウィンドウなしのアクティブ化を使用している場合、フラグは無効になります。
pointerInactive 設定されている場合は、既定で無効になっているインターフェイスの実装IPointerInactiveCOleControl有効にすることで、コントロールが非アクティブな間にマウス操作を提供します。
noFlickerActivate 設定すると、余分な描画操作とそれに伴う視覚的なちらつきがなくなります。 コントロールが非アクティブ状態とアクティブ状態で同じように描画する場合に使用します。 ウィンドウなしのアクティブ化を使用している場合、フラグは無効になります。
windowlessActivate 設定されている場合は、コントロールでウィンドウなしのアクティブ化が使用されたことを示します。
canOptimizeDraw 設定されている場合は、コンテナーでサポートされている場合、コントロールが最適化された描画を実行することを示します。

OLE コントロールのその他の最適化の詳細についてはGetControlFlags、「ActiveX コントロール: 最適化」を参照してください

COleControl::GetControlSize

OLE コントロール ウィンドウのサイズを取得します。

void GetControlSize(
    int* pcx,
    int* pcy);

パラメーター

Pcx
コントロールの幅をピクセル単位で指定します。

pcy
コントロールの高さをピクセル単位で指定します。

解説

コントロール ウィンドウのすべての座標は、コントロールの左上隅を基準にしています。

COleControl::GetDC

ウィンドウレス オブジェクトを提供し、そのコンテナーから画面 (または互換性のある) デバイス コンテキストを取得します。

CDC* GetDC(
    LPCRECT lprcRect = NULL,
    DWORD dwFlags = OLEDC_PAINTBKGND);

パラメーター

lprcRect
ウィンドウレス コントロールが再描画する四角形へのポインター (コントロールのクライアント座標)。 NULL は、オブジェクト全体のエクステントを意味します。

dwFlags
デバイス コンテキストの描画属性。 選択肢は次のとおりです。

  • OLEDC_NODRAW オブジェクトがデバイス コンテキストを使用して描画を実行せず、ディスプレイ デバイスに関する情報を取得することだけを示します。 コンテナーは、それ以上の処理を行わずにウィンドウの DC を渡すだけです。

  • OLEDC_PAINTB (テラバイト)KGND DC を返す前に、コンテナーが背景を描画することを要求します。 オブジェクトは、透明な背景を持つ領域を再描画するために DC を要求する場合に、このフラグを使用する必要があります。

  • OLEDC_OFFSCREnterprise Edition N オブジェクトが画面にコピーする必要があるオフスクリーン ビットマップにレンダリングすることをコンテナーに通知します。 オブジェクトは、実行しようとしている描画操作で多くのちらつきが発生する場合に、このフラグを使用する必要があります。 コンテナーは、この要求を自由に受け入れます。 ただし、このフラグが設定されていない場合、コンテナーは画面上の DC を返す必要があります。 これにより、オブジェクトは(XOR 操作を介して) 選択を表示するなどの直接画面操作を実行できます。

戻り値

成功した場合はコンテナー CWnd クライアント領域の表示デバイス コンテキストへのポインター。それ以外の場合、戻り値は NULL です。 表示デバイス コンテキストは、後続の GDI 関数で使用して、コンテナーのウィンドウのクライアント領域に描画できます。

解説

描画後に コンテキストを解放するには、ReleaseDC メンバー関数を呼び出す必要があります。 呼び出し GetDC時に、オブジェクトは描画する四角形を独自のクライアント座標で渡します。 GetDC は、これらをコンテナー クライアント領域の座標に変換します。 オブジェクトは、GetClientRect を使用して取得できるサイズの、独自のクライアント領域の四角形よりも大きい必要な描画四角形を要求しないでください。 これにより、オブジェクトが意図しない場所に誤って描画されるのを防ぐことができます。

COleControl::GetEnabled

コントロールの stock Enabled プロパティの Get 関数を実装します。

BOOL GetEnabled();

戻り値

コントロールが有効な場合は 0 以外。それ以外の場合は 0。

COleControl::GetExtendedControl

プロパティの拡張セットを持つコントロールを表すコンテナーによってメインオブジェクトへのポインターを取得します。

LPDISPATCH GetExtendedControl();

戻り値

コンテナーの拡張コントロール オブジェクトへのポインター。 使用可能なオブジェクトがない場合、値は NULL です。

このオブジェクトは、その IDispatch インターフェイスを介して操作できます。 また、オブジェクトによって提供される他の使用可能なインターフェイスを取得するためにも使用 QueryInterface できます。 ただし、特定のインターフェイス セットをサポートするためにオブジェクトは必要ありません。 コンテナーの拡張コントロール オブジェクトの特定の機能に依存すると、コントロールの移植性が他の任意のコンテナーに制限されることに注意してください。

解説

この関数を呼び出す関数は、オブジェクトの終了時にポインターを解放する役割を担います。 このオブジェクトをサポートするためにコンテナーは必要ありません。

COleControl::GetFocus

オブジェクトに COleControl フォーカスがあるかどうかを判断します。

CWnd* GetFocus();

戻り値

コントロールがアクティブでウィンドウレスの場合は、コントロールに現在キーボード フォーカスがある場合は (コントロールのコンテナーによって決定されます)、フォーカスがない場合は NULL を返 this します。

それ以外の場合は、フォーカスを CWnd 持つオブジェクト (と同じ CWnd::GetFocus) を返します。

解説

アクティブ化されたウィンドウレス コントロールは、SetFocus が呼び出されたときにフォーカスを受け取ります。

COleControl::GetFont

ストック Font プロパティの Get 関数を実装します。

LPFONTDISP GetFont();

戻り値

コントロールの stock Font プロパティのフォント ディスパッチ インターフェイスへのポインター。

解説

終了したら、呼び出し元がオブジェクトを解放する必要があることに注意してください。 コントロールの実装内で、コントロールのストック Font オブジェクトにアクセスするために使用 InternalGetFont します。 コントロールでフォントを使用する方法の詳細については、「 ActiveX コントロール: ActiveX コントロールでのフォントの使用」を参照してください。

COleControl::GetFontTextMetrics

コントロールが所有するすべての CFontHolder オブジェクトのテキスト メトリックを測定します。

void GetFontTextMetrics(
    LPTEXTMETRIC lptm,
    CFontHolder& fontHolder);

パラメーター

lptm
TEXTMETRIC 構造体へのポインター。

fontHolder
CFontHolder オブジェクトへの参照。

解説

このようなフォントは、COleControl::SelectFontObject 関数を使用して選択できます。 GetFontTextMetricsは、lptm指す構造体を、成功した場合は 's フォントに関するfontHolder有効なメトリック情報を使用して初期化TEXTMETRICします。成功しなかった場合は構造体をゼロで埋めます。 埋め込まれた OLE オブジェクトと同様に 、コントロールをメタファイルにレンダリングする必要があるため、コントロールを描画するときは GetTextMetrics の代わりにこの関数を使用する必要があります。

TEXTMETRIC SelectFontObject 関数が呼び出されると、既定のフォントの構造が更新されます。 stock Font プロパティを選択した後にのみ呼び出 GetFontTextMetrics して、提供される情報が有効であることを確認する必要があります。

COleControl::GetForeColor

ストック ForeColor プロパティの Get 関数を実装します。

OLE_COLOR GetForeColor();

戻り値

戻り値は、成功した場合、現在の前景色をOLE_COLOR値として指定します。 この値は、次の呼び出しを 使用して COLORREF 値に TranslateColor変換できます。

COleControl::GetHwnd

ストック hWnd プロパティの Get 関数を実装します。

OLE_HANDLE GetHwnd();

戻り値

OLE コントロールのウィンドウ ハンドル (存在する場合)。それ以外の場合は NULL。

COleControl::GetMessageString

nID によって識別されるメニュー項目の目的を記述する短い文字列を取得するためにフレームワークによって呼び出されます。

virtual void GetMessageString(
    UINT nID,
    CString& rMessage) const;

パラメーター

nID
メニュー項目 ID。

rMessage
文字列が 返される CString オブジェクトへの参照。

解説

これを使用すると、メニュー項目が強調表示されているときにステータス バーに表示するメッセージを取得できます。 既定の実装では、nID識別される文字列リソースの読み込みが試行されます。

COleControl::GetNotSupported

ユーザーがコントロールのプロパティ値にアクセスできないようにします。

void GetNotSupported();

解説

コントロールのユーザーによるプロパティの取得がサポートされていないプロパティの Get 関数の代わりに、この関数を呼び出します。 1 つの例として、書き込み専用のプロパティがあります。

COleControl::GetReadyState

コントロールの準備状態を返します。

long GetReadyState();

戻り値

コントロールの準備状態。次のいずれかの値。

名前 説明
READYSTATE_UNINITIALIZED 既定の初期化状態
READYSTATE_LOADING コントロールは現在、そのプロパティを読み込んでいます
READYSTATE_LOADED コントロールが初期化されました
READYSTATE_INTERACTIVE コントロールには対話型の十分なデータがありますが、すべての非同期データがまだ読み込まれているわけではありません
READYSTATE_COMPLETE コントロールにはすべてのデータが含まれます

解説

ほとんどの単純なコントロールでは、LOADED と INTERACTIVE を区別する必要はありません。 ただし、データ パスのプロパティをサポートするコントロールは、少なくとも一部のデータが非同期的に受信されるまで、対話型になる準備ができていない場合があります。 コントロールは、できるだけ早く対話形式になるように試みる必要があります。

COleControl::GetRectInContainer

コンテナーに対するコントロールの四角形の座標を、デバイス単位で表して取得します。

BOOL GetRectInContainer(LPRECT lpRect);

パラメーター

lpRect
コントロールの座標がコピーされる四角形構造へのポインター。

戻り値

コントロールがインプレースアクティブの場合は 0 以外。それ以外の場合は 0。

解説

四角形は、コントロールがインプレースアクティブの場合にのみ有効です。

COleControl::GetStockTextMetrics

SelectStockFont 関数で選択できるコントロールの stock Font プロパティのテキスト メトリックを測定します。

void GetStockTextMetrics(LPTEXTMETRIC lptm);

パラメーター

lptm
TEXTMETRIC 構造体へのポインター。

解説

この関数はGetStockTextMetrics、lptm指す構造体を、成功した場合は有効なメトリック情報で初期化TEXTMETRICし、成功しなかった場合は構造体をゼロで埋めます。 埋め込まれた OLE オブジェクトと同様に 、コントロールをメタファイルにレンダリングする必要があるため、コントロールを描画するときは GetTextMetrics の代わりにこの関数を使用します。

TEXTMETRIC関数が呼び出されると、既定のフォントのSelectStockFont構造が更新されます。 この関数は、ストック フォントを選択した後にのみ呼び出して、提供される情報が有効であることを保証する必要があります。

COleControl::GetText

ストック Text プロパティまたは Caption プロパティの Get 関数を実装します。

BSTR GetText();

戻り値

コントロール テキスト文字列の現在の値。文字列がない場合は長さ 0 の文字列。

Note

BSTR データ型の詳細については、「マクロとグローバル」セクションの「データ型」を参照してください

解説

リソースを解放するには、この関数の呼び出し元が返された文字列を呼び出 SysFreeString す必要があることに注意してください。 コントロールの実装内で、コントロールのストック Text または Caption プロパティにアクセスするために使用 InternalGetText します。

COleControl::GetWindowlessDropTarget

ウィンドウレス コントロールを OLE ドラッグ アンド ドロップ操作のターゲットにする場合は、オーバーライド GetWindowlessDropTarget します。

virtual IDropTarget* GetWindowlessDropTarget();

戻り値

オブジェクト IDropTarget のインターフェイスへのポインター。 ウィンドウがないため、ウィンドウなしのオブジェクトはインターフェイスを IDropTarget 登録できません。 ただし、ドラッグ アンド ドロップに参加するために、ウィンドウなしのオブジェクトはインターフェイスを実装して返 GetWindowlessDropTargetすことができます。

解説

通常、これを行うには、コントロールのウィンドウがドロップ先として登録されている必要があります。 ただし、コントロールには独自のウィンドウがないため、コンテナーは独自のウィンドウをドロップ ターゲットとして使用します。 コントロールは、コンテナーが適切なタイミングで呼び出しを IDropTarget 委任できるインターフェイスの実装を提供するだけです。 次に例を示します。

IDropTarget *CMyAxCtrl::GetWindowlessDropTarget()
{
   m_xDropTarget.AddRef();
   return &m_xDropTarget;
}

COleControl::InitializeIIDs

コントロールが使用する IID の基底クラスに通知します。

void InitializeIIDs(
    const IID* piidPrimary,
    const IID* piidEvents);

パラメーター

piidPrimary
コントロールのプライマリ ディスパッチ インターフェイスのインターフェイス ID へのポインター。

piidEvents
コントロールのイベント インターフェイスのインターフェイス ID へのポインター。

解説

コントロールのコンストラクターでこの関数を呼び出して、コントロールが使用するインターフェイス ID を基底クラスに通知します。

COleControl::InternalGetFont

コントロールの stock Font プロパティにアクセスします。

CFontHolder& InternalGetFont();

戻り値

ストック Font オブジェクトを 含む CFontHolder オブジェクトへの参照。

COleControl::InternalGetText

コントロールのストック Text プロパティまたは Caption プロパティにアクセスします。

const CString& InternalGetText();

戻り値

コントロールテキスト文字列への参照。

COleControl::InternalSetReadyState

コントロールの準備状態を設定します。

void InternalSetReadyState(long lNewReadyState);

パラメーター

lNewReadyState
コントロールに設定する準備状態。次のいずれかの値。

名前 説明
READYSTATE_UNINITIALIZED 既定の初期化状態
READYSTATE_LOADING コントロールは現在、そのプロパティを読み込んでいます
READYSTATE_LOADED コントロールが初期化されました
READYSTATE_INTERACTIVE コントロールには対話型の十分なデータがありますが、すべての非同期データがまだ読み込まれているわけではありません
READYSTATE_COMPLETE コントロールにはすべてのデータが含まれます

解説

ほとんどの単純なコントロールでは、LOADED と INTERACTIVE を区別する必要はありません。 ただし、データ パスのプロパティをサポートするコントロールは、少なくとも一部のデータが非同期的に受信されるまで、対話型になる準備ができていない場合があります。 コントロールは、できるだけ早く対話形式になるように試みる必要があります。

COleControl::InvalidateControl

コントロール自体を強制的に再描画します。

void InvalidateControl(
    LPCRECT lpRect = NULL,
    BOOL bErase = TRUE);

パラメーター

lpRect
無効にするコントロールの領域へのポインター。

bErase
更新リージョンの処理時に、更新領域内の背景を消去するかどうかを指定します。

解説

lpRect に NULL 値がある場合は、コントロール全体が再描画されます。 lpRect が NULL でない場合は、無効にするコントロールの四角形の部分を示します。 コントロールにウィンドウがない場合、または現在アクティブでない場合、四角形は無視され、クライアント サイトの IAdviseSink::OnViewChange メンバー関数が呼び出されます。 この関数を CWnd::InvalidateRect 使用する代わりに、または InvalidateRect.

COleControl::InvalidateRgn

指定されたリージョン内のコンテナー ウィンドウのクライアント領域を無効にします。

void InvalidateRgn(CRgn* pRgn, BOOL bErase = TRUE);

パラメーター

Prgn
無効化する OLE オブジェクトの表示領域を、含むウィンドウのクライアント座標で識別する CRgn オブジェクトへのポインター。 このパラメーターが NULL の場合、エクステントはオブジェクト全体になります。

bErase
無効な領域内の背景を消去するかどうかを指定します。 TRUE の場合、背景は消去されます。 FAL Standard Edition の場合、背景メイン変更されません。

解説

これは、コンテナー内のウィンドウなしのコントロールを再描画するために使用できます。 無効化されたリージョンは、更新リージョン内の他のすべての領域と共に、次 のWM_PAINT メッセージが送信されたときに描画対象としてマークされます。

更新リージョンの任意の部分に対して bErase が TRUE の場合、指定された部分だけでなく、リージョン全体の背景は消去されます。

COleControl::IsConvertingVBX

OLE コントロールの特殊な読み込みを許可します。

BOOL IsConvertingVBX();

戻り値

コントロールが変換されている場合は 0 以外。それ以外の場合は 0。

解説

VBX コントロールを使用するフォームを OLE コントロールを使用するフォームに変換する場合は、OLE コントロールの特別な読み込みコードが必要になる場合があります。 たとえば、OLE コントロールのインスタンスを読み込む場合、次の操作でDoPropExchangePX_Font呼び出す場合があります。

PX_Font(pPX, _T("Font"), *m_pMyFont, &DefaultFont);

ただし、VBX コントロールには Font オブジェクトがありませんでした。各フォント プロパティは個別に保存されました。 この場合、次の 2 つのケースを区別するために使用 IsConvertingVBX します。

if (!IsConvertingVBX())
{
   PX_Font(pPX, _T("Font"), *m_pMyFont, &DefaultFont);
}
else
{
   PX_String(pPX, _T("FontName"), tempString, DefaultName);
   m_pMyFont->m_pFont->put_Name(tempString.AllocSysString());
   PX_Bool(pPX, _T("FontUnderline"), tempBool, DefaultValue);
   m_pMyFont->m_pFont->put_Underline(tempBool);
}

もう 1 つのケースは、VBX コントロールが (そのVBM_SAVEPROPERTY メッセージ ハンドラーで) 独自のバイナリ データを保存し、OLE コントロールがバイナリ データを別の形式で保存する場合です。 OLE コントロールを VBX コントロールと下位互換性を持たせたい場合は、VBX コントロールと OLE コントロールのどちらが読み込まれているかを区別することで、関数を使用して IsConvertingVBX 古い形式と新しい形式の両方を読み取ることができます。

コントロールのDoPropExchange関数では、この条件をチェックし、true の場合は、この変換に固有の読み込みコード (前の例など) を実行できます。 コントロールが変換されていない場合は、通常の読み込みコードを実行できます。 この機能は、対応する VBX から変換されるコントロールにのみ適用されます。

COleControl::IsInvokeAllowed

オートメーション メソッドの呼び出しを有効にします。

BOOL IsInvokeAllowed(DISPID dispid);

戻り値

コントロールが初期化されている場合は 0 以外。それ以外の場合は 0。

解説

特定のIDispatch::Invoke関数 (によってdispid識別される) が呼び出される可能性があるかどうかを判断するための呼び出しIsInvokeAllowedのフレームワークの実装。 OLE コントロールの既定の動作は、コントロールが初期化されている場合にのみオートメーション メソッドを呼び出せるようにすることです。ただし、仮想関数であり、 IsInvokeAllowed 必要に応じてオーバーライドされる可能性があります (たとえば、コントロールがオートメーション サーバーとして使用されている場合)。

COleControl::IsModified

コントロールの状態が変更されたかどうかを判断します。

BOOL IsModified();

戻り値

コントロールの状態が最後に保存されてから変更された場合は 0 以外。それ以外の場合は 0。

解説

プロパティが値を変更すると、コントロールの状態が変更されます。

COleControl::IsOptimizedDraw

コンテナーが現在の描画操作用に最適化された描画をサポートするかどうかを決定します。

BOOL IsOptimizedDraw();

戻り値

コンテナーが現在の描画操作用に最適化された描画をサポートしている場合は TRUE。それ以外の場合は FAL Standard Edition。

解説

最適化された描画がサポートされている場合、描画が完了したときに、コントロールはデバイス コンテキストに古いオブジェクト (ペン、ブラシ、フォントなど) を選択する必要はありません。

COleControl::IsSubclassedControl

コントロールが Windows コントロールをサブクラス化するかどうかを判断するためにフレームワークによって呼び出されます。

virtual BOOL IsSubclassedControl();

戻り値

コントロールがサブクラス化されている場合は 0 以外。それ以外の場合は 0。

解説

OLE コントロールが Windows コントロールをサブクラス化する場合は、この関数をオーバーライドして TRUE を返す必要があります。

COleControl::Load

非同期に読み込まれた以前のデータをリセットし、コントロールの非同期プロパティの新しい読み込みを開始します。

void Load(LPCTSTR strNewPath, CDataPathProperty& prop);

パラメーター

strNewPath
非同期コントロール プロパティの絶対位置を参照するパスを含む文字列へのポインター。

プロップ
非同期コントロール プロパティを実装する CDataPathProperty オブジェクト。

COleControl::LockInPlaceActive

コンテナーがコントロールを非アクティブ化できないようにします。

BOOL LockInPlaceActive(BOOL bLock);

パラメーター

bLock
コントロールのインプレースアクティブ状態がロックされる場合は TRUE。FAL Standard Editionロックを解除する場合。

戻り値

ロックが成功した場合は 0 以外。それ以外の場合は 0。

解説

コントロールのすべてのロックが完了したら、コントロールのロック解除とペアリングする必要があることに注意してください。 イベントの発生中など、短期間だけコントロールをロックする必要があります。

COleControl::OnAmbientPropertyChange

コンテナーのアンビエント プロパティが値を変更したときにフレームワークによって呼び出されます。

virtual void OnAmbientPropertyChange(DISPID dispid);

パラメーター

dispID
変更されたアンビエント プロパティのディスパッチ ID。複数のプロパティが変更された場合はDISPID_UNKNOWN。

COleControl::OnAppearanceChanged

ストックの Appearance プロパティ値が変更されたときにフレームワークによって呼び出されます。

virtual void OnAppearanceChanged ();

解説

このプロパティの変更後に通知する場合は、この関数をオーバーライドします。 既定の実装呼び出し InvalidateControl

COleControl::OnBackColorChanged

ストック BackColor プロパティ値が変更されたときにフレームワークによって呼び出されます。

virtual void OnBackColorChanged();

解説

このプロパティの変更後に通知する場合は、この関数をオーバーライドします。 既定の実装呼び出し InvalidateControl

COleControl::OnBorderStyleChanged

ストック BorderStyle プロパティ値が変更されたときにフレームワークによって呼び出されます。

virtual void OnBorderStyleChanged();

解説

既定の実装呼び出し InvalidateControl

このプロパティの変更後に通知する場合は、この関数をオーバーライドします。

COleControl::OnClick

マウス ボタンがクリックされたとき、または DoClick ストック メソッドが呼び出されたときにフレームワークによって呼び出されます。

virtual void OnClick(USHORT iButton);

パラメーター

Ibutton
マウス ボタンのインデックス。 次のいずれかの値になります。

  • LEFT_BUTTON マウスの左ボタンがクリックされました。

  • MIDDLE_BUTTON マウスの中央ボタンがクリックされました。

  • RIGHT_BUTTON マウスの右ボタンがクリックされました。

解説

既定の実装呼び出し COleControl::FireClick

このメンバー関数をオーバーライドして、既定の処理を変更または拡張します。

COleControl::OnClose

コンテナーがコントロール IOleControl::Close の関数を呼び出したときにフレームワークによって呼び出されます。

virtual void OnClose(DWORD dwSaveOption);

パラメーター

dwSaveOption
読み込む前にオブジェクトを保存するかどうかを示すフラグ。 有効な値は次のとおりです。

  • OLECLO Standard Edition_SAVEIFDIRTY

  • OLECLO Standard Edition_NOSAVE

  • OLECLO Standard Edition_PROMPTSAVE

解説

既定では、コントロール オブジェクトが変更され、 OnClose dwSaveOption が OLECLO Standard Edition_SAVEIFDIRTY または OLECLO Standard Edition_PROMPTSAVE の場合は保存されます。

COleControl::OnDoVerb

コンテナーがメンバー関数を呼び出すときにフレームワークによって呼び出されます IOleObject::DoVerb

virtual BOOL OnDoVerb(
    LONG iVerb,
    LPMSG lpMsg,
    HWND hWndParent,
    LPCRECT lpRect);

パラメーター

iVerb
呼び出されるコントロール動詞のインデックス。

lpMsg
動詞が呼び出される原因となった Windows メッセージへのポインター。

hWndParent
コントロールの親ウィンドウへのハンドル。 動詞の実行によってウィンドウ (またはウィンドウ) が作成される場合は、 hWndParent を親として使用する必要があります。

lpRect
コンテナーを基準にしてコントロールの座標をコピーする RECT 構造体へのポインター。

戻り値

呼び出しが成功した場合は 0 以外。それ以外の場合は 0。

解説

既定の実装では、ON_OLEVERBとON_STDOLEVERBメッセージ マップ エントリを使用して、呼び出す適切な関数を決定します。

動詞の既定の処理を変更するには、この関数をオーバーライドします。

COleControl::OnDraw

指定したデバイス コンテキストを使用して、指定した外接する四角形に OLE コントロールを描画するためにフレームワークによって呼び出されます。

virtual void OnDraw(
    CDC* pDC,
    const CRect& rcBounds,
    const CRect& rcInvalid);

パラメーター

pDC
図面が発生するデバイス コンテキスト。

rcBounds
境界線を含むコントロールの四角形領域。

rcInvalid
無効なコントロールの四角形領域。

解説

OnDraw は通常、画面表示用に呼び出され、画面デバイス コンテキストを pDC として 渡します。 rcBounds パラメーターは ターゲット デバイス コンテキスト (現在のマッピング モードを基準とする) の四角形を識別します。 rcInvalid パラメーターは、無効な実際の四角形です。 場合によっては、rcBounds よりも小さな領域になります。

COleControl::OnDrawMetafile

指定したメタファイル デバイス コンテキストを使用して、指定した外接する四角形に OLE コントロールを描画するためにフレームワークによって呼び出されます。

virtual void OnDrawMetafile(
    CDC* pDC,
    const CRect& rcBounds);

パラメーター

pDC
図面が発生するデバイス コンテキスト。

rcBounds
境界線を含むコントロールの四角形領域。

解説

既定の実装では、OnDraw 関数が呼び出されます。

COleControl::OnEdit

コントロールを UI アクティブにします。

virtual BOOL OnEdit(
    LPMSG lpMsg,
    HWND hWndParent,
    LPCRECT lpRect);

パラメーター

lpMsg
動詞を呼び出した Windows メッセージへのポインター。

hWndParent
コントロールの親ウィンドウへのハンドル。

lpRect
コンテナー内のコントロールによって使用される四角形へのポインター。

戻り値

呼び出しが成功した場合は 0 以外。それ以外の場合は 0。

解説

これは、コントロールのOLEIVERB_UIACTIVATE動詞を呼び出すのと同じ効果があります。

この関数は、通常、ON_OLEVERB メッセージ マップ エントリのハンドラー関数として使用されます。 これにより、コントロールの [オブジェクト] メニューで "Edit" 動詞を使用できるようになります。 次に例を示します。

ON_OLEVERB(AFX_IDS_VERB_EDIT, OnEdit)

COleControl::OnEnabledChanged

ストックの Enabled プロパティ値が変更されたときにフレームワークによって呼び出されます。

virtual void OnEnabledChanged();

解説

このプロパティの変更後に通知する場合は、この関数をオーバーライドします。 既定の実装では InvalidateControl が呼び出 されます

COleControl::OnEnumVerbs

コンテナーがメンバー関数を呼び出すときにフレームワークによって呼び出されます IOleObject::EnumVerbs

virtual BOOL OnEnumVerbs(LPENUMOLEVERB* ppenumOleVerb);

パラメーター

ppenumOleVerb
コントロールの動詞を IEnumOLEVERB 列挙するオブジェクトへのポインター。

戻り値

動詞が使用可能な場合は 0 以外。それ以外の場合は 0。

解説

既定の実装では、メッセージ マップ内のON_OLEVERBエントリが列挙されます。

動詞を列挙する既定の方法を変更するには、この関数をオーバーライドします。

COleControl::OnEventAdvise

イベント ハンドラーが OLE コントロールに接続されているか、OLE コントロールから切断されたときにフレームワークによって呼び出されます。

virtual void OnEventAdvise(BOOL bAdvise);

パラメーター

bAdvise
TRUE は、イベント ハンドラーがコントロールに接続されていることを示します。 FAL Standard Edition は、イベント ハンドラーがコントロールから切断されたことを示します。

COleControl::OnFontChanged

ストック Font プロパティ値が変更されたときにフレームワークによって呼び出されます。

virtual void OnFontChanged();

解説

既定の実装呼び出し COleControl::InvalidateControl。 コントロールが Windows コントロールをサブクラス化している場合、既定の実装では、WM_Standard Edition TFONT メッセージもコントロールのウィンドウに送信されます。

このプロパティの変更後に通知する場合は、この関数をオーバーライドします。

void CMyAxCtrl::OnFontChanged()
{
   // Always set it to the container's font
   if (m_MyEdit.m_hWnd != NULL)
   {
      IFontDisp *pFontDisp = NULL;
      IFont *pFont = NULL;
      HRESULT hr;

      // Get the container's FontDisp interface
      pFontDisp = AmbientFont();
      if (pFontDisp)
      {
         hr = pFontDisp->QueryInterface(IID_IFont, (LPVOID*)&pFont);
         if (FAILED(hr))
         {
            pFontDisp->Release();
            return;
         }
      }

      HFONT hFont = NULL;
      if (pFont)
      {
         pFont->get_hFont(&hFont);
         m_MyEdit.SendMessage(WM_SETFONT, (WPARAM)hFont, 0L);
      }

      pFontDisp->Release();
   }

   // Invalidate the control
   m_MyEdit.Invalidate();
   m_MyEdit.UpdateWindow();

   COleControl::OnFontChanged();
}

COleControl::OnForeColorChanged

ストック ForeColor プロパティ値が変更されたときにフレームワークによって呼び出されます。

virtual void OnForeColorChanged();

解説

既定の実装呼び出し InvalidateControl

このプロパティの変更後に通知する場合は、この関数をオーバーライドします。

COleControl::OnFreezeEvents

コンテナーの呼び出し後にフレームワークによって呼び出されます IOleControl::FreezeEvents

virtual void OnFreezeEvents(BOOL bFreeze);

パラメーター

bFreeze
コントロールのイベント処理が固定されている場合は TRUE。それ以外の場合は FAL Standard Edition。

解説

既定の実装では、何も行われません。

イベント処理がフリーズまたはフローゼン解除されたときに追加の動作が必要な場合は、この関数をオーバーライドします。

COleControl::OnGetColorSet

コンテナーがメンバー関数を呼び出すときにフレームワークによって呼び出されます IViewObject::GetColorSet

virtual BOOL OnGetColorSet(
    DVTARGETDEVICE* ptd,
    HDC hicTargetDev,
    LPLOGPALETTE* ppColorSet);

パラメーター

ptd
画像をレンダリングするターゲット デバイスをポイントします。 この値が NULL の場合、画像は既定のターゲット デバイス (通常はディスプレイ デバイス) に対してレンダリングされます。

hicTargetDev
ptd で 示されるターゲット デバイス上の情報コンテキストを指定します。 このパラメーターはデバイス コンテキストにすることができますが、必ずしも 1 つではありません。 ptd が NULL の場合hicTargetDev も NULL にする必要があります。

ppColorSet
使用する色のセットをコピーする場所へのポインター。 関数がカラー セットを返さない場合は、NULL が返されます。

戻り値

有効なカラー セットが返される場合は 0 以外。それ以外の場合は 0。

解説

コンテナーはこの関数を呼び出して、OLE コントロールを描画するために必要なすべての色を取得します。 コンテナーは、全体的なカラー パレットを設定するために必要な色と組み合わせて取得したカラー セットを使用できます。 既定の実装では FALSE が返されます。

この要求の特別な処理を実行するには、この関数をオーバーライドします。

COleControl::OnGetControlInfo

コントロールのコンテナーがコントロールに関する情報を要求したときにフレームワークによって呼び出されます。

virtual void OnGetControlInfo(LPCONTROLINFO pControlInfo);

パラメーター

pControlInfo
入力する CONTROLINFO 構造体へのポインター。

解説

この情報は、主にコントロールのニーモニック キーの説明で構成されます。 既定の実装では、pControlInfo既定の情報が入力されます。

コントロールでニーモニック キーを処理する必要がある場合は、この関数をオーバーライドします。

COleControl::OnGetDisplayString

dispid で識別されるプロパティの現在の値を表す文字列を取得するためにフレームワークによって呼び出されます。

virtual BOOL OnGetDisplayString(
    DISPID dispid,
    CString& strValue);

パラメーター

dispid
コントロールのプロパティのディスパッチ ID。

strValue
文字列が 返される CString オブジェクトへの参照。

戻り値

文字列が strValue で返された場合は 0 以外、それ以外の場合は 0。

解説

コントロールに値を文字列に直接変換できないプロパティがあり、そのプロパティの値をコンテナー指定のプロパティ ブラウザーに表示する場合は、この関数をオーバーライドします。

COleControl::OnGetInPlaceMenu

コントロールが UI アクティブ化されたときにフレームワークによって呼び出され、コンテナーの既存のメニューにマージされるメニューが取得されます。

virtual HMENU OnGetInPlaceMenu();

戻り値

コントロールのメニューのハンドル。コントロールに何も含まれていない場合は NULL。 既定の実装では、NULL が返されます。

解説

OLE リソースのマージの詳細については、メニューとリソース (OLE) に関する記事を参照してください。

COleControl::OnGetNaturalExtent

コンテナー IViewObjectEx::GetNaturalExtent の要求に応答してフレームワークによって呼び出されます。

virtual BOOL OnGetNaturalExtent(
    DWORD dwAspect,
    LONG lindex,
    DVTARGETDEVICE* ptd,
    HDC hicTargetDev,
    DVEXTENTINFO* pExtentInfo,
    LPSIZEL psizel);

パラメーター

dwAspect
オブジェクトがどのように表示されるかを指定します。 表現には、コンテンツ、アイコン、サムネイル、または印刷されたドキュメントが含まれます。 有効な値は、列挙型 DVASPECT またはDVASPECT2から取得されます。

lindex
対象となるオブジェクトの部分。 現在、-1 のみが有効です。

ptd
オブジェクトのサイズを 返すターゲット デバイスを定義する DVTARGETDEVICE 構造体を指します。

hicTargetDev
オブジェクトがデバイス メトリックを抽出し、デバイスの機能を テストできる ptd パラメーターによって示されるターゲット デバイスの情報コンテキストを指定します。 ptd が NULL の場合、オブジェクトは hicTargetDev パラメーターの値を無視する必要があります。

pExtentInfo
サイズ変更データを DVEXTENTINFO 指定する構造体を指します。 構造は DVEXTENTINFO 次のとおりです。

typedef struct tagExtentInfo
{
    UINT cb;
    DWORD dwExtentMode;
    SIZEL sizelProposed;
}   DVEXTENTINFO;

構造体メンバー dwExtentMode は、次の 2 つの値のいずれかを受け取ることができます。

  • DVEXTENT_CONTENT コンテンツに合わせてコントロールの大きさを問い合わせる (スナップサイズ)

  • DVEXTENT_INTEGRAL サイズを変更する場合は、提案されたサイズを制御に渡します

psizel
コントロールによって返されるサイズ変更データを指します。 返されるサイズ変更データは、調整されなかったディメンションに対して -1 に設定されます。

戻り値

正常にサイズを返すか、サイズを調整する場合は 0 以外。それ以外の場合は 0。

解説

この関数をオーバーライドして、構造体内の提案されたサイズに最も近いオブジェクトの表示サイズとテント モードをDVEXTENTINFO返します。 既定の実装は FAL Standard Edition を返し、サイズを調整しません。

COleControl::OnGetPredefinedStrings

プロパティの使用可能な値を表す定義済みの文字列のセットを取得するためにフレームワークによって呼び出されます。

virtual BOOL OnGetPredefinedStrings(
    DISPID dispid,
    CStringArray* pStringArray,
    CDWordArray* pCookieArray);

パラメーター

dispid
コントロールのプロパティのディスパッチ ID。

pStringArray
戻り値を格納する文字列配列。

pCookieArray
戻り値を格納する DWORD 配列。

戻り値

要素が pStringArray および pCookieArray追加されている場合は 0 以外。

解説

文字列で表すことができる一連の可能な値を持つプロパティがコントロールにある場合は、この関数をオーバーライドします。 pStringArray に追加された各要素について、対応する "cookie" 要素を pCookieArray に追加する必要があります。これらの "cookie" 値は、後でフレームワークによって関数にCOleControl::OnGetPredefinedValue渡される可能性があります。

COleControl::OnGetPredefinedValue

のオーバーライド COleControl::OnGetPredefinedStringsによって以前に返された定義済みの文字列のいずれかに対応する値を取得するためにフレームワークによって呼び出されます。

virtual BOOL OnGetPredefinedValue(
    DISPID dispid,
    DWORD dwCookie,
    VARIANT* lpvarOut);

パラメーター

dispid
コントロールのプロパティのディスパッチ ID。

dwCookie
のオーバーライド COleControl::OnGetPredefinedStringsによって以前に返された Cookie 値。

lpvarOut
プロパティ値が VARIANT 返される構造体へのポインター。

戻り値

lpvarOut で値が返された場合は 0 以外、それ以外の場合は 0。

COleControl::OnGetViewExtent

コンテナー の IViewObject2::GetExtent 要求に応答してフレームワークによって呼び出されます。

virtual BOOL OnGetViewExtent(
    DWORD dwDrawAspect,
    LONG lindex,
    DVTARGETDEVICE* ptd,
    LPSIZEL lpsizel);

パラメーター

dwDrawAspect
表示するオブジェクトのフォームまたは側面を記述する DWORD。 有効な値は、列挙型 DVASPECT またはDVASPECT2から取得されます。

lindex
対象となるオブジェクトの部分。 現在、-1 のみが有効です。

ptd
オブジェクトのサイズを 返すターゲット デバイスを定義する DVTARGETDEVICE 構造体を指します。

lpsizel
オブジェクトのサイズが返される場所を指します。

戻り値

エクステント情報が正常に返された場合は 0 以外。それ以外の場合は 0。

解説

コントロールで 2 パス描画を使用し、不透明な部分と透明な部分の寸法が異なる場合は、この関数をオーバーライドします。

COleControl::OnGetViewRect

コンテナー IViewObjectEx::GetRect の要求に応答してフレームワークによって呼び出されます。

virtual BOOL OnGetViewRect(DWORD dwAspect, LPRECTL pRect);

パラメーター

dwAspect
表示するオブジェクトのフォームまたは側面を記述する DWORD。 有効な値は、列挙型 DVASPECT またはDVASPECT2から取得されます。

  • オブジェクト全体の外接する四角形をDVASPECT_CONTENTします。 オブジェクトの原点の左上隅と、返される GetViewExtent範囲と等しいサイズ。

  • DVASPECT_OPAQUE長方形の不透明領域を持つオブジェクトは、その四角形を返します。 他のユーザーは失敗します。

  • DVASPECT_TRANSPARENT 透明または不規則な部分をすべてカバーする四角形。

pRect
オブジェクトを 描画する四角形を指定する RECTL 構造体を指します。 このパラメーターは、オブジェクトの配置とストレッチを制御します。

戻り値

オブジェクトに合わせてサイズ設定された四角形が正常に返された場合は 0 以外。それ以外の場合は 0。

解説

オブジェクトのサイズは、特定の位置から始まる四角形に変換 OnGetViewRect されます (既定値はディスプレイの左上隅です)。 コントロールで 2 パス描画を使用し、不透明な部分と透明な部分の寸法が異なる場合は、この関数をオーバーライドします。

COleControl::OnGetViewStatus

コンテナー IViewObjectEx::GetViewStatus の要求に応答してフレームワークによって呼び出されます。

virtual DWORD OnGetViewStatus();

戻り値

成功した場合の VIEWSTATUS 列挙の値の 1 つ。それ以外の場合は 0。 使用できる値は、次の任意の組み合わせです。

名前 説明
VIEWSTATUS_OPAQUE オブジェクトは完全に不透明です。 このビットが設定されていない場合、オブジェクトには透明な部分が含まれます。 このビットはコンテンツ関連の側面にのみ適用され、DVASPECT_ICONやDVASPECT_DOCPRINTには適用されません。
VIEWSTATUS_SOLIDBKGND オブジェクトには、(ブラシ パターンではなく、単色で構成される) 単色の背景があります。 このビットは、VIEWSTATUS_OPAQUEが設定され、コンテンツ関連の側面にのみ適用され、DVASPECT_ICONやDVASPECT_DOCPRINTには適用されない場合にのみ意味があります。
VIEWSTATUS_DVASPECTOPAQUE オブジェクトはDVASPECT_OPAQUEをサポートしています。 描画の側面をパラメーターとして受け取る IViewObjectEx メソッドはすべて、この側面で呼び出すことができます。
VIEWSTATUS_DVASPECTTRANSPARENT オブジェクトはDVASPECT_TRANSPARENTをサポートします。 描画の側面をパラメーターとして受け取るすべての IViewObjectEx メソッドは、この側面を使用して呼び出すことができます。

解説

コントロールが 2 パス描画を使用している場合は、この関数をオーバーライドします。 既定の実装では、VIEWSTATUS_OPAQUEが返されます。

COleControl::OnHideToolBars

コントロールが UI 非アクティブ化されたときにフレームワークによって呼び出されます。

virtual void OnHideToolBars();

解説

実装では、表示 OnShowToolbarsされているすべてのツール バーを非表示にする必要があります。

COleControl::OnInactiveMouseMove

WM_MOUStandard Edition MOVE メッセージの受信時に、マウス ポインターの下にある非アクティブなオブジェクトのコンテナーによって呼び出されます。

virtual void OnInactiveMouseMove(
    LPCRECT lprcBounds,
    long x,
    long y,
    DWORD dwKeyState);

パラメーター

lprcBounds
オブジェクトの外接する四角形 (含まれているウィンドウのクライアント座標)。 WM_MOUStandard Edition MOVE メッセージを受信したときに、画面上の正確な位置とサイズをオブジェクトに通知します。

x
含まれているウィンドウのクライアント座標におけるマウス位置の x 座標。

y
含まれているウィンドウのクライアント座標におけるマウス位置の y 座標。

dwKeyState
キーボードのキーボード修飾子キーの現在の状態を識別します。 有効な値には、任意のフラグ MK_CONTROL、MK_SHIFT、MK_ALT、MK_BUTTON、MK_LBUTTON、MK_MB (メガバイト)UTTON、およびMK_RBUTTONの組み合わせを指定できます。

解説

ウィンドウ クライアント座標 (ピクセル) は、マウス カーソルの位置を渡すために使用されることに注意してください。 これは、オブジェクトの外接する四角形を同じ座標系で渡すことによっても可能になります。

COleControl::OnInactiveSetCursor

WM_Standard Edition TCURSOR メッセージの受信時に、マウス ポインターの下にある非アクティブなオブジェクトのコンテナーによって呼び出されます。

virtual BOOL OnInactiveSetCursor(
    LPCRECT lprcBounds,
    long x,
    long y,
    DWORD dwMouseMsg,
    BOOL bSetAlways);

パラメーター

lprcBounds
オブジェクトの外接する四角形 (含まれているウィンドウのクライアント座標)。 WM_Standard Edition TCURSOR メッセージを受信したときに、画面上の正確な位置とサイズをオブジェクトに通知します。

x
含まれているウィンドウのクライアント座標におけるマウス位置の x 座標。

y
含まれているウィンドウのクライアント座標におけるマウス位置の y 座標。

dwMouseMsg
WM_Standard Edition TCURSOR が発生したマウス メッセージの識別子。

bSetAlways
オブジェクトがカーソルを設定する必要があるかどうかを指定します。 TRUE の場合、オブジェクトはカーソルを設定する必要があります。FAL Standard Editionの場合、カーソルはカーソルを設定する義務を負いません。その場合はS_FALStandard Editionを返す必要があります。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

ウィンドウ クライアント座標 (ピクセル) は、マウス カーソルの位置を渡すために使用されることに注意してください。 これは、オブジェクトの外接する四角形を同じ座標系で渡すことによっても可能になります。

COleControl::OnKeyDownEvent

ストック KeyDown イベントが処理された後にフレームワークによって呼び出されます。

virtual void OnKeyDownEvent(
    USHORT nChar,
    USHORT nShiftState);

パラメーター

nChar
押されたキーの仮想キー コード値。 標準的な仮想キー コードの一覧については、Winuser.h を参照してください。

nShiftState
次のフラグの組み合わせが含まれています。

  • SHIFT_MASK アクション中に Shift キーが押されました。

  • CTRL_MASK 操作中に Ctrl キーが押されました。

  • ALT_MASK 操作中に Alt キーが押されました。

解説

イベントが発生した後にコントロールがキー情報にアクセスする必要がある場合は、この関数をオーバーライドします。

COleControl::OnKeyPressEvent

ストック KeyPress イベントが発生した後、フレームワークによって呼び出されます。

virtual void OnKeyPressEvent(USHORT nChar);

パラメーター

nChar
押されたキーの仮想キー コード値を格納します。 標準的な仮想キー コードの一覧については、Winuser.h を参照してください。

解説

nChar 値がコンテナーによって変更されている可能性があることに注意してください。

このイベントが発生した後に通知する場合は、この関数をオーバーライドします。

COleControl::OnKeyUpEvent

ストック KeyDown イベントが処理された後にフレームワークによって呼び出されます。

virtual void OnKeyUpEvent(
    USHORT nChar,
    USHORT nShiftState);

パラメーター

nChar
押されたキーの仮想キー コード値。 標準的な仮想キー コードの一覧については、Winuser.h を参照してください。

nShiftState
次のフラグの組み合わせが含まれています。

  • SHIFT_MASK アクション中に Shift キーが押されました。

  • CTRL_MASK 操作中に Ctrl キーが押されました。

  • ALT_MASK 操作中に Alt キーが押されました。

解説

イベントが発生した後にコントロールがキー情報にアクセスする必要がある場合は、この関数をオーバーライドします。

COleControl::OnMapPropertyToPage

指定したプロパティの編集を実装するプロパティ ページのクラス ID を取得するために、フレームワークによって呼び出されます。

virtual BOOL OnMapPropertyToPage(
    DISPID dispid,
    LPCLSID lpclsid,
    BOOL* pbPageOptional);

パラメーター

dispid
コントロールのプロパティのディスパッチ ID。

lpclsid
クラス ID が返される構造体への CLSID ポインター。

pbPageOptional
指定したプロパティ ページの使用が省略可能かどうかを示すインジケーターを返します。

戻り値

クラス ID が lpclsid返された場合は 0 以外、それ以外の場合は 0。

解説

コンテナーのプロパティ ブラウザーからコントロールのプロパティ ページを呼び出す方法を提供するには、この関数をオーバーライドします。

COleControl::OnMnemonic

OLE コントロールのニーモニック キーが押されたことをコンテナーが検出したときにフレームワークによって呼び出されます。

virtual void OnMnemonic(LPMSG pMsg);

パラメーター

Pmsg
ニーモニック キーの押下時に生成された Windows メッセージへのポインター。

COleControl::OnProperties

コントロールのプロパティ動詞がコンテナーによって呼び出されたときにフレームワークによって呼び出されます。

virtual BOOL OnProperties(
    LPMSG lpMsg,
    HWND hWndParent,
    LPCRECT lpRect);

パラメーター

lpMsg
動詞を呼び出した Windows メッセージへのポインター。

hWndParent
コントロールの親ウィンドウへのハンドル。

lpRect
コンテナー内のコントロールによって使用される四角形へのポインター。

戻り値

呼び出しが成功した場合は 0 以外。それ以外の場合は 0。

解説

既定の実装では、モーダル プロパティ ダイアログ ボックスが表示されます。

この関数を使用して、コントロールのプロパティ ページを表示することもできます。 関数をOnProperties呼び出し、hWndParent パラメーターでコントロールの親のハンドルを渡します。 この場合、lpMsg パラメーターと lpRect パラメーターの値は無視されます。

COleControl::OnQueryHitPoint

コンテナー IViewObjectEx::QueryHitPoint の要求に応答してフレームワークによって呼び出されます。

virtual BOOL OnQueryHitPoint(
    DWORD dwAspect,
    LPCRECT pRectBounds,
    POINT ptlLoc,
    LONG lCloseHint,
    DWORD* pHitResult);

パラメーター

dwAspect
オブジェクトの表現方法を指定します。 有効な値は、列挙型 DVASPECT またはDVASPECT2から取得されます。

pRectBounds
OLE コントロール クライアント領域の外接する四角形を指定する構造体への RECT ポインター。

ptlLoc
ヒットにPOINTチェックするポイントを指定する構造体へのポインター。 ポイントは OLE クライアント領域座標で指定されます。

lCloseHint
ヒットに対してチェックポイントに対する "近接" を定義する距離。

pHitResult
ヒット クエリの結果へのポインター。 次のいずれかの値:

  • HITRESULT_OUTSIDE ptlLoc は OLE オブジェクトの外側にあり、閉じません。

  • HITRESULT_TRANSPARENT ptlLoc は OLE オブジェクトの境界内にありますが、イメージに近くはありません。 たとえば、透明な円の中央にある点をHITRESULT_TRANSPARENTできます。

  • HITRESULT_CLOStandard Edition ptlLoc は OLE オブジェクトの内側または外側にありますが、オブジェクトの内側と見なされるのに十分に近いです。 小さい、薄い、または詳細なオブジェクトでは、この値を使用できます。 ポイントがオブジェクトの外接する四角形の外側にある場合でも、その点は閉じられている可能性があります (これは小さなオブジェクトにヒットするために必要です)。

  • ptlLoc HITRESULT_HITオブジェクトのイメージ内にあります。

戻り値

ヒット結果が正常に返された場合は 0 以外。それ以外の場合は 0。 ヒットは、OLE コントロールの表示領域と重複しています。

解説

オブジェクトの表示四角形が指定されたポイントと重なる (ポイントにヒットする) かどうかをクエリします。 QueryHitPoint は、四角形以外のオブジェクトのヒットをテストするためにオーバーライドできます。

COleControl::OnQueryHitRect

コンテナー IViewObjectEx::QueryHitRect の要求に応答してフレームワークによって呼び出されます。

virtual BOOL OnQueryHitRect(
    DWORD dwAspect,
    LPCRECT pRectBounds,
    LPCRECT prcLoc,
    LONG lCloseHint,
    DWORD* pHitResult);

パラメーター

dwAspect
オブジェクトがどのように表示されるかを指定します。 有効な値は、列挙型 DVASPECT またはDVASPECT2から取得されます。

pRectBounds
OLE コントロール クライアント領域の外接する四角形を指定する構造体への RECT ポインター。

prcLoc
オブジェクトのRECT左上隅を基準にして、ヒットにチェックする四角形 (オブジェクトの四角形と重なり合う) を指定する構造体へのポインター。

lCloseHint
使用しません。

pHitResult
ヒット クエリの結果へのポインター。 次のいずれかの値:

  • HITRESULT_OUTSIDE、四角形内のポイントが OLE オブジェクトにヒットしません。

  • 四角形HITRESULT_HIT少なくとも 1 つのポイントがオブジェクトにヒットします。

戻り値

ヒット結果が正常に返された場合は 0 以外。それ以外の場合は 0。

解説

オブジェクトの表示四角形が、指定された四角形内の任意のポイントと重なる (四角形にヒットする) かどうかをクエリします。 QueryHitRect は、四角形以外のオブジェクトのヒットをテストするためにオーバーライドできます。

COleControl::OnRenderData

指定した形式のデータを取得するためにフレームワークによって呼び出されます。

virtual BOOL OnRenderData(
    LPFORMATETC lpFormatEtc,
    LPSTGMEDIUM lpStgMedium);

パラメーター

lpFormatEtc
情報が要求される形式を指定する FORMATETC 構造体を参照します。

lpStgMedium
データが返される STGMEDIUM 構造体を参照します。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

指定した形式は、遅延レンダリングの DelayRenderData メンバー関数または DelayRenderFileData メンバー関数を使用して、コントロール オブジェクトに以前に配置された形式です。 この関数の既定の実装は、それぞれ、指定されたストレージ メディアがファイルまたはメモリである場合に呼び出しますOnRenderFileDataOnRenderGlobalData。 要求された形式がCF_METAFILEPICTまたは永続的なプロパティ セット形式の場合、既定の実装では適切なデータがレンダリングされ、0 以外の値が返されます。 それ以外の場合は、0 を返し、何もしません。

lpStgMedium-tymed がTYMED_NULLされている場合は、lpFormatEtc-tymed> で指定されたとおりに STGMEDIUM を割り当てて入力する必要があります。> TYMED_NULLしない場合は、STGMEDIUM にデータを入力する必要があります。

この関数をオーバーライドして、要求された形式とメディアでデータを提供します。 データによっては、代わりにこの関数の他のバージョンの 1 つをオーバーライドすることもできます。 データが小さく、サイズが固定されている場合は、OnRenderGlobalData をオーバーライドします。 データがファイル内にある場合、またはサイズが可変の場合は、OnRenderFileData をオーバーライドします。

詳細については、Windows SDK の FORMATETC 構造を STGMEDIUM 参照してください。

COleControl::OnRenderFileData

ストレージ メディアがファイルである場合に、指定した形式のデータを取得するためにフレームワークによって呼び出されます。

virtual BOOL OnRenderFileData(
    LPFORMATETC lpFormatEtc,
    CFile* pFile);

パラメーター

lpFormatEtc
情報が要求される形式を指定する FORMATETC 構造体を参照します。

pFile
データがレンダリングされる CFile オブジェクトを参照します。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

指定された形式は、遅延レンダリングの DelayRenderData メンバー関数を使用して、コントロール オブジェクトに以前に配置された形式です。 この関数の既定の実装では、単に FALSE が返されます。

この関数をオーバーライドして、要求された形式とメディアでデータを提供します。 データによっては、代わりにこの関数の他のバージョンの 1 つをオーバーライドすることもできます。 複数のストレージ メディアを処理する場合は、オーバーライド OnRenderDataします。 データがファイル内にある場合、またはサイズが可変の場合は、OnRenderFileData をオーバーライドします。

詳細については、Windows SDK の FORMATETC 構造を参照してください。

COleControl::OnRenderGlobalData

指定したストレージ メディアがグローバル メモリである場合に、指定した形式でデータを取得するために、フレームワークによって呼び出されます。

virtual BOOL OnRenderGlobalData(
    LPFORMATETC lpFormatEtc,
    HGLOBAL* phGlobal);

パラメーター

lpFormatEtc
情報が要求される形式を指定する FORMATETC 構造体を参照します。

phGlobal
データが返されるグローバル メモリへのハンドルを参照します。 メモリが割り当てられていない場合、このパラメーターは NULL にすることができます。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

指定された形式は、遅延レンダリングの DelayRenderData メンバー関数を使用して、コントロール オブジェクトに以前に配置された形式です。 この関数の既定の実装では、単に FALSE が返されます。

phGlobal が NULL の場合は、新しい HGLOBAL を割り当て、phGlobal で返す必要があります。 それ以外の場合は、phGlobal によって指定された HGLOBAL にデータを入力する必要があります。 HGLOBAL に配置されるデータの量は、メモリ ブロックの現在のサイズを超えてはなりません。 また、ブロックをより大きなサイズに再割り当てすることはできません。

この関数をオーバーライドして、要求された形式とメディアでデータを提供します。 データによっては、代わりにこの関数の他のバージョンの 1 つをオーバーライドすることもできます。 複数のストレージ メディアを処理する場合は、オーバーライド OnRenderDataします。 データがファイル内にある場合、またはサイズが可変の場合は、OnRenderFileData をオーバーライドします。

詳細については、Windows SDK の FORMATETC 構造を参照してください。

COleControl::OnResetState

コントロールのプロパティを既定値に設定する必要がある場合に、フレームワークによって呼び出されます。

virtual void OnResetState();

解説

既定の実装では DoPropExchange を呼び出し、プロパティを既定値に設定するオブジェクトを渡CPropExchangeします。

コントロール ライターは、このオーバーライド可能な OLE コントロールの初期化コードを挿入できます。 この関数は、IPersistStream::Load または IPersistStorage::Load が失敗した場合、または IPersistStreamInit::InitNew または IPersistStorage::InitNew が最初に呼び出されずに呼び出された場合に呼び出IPersistStream::LoadIPersistStorage::Loadされます。

COleControl::OnSetClientSite

コンテナーがコントロール IOleControl::SetClientSite の関数を呼び出したときにフレームワークによって呼び出されます。

virtual void OnSetClientSite();

解説

既定では、 OnSetClientSite データ パスのプロパティが読み込まれるかどうか、および読み込まれる場合は呼び出しDoDataPathPropExchangeがチェックされます。

この通知の特別な処理を実行するには、この関数をオーバーライドします。 特に、この関数のオーバーライドは基底クラスを呼び出す必要があります。

COleControl::OnSetData

コントロールのデータを指定されたデータに置き換えるためにフレームワークによって呼び出されます。

virtual BOOL OnSetData(
    LPFORMATETC lpFormatEtc,
    LPSTGMEDIUM lpStgMedium,
    BOOL bRelease);

パラメーター

lpFormatEtc
データの形式を 指定する FORMATETC 構造体へのポインター。

lpStgMedium
データが 存在する STGMEDIUM 構造体へのポインター。

bRelease
コントロールがストレージ メディアを解放する必要がある場合は TRUE。FAL Standard Editionコントロールがストレージ メディアを解放しないようにする必要がある場合。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

データが永続的なプロパティ セット形式の場合、既定の実装では、それに応じてコントロールの状態が変更されます。 それ以外の場合、既定の実装では何も行われません。 bRelease が TRUE の場合、呼び出しが行われます。それ以外の場合は実行ReleaseStgMediumされません。

コントロールのデータを指定したデータに置き換えるには、この関数をオーバーライドします。

詳細については、Windows SDK の FORMATETC 構造を STGMEDIUM 参照してください。

COleControl::OnSetExtent

IOleObject::SetExtent の呼び出しの結果として、コントロールのエクステントを変更する必要がある場合に フレームワークによって呼び出されます

virtual BOOL OnSetExtent(LPSIZEL lpSizeL);

パラメーター

lpSizeL
長整数を SIZEL 使用して、HIMETRIC 単位で表されるコントロールの幅と高さを表す構造体へのポインター。

戻り値

サイズの変更が受け入れられた場合は 0 以外。それ以外の場合は 0。

解説

既定の実装では、コントロールのエクステントのサイズ変更が処理されます。 コントロールがインプレース アクティブの場合は、コンテナー OnPosRectChanged の呼び出しが行われます。

コントロールの既定のサイズ変更を変更するには、この関数をオーバーライドします。

COleControl::OnSetObjectRects

IOleInPlaceObject::SetObjectRects の呼び出しを実装するために フレームワークによって呼び出されます

virtual BOOL OnSetObjectRects(
    LPCRECT lpRectPos,
    LPCRECT lpRectClip);

パラメーター

lpRectPos
コンテナーに対する RECT コントロールの新しい位置とサイズを示す構造体へのポインター。

lpRectClip
コントロールを RECT クリップする四角形の領域を示す構造体へのポインター。

戻り値

位置変更が受け入れられた場合は 0 以外。それ以外の場合は 0。

解説

既定の実装では、コントロール ウィンドウの位置変更とサイズ変更が自動的に処理され、TRUE が返されます。

この関数の既定の動作を変更するには、この関数をオーバーライドします。

COleControl::OnShowToolBars

コントロールが UI アクティブ化されたときにフレームワークによって呼び出されます。

virtual void OnShowToolBars();

解説

既定の実装では、何も行われません。

COleControl::OnTextChanged

ストック キャプションまたは Text プロパティ値が変更されたときにフレームワークによって呼び出されます。

virtual void OnTextChanged();

解説

既定の実装呼び出し InvalidateControl

このプロパティの変更後に通知する場合は、この関数をオーバーライドします。

COleControl::OnWindowlessMessage

コンテナー IOleInPlaceObjectWindowless::OnWindowMessage の要求に応答してフレームワークによって呼び出されます。

virtual BOOL OnWindowlessMessage(
    UINT msg,
    WPARAM wParam,
    LPARAM lParam,
    LRESULT* plResult);

パラメーター

msg
Windows によって渡されるメッセージ識別子。

wParam
Windows によって渡されます。 追加のメッセージ固有の情報を指定します。 このパラメーターの内容は、msg パラメーターの値によって異なります。

lParam
Windows によって渡されます。 追加のメッセージ固有の情報を指定します。 このパラメーターの内容は、msg パラメーターの値によって異なります。

plResult
Windows の結果コード。 メッセージ処理の結果を指定し、送信されるメッセージに依存します。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

ウィンドウレス コントロールのウィンドウ メッセージを処理します。 COleControl's OnWindowlessMessage は、マウス メッセージやキーボード メッセージ以外のウィンドウ メッセージに使用する必要があります。 COleControl には、 ウィンドウレス OLE オブジェクトのマウス キャプチャとキーボード フォーカスを取得するための SetCaptureと SetFocus が用意されています。

ウィンドウなしのオブジェクトにはウィンドウがないため、コンテナーがメッセージをディスパッチできるようにするメカニズムが必要です。 ウィンドウレス OLE オブジェクトは、インターフェイス上IOleInPlaceObjectWindowlessのメソッド (ウィンドウレスサポート用の IOleInPlaceObject拡張機能) を介してOnWindowMessage、コンテナーからメッセージを取得します。 OnWindowMessage はパラメーターを HWND 受け取りません。

COleControl::P arentToClient

pPoint の座標をクライアント座標に変換します。

virtual UINT ParentToClient(
    LPCRECT lprcBounds,
    LPPOINT pPoint,
    BOOL bHitTest = FALSE) const;

パラメーター

lprcBounds
コンテナー内の OLE コントロールの境界へのポインター。 クライアント領域ではなく、罫線やスクロール バーを含むコントロール全体の領域。

pPoint
コントロールのクライアント領域の座標に変換される親 (コンテナー) ポイントへのポインター。

bHitTest
ヒット テストをポイントで実行するかどうかを指定します。

戻り値

bHitTest が FAL Standard Edition の場合は HTNOWHERE を返します。 bHitTest が TRUE の場合は、OLE コントロールのクライアント領域に親 (コンテナー) ポイントが配置され、次のいずれかのマウス ヒット テスト値が返されます。

  • H TB (テラバイト)ORDER サイズ変更罫線のないウィンドウの境界線内。

  • H TB (テラバイト)OTTOM ウィンドウの下の水平境界線内。

  • H TB (テラバイト)OTTOMLEFT ウィンドウの境界線の左下隅。

  • H TB (テラバイト)OTTOMRIGHT ウィンドウの境界線の右下隅に表示されます。

  • HTCAPTION タイトル バー領域。

  • HTCLIENT クライアント領域。

  • HTERROR 画面の背景またはウィンドウ間の分割線上 (WINDOWS 関数がエラーを示すシステム ビープ音を生成する点 DefWndProc を除き、HTNOWHERE と同じです)。

  • HTGROWBOX サイズ ボックス内。

  • HTHSCROLL 水平スクロール バー。

  • HTLEFT ウィンドウの左罫線内。

  • [最大化] ボタンの HTMAXBUTTON。

  • HTMENU メニュー領域。

  • 最小化ボタンの HTMINBUTTON。

  • HTNOWHERE 画面の背景またはウィンドウ間の分割線上。

  • [最小化] ボタン内の HTREDUCE。

  • HTRIGHT ウィンドウの右側の境界線。

  • HTSIZE サイズ ボックス (HTGROWBOX と同じ)。

  • HTSYSMENU コントロール メニューまたは子ウィンドウの [閉じる] ボタン。

  • HTTOP ウィンドウの上の水平境界線。

  • HTTOPLEFT ウィンドウの境界線の左上隅。

  • HTTOPRIGHT ウィンドウの境界線の右上隅。

  • HTTRANSPARENT 現在別のウィンドウでカバーされているウィンドウ内。

  • HTVSCROLL 垂直スクロール バー。

  • [最大化] ボタンの HTZOOM。

解説

入力 時の pPoint は、親の原点 (コンテナーの左上隅) を基準とします。 出力 時の pPoint は、OLE コントロールのクライアント領域 (コントロールのクライアント領域の左上隅) の原点を基準とします。

COleControl::P ostModalDialog

モーダル ダイアログ ボックスが閉じられたことをコンテナーに通知します。

void PostModalDialog(HWND hWndParent = NULL);

パラメーター

hWndParent
モーダル ダイアログ ボックスの親ウィンドウへのハンドル。

解説

モーダル ダイアログ ボックスを表示した後、この関数を呼び出します。 この関数を呼び出して、コンテナーで無効になっている PreModalDialog最上位のウィンドウを有効にする必要があります。 この関数は、次の呼び出し PreModalDialogとペアにする必要があります。

COleControl::P reModalDialog

モーダル ダイアログ ボックスが表示されようとしていることをコンテナーに通知します。

void PreModalDialog(HWND hWndParent = NULL);

パラメーター

hWndParent
モーダル ダイアログ ボックスの親ウィンドウへのハンドル。

解説

モーダル ダイアログ ボックスを表示する前に、この関数を呼び出します。 コンテナーが最上位のすべてのウィンドウを無効にできるように、この関数を呼び出す必要があります。 モーダル ダイアログ ボックスが表示されたら、次に呼び出す PostModalDialog必要があります。

COleControl::RecreateControlWindow

コントロールのウィンドウを破棄して再作成します。

void RecreateControlWindow();

解説

これは、ウィンドウのスタイル ビットを変更する必要がある場合に必要になる場合があります。

COleControl::Refresh

OLE コントロールを強制的に再描画します。

void Refresh();

解説

この関数は、Refresh と呼ばれるストック メソッドとして基底クラスで COleControl サポートされています。 これにより、OLE コントロールのユーザーは、特定の時刻にコントロールを再描画できます。 このメソッドの詳細については、「ActiveX コントロール: メソッド」を参照してください。

COleControl::ReleaseCapture

マウス キャプチャを解放します。

BOOL ReleaseCapture();

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

コントロールに現在マウス キャプチャがある場合、キャプチャは解放されます。 それ以外の場合、この関数は効果がありません。

COleControl::ReleaseDC

ウィンドウレス コントロールのコンテナーの表示デバイス コンテキストを解放し、他のアプリケーションで使用するデバイス コンテキストを解放します。

int ReleaseDC(CDC* pDC);

パラメーター

pDC
解放するコンテナー デバイス コンテキストを識別します。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

アプリケーションは、GetDC の呼び出しごとに呼び出ReleaseDC必要があります。

COleControl::ReparentControlWindow

コントロールの親を設定します。

virtual void ReparentControlWindow(
    HWND hWndOuter,
    HWND hWndParent);

パラメーター

hWndOuter
コントロール ウィンドウのハンドル。

hWndParent
新しい親ウィンドウのハンドル。

解説

コントロール ウィンドウの親をリセットするには、この関数を呼び出します。

COleControl::ResetStockProps

ストック プロパティの状態を COleControl 既定値に初期化します。

void ResetStockProps();

解説

プロパティは、Appearance、BackColor、BorderStyle、Caption、Enabled、Font、ForeColor、hWnd、Text です。 ストック プロパティの詳細については、「ActiveX コントロール: ストック プロパティの追加」を参照してください

を使用ResetStockPropsResetVersionしてオーバーライドすることで、コントロールのバイナリ初期化のパフォーマンスを向上させることができますCOleControl::OnResetState。 次の例を見てください。 初期化の最適化の詳細については、「ActiveX コントロール: 最適化」を参照してください

void CMyAxCtrl::OnResetState()
{
   ResetVersion(MAKELONG(_wVerMinor, _wVerMajor));
   ResetStockProps();

   // initialize custom properties here
}

COleControl::ResetVersion

バージョン番号を指定した値に初期化します。

void ResetVersion(DWORD dwVersionDefault);

パラメーター

dwVersionDefault
コントロールに割り当てるバージョン番号。

解説

を使用ResetVersionResetStockPropsしてオーバーライドすることで、コントロールのバイナリ初期化のパフォーマンスを向上させることができますCOleControl::OnResetState。 ResetStockProps の例を参照してください。 初期化の最適化の詳細については、「ActiveX コントロール: 最適化」を参照してください

COleControl::ScrollWindow

ウィンドウなしの OLE オブジェクトが、画面上のインプレースアクティブイメージ内の領域をスクロールできるようにします。

void ScrollWindow(
    int xAmount,
    int yAmount,
    LPCRECT lpRect = NULL,
    LPCRECT lpClipRect = NULL);

パラメーター

xAmount
水平スクロールの量をデバイス単位で指定します。 左にスクロールするには、このパラメーターに負の値を指定する必要があります。

yAmount
垂直方向のスクロールの量をデバイス単位で指定します。 このパラメーターは、上にスクロールするには負の値である必要があります。

lpRect
スクロールする OLE オブジェクトの クライアント領域の部分を、含むウィンドウのクライアント座標で指定する CRect オブジェクトまたは RECT 構造体を指します。 lpRect が NULL の場合、OLE オブジェクトのクライアント領域全体がスクロールされます。

lpClipRect
クリップ先の CRect 四角形を指定するオブジェクトまたは RECT 構造体を指します。 四角形内のピクセルのみがスクロールされます。 四角形の外側のビットは、lpRect 四角形内にある場合でも影響を受けません。 lpClipRect が NULL の場合、スクロール四角形に対してクリッピングは実行されません。

COleControl::SelectFontObject

デバイス コンテキストにフォントを選択します。

CFont* SelectFontObject(
    CDC* pDC,
    CFontHolder& fontHolder);

パラメーター

pDC
デバイス コンテキスト オブジェクトへのポインター。

fontHolder
選択するフォントを 表す CFontHolder オブジェクトへの参照。

戻り値

以前に選択したフォントへのポインター。 呼び出し元が fontHolder を使用するすべての描画操作を完了したら、CDC::SelectObject にパラメーターとして渡して、以前に選択したフォントを再選択する必要があります。

COleControl::SelectStockFont

デバイス コンテキストにストック Font プロパティを選択します。

CFont* SelectStockFont(CDC* pDC);

パラメーター

pDC
フォントを選択するデバイス コンテキスト。

戻り値

以前に選択した CFont オブジェクトへのポインター。 完了したら、CDC::SelectObject を使用して、このフォントをデバイス コンテキストに戻して選択する必要があります。

COleControl::SerializeExtent

コントロールに割り当てられている表示領域の状態をシリアル化または初期化します。

void SerializeExtent(CArchive& ar);

パラメーター

ar
CArchiveシリアル化の対象またはシリアル化の対象となるオブジェクト。

解説

を使用SerializeExtentSerializeStockPropsSerializeVersionして、およびオーバーライドすることで、コントロールのバイナリ永続化のパフォーマンスを向上させることができます。COleControl::Serialize 次の例を見てください。 初期化の最適化の詳細については、「ActiveX コントロール: 最適化」を参照してください

void CMyAxCtrl::Serialize(CArchive &ar)
{
   SerializeVersion(ar, MAKELONG(_wVerMinor, _wVerMajor));
   SerializeExtent(ar);
   SerializeStockProps(ar);

   if (ar.IsStoring())
   { // storing code
   }
   else
   { // loading code
   }
}

COleControl::SerializeStockProps

ストック プロパティ ( COleControl Appearance、BackColor、BorderStyle、Caption、Enabled、Font、ForeColor、Text) の状態をシリアル化または初期化します。

void SerializeStockProps(CArchive& ar);

パラメーター

ar
CArchiveシリアル化の対象またはシリアル化の対象となるオブジェクト。

解説

ストック プロパティの詳細については、「ActiveX コントロール: ストック プロパティの追加」を参照してください

を使用SerializeStockPropsSerializeExtentSerializeVersionして、およびオーバーライドすることで、コントロールのバイナリ永続化のパフォーマンスを向上させることができます。COleControl::Serialize 例については、SerializeExtent のコードを参照してください。 初期化の最適化の詳細については、「ActiveX コントロール: 最適化」を参照してください

COleControl::SerializeVersion

コントロールのバージョン情報の状態をシリアル化または初期化します。

DWORD SerializeVersion(
    CArchive& ar,
    DWORD dwVersionDefault,
    BOOL bConvert = TRUE);

パラメーター

ar
CArchiveシリアル化の対象またはシリアル化の対象となるオブジェクト。

dwVersionDefault
コントロールの現在のバージョン番号。

bConvert
永続的なデータを保存時に最新の形式に変換するか、読み込み時と同じ形式でメインに変換するかを示します。

戻り値

コントロールのバージョン番号。 指定したアーカイブが読み込まれている場合は、 SerializeVersion そのアーカイブから読み込まれたバージョンを返します。 それ以外の場合は、現在読み込まれているバージョンが返されます。

解説

を使用SerializeVersionSerializeExtentSerializeStockPropsして、およびオーバーライドすることで、コントロールのバイナリ永続化のパフォーマンスを向上させることができます。COleControl::Serialize 例については、SerializeExtent のコードを参照してください。 初期化の最適化の詳細については、「ActiveX コントロール: 最適化」を参照してください

COleControl::SetAppearance

コントロールのストックの Appearance プロパティ値を設定します。

void SetAppearance (short sAppearance);

パラメーター

sAppearance
コントロールの short 外観に使用する (VT_I2) 値。 値が 0 の場合、コントロールの外観はフラットに設定され、値 1 はコントロールの外観を 3D に設定します。

解説

ストック プロパティの詳細については、「ActiveX コントロール: プロパティ」を参照してください

COleControl::SetBackColor

コントロールのストック BackColor プロパティ値を設定します。

void SetBackColor(OLE_COLOR dwBackColor);

パラメーター

dwBackColor
コントロールの背景描画に使用するOLE_COLOR値。

解説

このプロパティとその他の関連プロパティの使用の詳細については、「ActiveX コントロール: プロパティ」を参照してください。

COleControl::SetBorderStyle

コントロールのストック BorderStyle プロパティ値を設定します。

void SetBorderStyle(short sBorderStyle);

パラメーター

sBorderStyle
コントロールの新しい境界線スタイル。0 は罫線がないことを示し、1 は通常の罫線を示します。

解説

その後、コントロール ウィンドウが再作成され、 OnBorderStyleChanged 呼び出されます。

COleControl::SetCapture

コントロールのコンテナー ウィンドウがコントロールの代わりにマウス キャプチャを所有するようにします。

CWnd* SetCapture();

戻り値

以前にマウス入力を CWnd 受け取ったウィンドウ オブジェクトへのポインター。

解説

コントロールがアクティブでウィンドウレスの場合、この関数はコントロールの代わりに、コントロールのコンテナー ウィンドウにマウス キャプチャを所有させます。 それ以外の場合、この関数により、コントロール自体がマウス キャプチャを所有します (と同 CWnd::SetCaptureじ)。

COleControl::SetControlSize

OLE コントロール ウィンドウのサイズを設定し、コントロール サイトが変更されていることをコンテナーに通知します。

BOOL SetControlSize(int cx, int cy);

パラメーター

cx
コントロールの新しい幅をピクセル単位で指定します。

cy
コントロールの新しい高さをピクセル単位で指定します。

戻り値

呼び出しが成功した場合は 0 以外。それ以外の場合は 0。

解説

この関数は、コントロールのコンストラクターでは使用しないでください。

コントロール ウィンドウのすべての座標は、コントロールの左上隅を基準にしています。

COleControl::SetEnabled

コントロールのストック Enabled プロパティ値を設定します。

void SetEnabled(BOOL bEnabled);

パラメーター

bEnabled
コントロールを有効にする場合は TRUE。それ以外の場合は FAL Standard Edition。

解説

このプロパティを設定すると、 OnEnabledChange 呼び出されます。

COleControl::SetFocus

コントロールのコンテナー ウィンドウがコントロールの代わりに入力フォーカスを所有するようにします。

CWnd* SetFocus();

戻り値

以前に入力フォーカスを CWnd 持っていたウィンドウ オブジェクトへのポインター。そのようなウィンドウがない場合は NULL。

解説

コントロールがアクティブでウィンドウレスの場合、この関数により、コントロールの代わりに、コントロールのコンテナー ウィンドウが入力フォーカスを取得します。 入力フォーカスにより、キーボード入力がコンテナーのウィンドウに送られ、コンテナーは後続のすべてのキーボード メッセージを呼び出す SetFocusOLE オブジェクトにディスパッチします。 以前に入力フォーカスが設定されていたウィンドウでは、そのウィンドウは失われます。

コントロールがウィンドウレスでない場合、この関数によってコントロール自体が入力フォーカスを取得します (同じ CWnd::SetFocus)。

COleControl::SetFont

コントロールのストック Font プロパティを設定します。

void SetFont(LPFONTDISP pFontDisp);

パラメーター

pFontDisp
フォント ディスパッチ インターフェイスへのポインター。

COleControl::SetForeColor

コントロールのストック ForeColor プロパティ値を設定します。

void SetForeColor(OLE_COLOR dwForeColor);

パラメーター

dwForeColor
コントロールの前景描画に使用するOLE_COLOR値。

解説

このプロパティとその他の関連プロパティの使用の詳細については、「ActiveX コントロール: プロパティ」を参照してください。

COleControl::SetInitialDataFormats

コントロールでサポートされているデータ形式の一覧を初期化するためにフレームワークによって呼び出されます。

virtual void SetInitialDataFormats();

解説

既定の実装では、CF_METAFILEPICTと永続的なプロパティ セットの 2 つの形式を指定します。

COleControl::SetInitialSize

コンテナーに初めて表示するときの OLE コントロールのサイズを設定します。

void SetInitialSize(
    int cx,
    int cy);

パラメーター

cx
OLE コントロールの初期幅 (ピクセル単位)。

cy
OLE コントロールの初期高さ (ピクセル単位)。

解説

コンストラクターでこの関数を呼び出して、コントロールの初期サイズを設定します。 初期サイズは、デバイス単位またはピクセル単位で測定されます。 この呼び出しは、コントロールのコンストラクターで行うことをお勧めします。

COleControl::SetModifiedFlag

コントロールの変更された状態を変更します。

void SetModifiedFlag(BOOL bModified = TRUE);

パラメーター

bModified
コントロールの変更されたフラグの新しい値。 TRUE は、コントロールの状態が変更されたことを示します。FAL Standard Edition は、コントロールの状態が保存されたことを示します。

解説

コントロールの永続的な状態に影響する変更が発生するたびに、この関数を呼び出します。 たとえば、永続的なプロパティの値が変更された場合は、bModifiedTRUE でこの関数を呼び出します。

COleControl::SetNotPermitted

編集要求が失敗したことを示します。

void SetNotPermitted();

解説

失敗した場合は、この関数を BoundPropertyRequestEdit 呼び出します。 この関数は、set 操作が許可されなかったことを示す型 COleDispScodeException の例外をスローします。

COleControl::SetNotSupported

ユーザーによるコントロールのプロパティ値の変更を禁止します。

void SetNotSupported();

解説

コントロールのユーザーによるプロパティ値の変更がサポートされていないプロパティの Set 関数の代わりに、この関数を呼び出します。 1 つの例として、読み取り専用のプロパティがあります。

COleControl::SetRectInContainer

コントロールの四角形の座標を、デバイス単位で表されたコンテナーに対して相対的に設定します。

BOOL SetRectInContainer(LPCRECT lpRect);

パラメーター

lpRect
コンテナーに対するコントロールの新しい座標を含む四角形へのポインター。

戻り値

呼び出しが成功した場合は 0 以外。それ以外の場合は 0。

解説

コントロールが開いている場合は、サイズが変更されます。それ以外の場合は、コンテナーの OnPosRectChanged 関数が呼び出されます。

COleControl::SetText

コントロールのストック Caption プロパティまたは Text プロパティの値を設定します。

void SetText(LPCTSTR pszText);

パラメーター

pszText
文字列へのポインター。

解説

ストック Caption プロパティと Text プロパティはどちらも同じ値にマップされることに注意してください。 つまり、いずれかのプロパティに加えられた変更によって、両方のプロパティが自動的に変更されます。 一般に、コントロールはストック Caption プロパティまたは Text プロパティをサポートする必要がありますが、両方はサポートしません。

COleControl::ThrowError

コントロールでエラーが発生した場合に通知します。

void ThrowError(
    SCODE sc,
    UINT nDescriptionID,
    UINT nHelpID = -1);

void ThrowError(
    SCODE sc,
    LPCTSTR pszDescription = NULL,
    UINT nHelpID = 0);

パラメーター

Sc
報告される状態コード値。 使用可能なコードの完全な一覧については、「ActiveX コントロール: 高度なトピック」を参照してください。

nDescriptionID
報告される例外の文字列リソース ID。

nHelpID
報告されるトピックのヘルプ ID。

pszDescription
報告される例外の説明を含む文字列。

解説

この関数は、OLE プロパティの Get または Set 関数、または OLE オートメーション メソッドの実装内からのみ呼び出す必要があります。 他の時点で発生したエラーを通知する必要がある場合は、在庫エラー イベントを発生させる必要があります。

COleControl::TransformCoords

HIMETRIC 単位とコンテナーのネイティブ単位の間で座標値を変換します。

void TransformCoords(
    POINTL* lpptlHimetric,
    POINTF* lpptfContainer,
    DWORD flags);

パラメーター

lpptlHimetric
HIMETRIC 単位の POINTL 座標を含む構造体へのポインター。

lpptfContainer
コンテナーの POINTF 単位サイズの座標を含む構造体へのポインター。

flags
次の値の組み合わせ。

  • XFORMCOORDS_POSITIONコンテナー内の位置。

  • XFORMCOORDS_SIZEコンテナー内のサイズ。

  • XFORMCOORDS_HIMETRICTOCONTAINER HIMETRIC 単位をコンテナーの単位に変換します。

  • XFORMCOORDS_CONTAINERTOHIMETRIC コンテナーの単位を HIMETRIC 単位に変換します。

解説

最初の 2 つのフラグ (XFORMCOORDS_POSITIONとXFORMCOORDS_SIZE) は、座標を位置またはサイズとして扱う必要があるかどうかを示します。 再メイン 2 つのフラグは、変換の方向を示します。

COleControl::TranslateColor

色の値をOLE_COLORデータ型から COLORREF データ型に変換します。

COLORREF TranslateColor(
    OLE_COLOR clrColor,
    HPALETTE hpal = NULL);

パラメーター

clrColor
OLE_COLORデータ型。 詳細については、Windows OleTranslateColor 関数を参照してください。

hpal
オプションのパレットへのハンドル。には NULL を指定できます。

戻り値

デバイスが表すことができる clrColor 値に最も近い純色を定義する RGB (赤、緑、青) の 32 ビットカラー値。

解説

この関数は、ストックの ForeColor プロパティと BackColor プロパティを CDC メンバー関数で使用される COLORREF 型に変換する場合に便利です。

COleControl::WillAmbientsBeValidDuringLoad

その後永続的な状態から読み込まれるときに、コントロールでアンビエント プロパティの値を既定値として使用するかどうかを決定します。

BOOL WillAmbientsBeValidDuringLoad();

戻り値

0 以外は、アンビエント プロパティが有効であることを示します。それ以外の場合、アンビエント プロパティは無効になります。

解説

一部のコンテナーでは、オーバーライド COleControl::DoPropExchangeの最初の呼び出し中に、コントロールがそのアンビエント プロパティにアクセスできない場合があります。 これは、コンテナーが IOleObject::SetClientSite を呼び出す前に IPersistStreamInit::Load または IPersistStorage::Load を呼び出す場合です (つまり、OLEMISC_Standard Edition TCLIENTSITEFIRST 状態ビットを受け入れない場合)。

COleControl::WindowProc

オブジェクトの Windows プロシージャを COleControl 提供します。

virtual LRESULT WindowProc(
    UINT message,
    WPARAM wParam,
    LPARAM lParam);

パラメーター

message
処理する Windows メッセージを指定します。

wParam
メッセージの処理に使用される追加情報を提供します。 パラメーター値はメッセージによって異なります。

lParam
メッセージの処理に使用される追加情報を提供します。 パラメーター値はメッセージによって異なります。

戻り値

ディスパッチされたメッセージの戻り値。

解説

コントロールのメッセージ マップを介して特定のメッセージをディスパッチするには、この関数を呼び出します。

関連項目

MFC サンプル CIRC3
MFC サンプル TESTHELP
COlePropertyPage クラス
CWnd クラス
階層図
CFontHolder クラス
CPictureHolder クラス