Partager via


OleCreateLinkFromData, fonction (ole2.h)

Crée un objet lié à partir d’un objet de transfert de données récupéré dans le Presse-papiers ou dans le cadre d’une opération de glisser-déplacer OLE.

Syntaxe

HRESULT OleCreateLinkFromData(
  [in]  LPDATAOBJECT    pSrcDataObj,
  [in]  REFIID          riid,
  [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 à partir duquel l’objet lié doit être créé.

[in] riid

Référence à l’identificateur de l’interface que l’appelant utilise ultérieurement pour 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 qui indique les fonctionnalités de dessin ou de récupération de données mises en cache localement de l’objet nouvellement créé. D’autres considérations sont décrites dans la section Remarques suivante.

[in] pFormatEtc

Pointeur vers une valeur de l’énumération OLERENDER qui indique les fonctionnalités de dessin ou de récupération de données mises en cache localement que l’objet nouvellement créé doit avoir. La valeur OLERENDER choisie affecte les valeurs possibles pour le paramètre pFormatEtc .

[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 sur l’objet de stockage. 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. Les autres valeurs possibles sont les suivantes.

Code de retour Description
CLIPBRD_E_CANT_OPEN
Impossible d’ouvrir le Presse-papiers.
OLE_E_CANT_GETMONIKER
Impossible d’extraire le moniker de l’objet.
OLE_E_CANT_BINDTOSOURCE
Impossible de lier à la source. La liaison est nécessaire pour obtenir les données d’initialisation du cache.

Remarques

La fonction OleCreateLinkFromData est utilisée pour implémenter une opération coller-lien ou glisser-lien. Son fonctionnement est similaire à celui de la fonction OleCreateFromData , sauf qu’il crée un lien et recherche différents formats de données. Si le format CF_LINKSOURCE n’est pas présent et que le format de Presse-papiers FileName ou FileNameW est présent dans l’objet de transfert de données, OleCreateLinkFromData crée un package contenant le lien vers le fichier indiqué.

Vous utilisez les paramètres renderopt et pFormatetc pour contrôler la fonctionnalité de mise en cache de l’objet nouvellement créé. Pour obtenir des informations générales sur la façon de déterminer ce qui doit être mis en cache, reportez-vous à l’énumération OLERENDER pour obtenir une description de l’interaction entre renderopt et pFormatetc. Il existe toutefois des effets spécifiques supplémentaires de ces paramètres sur la façon dont OleCreateLinkFromData initialise le cache, comme suit.

Valeur Description
OLERENDER_DRAW, OLERENDER_FORMAT Si les informations de présentation sont dans les autres formats de l’objet de données source, ces informations sont utilisées. Si les informations ne sont pas présentes, le cache est initialement vide, mais il est rempli la première fois que l’objet est exécuté. Aucun autre format n’est mis en cache dans l’objet nouvellement créé.
OLERENDER_NONE, OLERENDER_ASIS Rien ne doit être mis en cache dans l’objet nouvellement créé.

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

OleCreateLink