Partager via


COleDataObject, classe

Utilisée dans les transferts de données pour récupérer des données dans divers formats depuis le Presse-papiers, par glisser-déposer ou depuis un élément OLE incorporé.

Syntaxe

class COleDataObject

Membres

Constructeurs publics

Nom Description
COleDataObject ::COleDataObject Construit un objet COleDataObject.

Méthodes publiques

Nom Description
COleDataObject ::Attach Attache l’objet de données OLE spécifié à l’objet COleDataObject.
COleDataObject ::AttachClipboard Attache l’objet de données qui se trouve dans le Presse-papiers.
COleDataObject ::BeginEnumFormats Prépare un ou plusieurs appels suivants GetNextFormat .
COleDataObject ::D etach Détache l’objet associé IDataObject .
COleDataObject ::GetData Copie les données de l’objet de données OLE attaché dans un format spécifié.
COleDataObject ::GetFileData Copie les données de l’objet de données OLE attaché dans un CFile pointeur au format spécifié.
COleDataObject ::GetGlobalData Copie les données de l’objet de données OLE attaché dans un HGLOBAL format spécifié.
COleDataObject ::GetNextFormat Retourne le format de données suivant disponible.
COleDataObject ::IsDataAvailable Vérifie si les données sont disponibles dans un format spécifié.
COleDataObject ::Release Détache et libère l’objet associé IDataObject .

Notes

COleDataObject n’a pas de classe de base.

Ces types de transferts de données incluent une source et une destination. La source de données est implémentée en tant qu’objet de la classe COleDataSource . Chaque fois qu’une application de destination a des données supprimées ou qu’elle est invitée à effectuer une opération de collage à partir du Presse-papiers, un objet de la COleDataObject classe doit être créé.

Cette classe vous permet de déterminer si les données existent dans un format spécifié. Vous pouvez également énumérer les formats de données disponibles ou vérifier si un format donné est disponible, puis récupérer les données dans le format préféré. La récupération d’objets peut être effectuée de plusieurs façons différentes, notamment l’utilisation d’un fichier CFile, d’un HGLOBAL ou d’une STGMEDIUM structure.

Pour plus d’informations, consultez la structure STGMEDIUM dans le Kit de développement logiciel (SDK) Windows.

Pour plus d’informations sur l’utilisation d’objets de données dans votre application, consultez l’article Objets de données et sources de données (OLE) .

Hiérarchie d'héritage

COleDataObject

Spécifications

En-tête : afxole.h

COleDataObject ::Attach

Appelez cette fonction pour associer l’objet COleDataObject à un objet de données OLE.

void Attach(
    LPDATAOBJECT lpDataObject,
    BOOL bAutoRelease = TRUE);

Paramètres

lpDataObject
Pointe vers un objet de données OLE.

bAutoRelease
TRUE si l’objet de données OLE doit être libéré lorsque l’objet COleDataObject est détruit ; sinon FALSE.

Notes

Pour plus d’informations, consultez IDataObject dans le Kit de développement logiciel (SDK) Windows.

COleDataObject ::AttachClipboard

Appelez cette fonction pour attacher l’objet de données qui se trouve actuellement dans le Presse-papiers à l’objet COleDataObject .

BOOL AttachClipboard();

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

Remarque

L’appel de cette fonction verrouille le Presse-papiers jusqu’à ce que cet objet de données soit libéré. L’objet de données est libéré dans le destructeur pour le COleDataObject. Pour plus d’informations, consultez OpenClipboard et CloseClipboard dans la documentation Win32.

COleDataObject ::BeginEnumFormats

Appelez cette fonction pour préparer les appels suivants à GetNextFormat la récupération d’une liste de formats de données à partir de l’élément.

void BeginEnumFormats();

Notes

Après un appel à BeginEnumFormats, la position du premier format pris en charge par cet objet de données est stockée. Les appels successifs pour GetNextFormat énumérer la liste des formats disponibles dans l’objet de données.

Pour vérifier la disponibilité des données dans un format donné, utilisez COleDataObject ::IsDataAvailable.

