Metodo IOleObject::SetExtent (oleidl.h)

Informa un oggetto della quantità di spazio visualizzato assegnato al contenitore.

Sintassi

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

Parametri

[in] dwDrawAspect

DWORD che descrive quale forma, o "aspetto", di un oggetto deve essere visualizzato. Il contenitore dell'oggetto ottiene questo valore dall'enumerazione DVASPECT (fare riferimento all'enumerazione FORMATETC ). L'aspetto più comune è DVASPECT_CONTENT, che specifica un rendering completo dell'oggetto all'interno del contenitore. È anche possibile eseguire il rendering di un oggetto come icona, una versione di anteprima per la visualizzazione in uno strumento di esplorazione o una versione di stampa, che visualizza l'oggetto come verrà eseguito il rendering usando il comando Stampa file .

[in] psizel

Puntatore al limite di dimensioni per l'oggetto.

Valore restituito

Questo metodo restituisce S_OK se l'operazione ha esito positivo. Gli altri valori restituiti possibili includono i seguenti:

Codice restituito Descrizione
E_FAIL
Operazione non riuscita.
OLE_E_NOTRUNNING
L'oggetto non è in esecuzione.

Commenti

Un contenitore chiama IOleObject::SetExtent quando deve dettare a un oggetto incorporato le dimensioni in cui verrà visualizzato. Spesso, questa chiamata si verifica in risposta a un utente finale ridimensionando la finestra dell'oggetto. Dopo aver ricevuto la chiamata, l'oggetto, se possibile, deve ricomporsi in modo normale per adattarsi alla nuova finestra.

Ogni volta che è possibile, un contenitore cerca di visualizzare un oggetto alla sua migliore risoluzione, talvolta denominata dimensione nativa dell'oggetto. Tutti gli oggetti, tuttavia, hanno una dimensione di visualizzazione predefinita specificata dalle applicazioni e, in assenza di altri vincoli, questa è la dimensione che useranno per visualizzare se stessi. Poiché un oggetto conosce la dimensione ottimale della visualizzazione superiore a quella del contenitore, quest'ultima richiede normalmente le dimensioni di un oggetto in esecuzione chiamando IOleObject::SetExtent. Solo nei casi in cui il contenitore non può contenere il valore restituito dall'oggetto esegue l'override della preferenza dell'oggetto chiamando IOleObject::SetExtent.

Note ai chiamanti

È possibile chiamare IOleObject::SetExtent in un oggetto solo quando l'oggetto è in esecuzione. Se un contenitore ridimensiona un oggetto mentre un oggetto non è in esecuzione, il contenitore deve tenere traccia delle nuove dimensioni dell'oggetto, ma rinviare la chiamata AOleObject::SetExtent fino a quando un utente attiva l'oggetto. Se il bit di OLEMISC_RECOMPOSEONRESIZE è impostato su un oggetto, il contenitore deve forzare l'esecuzione dell'oggetto prima di chiamare IOleObject::SetExtent.

Come indicato in precedenza, un contenitore può voler delegare la responsabilità di impostare le dimensioni del sito visualizzato di un oggetto all'oggetto stesso, chiamando IOleObject::SetExtent.

Note per gli implementatori

È possibile implementare questo metodo in modo che l'oggetto venga ridimensionato nel modo più vicino possibile lo spazio massimo disponibile nel contenitore.

Se la dimensione di un oggetto è fissa, ovvero, se non può essere impostata dal contenitore, IOleObject::SetExtent deve restituire E_FAIL. Questo è sempre il caso di oggetti collegati, le cui dimensioni vengono impostate dalle origini di collegamento, non dai contenitori.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione oleidl.h

Vedi anche

IAdviseSink::OnViewChange

Ioleobject

IOleObject::GetExtent

IViewObject2::GetExtent