Partager via


IOleObject::InitFromData, méthode (oleidl.h)

Initialise un objet nouvellement créé avec des données d’un objet de données spécifié, qui peuvent résider dans le même conteneur ou dans le Presse-papiers.

Syntaxe

HRESULT InitFromData(
  [in] IDataObject *pDataObject,
  [in] BOOL        fCreation,
  [in] DWORD       dwReserved
);

Paramètres

[in] pDataObject

Pointeur vers l’interface IDataObject sur l’objet de données à partir duquel les données d’initialisation doivent être obtenues. Ce paramètre peut être NULL, ce qui indique que l’appelant souhaite savoir s’il est utile d’essayer d’envoyer des données ; autrement dit, si le conteneur est capable d’initialiser un objet à partir des données qui lui sont passées. L’objet de données à passer peut être basé sur la sélection actuelle dans le document conteneur ou sur les données transférées vers le conteneur à partir d’une source externe.

[in] fCreation

TRUE indique que le conteneur insère un nouvel objet à l’intérieur de lui-même et initialise cet objet avec les données de la sélection actuelle ; FALSE indique un transfert de données programmatiques plus général, probablement à partir d’une source autre que la sélection actuelle.

[in] dwReserved

Ce paramètre est réservé et doit être égal à zéro.

Valeur retournée

Cette méthode retourne S_OK si pDataObject n’a pas la valeur NULL, l’objet a tenté de s’initialiser à partir des données fournies ; si pDataObject a la valeur NULL, l’objet peut tenter une initialisation réussie. Les autres valeurs de retour possibles sont les suivantes.

Code de retour Description
S_FALSE
Si pDataObject n’a pas la valeur NULL, l’objet n’a pas tenté de s’initialiser ; si pDataObject a la valeur NULL, l’objet ne peut pas tenter de s’initialiser à partir des données fournies.
E_NOTIMPL
L’objet ne prend pas en charge InitFromData.
OLE_E_NOTRUNNING
L’objet n’est pas en cours d’exécution et ne peut donc pas effectuer l’opération.

Notes

Cette méthode permet à un document conteneur d’insérer dans lui-même un nouvel objet dont le contenu est basé sur une sélection de données actuelle dans le conteneur. Par exemple, un document de feuille de calcul peut vouloir créer un objet graphe basé sur les données d’une plage de cellules sélectionnée.

À l’aide de cette méthode, un conteneur peut également remplacer le contenu d’un objet incorporé par des données transférées à partir d’une autre source. Cela offre un moyen pratique de mettre à jour un objet incorporé.

Remarques aux appelants

Après l’initialisation, le conteneur doit appeler IOleObject::GetMiscStatus pour case activée la valeur du bit OLEMISC_INSERTNOTREPLACE. Si le bit est activé, le nouvel objet s’insère lui-même à la suite des données sélectionnées. Si le bit est désactivé, le nouvel objet remplace les données sélectionnées.

Remarques aux implémenteurs

Un conteneur spécifie s’il faut baser un nouvel objet sur la sélection actuelle en passant TRUE ou FALSE au paramètre fCreation .

Si fCreation a la valeur TRUE, le conteneur tente de créer une nouvelle instance d’un objet, en l’initialisant avec les données sélectionnées spécifiées par l’objet de données.

Si fCreation a la valeur FALSE, l’appelant tente de remplacer le contenu actuel de l’objet par celui pointé par pDataObject. Les contraintes habituelles qui s’appliquent à un objet pendant une opération de collage doivent être appliquées ici. Par exemple, si le type des données fournies est inacceptable, l’objet ne doit pas pouvoir s’initialiser et retourner S_FALSE.

Si l’objet retourne S_FALSE, il ne peut pas s’initialiser à partir des données fournies.

Spécifications

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

Voir aussi

IDataObject::SetData

IOleObject

IOleObject::GetMiscStatus