Pour plus d’informations, consultez IDataObject ::EnumFormatEtc dans le Kit de développement logiciel (SDK) Windows.

COleDataObject ::COleDataObject

Construit un objet COleDataObject.

COleDataObject();

Notes

Un appel à COleDataObject ::Attach ou COleDataObject ::AttachClipboard doit être effectué avant d’appeler d’autres COleDataObject fonctions.

Remarque

Étant donné qu’un des paramètres des gestionnaires glisser-déplacer est un pointeur vers un COleDataObject, il n’est pas nécessaire d’appeler ce constructeur pour prendre en charge le glisser-déplacer.

COleDataObject ::D etach

Appelez cette fonction pour détacher l’objet COleDataObject de son objet de données OLE associé sans libérer l’objet de données.

LPDATAOBJECT Detach();

Valeur de retour

Pointeur vers l’objet de données OLE qui a été détaché.

Notes

COleDataObject ::GetData

Appelez cette fonction pour récupérer des données à partir de l’élément au format spécifié.

BOOL GetData(
    CLIPFORMAT cfFormat,
    LPSTGMEDIUM lpStgMedium,
    LPFORMATETC lpFormatEtc = NULL);

Paramètres

cfFormat
Format dans lequel les données doivent être retournées. Ce paramètre peut être l’un des formats de Presse-papiers prédéfinis ou la valeur retournée par la fonction Windows RegisterClipboardFormat native.

lpStgMedium
Pointe vers une structure STGMEDIUM qui recevra des données.

lpFormatEtc
Pointe vers une structure FORMATETC décrivant le format dans lequel les données doivent être retournées. Fournissez une valeur pour ce paramètre si vous souhaitez spécifier des informations de format supplémentaires au-delà du format Presse-papiers spécifié par cfFormat. S’il s’agit de NULL, les valeurs par défaut sont utilisées pour les autres champs de la FORMATETC structure.

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

Pour plus d’informations, consultez IDataObject ::GetData, STGMEDIUM et FORMATETC dans le Kit de développement logiciel (SDK) Windows.

Pour plus d’informations, consultez RegisterClipboardFormat dans le Kit de développement logiciel (SDK) Windows.

COleDataObject ::GetFileData

Appelez cette fonction pour créer un CFile objet ou CFiledérivé et récupérer des données au format spécifié dans un CFile pointeur.

CFile* GetFileData(
    CLIPFORMAT cfFormat,
    LPFORMATETC lpFormatEtc = NULL);

Paramètres

cfFormat
Format dans lequel les données doivent être retournées. Ce paramètre peut être l’un des formats de Presse-papiers prédéfinis ou la valeur retournée par la fonction Windows RegisterClipboardFormat native.

lpFormatEtc
Pointe vers une structure FORMATETC décrivant le format dans lequel les données doivent être retournées. Fournissez une valeur pour ce paramètre si vous souhaitez spécifier des informations de format supplémentaires au-delà du format Presse-papiers spécifié par cfFormat. S’il s’agit de NULL, les valeurs par défaut sont utilisées pour les autres champs de la FORMATETC structure.

Valeur de retour

Pointeur vers le nouvel CFile CFileobjet dérivé contenant les données en cas de réussite ; sinon NULL.

Notes

Selon le support dans lequel les données sont stockées, le type réel pointé par la valeur de retour peut être CFile, CSharedFileou COleStreamFile.

Remarque

L’objet CFile accessible par la valeur de retour de cette fonction appartient à l’appelant. C’est la responsabilité de l’appelant à delete l’objet CFile , fermant ainsi le fichier.

Pour plus d’informations, consultez FORMATETC dans le Kit de développement logiciel (SDK) Windows.

Pour plus d’informations, consultez RegisterClipboardFormat dans le Kit de développement logiciel (SDK) Windows.

COleDataObject ::GetGlobalData

Appelez cette fonction pour allouer un bloc de mémoire global et récupérer des données au format spécifié dans un HGLOBAL.

HGLOBAL GetGlobalData(
    CLIPFORMAT cfFormat,
    LPFORMATETC lpFormatEtc = NULL);

Paramètres

