IOleInPlaceObject::SetObjectRects メソッド (oleidl.h)

インプレース オブジェクトを表示する量を指定します。

構文

HRESULT SetObjectRects(
  [in] LPCRECT lprcPosRect,
  [in] LPCRECT lprcClipRect
);

パラメーター

[in] lprcPosRect

親ウィンドウのクライアント座標を使用するインプレース オブジェクトの位置を含む RECT 構造体へのポインター。

[in] lprcClipRect

インプレース オブジェクトの位置の四角形 (lprcPosRect) を含む外側の四角形へのポインター。 この四角形は、埋め込み先オブジェクトの親ウィンドウのクライアント領域に対して相対的に指定されます。

戻り値

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

リターン コード 説明
E_INVALIDARG
指定されたポインターが無効です。
E_OUTOFMEMORY
操作に使用できるメモリが不足しています。
E_UNEXPECTED
予期しないエラーが発生しました。

注釈

lprcClipRect は、lprcPosRect を変更せずに変更できます。

インプレース オブジェクトの四角形のサイズは、常にピクセル単位で計算されます。 これは、 HIMETRIC にある他の OLE オブジェクトの視覚化とは異なります。

メモIOleInPlaceObject::SetObjectRects の実行中は、PeekMessage 関数や GetMessage 関数、またはダイアログ ボックスを呼び出さないでください。 これを行うと、システムがデッドロックする可能性があります。 IOleInPlaceObject::SetObjectRects 内から呼び出すことができる OLE インターフェイスのメソッドと関数には、さらに制限があります。
 

呼び出し元へのメモ

インプレース オブジェクトのウィンドウ位置やインプレース オブジェクトの可視部分が変更されるたびに、コンテナーは IOleInPlaceObject::SetObjectRects を呼び出す必要があります。

実装者へのメモ

オブジェクトは、 lprcPosRect と lprcClipRect の交差部分と一致するように、インプレース ウィンドウのサイズを設定 する必要があります。 オブジェクトは、適切なクリッピングが行われるように、その内容をオブジェクトのインプレース ウィンドウに描画する必要もあります。

オブジェクトは、その幅と高さをコンテナーによって提供されるものと比較する必要があります ( lprcPosRect を介して伝達されます)。 比較で一致が発生しない場合、コンテナーはオブジェクトにスケーリングを適用しています。 オブジェクトは、スケール/ズーム モードでインプレース編集を続行するか非アクティブ化するかを決定する必要があります。

要件

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

こちらもご覧ください

GetMessage

IOleInPlaceObject

IOleInPlaceSite::OnPosRectChange

PeekMessage