IDataObject::GetDataHere, méthode (objidl.h)
Appelé par un consommateur de données pour obtenir des données à partir d’un objet de données source. Cette méthode diffère de la méthode GetData en ce que l’appelant doit allouer et libérer le support de stockage spécifié.
Syntaxe
HRESULT GetDataHere(
[in] FORMATETC *pformatetc,
[in, out] STGMEDIUM *pmedium
);
Paramètres
[in] pformatetc
Pointeur vers la structure FORMATETC qui définit le format, le support et l’appareil cible à utiliser lors du passage des données. Un seul support peut être spécifié dans tymed, et seules les valeurs suivantes sont valides : TYMED_ISTORAGE, TYMED_ISTREAM, TYMED_HGLOBAL ou TYMED_FILE.
[in, out] pmedium
Pointeur vers la structure STGMEDIUM qui définit le support de stockage contenant les données transférées. Le support doit être alloué par l’appelant et renseigné par GetDataHere. L'appelant doit également libérer le support. L’implémentation de cette méthode doit toujours fournir une valeur NULL pour le membre punkForRelease de la structure STGMEDIUM vers laquelle ce paramètre pointe.
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 |
---|---|
|
La valeur de lindex n’est pas valide ; Actuellement, seul -1 est pris en charge. |
|
La valeur de pformatetc n’est pas valide. |
|
La valeur liée n’est pas valide. |
|
La valeur dwAspect n’est pas valide. |
|
L’application objet n’est pas en cours d’exécution. |
|
Une erreur s’est produite lors de l’allocation du support. |
|
Une erreur inattendue s’est produite. |
|
Le paramètre dwDirection n’est pas valide. |
|
La mémoire disponible était insuffisante pour cette opération. |
Notes
La méthode GetDataHere est similaire à IDataObject::GetData, sauf que l’appelant doit à la fois allouer et libérer le support spécifié dans pmedium. GetDataHere restitue les données décrites dans une structure FORMATETC et copie les données dans cette structure STGMEDIUM fournie par l’appelant . Par exemple, si le support est TYMED_HGLOBAL, cette méthode ne peut pas redimensionner le support ni allouer un nouveau hGlobal.
Certains médias ne sont pas appropriés dans un appel à GetDataHere, y compris les types GDI tels que les métafichiers. La méthode GetDataHere ne peut pas placer de données dans un métafichier fourni par l’appelant. En général, les seuls supports de stockage qu’il est nécessaire de prendre en charge dans cette méthode sont TYMED_ISTORAGE, TYMED_ISTREAM et TYMED_FILE.
Lorsque le support de transfert est un flux, OLE fait des hypothèses sur l’emplacement où les données sont retournées et la position du pointeur de recherche du flux. Dans un appel GetData , les données retournées sont à partir de la position de flux de zéro à juste avant le pointeur de recherche actuel du flux (c’est-à-dire la position à la sortie). Pour GetDataHere, les données retournées proviennent de la position du flux à l’entrée et juste avant la position à la sortie.
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 | objidl.h |