IDataObject ::GetData, méthode (objidl.h)

Appelé par un consommateur de données pour obtenir des données à partir d’un objet de données source. La méthode GetData restitue les données décrites dans la structure FORMATETC spécifiée et les transfère via la structure STGMEDIUM spécifiée. L’appelant assume ensuite la responsabilité de libérer la structure STGMEDIUM .

Syntaxe

HRESULT GetData(
  [in]  FORMATETC *pformatetcIn,
  [out] STGMEDIUM *pmedium
);

Paramètres

[in] pformatetcIn

Pointeur vers la structure FORMATETC qui définit le format, le support et l’appareil cible à utiliser lors du passage des données. Il est possible de spécifier plusieurs supports à l'aide de l'opérateur booléen OR, en autorisant la méthode à choisir le support le mieux adapté parmi ceux spécifiés.

[out] pmedium

Pointeur vers la structure STGMEDIUM qui indique le support de stockage contenant les données retournées via son membre lié, et la responsabilité de libérer le support via la valeur de son membre pUnkForRelease . Si pUnkForRelease a la valeur NULL, le récepteur du support est responsable de sa libération ; sinon, pUnkForRelease pointe vers IUnknown sur l’objet approprié afin que sa méthode Release puisse être appelée. Le support doit être alloué et rempli par GetData.

Valeur retournée

Cette méthode retourne S_OK en cas de réussite. Les autres valeurs possibles sont les suivantes.

Code de retour Description
DV_E_LINDEX
La valeur de lindex n’est pas valide ; Actuellement, seul -1 est pris en charge.
DV_E_FORMATETC
La valeur de pformatetcIn n’est pas valide.
DV_E_TYMED
La valeur liée n’est pas valide.
DV_E_DVASPECT
La valeur dwAspect n’est pas valide.
OLE_E_NOTRUNNING
L’application objet n’est pas en cours d’exécution.
STG_E_MEDIUMFULL
Une erreur s’est produite lors de l’allocation du support.
E_UNEXPECTED
Une erreur inattendue s’est produite.
E_INVALIDARG
La valeur dwDirection n’est pas valide.
E_OUTOFMEMORY
La mémoire disponible était insuffisante pour cette opération.

Remarques

Un consommateur de données appelle GetData pour récupérer des données à partir d’un objet de données, transmises via un support de stockage (défini via la structure STGMEDIUM ).

Remarques aux appelants

Vous pouvez spécifier plusieurs supports de liaison acceptables avec l’opérateur Boolean OR. GetData doit choisir parmi les valeurs OR’d le support qui représente le mieux les données, effectuer l’allocation et indiquer la responsabilité de la libération du support.

Les données transférées sur un flux s’étendent de la position zéro du pointeur de flux à la position immédiatement avant le pointeur de flux actuel (autrement dit, la position du pointeur de flux à la sortie).

Remarques aux implémenteurs

GetData doit case activée tous les champs de la structure FORMATETC. Il est important que GetData affiche l’aspect demandé et, si possible, utilise le support demandé. Si l’objet de données ne peut pas se conformer aux informations spécifiées dans formatETC, la méthode doit retourner DV_E_FORMATETC. Si une tentative d’allocation du support échoue, la méthode doit retourner STG_E_MEDIUMFULL. Il est important de renseigner tous les champs de la structure STGMEDIUM .

Bien que l’appelant puisse spécifier plusieurs supports pour retourner les données, GetData ne peut fournir qu’un seul support. Si le transfert initial échoue avec le support sélectionné, cette méthode peut être implémentée pour essayer l’un des autres supports spécifiés avant de retourner une erreur.

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

Voir aussi

Idataobject