共用方式為


IOleObject::SetExtent 方法 (oleidl.h)

通知物件其容器已指派多少顯示空間。

語法

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

參數

[in] dwDrawAspect

描述要顯示物件之表單或「層面」的 DWORD。 物件的容器會從列舉 DVASPECT 取得此值, (參考 FORMATETC 列舉) 。 最常見的層面是DVASPECT_CONTENT,它會指定物件在其容器內的完整轉譯。 物件也可以轉譯為圖示、流覽工具中顯示的縮圖版本或列印版本,以使用 [ 檔案列印 ] 命令呈現物件。

[in] psizel

物件的大小限制指標。

傳回值

此方法會在成功時傳回S_OK。 其他可能的傳回值包括下列專案。

傳回碼 Description
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