CComControlBase クラス
このクラスには、ATL コントロールを作成および管理するためのメソッドが用意されています。
重要
このクラスとそのメンバーは、Windows ランタイムで実行するアプリケーションで使用することはできません。
構文
class ATL_NO_VTABLE CComControlBase
メンバー
パブリック typedef
名前 | 説明 |
---|---|
CComControlBase::AppearanceType | m_nAppearance ストック プロパティが short 型ではない場合は、オーバーライドします。 |
パブリック コンストラクター
名前 | 説明 |
---|---|
CComControlBase::CComControlBase | コンストラクター。 |
CComControlBase::~CComControlBase | デストラクター。 |
パブリック メソッド
名前 | 説明 |
---|---|
CComControlBase::ControlQueryInterface | 要求されたインターフェイスへのポインターを取得します。 |
CComControlBase::DoesVerbActivate | IOleObjectImpl::DoVerb によって使用される iVerb パラメーターが、コントロールのユーザー インターフェイスをアクティブ化するか (iVerb は OLEIVERB_UIACTIVATE と等しい)、ユーザーがコントロールをダブルクリックした場合に取られるアクションを定義するか (iVerb は OLEIVERB_PRIMARY と等しい)、コントロールを表示するか (iVerb は OLEIVERB_SHOW と等しい)、コントロールをアクティブ化するか (iVerb は OLEIVERB_INPLACEACTIVATE と等しい) をチェックします。 |
CComControlBase::DoesVerbUIActivate | IOleObjectImpl::DoVerb によって使用される iVerb パラメーターによって、コントロールのユーザー インターフェイスがアクティブ化され、TRUE が返されることを確認します。 |
CComControlBase::DoVerbProperties | コントロールのプロパティ ページを表示します。 |
CComControlBase::FireViewChange | このメソッドを呼び出して、コンテナーにコントロールを再描画するよう伝えるか、登録済みのアドバイス シンクにコントロールのビューが変更されたことを通知します。 |
CComControlBase::GetAmbientAppearance | コントロールの現在の外観設定 (フラットの場合は 0、3D の場合は 1) である DISPID_AMBIENT_APPEARANCE を取得します。 |
CComControlBase::GetAmbientAutoClip | コンテナーでコントロールの表示領域の自動クリッピングをサポートするかどうかを示すフラグである DISPID_AMBIENT_AUTOCLIP を取得します。 |
CComControlBase::GetAmbientBackColor | コンテナーによって定義されている、すべてのコントロールのアンビエント背景色である DISPID_AMBIENT_BACKCOLOR を取得します。 |
CComControlBase::GetAmbientCharSet | コンテナーによって定義されている、すべてのコントロールのアンビエント文字セットである DISPID_AMBIENT_CHARSET を取得します。 |
CComControlBase::GetAmbientCodePage | コンテナーによって定義されている、すべてのコントロールのアンビエント文字セットである DISPID_AMBIENT_CODEPAGE を取得します。 |
CComControlBase::GetAmbientDisplayAsDefault | コンテナーで、このサイトのコントロールが既定のボタンとしてマークされた場合に TRUE となるフラグである DISPID_AMBIENT_DISPLAYASDEFAULT を取得します。そのため、ボタン コントロールはそれ自体が太線のフレームで描画される必要があります。 |
CComControlBase::GetAmbientDisplayName | コンテナーでコントロールに指定した名前である DISPID_AMBIENT_DISPLAYNAME を取得します。 |
CComControlBase::GetAmbientFont | コンテナーのアンビエント IFont インターフェイスへのポインターを取得します。 |
CComControlBase::GetAmbientFontDisp | コンテナーのアンビエント IFontDisp ディスパッチ インターフェイスへのポインターを取得します。 |
CComControlBase::GetAmbientForeColor | コンテナーによって定義されている、すべてのコントロールのアンビエント前景色である DISPID_AMBIENT_FORECOLOR を取得します。 |
CComControlBase::GetAmbientLocaleID | コンテナーによって使用される言語の識別子である DISPID_AMBIENT_LOCALEID を取得します。 |
CComControlBase::GetAmbientMessageReflect | コンテナーでウィンドウ メッセージ (WM_DRAWITEM など) をイベントとして受け取るかどうかを示すフラグである DISPID_AMBIENT_MESSAGEREFLECT を取得します。 |
CComControlBase::GetAmbientPalette | コンテナーの HPALETTE にアクセスするために使用される DISPID_AMBIENT_PALETTE を取得します。 |
CComControlBase::GetAmbientProperty | id で指定されたコンテナー プロパティを取得します。 |
CComControlBase::GetAmbientRightToLeft | コンテナーによって表示されるコンテンツの向きである DISPID_AMBIENT_RIGHTTOLEFT を取得します。 |
CComControlBase::GetAmbientScaleUnits | ディスプレイのラベル付けのためにコンテナーのアンビエント単位 (インチやセンチなど) である DISPID_AMBIENT_SCALEUNITS を取得します。 |
CComControlBase::GetAmbientShowGrabHandles | コンテナーで、コントロールがアクティブなときにそれ自体のグラブ ハンドルを表示できるかどうかを示すフラグである DISPID_AMBIENT_SHOWGRABHANDLES を取得します。 |
CComControlBase::GetAmbientShowHatching | UI がアクティブなときに、コンテナーによってハッチ パターンを使用してコントロールがそれ自体を表示できるかどうかを示すフラグである DISPID_AMBIENT_SHOWHATCHING を取得します。 |
CComControlBase::GetAmbientSupportsMnemonics | コンテナーでキーボード ニーモニックをサポートするかどうかを示すフラグである DISPID_AMBIENT_SUPPORTSMNEMONICS を取得します。 |
CComControlBase::GetAmbientTextAlign | コンテナーで優先されるテキスト配置である DISPID_AMBIENT_TEXTALIGN を取得します。一般的な配置 (右に数値、左にテキスト) の場合は 0、左揃えの場合は 1、中央揃えの場合は 2、右揃えの場合は 3 です。 |
CComControlBase::GetAmbientTopToBottom | コンテナーによって表示されるコンテンツの向きである DISPID_AMBIENT_TOPTOBOTTOM を取得します。 |
CComControlBase::GetAmbientUIDead | コンテナーがコントロールでユーザー インターフェイス アクションに応答させるかどうかを示すフラグである DISPID_AMBIENT_UIDEAD を取得します。 |
CComControlBase::GetAmbientUserMode | コンテナーが実行モード (TRUE) かデザイン モード (FALSE) かを示すフラグである DISPID_AMBIENT_USERMODE を取得します。 |
CComControlBase::GetDirty | データ メンバー m_bRequiresSave の値を返します。 |
CComControlBase::GetZoomInfo | インプレース編集用にアクティブ化されたコントロールのズーム ファクターの分子と分母の x と y の値を取得します。 |
CComControlBase::InPlaceActivate | コントロールを非アクティブ状態から iVerb の動詞が示す状態に遷移します。 |
CComControlBase::InternalGetSite | このメソッドを呼び出して、識別されたインターフェイスへのポインターをコントロール サイトにクエリします。 |
CComControlBase::OnDraw | コントロールを描画するには、このメソッドをオーバーライドします。 |
CComControlBase::OnDrawAdvanced | 既定の OnDrawAdvanced では、描画用に正規化されたデバイス コンテキストが準備され、コントロール クラスの OnDraw メソッドが呼び出されます。 |
CComControlBase::OnKillFocus | コントロールがインプレース アクティブであり、有効なコントロール サイトを持っている場合は、コントロールがフォーカスを失ったことをコンテナーに通知します。 |
CComControlBase::OnMouseActivate | UI がユーザー モードであるか確認し、コントロールをアクティブにします。 |
CComControlBase::OnPaint | コンテナーで描画の準備を行い、コントロールのクライアント領域を取得してから、コントロール クラスの OnDraw メソッドを呼び出します。 |
CComControlBase::OnSetFocus | コントロールがインプレース アクティブであり、有効なコントロール サイトを持っている場合は、コントロールがフォーカスを取得したとコンテナーに通知します。 |
CComControlBase::PreTranslateAccelerator | 独自のキーボード アクセラレータ ハンドラーを提供するには、このメソッドをオーバーライドします。 |
CComControlBase::SendOnClose | コントロールが閉じられたことを、アドバイス ホルダーに登録されているすべてのアドバイザリ シンクに通知します。 |
CComControlBase::SendOnDataChange | コントロール データが変更されたことを、アドバイス ホルダーに登録されているすべてのアドバイザリ シンクに通知します。 |
CComControlBase::SendOnRename | コントロールに新しいモニカーがあることを、アドバイス ホルダーに登録されているすべてのアドバイザリ シンクに通知します。 |
CComControlBase::SendOnSave | コントロールが保存されたことを、アドバイス ホルダーに登録されているすべてのアドバイザリ シンクに通知します。 |
CComControlBase::SendOnViewChange | 登録済みのすべてのアドバイザリ シンクに、コントロールのビューが変更されたことを通知します。 |
CComControlBase::SetControlFocus | コントロールとの間でキーボード フォーカスを設定または削除します。 |
CComControlBase::SetDirty | データ メンバー m_bRequiresSave を、bDirty の値に設定します。 |
パブリック データ メンバー
名前 | 説明 |
---|---|
CComControlBase::m_bAutoSize | コントロールを他のサイズにできないことを示すフラグ。 |
CComControlBase::m_bDrawFromNatural | IDataObjectImpl::GetData と CComControlBase::GetZoomInfo が、m_sizeExtent からではなく m_sizeNatural からコントロール サイズを設定する必要があることを示すフラグ。 |
CComControlBase::m_bDrawGetDataInHimetric | IDataObjectImpl::GetData で描画時にピクセルではなく HIMETRIC 単位を使用する必要があることを示すフラグ。 |
CComControlBase::m_bInPlaceActive | コントロールがインプレース アクティブであることを示すフラグ。 |
CComControlBase::m_bInPlaceSiteEx | コンテナーで IOleInPlaceSiteEx インターフェイスと、ウィンドウなしやちらつきのないコントロールなどの OCX96 コントロール機能をサポートすることを示すフラグ。 |
CComControlBase::m_bNegotiatedWnd | コントロールがコンテナーと OCX96 コントロール機能 (ちらつきのないコントロールやウィンドウなしのコントロールなど) のサポートと、コントロールがウィンドウ表示かウィンドウなしかについてネゴシエートしたかどうかを示すフラグ。 |
CComControlBase::m_bRecomposeOnResize | コンテナーがコントロールの表示サイズを変更するときに、コントロールが表示を再構成する必要があることを示すフラグ。 |
CComControlBase::m_bRequiresSave | コントロールが最後に保存された後に変更されたことを示すフラグ。 |
CComControlBase::m_bResizeNatural | コンテナーがコントロールの表示サイズを変更するときに、コントロールが自然な範囲 (スケーリングされていない物理サイズ) のサイズを変更する必要があることを示すフラグ。 |
CComControlBase::m_bUIActive | メニューやツール バーなど、コントロールのユーザー インターフェイスがアクティブであることを示すフラグ。 |
CComControlBase::m_bUsingWindowRgn | コントロールがコンテナー指定のウィンドウ領域を使用していることを示すフラグ。 |
CComControlBase::m_bWasOnceWindowless | コントロールがウィンドウなしであるが、現在ウィンドウなしではない可能性があることを示すフラグ。 |
CComControlBase::m_bWindowOnly | コンテナーがウィンドウなしのコントロールをサポートしている場合でも、コントロールをウィンドウ表示にする必要があることを示すフラグ。 |
CComControlBase::m_bWndLess | コントロールがウィンドウなしであることを示すフラグ。 |
CComControlBase::m_hWndCD | コントロールに関連付けられたウィンドウ ハンドルへの参照を格納します。 |
CComControlBase::m_nFreezeEvents | イベントの凍結解除 (イベントの受け入れ) を間に入れることなく、コンテナーがイベントを凍結 (イベントの受け入れを拒否) した回数。 |
CComControlBase::m_rcPos | コントロールのピクセル単位の位置。コンテナーの座標で表されます。 |
CComControlBase::m_sizeExtent | HIMETRIC 単位 (各単位は 0.01 mm) での特定のディスプレイのコントロールの範囲。 |
CComControlBase::m_sizeNatural | HIMETRIC 単位 (各単位は 0.01 mm) でのコントロールの物理サイズ。 |
CComControlBase::m_spAdviseSink | コンテナー (コンテナーの IAdviseSink) のアドバイザリ接続への直接ポインター。 |
CComControlBase::m_spAmbientDispatch | IDispatch ポインターを使用してコンテナーのプロパティを取得および設定できる CComDispatchDriver オブジェクト。 |
CComControlBase::m_spClientSite | コンテナー内のコントロールのクライアント サイトへのポインター。 |
CComControlBase::m_spDataAdviseHolder | データ オブジェクトとアドバイス シンク間のアドバイザリ接続を保持する標準的な手段を提供します。 |
CComControlBase::m_spInPlaceSite | コンテナーの IOleInPlaceSite、IOleInPlaceSiteEx、または IOleInPlaceSiteWindowless インターフェイス ポインターへのポインター。 |
CComControlBase::m_spOleAdviseHolder | アドバイザリ接続を保持するための標準的な実装を提供します。 |
解説
このクラスには、ATL コントロールを作成および管理するためのメソッドが用意されています。 CComControl クラスは CComControlBase
から派生します。 ATL コントロール ウィザードを使用して標準コントロールまたは DHTML コントロールを作成すると、CComControlBase
からクラスが自動的に派生します。
コントロールの作成の詳細については、ATL チュートリアルを参照してください。 ATL プロジェクト ウィザードの詳細については、「ATL プロジェクトの作成」を参照してください。
要件
ヘッダー: atlctl.h
CComControlBase::AppearanceType
m_nAppearance
ストック プロパティが short
型ではない場合は、オーバーライドします。
typedef short AppearanceType;
解説
ATL コントロール ウィザードによって、short 型の m_nAppearance
ストック プロパティが追加されます。 別のデータ型を使用する場合は、AppearanceType
をオーバーライドします。
CComControlBase::CComControlBase
コンストラクター。
CComControlBase(HWND& h);
パラメーター
時
コントロールに関連付けられたウィンドウへのハンドル。
解説
コントロール サイズを 5080 x 5080 HIMETRIC 単位 (2 x 2 インチ) に初期化し、CComControlBase
データ メンバー値を NULL または FALSE に初期化します。
CComControlBase::~CComControlBase
デストラクター。
~CComControlBase();
解説
コントロールがウィンドウ表示されている場合は、DestroyWindow を呼び出すことによって ~CComControlBase
によって破棄されます。
CComControlBase::ControlQueryInterface
要求されたインターフェイスへのポインターを取得します。
virtual HRESULT ControlQueryInterface(const IID& iid,
void** ppv);
パラメーター
iid
要求されているインターフェイスの GUID。
ppv
iid で識別されるインターフェイス ポインターへのポインター。インターフェイスが見つからない場合は NULL。
解説
COM マップ テーブル内のインターフェイスのみが処理されます。
例
// Retrieve the control's IOleObject interface. Note interface
// is automatically released when pOleObject goes out of scope
CComPtr<IOleObject> pOleObject;
ControlQueryInterface(IID_IOleObject, (void**)&pOleObject);
CComControlBase::DoesVerbActivate
IOleObjectImpl::DoVerb
によって使用される iVerb パラメーターが、コントロールのユーザー インターフェイスをアクティブ化するか (iVerb は OLEIVERB_UIACTIVATE と等しい)、ユーザーがコントロールをダブルクリックした場合に取られるアクションを定義するか (iVerb は OLEIVERB_PRIMARY と等しい)、コントロールを表示するか (iVerb は OLEIVERB_SHOW と等しい)、コントロールをアクティブ化するか (iVerb は OLEIVERB_INPLACEACTIVATE と等しい) をチェックします。
BOOL DoesVerbActivate(LONG iVerb);
パラメーター
iVerb
DoVerb
によって実行されるアクションを示す値。
戻り値
iVerb が OLEIVERB_UIACTIVATE、OLEIVERB_PRIMARY、OLEIVERB_SHOW、OLEIVERB_INPLACEACTIVATE と等しい場合に TRUE を返します。それ以外の場合は FALSE を返します。
解説
このメソッドをオーバーライドして、独自のアクティブ化動詞を定義できます。
CComControlBase::DoesVerbUIActivate
IOleObjectImpl::DoVerb
によって使用される iVerb パラメーターによって、コントロールのユーザー インターフェイスがアクティブ化され、TRUE が返されることを確認します。
BOOL DoesVerbUIActivate(LONG iVerb);
パラメーター
iVerb
DoVerb
によって実行されるアクションを示す値。
戻り値
iVerb が OLEIVERB_UIACTIVATE、OLEIVERB_PRIMARY、OLEIVERB_SHOW、OLEIVERB_INPLACEACTIVATE と等しい場合に TRUE を返します。 それ以外の場合、メソッドは FALSE を返します。
CComControlBase::DoVerbProperties
コントロールのプロパティ ページを表示します。
HRESULT DoVerbProperties(LPCRECT /* prcPosRect */, HWND hwndParent);
パラメーター
prcPosRec
予約済み。
hwndParent
コントロールを含むウィンドウのハンドル。
戻り値
標準 HRESULT 値のいずれか。
例
// The following implementation of the WM_RBUTTONDOWN message handler
// will pop up the ActiveX Control's PropertyPages
LRESULT CMyComposite::OnRButtonDown(UINT /*uMsg*/, WPARAM /*wParam*/,
LPARAM /*lParam*/, BOOL& /*bHandled*/)
{
DoVerbProperties(NULL, ::GetActiveWindow());
return 0L;
}
MESSAGE_HANDLER(WM_RBUTTONDOWN, OnRButtonDown)
CComControlBase::FireViewChange
このメソッドを呼び出して、コンテナーにコントロールを再描画するよう伝えるか、登録済みのアドバイス シンクにコントロールのビューが変更されたことを通知します。
HRESULT FireViewChange();
戻り値
標準 HRESULT 値のいずれか。
解説
コントロールがアクティブな場合 (コントロール クラスのデータ メンバー CComControlBase::m_bInPlaceActive が TRUE) は、コントロール全体を再描画するようコンテナーに通知します。 コントロールが非アクティブな場合は、コントロールの登録済みのアドバイス シンク (コントロール クラスのデータ メンバー CComControlBase::m_spAdviseSink を介して) に、コントロールのビューが変更されたことを通知します。
例
STDMETHODIMP CMyControl::put_Shape(int newVal)
{
// store newVal in m_nShape user-defined member
m_nShape = newVal;
// notify container to redraw control
FireViewChange();
return S_OK;
}
CComControlBase::GetAmbientAppearance
コントロールの現在の外観設定 (フラットの場合は 0、3D の場合は 1) である DISPID_AMBIENT_APPEARANCE を取得します。
HRESULT GetAmbientAppearance(short& nAppearance);
パラメーター
nAppearance
プロパティ DISPID_AMBIENT_APPEARANCE。
戻り値
標準 HRESULT 値のいずれか。
例
HRESULT OnDraw(ATL_DRAWINFO& di)
{
short nAppearance;
RECT& rc = *(RECT*)di.prcBounds;
// draw 3D border if AmbientAppearance is not supported or is set to 1
HRESULT hr = GetAmbientAppearance(nAppearance);
if (hr != S_OK || nAppearance==1)
{
DrawEdge(di.hdcDraw, &rc, EDGE_SUNKEN, BF_RECT);
}
else
{
Rectangle(di.hdcDraw, rc.left, rc.top, rc.right, rc.bottom);
}
SetTextAlign(di.hdcDraw, TA_CENTER|TA_BASELINE);
LPCTSTR pszText = _T("ATL 8.0 : MyControl");
// For security reasons, we recommend that you use the lstrlen function
// with caution. Here, we can guarantee that pszText is NULL terminated,
// and therefore it is safe to use this function.
TextOut(di.hdcDraw,
(rc.left + rc.right) / 2,
(rc.top + rc.bottom) / 2,
pszText,
lstrlen(pszText));
return S_OK;
}
CComControlBase::GetAmbientAutoClip
コンテナーでコントロールの表示領域の自動クリッピングをサポートするかどうかを示すフラグである DISPID_AMBIENT_AUTOCLIP を取得します。
HRESULT GetAmbientAutoClip(BOOL& bAutoClip);
パラメーター
bAutoClip
プロパティ DISPID_AMBIENT_AUTOCLIP。
戻り値
標準 HRESULT 値のいずれか。
CComControlBase::GetAmbientBackColor
コンテナーによって定義されている、すべてのコントロールのアンビエント背景色である DISPID_AMBIENT_BACKCOLOR を取得します。
HRESULT GetAmbientBackColor(OLE_COLOR& BackColor);
パラメーター
BackColor
プロパティ DISPID_AMBIENT_BACKCOLOR。
戻り値
標準 HRESULT 値のいずれか。
CComControlBase::GetAmbientCharSet
コンテナーによって定義されている、すべてのコントロールのアンビエント文字セットである DISPID_AMBIENT_CHARSET を取得します。
HRESULT GetAmbientCharSet(BSTR& bstrCharSet);
パラメーター
bstrCharSet
プロパティ DISPID_AMBIENT_CHARSET。
戻り値
成功した場合は S_OK、失敗した場合はエラー HRESULT を返します。
CComControlBase::GetAmbientCodePage
コンテナーによって定義されている、すべてのコントロールのアンビエント コード ページである DISPID_AMBIENT_CODEPAGE を取得します。
HRESULT GetAmbientCodePage(ULONG& ulCodePage);
パラメーター
ulCodePage
プロパティ DISPID_AMBIENT_CODEPAGE。
戻り値
成功した場合は S_OK、失敗した場合はエラー HRESULT を返します。
CComControlBase::GetAmbientDisplayAsDefault
コンテナーで、このサイトのコントロールが既定のボタンとしてマークされた場合に TRUE となるフラグである DISPID_AMBIENT_DISPLAYASDEFAULT を取得します。そのため、ボタン コントロールはそれ自体が太線のフレームで描画される必要があります。
HRESULT GetAmbientDisplayAsDefault(BOOL& bDisplayAsDefault);
パラメーター
bDisplayAsDefault
プロパティ DISPID_AMBIENT_DISPLAYASDEFAULT。
戻り値
標準 HRESULT 値のいずれか。
CComControlBase::GetAmbientDisplayName
コンテナーでコントロールに指定した名前である DISPID_AMBIENT_DISPLAYNAME を取得します。
HRESULT GetAmbientDisplayName(BSTR& bstrDisplayName);
パラメーター
bstrDisplayName
プロパティ DISPID_AMBIENT_DISPLAYNAME。
戻り値
標準 HRESULT 値のいずれか。
CComControlBase::GetAmbientFont
コンテナーのアンビエント IFont
インターフェイスへのポインターを取得します。
HRESULT GetAmbientFont(IFont** ppFont);
パラメーター
ppFont
コンテナーのアンビエント IFont インターフェイスへのポインター。
戻り値
標準 HRESULT 値のいずれか。
解説
プロパティが NULL の場合、ポインターは NULL です。 ポインターが NULL ではない場合、呼び出し元はポインターを解放する必要があります。
CComControlBase::GetAmbientFontDisp
コンテナーのアンビエント IFontDisp
ディスパッチ インターフェイスへのポインターを取得します。
HRESULT GetAmbientFontDisp(IFontDisp** ppFont);
パラメーター
ppFont
コンテナーのアンビエント IFontDisp ディスパッチ インターフェイスへのポインター。
戻り値
成功した場合は S_OK、失敗した場合はエラー HRESULT を返します。
解説
プロパティが NULL の場合、ポインターは NULL です。 ポインターが NULL ではない場合、呼び出し元はポインターを解放する必要があります。
CComControlBase::GetAmbientForeColor
コンテナーによって定義されている、すべてのコントロールのアンビエント前景色である DISPID_AMBIENT_FORECOLOR を取得します。
HRESULT GetAmbientForeColor(OLE_COLOR& ForeColor);
パラメーター
ForeColor
プロパティ DISPID_AMBIENT_FORECOLOR。
戻り値
標準 HRESULT 値のいずれか。
CComControlBase::GetAmbientLocaleID
コンテナーによって使用される言語の識別子である DISPID_AMBIENT_LOCALEID を取得します。
HRESULT GetAmbientLocaleID(LCID& lcid);
パラメーター
lcid
プロパティ DISPID_AMBIENT_LOCALEID。
戻り値
標準 HRESULT 値のいずれか。
解説
コントロールでは、この識別子を使用して、そのユーザー インターフェイスをさまざまな言語に適応させることができます。
CComControlBase::GetAmbientMessageReflect
コンテナーでウィンドウ メッセージ (WM_DRAWITEM
など) をイベントとして受け取るかどうかを示すフラグである DISPID_AMBIENT_MESSAGEREFLECT を取得します。
HRESULT GetAmbientMessageReflect(BOOL& bMessageReflect);
パラメーター
bMessageReflect
プロパティ DISPID_AMBIENT_MESSAGEREFLECT。
戻り値
標準 HRESULT 値のいずれか。
CComControlBase::GetAmbientPalette
コンテナーの HPALETTE にアクセスするために使用される DISPID_AMBIENT_PALETTE を取得します。
HRESULT GetAmbientPalette(HPALETTE& hPalette);
パラメーター
hPalette
プロパティ DISPID_AMBIENT_PALETTE。
戻り値
標準 HRESULT 値のいずれか。
CComControlBase::GetAmbientProperty
dispid で指定されたコンテナー プロパティを取得します。
HRESULT GetAmbientProperty(DISPID dispid, VARIANT& var);
パラメーター
dispid
取得するコンテナー プロパティの識別子。
var
プロパティを受け取るための変数。
戻り値
標準 HRESULT 値のいずれか。
解説
ATL には、特定のプロパティ (CComControlBase::GetAmbientBackColor など) を取得するヘルパー関数のセットが用意されています。 使用可能な適切なメソッドがない場合は、GetAmbientProperty
を使用します。
CComControlBase::GetAmbientRightToLeft
コンテナーによって表示されるコンテンツの向きである DISPID_AMBIENT_RIGHTTOLEFT を取得します。
HRESULT GetAmbientRightToLeft(BOOL& bRightToLeft);
パラメーター
bRightToLeft
プロパティ DISPID_AMBIENT_RIGHTTOLEFT。 コンテンツを右から左に表示する場合は TRUE、左から右に表示する場合は FALSE に設定します。
戻り値
成功した場合は S_OK、失敗した場合はエラー HRESULT を返します。
CComControlBase::GetAmbientScaleUnits
ディスプレイのラベル付けのためにコンテナーのアンビエント単位 (インチやセンチなど) である DISPID_AMBIENT_SCALEUNITS を取得します。
HRESULT GetAmbientScaleUnits(BSTR& bstrScaleUnits);
パラメーター
bstrScaleUnits
プロパティ DISPID_AMBIENT_SCALEUNITS。
戻り値
標準 HRESULT 値のいずれか。
CComControlBase::GetAmbientShowGrabHandles
コンテナーで、コントロールがアクティブなときにそれ自体のグラブ ハンドルを表示できるかどうかを示すフラグである DISPID_AMBIENT_SHOWGRABHANDLES を取得します。
HRESULT GetAmbientShowGrabHandles(BOOL& bShowGrabHandles);
パラメーター
bShowGrabHandles
プロパティ DISPID_AMBIENT_SHOWGRABHANDLES。
戻り値
標準 HRESULT 値のいずれか。
CComControlBase::GetAmbientShowHatching
コントロールのユーザー インターフェイスがアクティブなときに、コンテナーによってハッチ パターンを使用してコントロールがそれ自体を表示できるかどうかを示すフラグである DISPID_AMBIENT_SHOWHATCHING を取得します。
HRESULT GetAmbientShowHatching(BOOL& bShowHatching);
パラメーター
bShowHatching
プロパティ DISPID_AMBIENT_SHOWHATCHING。
戻り値
標準 HRESULT 値のいずれか。
CComControlBase::GetAmbientSupportsMnemonics
コンテナーでキーボード ニーモニックをサポートするかどうかを示すフラグである DISPID_AMBIENT_SUPPORTSMNEMONICS を取得します。
HRESULT GetAmbientSupportsMnemonics(BOOL& bSupportsMnemonics);
パラメーター
bSupportsMnemonics
プロパティ DISPID_AMBIENT_SUPPORTSMNEMONICS。
戻り値
標準 HRESULT 値のいずれか。
CComControlBase::GetAmbientTextAlign
コンテナーで優先されるテキスト配置である DISPID_AMBIENT_TEXTALIGN を取得します。一般的な配置 (右に数値、左にテキスト) の場合は 0、左揃えの場合は 1、中央揃えの場合は 2、右揃えの場合は 3 です。
HRESULT GetAmbientTextAlign(short& nTextAlign);
パラメーター
nTextAlign
プロパティ DISPID_AMBIENT_TEXTALIGN。
戻り値
標準 HRESULT 値のいずれか。
CComControlBase::GetAmbientTopToBottom
コンテナーによって表示されるコンテンツの向きである DISPID_AMBIENT_TOPTOBOTTOM を取得します。
HRESULT GetAmbientTopToBottom(BOOL& bTopToBottom);
パラメーター
bTopToBottom
プロパティ DISPID_AMBIENT_TOPTOBOTTOM。 テキストを上から下に表示する場合は TRUE、下から上に表示する場合は FALSE に設定します。
戻り値
成功した場合は S_OK、失敗した場合はエラー HRESULT を返します。
CComControlBase::GetAmbientUIDead
コンテナーがコントロールでユーザー インターフェイス アクションに応答させるかどうかを示すフラグである DISPID_AMBIENT_UIDEAD を取得します。
HRESULT GetAmbientUIDead(BOOL& bUIDead);
パラメーター
bUIDead
プロパティ DISPID_AMBIENT_UIDEAD。
戻り値
標準 HRESULT 値のいずれか。
解説
TRUE の場合、コントロールは応答しない必要があります。 このフラグは、DISPID_AMBIENT_USERMODE フラグに関係なく適用されます。 CComControlBase::GetAmbientUserMode を参照してください。
CComControlBase::GetAmbientUserMode
コンテナーが実行モード (TRUE) かデザイン モード (FALSE) かを示すフラグである DISPID_AMBIENT_USERMODE を取得します。
HRESULT GetAmbientUserMode(BOOL& bUserMode);
パラメーター
bUserMode
プロパティ DISPID_AMBIENT_USERMODE。
戻り値
標準 HRESULT 値のいずれか。
CComControlBase::GetDirty
データ メンバー m_bRequiresSave
の値を返します。
BOOL GetDirty();
戻り値
データ メンバー m_bRequiresSave の値を返します。
解説
この値は、CComControlBase::SetDirty を使用して設定されます。
CComControlBase::GetZoomInfo
インプレース編集用にアクティブ化されたコントロールのズーム ファクターの分子と分母の x と y の値を取得します。
void GetZoomInfo(ATL_DRAWINFO& di);
パラメーター
di
ズーム ファクターの分子と分母を保持する構造体。 詳細については、ATL_DRAWINFO に関するページを参照してください。
解説
ズーム ファクターは、コントロールの現在の範囲に対する自然なサイズの割合です。
CComControlBase::InPlaceActivate
コントロールを非アクティブ状態から iVerb の動詞が示す状態に遷移します。
HRESULT InPlaceActivate(LONG iVerb, const RECT* prcPosRect = NULL);
パラメーター
iVerb
IOleObjectImpl::DoVerb によって実行されるアクションを示す値。
prcPosRect
インプレース コントロールの位置へのポインター。
戻り値
標準 HRESULT 値のいずれか。
解説
アクティブ化する前に、このメソッドは、コントロールにクライアント サイトが含まれるか確認し、どのぐらいコントロールが表示されているかを確認し、親ウィンドウでコントロールの位置を取得します。 コントロールがアクティブ化されると、このメソッドはコントロールのユーザー インターフェイスをアクティブ化し、コントロールを表示するようコンテナーに指示します。
このメソッドは、コントロールの IOleInPlaceSite
、IOleInPlaceSiteEx
、または IOleInPlaceSiteWindowless
インターフェイス ポインターも取得し、コントロール クラスのデータ メンバー CComControlBase::m_spInPlaceSite に格納します。 コントロール クラスのデータ メンバー CComControlBase::m_bInPlaceSiteEx、CComControlBase::m_bWndLess、CComControlBase::m_bWasOnceWindowless、および CComControlBase::m_bNegotiatedWnd は、必要に応じて true に設定されます。
CComControlBase::InternalGetSite
このメソッドを呼び出して、識別されたインターフェイスへのポインターをコントロール サイトにクエリします。
HRESULT InternalGetSite(REFIID riid, void** ppUnkSite);
パラメーター
riid
ppUnkSite で返される必要のあるインターフェイス ポインターの IID。
ppUnkSite
riid で要求されたインターフェイス ポインターを受け取るポインター変数のアドレス。
戻り値
成功した場合は S_OK、失敗した場合はエラー HRESULT を返します。
解説
サイトが riid で要求されたインターフェイスをサポートしている場合は、ppUnkSite を使用してポインターが返されます。 それ以外の場合、ppUnkSite は NULL に設定されます。
CComControlBase::m_bAutoSize
コントロールを他のサイズにできないことを示すフラグ。
unsigned m_bAutoSize:1;
解説
このフラグは IOleObjectImpl::SetExtent
によってチェックされ、TRUE の場合、関数は E_FAIL を返します。
Note
コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。
ATL コントロール ウィザードの [ストック プロパティ] タブで [自動サイズ調整] オプションを追加すると、ウィザードにより、このデータ メンバーが自動的にコントロール クラスに作成され、プロパティの put および get メソッドが作成され、IPropertyNotifySink がサポートされ、プロパティが変更されたときにコンテナーに自動的に通知されます。
CComControlBase::m_bDrawFromNatural
IDataObjectImpl::GetData
と CComControlBase::GetZoomInfo
が、m_sizeExtent
からではなく m_sizeNatural
からコントロール サイズを設定する必要があることを示すフラグ。
unsigned m_bDrawFromNatural:1;
解説
Note
コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。
CComControlBase::m_bDrawGetDataInHimetric
IDataObjectImpl::GetData
で描画時にピクセルではなく HIMETRIC 単位を使用する必要があることを示すフラグ。
unsigned m_bDrawGetDataInHimetric:1;
解説
各論理 HIMETRIC 単位は 0.01 mm です。
Note
コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。
CComControlBase::m_bInPlaceActive
コントロールがインプレース アクティブであることを示すフラグ。
unsigned m_bInPlaceActive:1;
解説
これは、コントロールが表示可能で、そのウィンドウ (ある場合) は表示可能ですが、そのメニューとツール バーがアクティブではない可能性があることを意味します。 m_bUIActive
フラグは、メニューなどのコントロールのユーザー インターフェイスもアクティブであることを示します。
Note
コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。
CComControlBase::m_bInPlaceSiteEx
コンテナーで IOleInPlaceSiteEx
インターフェイスと、ウィンドウなしやちらつきのないコントロールなどの OCX96 コントロール機能をサポートすることを示すフラグ。
unsigned m_bInPlaceSiteEx:1;
解説
Note
コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。
m_bWndLess
および m_bInPlaceSiteEx
フラグの値に応じて、データ メンバー m_spInPlaceSite
は IOleInPlaceSite、IOleInPlaceSiteEx、または IOleInPlaceSiteWindowless インターフェイスを指します。 (m_spInPlaceSite
ポインターを有効にするには、データ メンバー m_bNegotiatedWnd
が TRUE である必要があります。)
m_bWndLess
が FALSE で m_bInPlaceSiteEx
が TRUE の場合、m_spInPlaceSite
は IOleInPlaceSiteEx
インターフェイス ポインターです。 これら 3 つのデータ メンバー間のリレーションシップを示す表については、m_spInPlaceSite を参照してください。
CComControlBase::m_bNegotiatedWnd
コントロールがコンテナーと OCX96 コントロール機能 (ちらつきのないコントロールやウィンドウなしのコントロールなど) のサポートと、コントロールがウィンドウ表示かウィンドウなしかについてネゴシエートしたかどうかを示すフラグ。
unsigned m_bNegotiatedWnd:1;
解説
Note
コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。
m_spInPlaceSite
ポインターを有効にするには、m_bNegotiatedWnd
フラグが TRUE である必要があります。
CComControlBase::m_bRecomposeOnResize
コンテナーがコントロールの表示サイズを変更するときに、コントロールが表示を再構成する必要があることを示すフラグ。
unsigned m_bRecomposeOnResize:1;
解説
Note
コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。
このフラグは IOleObjectImpl::SetExtent によってチェックされ、TRUE の場合は、SetExtent
によってビューの変更がコンテナーに通知されます。 このフラグが設定されている場合は、OLEMISC 列挙体の OLEMISC_RECOMPOSEONRESIZE ビットも設定する必要があります。
CComControlBase::m_bRequiresSave
コントロールが最後に保存された後に変更されたことを示すフラグ。
unsigned m_bRequiresSave:1;
解説
m_bRequiresSave
の値は CComControlBase::SetDirty で設定でき、CComControlBase::GetDirty を使用して取得できます。
Note
コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。
CComControlBase::m_bResizeNatural
コンテナーがコントロールの表示サイズを変更するときに、コントロールが自然な範囲 (スケーリングされていない物理サイズ) のサイズを変更する必要があることを示すフラグ。
unsigned m_bResizeNatural:1;
解説
このフラグは IOleObjectImpl::SetExtent
によってチェックされ、TRUE の場合、SetExtent
に渡されるサイズが m_sizeNatural
に割り当てられます。
SetExtent
に渡されるサイズは、m_bResizeNatural
の値に関係なく、常に m_sizeExtent
に割り当てられます。
Note
コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。
CComControlBase::m_bUIActive
メニューやツール バーなど、コントロールのユーザー インターフェイスがアクティブであることを示すフラグ。
unsigned m_bUIActive:1;
解説
m_bInPlaceActive
フラグは、コントロールがアクティブであることを示しますが、そのユーザーインターフェイスがアクティブであることは示しません。
Note
コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。
CComControlBase::m_bUsingWindowRgn
コントロールがコンテナー指定のウィンドウ領域を使用していることを示すフラグ。
unsigned m_bUsingWindowRgn:1;
解説
Note
コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。
CComControlBase::m_bWasOnceWindowless
コントロールがウィンドウなしであるが、現在ウィンドウなしではない可能性があることを示すフラグ。
unsigned m_bWasOnceWindowless:1;
解説
Note
コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。
CComControlBase::m_bWindowOnly
コンテナーがウィンドウなしのコントロールをサポートしている場合でも、コントロールをウィンドウ表示にする必要があることを示すフラグ。
unsigned m_bWindowOnly:1;
解説
Note
コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。
CComControlBase::m_bWndLess
コントロールがウィンドウなしであることを示すフラグ。
unsigned m_bWndLess:1;
解説
Note
コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。
m_bWndLess
および CComControlBase::m_bInPlaceSiteEx フラグの値に応じて、データ メンバー m_spInPlaceSite
は IOleInPlaceSite、IOleInPlaceSiteEx、または IOleInPlaceSiteWindowless インターフェイスを指します。 (CComControlBase::m_spInPlaceSite ポインターが有効であるためには、データメンバー CComControlBase::m_bNegotiatedWnd が TRUE である必要があります。)
m_bWndLess
が TRUE の場合、m_spInPlaceSite
は IOleInPlaceSiteWindowless
インターフェイス ポインターです。 これらのデータ メンバー間の完全なリレーションシップを示す表については、「CComControlBase::m_spInPlaceSite」を参照してください。
CComControlBase::m_hWndCD
コントロールに関連付けられたウィンドウ ハンドルへの参照を格納します。
HWND& m_hWndCD;
解説
Note
コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。
CComControlBase::m_nFreezeEvents
イベントの凍結解除 (イベントの受け入れ) を間に入れることなく、コンテナーがイベントを凍結 (イベントの受け入れを拒否) した回数。
short m_nFreezeEvents;
解説
Note
コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。
CComControlBase::m_rcPos
コントロールのピクセル単位の位置。コンテナーの座標で表されます。
RECT m_rcPos;
解説
Note
コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。
CComControlBase::m_sizeExtent
HIMETRIC 単位 (各単位は 0.01 mm) での特定のディスプレイのコントロールの範囲。
SIZE m_sizeExtent;
解説
Note
コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。
このサイズは、ディスプレイによって拡大縮小されます。 コントロールの物理サイズは m_sizeNatural
データ メンバーで指定され、固定されています。
グローバル関数の AtlHiMetricToPixel を使用して、サイズをピクセルに変換することができます。
CComControlBase::m_sizeNatural
HIMETRIC 単位 (各単位は 0.01 mm) でのコントロールの物理サイズ。
SIZE m_sizeNatural;
解説
Note
コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。
このサイズは固定されていますが、m_sizeExtent
のサイズはディスプレイによって拡大縮小されます。
グローバル関数の AtlHiMetricToPixel を使用して、サイズをピクセルに変換することができます。
CComControlBase::m_spAdviseSink
コンテナー (コンテナーの IAdviseSink) のアドバイザリ接続への直接ポインター。
CComPtr<IAdviseSink>
m_spAdviseSink;
解説
Note
コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。
CComControlBase::m_spAmbientDispatch
IDispatch
ポインターを使用してオブジェクトのプロパティを取得および設定できる CComDispatchDriver
オブジェクト。
CComDispatchDriver m_spAmbientDispatch;
解説
Note
コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。
CComControlBase::m_spClientSite
コンテナー内のコントロールのクライアント サイトへのポインター。
CComPtr<IOleClientSite>
m_spClientSite;
解説
Note
コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。
CComControlBase::m_spDataAdviseHolder
データ オブジェクトとアドバイス シンク間のアドバイザリ接続を保持する標準的な手段を提供します。
CComPtr<IDataAdviseHolder>
m_spDataAdviseHolder;
解説
Note
コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。
データ オブジェクトは、データを転送できるコントロールであり、データの形式と転送メディアを指定するメソッドである IDataObject を実装します。
インターフェイス m_spDataAdviseHolder
は、コンテナーへのアドバイザリ接続を確立および削除するための IDataObject::DAdvise および IDataObject::DUnadvise メソッドを実装します。 コントロールのコンテナーは、IAdviseSink インターフェイスをサポートすることにより、アドバイス シンクを実装する必要があります。
CComControlBase::m_spInPlaceSite
コンテナーの IOleInPlaceSite、IOleInPlaceSiteEx、または IOleInPlaceSiteWindowless インターフェイス ポインターへのポインター。
CComPtr<IOleInPlaceSiteWindowless>
m_spInPlaceSite;
解説
Note
コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。
m_spInPlaceSite
ポインターは、m_bNegotiatedWnd フラグが TRUE の場合にのみ有効です。
次の表は、m_spInPlaceSite
ポインター型が m_bWndLess および m_bInPlaceSiteEx データ メンバー フラグにどのように依存しているかを示しています。
m_spInPlaceSite の種類 | m_bWndLess 値 | m_bInPlaceSiteEx 値 |
---|---|---|
IOleInPlaceSiteWindowless |
TRUE | TRUE または FALSE |
IOleInPlaceSiteEx |
FALSE | TRUE |
IOleInPlaceSite |
false | FALSE |
CComControlBase::m_spOleAdviseHolder
アドバイザリ接続を保持するための標準的な実装を提供します。
CComPtr<IOleAdviseHolder>
m_spOleAdviseHolder;
解説
Note
コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。
インターフェイス m_spOleAdviseHolder
は、コンテナーへのアドバイザリ接続を確立および削除するための IOleObject::Advise および IOleObject::Unadvise メソッドを実装します。 コントロールのコンテナーは、IAdviseSink インターフェイスをサポートすることにより、アドバイス シンクを実装する必要があります。
CComControlBase::OnDraw
コントロールを描画するには、このメソッドをオーバーライドします。
virtual HRESULT OnDraw(ATL_DRAWINFO& di);
パラメーター
di
描画の縦横比、コントロールの境界、描画が最適化されているかどうかなどの描画情報を格納する ATL_DRAWINFO 構造体への参照。
戻り値
標準の HRESULT 値。
解説
既定の OnDraw
では、CComControlBase::OnDrawAdvanced に設定されているフラグに応じて、デバイス コンテキストが削除または復元されるか、何も実行されません。
ATL コントロール ウィザードを使用してコントロールを作成すると、コントロール クラスに OnDraw
メソッドが自動的に追加されます。 ウィザードの既定の OnDraw
では、"ATL 8.0" というラベルの付いた四角形が描画されます。
例
CComControlBase::GetAmbientAppearance の例を参照してください。
CComControlBase::OnDrawAdvanced
既定の OnDrawAdvanced
では、描画用に正規化されたデバイス コンテキストが準備され、コントロール クラスの OnDraw
メソッドが呼び出されます。
virtual HRESULT OnDrawAdvanced(ATL_DRAWINFO& di);
パラメーター
di
描画の縦横比、コントロールの境界、描画が最適化されているかどうかなどの描画情報を格納する ATL_DRAWINFO 構造体への参照。
戻り値
標準の HRESULT 値。
解説
正規化せずにコンテナーによって渡されたデバイス コンテキストを受け入れる場合は、このメソッドをオーバーライドします。
詳細については、「CComControlBase::OnDraw」を参照してください。
CComControlBase::OnKillFocus
コントロールがインプレース アクティブであり、有効なコントロール サイトを持っている場合は、コントロールがフォーカスを失ったことをコンテナーに通知します。
LRESULT OnKillFocus(UINT /* nMsg */,
WPARAM /* wParam */,
LPARAM /* lParam */,
BOOL& bHandled);
パラメーター
nMsg
予約済み。
wParam
予約済み。
lParam
予約済み。
bHandled
ウィンドウ メッセージが正常に処理されたかどうかを示すフラグ。 既定値は FALSE です。
戻り値
常に 1 が返されます。
CComControlBase::OnMouseActivate
UI がユーザー モードであるか確認し、コントロールをアクティブにします。
LRESULT OnMouseActivate(UINT /* nMsg */,
WPARAM /* wParam */,
LPARAM /* lParam */,
BOOL& bHandled);
パラメーター
nMsg
予約済み。
wParam
予約済み。
lParam
予約済み。
bHandled
ウィンドウ メッセージが正常に処理されたかどうかを示すフラグ。 既定値は FALSE です。
戻り値
常に 1 が返されます。
CComControlBase::OnPaint
コンテナーで描画の準備を行い、コントロールのクライアント領域を取得してから、コントロール クラスの OnDrawAdvanced
メソッドを呼び出します。
LRESULT OnPaint(UINT /* nMsg */,
WPARAM wParam,
LPARAM /* lParam */,
BOOL& /* lResult */);
パラメーター
nMsg
予約済み。
wParam
既存の HDC。
lParam
予約済み。
lResult
予約済み。
戻り値
常にゼロが返されます。
解説
wParam が NULL でない場合、OnPaint
では有効な HDC を含んでいると見なし、CComControlBase::m_hWndCD の代わりにそれを使用します。
CComControlBase::OnSetFocus
コントロールがインプレース アクティブであり、有効なコントロール サイトを持っている場合は、コントロールがフォーカスを取得したとコンテナーに通知します。
LRESULT OnSetFocus(UINT /* nMsg */,
WPARAM /* wParam */,
LPARAM /* lParam */,
BOOL& bHandled);
パラメーター
nMsg
予約済み。
wParam
予約済み。
lParam
予約済み。
bHandled
ウィンドウ メッセージが正常に処理されたかどうかを示すフラグ。 既定値は FALSE です。
戻り値
常に 1 が返されます。
解説
コントロールがフォーカスを受け取ったコンテナーに通知を送信します。
CComControlBase::PreTranslateAccelerator
独自のキーボード アクセラレータ ハンドラーを提供するには、このメソッドをオーバーライドします。
BOOL PreTranslateAccelerator(LPMSG /* pMsg */,
HRESULT& /* hRet */);
パラメーター
pMsg
予約済み。
hRet
予約済み。
戻り値
既定では FALSE が返されます。
CComControlBase::SendOnClose
コントロールが閉じられたことを、アドバイス ホルダーに登録されているすべてのアドバイザリ シンクに通知します。
HRESULT SendOnClose();
戻り値
成功した場合は S_OK、失敗した場合はエラー HRESULT を返します。
解説
コントロールがそのアドバイズ シンクを閉じたことを示す通知を送信します。
CComControlBase::SendOnDataChange
コントロール データが変更されたことを、アドバイス ホルダーに登録されているすべてのアドバイザリ シンクに通知します。
HRESULT SendOnDataChange(DWORD advf = 0);
パラメーター
advf
IAdviseSink::OnDataChange の呼び出しを行う方法を指定するアドバイス フラグ。 値は ADVF 列挙体からのものです。
戻り値
成功した場合は S_OK、失敗した場合はエラー HRESULT を返します。
CComControlBase::SendOnRename
コントロールに新しいモニカーがあることを、アドバイス ホルダーに登録されているすべてのアドバイザリ シンクに通知します。
HRESULT SendOnRename(IMoniker* pmk);
パラメーター
pmk
コントロールの新しいモニカーへのポインター。
戻り値
成功した場合は S_OK、失敗した場合はエラー HRESULT を返します。
解説
コントロールのモニカーが変更されたことを示す通知を送信します。
CComControlBase::SendOnSave
コントロールが保存されたことを、アドバイス ホルダーに登録されているすべてのアドバイザリ シンクに通知します。
HRESULT SendOnSave();
戻り値
成功した場合は S_OK、失敗した場合はエラー HRESULT を返します。
解説
コントロールがそのデータを保存したことを示す通知を送信します。
CComControlBase::SendOnViewChange
登録済みのすべてのアドバイザリ シンクに、コントロールのビューが変更されたことを通知します。
HRESULT SendOnViewChange(DWORD dwAspect, LONG lindex = -1);
パラメーター
dwAspect
コントロールの縦横比またはビュー。
lindex
変更されたビューの部分。 有効なのは -1 のみです。
戻り値
成功した場合は S_OK、失敗した場合はエラー HRESULT を返します。
解説
SendOnViewChange
は IAdviseSink::OnViewChange を呼び出します。 現在サポートされている lindex の唯一の値は -1 のみです。これは、ビュー全体が対象であることを示します。
CComControlBase::SetControlFocus
コントロールとの間でキーボード フォーカスを設定または削除します。
BOOL SetControlFocus(BOOL bGrab);
パラメーター
bGrab
TRUE の場合、呼び出し元のコントロールにキーボード フォーカスを設定します。 FALSE の場合、フォーカスがある場合は、呼び出し元のコントロールからキーボード フォーカスを削除します。
戻り値
コントロールがフォーカスを正常に受信した場合は TRUE を返し、それ以外の場合は FALSE を返します。
解説
ウィンドウ表示コントロールの場合は、Windows API 関数 SetFocus が呼び出されます。 ウィンドウなしのコントロールの場合は、IOleInPlaceSiteWindowless::SetFocus が呼び出されます。 この呼び出しにより、ウィンドウなしのコントロールがキーボード フォーカスを取得し、ウィンドウ メッセージに応答できるようになります。
CComControlBase::SetDirty
データ メンバー m_bRequiresSave
を、bDirty の値に設定します。
void SetDirty(BOOL bDirty);
パラメーター
bDirty
データメンバー CComControlBase::m_bRequiresSave の値。
解説
最後に保存されてからコントロールが変更されたことを示すフラグを付けるには、SetDirty(TRUE)
を呼び出す必要があります。 m_bRequiresSave
の値は CComControlBase::GetDirty を使用して取得されます。