cfFormat
Format dans lequel les données doivent être retournées. Ce paramètre peut être l’un des formats de Presse-papiers prédéfinis ou la valeur retournée par la fonction Windows RegisterClipboardFormat native.

lpFormatEtc
Pointe vers une structure FORMATETC décrivant le format dans lequel les données doivent être retournées. Fournissez une valeur pour ce paramètre si vous souhaitez spécifier des informations de format supplémentaires au-delà du format Presse-papiers spécifié par cfFormat. S’il s’agit de NULL, les valeurs par défaut sont utilisées pour les autres champs de la FORMATETC structure.

Valeur de retour

Handle du bloc de mémoire globale contenant les données en cas de réussite ; sinon NULL.

Notes

Pour plus d’informations, consultez FORMATETC dans le Kit de développement logiciel (SDK) Windows.

Pour plus d’informations, consultez RegisterClipboardFormat dans le Kit de développement logiciel (SDK) Windows.

COleDataObject ::GetNextFormat

Appelez cette fonction à plusieurs reprises pour obtenir tous les formats disponibles pour récupérer des données à partir de l’élément.

BOOL GetNextFormat(LPFORMATETC lpFormatEtc);

Paramètres

lpFormatEtc
Pointe vers la structure FORMATETC qui reçoit les informations de format lorsque l’appel de fonction retourne.

Valeur de retour

Différent de zéro si un autre format est disponible ; sinon 0.

Notes

Après un appel à COleDataObject ::BeginEnumFormats, la position du premier format pris en charge par cet objet de données est stockée. Les appels successifs pour GetNextFormat énumérer la liste des formats disponibles dans l’objet de données. Utilisez ces fonctions pour répertorier les formats disponibles.

Pour vérifier la disponibilité d’un format donné, appelez COleDataObject ::IsDataAvailable.

Pour plus d’informations, consultez IEnumXXXX ::Next dans le Kit de développement logiciel (SDK) Windows.

COleDataObject ::IsDataAvailable

Appelez cette fonction pour déterminer si un format particulier est disponible pour récupérer des données à partir de l’élément OLE.

BOOL IsDataAvailable(
    CLIPFORMAT cfFormat,
    LPFORMATETC lpFormatEtc = NULL);

Paramètres

cfFormat
Format de données du Presse-papiers à utiliser dans la structure pointée par lpFormatEtc. Ce paramètre peut être l’un des formats de Presse-papiers prédéfinis ou la valeur retournée par la fonction Windows RegisterClipboardFormat native.

lpFormatEtc
Pointe vers une structure FORMATETC décrivant le format souhaité. Fournissez une valeur pour ce paramètre uniquement si vous souhaitez spécifier des informations de format supplémentaires au-delà du format Presse-papiers spécifié par cfFormat. S’il s’agit de NULL, les valeurs par défaut sont utilisées pour les autres champs de la FORMATETC structure.

Valeur de retour

Différent de zéro si les données sont disponibles au format spécifié ; sinon 0.

Notes

Cette fonction est utile avant d’appeler GetData, GetFileDataou GetGlobalData.

Pour plus d’informations, consultez IDataObject ::QueryGetData et FORMATETC dans le Kit de développement logiciel (SDK) Windows.

Pour plus d’informations, consultez RegisterClipboardFormat dans le Kit de développement logiciel (SDK) Windows.

Exemple

Consultez l’exemple de CRichEditView ::QueryAcceptData.

COleDataObject ::Release

Appelez cette fonction pour libérer la propriété de l’objet IDataObject précédemment associé à l’objet COleDataObject .

void Release();

Notes

Il IDataObject a été associé à l’appel COleDataObject Attach ou AttachClipboard explicitement ou à l’infrastructure. Si le paramètre bAutoRelease de Attach false, l’objet IDataObject ne sera pas libéré. Dans ce cas, l’appelant est chargé de libérer l’objet IDataObject en appelant IUnknown ::Release.

Voir aussi

Exemple MFC HIERSVR
Exemple OCLIENT MFC
Graphique hiérarchique
COleDataSource, classe
COleClientItem, classe
COleServerItem, classe