IOleObject::SetExtent メソッド (oleidl.h)

コンテナーによって割り当てられた表示領域の量をオブジェクトに通知します。

構文

HRESULT SetExtent(
  [in] DWORD dwDrawAspect,
  [in] SIZEL *psizel
);

パラメーター

[in] dwDrawAspect

表示するオブジェクトのフォーム ("アスペクト") を記述する DWORD。 オブジェクトのコンテナーは、列挙 DVASPECT からこの値を取得します ( FORMATETC 列挙体を参照)。 最も一般的な側面は、コンテナー内のオブジェクトの完全なレンダリングを指定するDVASPECT_CONTENTです。 オブジェクトは、アイコン、閲覧ツールに表示するためのサムネイル バージョン、または印刷バージョンとしてレンダリングすることもできます。このバージョンでは、 オブジェクトは [ファイルの印刷 ] コマンドを使用してレンダリングされます。

[in] psizel

オブジェクトのサイズ制限へのポインター。

戻り値

このメソッドは、成功したS_OKを返します。 その他の可能な戻り値は次のとおりです。

リターン コード 説明
E_FAIL
操作が失敗しました。
OLE_E_NOTRUNNING
オブジェクトが実行されていません。

注釈

コンテナーは、埋め込みオブジェクトに表示されるサイズを指定する必要がある場合に IOleObject::SetExtent を呼び出します。 多くの場合、この呼び出しは、オブジェクト ウィンドウのサイズを変更するエンド ユーザーに応答して発生します。 呼び出しを受け取ると、可能であれば、オブジェクトは新しいウィンドウに合わせて適切に再計算する必要があります。

可能な限り、コンテナーはオブジェクトを最高の解像度 (オブジェクトのネイティブ サイズと呼ばれることもあります) で表示しようとします。 ただし、すべてのオブジェクトには、アプリケーションによって指定された既定の表示サイズがあり、他の制約がない場合は、それ自体を表示するために使用するサイズです。 オブジェクトはコンテナーよりも最適な表示サイズを認識するため、通常、後者は IOleObject::SetExtent を呼び出して、実行中のオブジェクトからそのサイズを要求します。 コンテナーがオブジェクトによって返される値に対応できない場合にのみ、 IOleObject::SetExtent を呼び出してオブジェクトの設定をオーバーライドします。

呼び出し元へのメモ

オブジェクトで IOleObject::SetExtent を呼び出すことができるのは、オブジェクトが実行されている場合のみです。 オブジェクトの実行中にコンテナーがオブジェクトのサイズを変更する場合、コンテナーはオブジェクトの新しいサイズを追跡しますが、ユーザーがオブジェクトをアクティブ化するまで IOleObject::SetExtent の呼び出しを延期する必要があります。 OLEMISC_RECOMPOSEONRESIZE ビットがオブジェクトに設定されている場合、そのコンテナーは IOleObject::SetExtent を呼び出す前にオブジェクトを強制的に実行する必要があります。

前述のように、コンテナーは IOleObject::SetExtent を呼び出して、オブジェクトの表示サイトのサイズをオブジェクト自体に設定する責任を委任する必要があります。

実装者へのメモ

このメソッドを実装して、オブジェクトがコンテナー内で使用可能な最大領域にできるだけ近い範囲で一致するように再スケーリングすることができます。

オブジェクトのサイズが固定されている場合、つまりコンテナーで設定できない場合、 IOleObject::SetExtent はE_FAILを返す必要があります。 これは常に、コンテナーではなくリンク ソースによってサイズが設定されるリンク オブジェクトの場合です。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー oleidl.h

こちらもご覧ください

IAdviseSink::OnViewChange

IOleObject

IOleObject::GetExtent

IViewObject2::GetExtent