IOleObject::SetExtent-Methode (oleidl.h)

Informiert ein Objekt darüber, wie viel Anzeigeraum ihm sein Container zugewiesen hat.

Syntax

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

Parameter

[in] dwDrawAspect

DWORD, das beschreibt, welche Form oder welcher "Aspekt" eines Objekts angezeigt werden soll. Der Container des Objekts ruft diesen Wert aus der DVASPECT-Enumeration ab (siehe FORMATTC-Enumeration ). Der häufigste Aspekt ist DVASPECT_CONTENT, der ein vollständiges Rendering des Objekts in seinem Container angibt. Ein Objekt kann auch als Symbol, als Miniaturansichtsversion für die Anzeige in einem Browsertool oder als Druckversion gerendert werden, in der das Objekt mit dem Befehl Dateidruck gerendert wird.

[in] psizel

Zeiger auf die Größenbeschränkung für das Objekt.

Rückgabewert

Diese Methode gibt S_OK bei Erfolg zurück. Weitere mögliche Rückgabewerte:

Rückgabecode Beschreibung
E_FAIL
Fehler beim Vorgang.
OLE_E_NOTRUNNING
Das -Objekt wird nicht ausgeführt.

Hinweise

Ein Container ruft IOleObject::SetExtent auf, wenn er einem eingebetteten Objekt die Größe diktieren muss, in der es angezeigt wird. Häufig erfolgt dieser Aufruf als Reaktion darauf, dass ein Endbenutzer die Größe des Objektfensters ändert. Nach Dem Empfang des Aufrufs sollte sich das Objekt, wenn möglich, ordnungsgemäß neu kompilieren, um es an das neue Fenster anzupassen.

Wenn möglich, versucht ein Container, ein Objekt in seiner besten Auflösung anzuzeigen, manchmal auch als native Größe des Objekts bezeichnet. Alle Objekte verfügen jedoch über eine standardmäßige Anzeigegröße, die von ihren Anwendungen angegeben wird, und ohne andere Einschränkungen ist dies die Größe, die sie für die Anzeige selbst verwenden. Da ein Objekt seine optimale Anzeigegröße besser kennt als sein Container, fordert letztere diese Größe normalerweise von einem ausgeführten Objekt an, indem IOleObject::SetExtent aufgerufen wird. Nur in Fällen, in denen der Container den vom Objekt zurückgegebenen Wert nicht aufnehmen kann, überschreibt er die Präferenz des Objekts durch Aufrufen von IOleObject::SetExtent.

Hinweise für Anrufer

Sie können IOleObject::SetExtent nur für ein Objekt aufrufen, wenn das Objekt ausgeführt wird. Wenn ein Container die Größe eines Objekts ändert, während ein Objekt nicht ausgeführt wird, sollte der Container die neue Größe des Objekts nachverfolgen, aber den Aufruf von IOleObject::SetExtent zurückstellen, bis ein Benutzer das Objekt aktiviert. Wenn das OLEMISC_RECOMPOSEONRESIZE Bit für ein Objekt festgelegt ist, sollte sein Container die Ausführung des Objekts erzwingen, bevor IOleObject::SetExtent aufgerufen wird.

Wie bereits erwähnt, möchte ein Container möglicherweise die Verantwortung für das Festlegen der Größe der Anzeigewebsite eines Objekts an das Objekt selbst delegieren, indem IOleObject::SetExtent aufgerufen wird.

Hinweise für Implementierer

Möglicherweise möchten Sie diese Methode implementieren, damit ihr Objekt sich selbst so neu skaliert, dass es dem maximal verfügbaren Speicherplatz in seinem Container so nah wie möglich entspricht.

Wenn die Größe eines Objekts festgelegt ist, d. h. wenn es nicht von seinem Container festgelegt werden kann, sollte IOleObject::SetExtent E_FAIL zurückgeben. Dies ist immer der Fall bei verknüpften Objekten, deren Größe durch ihre Linkquellen und nicht durch ihre Container festgelegt wird.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile oleidl.h

Weitere Informationen

IAdviseSink::OnViewChange

IOleObject

IOleObject::GetExtent

IViewObject2::GetExtent