Funzione OleCreateStaticFromData (ole2.h)
Crea un oggetto statico che contiene solo una rappresentazione, senza dati nativi, da un oggetto di trasferimento dati.
Sintassi
HRESULT OleCreateStaticFromData(
[in] LPDATAOBJECT pSrcDataObj,
[in] REFIID iid,
[in] DWORD renderopt,
[in] LPFORMATETC pFormatEtc,
[in] LPOLECLIENTSITE pClientSite,
[in] LPSTORAGE pStg,
[out] LPVOID *ppvObj
);
Parametri
[in] pSrcDataObj
Puntatore all'interfaccia IDataObject nell'oggetto trasferimento dati che contiene i dati da cui verrà creato l'oggetto.
[in] iid
Riferimento all'identificatore dell'interfaccia con cui il chiamante deve comunicare con il nuovo oggetto (in genere IID_IOleObject, definito nelle intestazioni OLE come identificatore dell'interfaccia per IOleObject).
[in] renderopt
Valore dell'enumerazione OLERENDER che indica le funzionalità di disegno o recupero dati memorizzate nella cache locale che il contenitore vuole nel componente appena creato. Si tratta di un errore per passare le opzioni di rendering OLERENDER_NONE o OLERENDER_ASIS a questa funzione.
[in] pFormatEtc
A seconda di quale flag OLERENDER viene usato come valore di rendering, può essere un puntatore a uno dei valori di enumerazione FORMATETC . Per le restrizioni, vedere l'enumerazione OLERENDER .
[in] pClientSite
Puntatore a un'istanza di IOleClientSite, l'interfaccia primaria tramite cui l'oggetto richiederà i servizi dal contenitore. Questo parametro può essere NULL.
[in] pStg
Puntatore all'interfaccia IStorage per l'archiviazione per l'oggetto. Questo parametro non può essere NULL.
[out] ppvObj
Indirizzo della variabile puntatore che riceve il puntatore dell'interfaccia richiesto in riid. Al termine della restituzione, *ppvObj contiene il puntatore dell'interfaccia richiesto nell'oggetto appena creato.
Valore restituito
Questa funzione restituisce S_OK in caso di esito positivo.
Commenti
La funzione OleCreateStaticFromData può convertire qualsiasi oggetto, purché fornisca un'interfaccia IDataObject , in un oggetto statico. È utile per implementare l'opzione Converti in immagine per il collegamento OLE o l'incorporamento.
Gli oggetti statici possono essere creati solo se l'origine supporta uno dei formati degli Appunti con rendering OLE: CF_METAFILEPICT, CF_DIB o CF_ bitmap CF_ENHMETAFILE.
È anche possibile chiamare OleCreateStaticFromData per incollare un oggetto statico dagli Appunti. Per determinare se un oggetto è statico, chiamare la funzione OleQueryCreateFromData , che restituisce OLE_S_STATIC se una di CF_METAFILEPICT, CF_DIB, CF_BITMAP o CF_ENHMETAFILE è presente e un formato OLE non è presente. Ciò indica che è necessario chiamare OleCreateStaticFromData anziché la funzione OleCreateFromData per creare l'oggetto.
Il nuovo oggetto statico è di classe CLSID_StaticMetafile nel caso di CF_METAFILEPICT, CLSID_StaticDib nel caso di CF_DIB o CF_BITMAP o CLSID_Picture_EnhMetafile nel caso di CF_ENHMETAFILE. L'oggetto statico imposta i bit di OLEMISC_STATIC e OLE_CANTLINKINSIDE restituiti da IOleObject::GetMiscStatus. L'oggetto statico avrà l'aspetto DVASPECT_CONTENT e un LINDEX di -1.
PSrcDataObject è ancora valido dopo la restituzione di OleCreateStaticFromData. È responsabilità del chiamante liberare pSrcDataObject - OLE non lo rilascia.
Non è possibile avere più di un flusso di presentazione in un oggetto statico.
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 | ole2.h |
Libreria | Ole32.lib |
DLL | Ole32.dll |