Partager via


OleCreateStaticFromData, fonction (ole2.h)

Crée un objet statique, qui contient uniquement une représentation, sans données natives, à partir d’un objet de transfert de données.

Note Les fonctions de conversion OLESTREAM en IStorage convertissent également des objets statiques.
 

Syntaxe

HRESULT OleCreateStaticFromData(
  [in]  LPDATAOBJECT    pSrcDataObj,
  [in]  REFIID          iid,
  [in]  DWORD           renderopt,
  [in]  LPFORMATETC     pFormatEtc,
  [in]  LPOLECLIENTSITE pClientSite,
  [in]  LPSTORAGE       pStg,
  [out] LPVOID          *ppvObj
);

Paramètres

[in] pSrcDataObj

Pointeur vers l’interface IDataObject sur l’objet de transfert de données qui contient les données à partir desquelles l’objet sera créé.

[in] iid

Référence à l’identificateur de l’interface avec laquelle l’appelant doit communiquer avec le nouvel objet (généralement IID_IOleObject, défini dans les en-têtes OLE comme identificateur d’interface pour IOleObject).

[in] renderopt

Valeur de l’énumération OLERENDER indiquant les fonctionnalités de dessin ou de récupération de données mises en cache localement que le conteneur souhaite dans le composant nouvellement créé. Il s’agit d’une erreur de passer les options de rendu OLERENDER_NONE ou OLERENDER_ASIS à cette fonction.

[in] pFormatEtc

Selon l’indicateur OLERENDER utilisé comme valeur de renderopt, il peut s’agir d’un pointeur vers l’une des valeurs d’énumération FORMATETC . Pour connaître les restrictions, reportez-vous à l’énumération OLERENDER .

[in] pClientSite

Pointeur vers un instance de IOleClientSite, l’interface principale via laquelle l’objet demande des services à partir de son conteneur. Ce paramètre peut être NULL.

[in] pStg

Pointeur vers l’interface IStorage pour le stockage de l’objet. Ce paramètre ne peut pas avoir la valeur NULL.

[out] ppvObj

Adresse de la variable pointeur qui reçoit le pointeur d’interface demandé dans riid. Une fois le retour réussi, *ppvObj contient le pointeur d’interface demandé sur l’objet nouvellement créé.

Valeur retournée

Cette fonction retourne S_OK en cas de réussite.

Remarques

La fonction OleCreateStaticFromData peut convertir n’importe quel objet, tant qu’elle fournit une interface IDataObject , en objet statique. Il est utile pour implémenter l’option Convertir en image pour la liaison ou l’incorporation OLE.

Les objets statiques ne peuvent être créés que si la source prend en charge l’un des formats du Presse-papiers rendu par OLE : CF_METAFILEPICT, CF_DIB ou CF_ BITMAP et CF_ENHMETAFILE.

Vous pouvez également appeler OleCreateStaticFromData pour coller un objet statique à partir du Presse-papiers. Pour déterminer si un objet est statique, appelez la fonction OleQueryCreateFromData , qui retourne OLE_S_STATIC si l’un des CF_METAFILEPICT, CF_DIB, CF_BITMAP ou CF_ENHMETAFILE est présent et qu’aucun format OLE n’est présent. Cela indique que vous devez appeler OleCreateStaticFromData plutôt que la fonction OleCreateFromData pour créer l’objet.

Le nouvel objet statique est de classe CLSID_StaticMetafile dans le cas de CF_METAFILEPICT, CLSID_StaticDib dans le cas de CF_DIB ou de CF_BITMAP, ou CLSID_Picture_EnhMetafile dans le cas de CF_ENHMETAFILE. L’objet statique définit les bits OLEMISC_STATIC et OLE_CANTLINKINSIDE retournés par IOleObject ::GetMiscStatus. L’objet statique aura l’aspect DVASPECT_CONTENT et un LINDEX de -1.

L’objet pSrcDataObject est toujours valide après le retour d’OleCreateStaticFromData. Il incombe à l’appelant de libérer pSrcDataObject . OLE ne le libère pas.

Il ne peut pas y avoir plusieurs flux de présentation dans un objet statique.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête ole2.h
Bibliothèque Ole32.lib
DLL Ole32.dll

Voir aussi

OleCreateFromData