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.
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 |