Compartir vía


COleDataObject (clase)

Se utiliza en las transferencias de datos para recuperar datos en diferentes formatos del Portapapeles, mediante arrastrar y colocar o a partir de un elemento OLE incrustado.

Sintaxis

class COleDataObject

Miembros

Constructores públicos

Nombre Descripción
COleDataObject::COleDataObject Construye un objeto COleDataObject.

Métodos públicos

Nombre Descripción
COleDataObject::Attach Adjunta el objeto de datos OLE especificado a COleDataObject.
COleDataObject::AttachClipboard Adjunta el objeto de datos que se encuentra en el Portapapeles.
COleDataObject::BeginEnumFormats Se prepara para una o varias llamadas GetNextFormat posteriores.
COleDataObject::Detach Desasocia el objeto IDataObject asociado.
COleDataObject::GetData Copia datos del objeto de datos OLE adjunto en un formato especificado.
COleDataObject::GetFileData Copia datos del objeto de datos OLE adjunto en un puntero CFile en el formato especificado.
COleDataObject::GetGlobalData Copia datos del objeto de datos OLE adjunto en un puntero HGLOBAL en el formato especificado.
COleDataObject::GetNextFormat Devuelve el siguiente formato de datos disponible.
COleDataObject::IsDataAvailable Comprueba si los datos están disponibles en un formato especificado.
COleDataObject::Release Desasocia y libera el objeto IDataObject asociado.

Comentarios

COleDataObject no tiene una clase base.

Este tipo de transferencias de datos incluye un origen y un destino. El origen de datos se implementa como un objeto de la clase COleDataSource. Cada vez que una aplicación de destino tiene datos anulados o se le pide que realice una operación de pegado desde el Portapapeles, se debe crear un objeto de la clase COleDataObject.

Esta clase permite determinar si los datos existen en un formato especificado. También puede enumerar los formatos de datos disponibles o comprobar si un formato determinado está disponible y, a continuación, recuperar los datos en el formato preferido. La recuperación de objetos se puede realizar de varias maneras diferentes, incluido el uso de un CFile, un HGLOBAL o una estructura STGMEDIUM.

Para más información, consulte la estructura STGMEDIUM en Windows SDK.

Para más información sobre el uso de objetos de datos en la aplicación, consulte el artículo Objetos de datos y orígenes de datos (OLE).

Jerarquía de herencia

COleDataObject

Requisitos

Encabezado: afxole.h

COleDataObject::Attach

Llame a esta función para asociar el objeto COleDataObject a un objeto de datos OLE.

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

Parámetros

lpDataObject
Apunta a un objeto de datos OLE.

bAutoRelease
TRUE si se debe liberar el objeto de datos OLE cuando se destruye el objeto COleDataObject; de lo contrario, FALSE.

Comentarios

Para más información, consulte IDataObject en Windows SDK.

COleDataObject::AttachClipboard

Llame a esta función para adjuntar el objeto de datos que se encuentra actualmente en el Portapapeles al objeto COleDataObject.

BOOL AttachClipboard();

Valor devuelto

Si es correcta, su valor es distinto de cero. En caso contrario, es cero.

Comentarios

Nota:

Al llamar a esta función, se bloquea el Portapapeles hasta que se libera el objeto de datos. El objeto de datos se libera en el destructor de COleDataObject. Para obtener más información, consulte OpenClipboard y CloseClipboard en la documentación de Win32.

COleDataObject::BeginEnumFormats

Llame a esta función para preparar las llamadas posteriores a GetNextFormat para recuperar una lista de formatos de datos del elemento.

void BeginEnumFormats();

Comentarios

Después de una llamada a BeginEnumFormats, se almacena la posición del primer formato admitido por este objeto de datos. Las llamadas sucesivas a GetNextFormat enumerarán la lista de formatos disponibles en el objeto de datos.

Para comprobar la disponibilidad de los datos en un formato determinado, use COleDataObject::IsDataAvailable.

Para más información, consulte IDataObject::EnumFormatEtc en Windows SDK.

COleDataObject::COleDataObject

Construye un objeto COleDataObject.

COleDataObject();

Comentarios

Se debe realizar una llamada a COleDataObject::Attach o COleDataObject::AttachClipboard antes de llamar a otras funciones COleDataObject.

Nota:

Puesto que uno de los parámetros de los controladores de arrastrar y colocar es un puntero a COleDataObject, no es necesario llamar a este constructor para admitir arrastrar y colocar.

COleDataObject::Detach

Llame a esta función para desasociar el objeto COleDataObject de su objeto de datos OLE asociado sin liberar el objeto de datos.

LPDATAOBJECT Detach();

Valor devuelto

Puntero al objeto de datos OLE que se ha desasociado.

Comentarios

COleDataObject::GetData

Llame a esta función para recuperar datos del elemento en el formato especificado.

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

Parámetros

cfFormat
El formato en el que se van a devolver los datos. Este parámetro puede ser uno de los formatos predefinidos del Portapapeles o el valor devuelto por la función RegisterClipboardFormat nativa de Windows.

lpStgMedium
Apunta a una estructura STGMEDIUM que recibirá datos.

lpFormatEtc
Apunta a una estructura FORMATETC que describe el formato en el que se van a devolver los datos. Proporcione un valor para este parámetro si desea especificar información de formato adicional más allá del formato de Portapapeles especificado por cfFormat. Si es null, se usarán los valores predeterminados para los demás campos de la estructuraFORMATETC.

Valor devuelto

Si es correcta, su valor es distinto de cero. En caso contrario, es cero.

Comentarios

Para más información, consulte IDataObject::GetData, STGMEDIUM y FORMATETC en Windows SDK.

Para más información, consulte RegisterClipboardFormat en Windows SDK.

COleDataObject::GetFileData

Llame a esta función para crear un objeto derivado de CFile o CFiley recuperar datos en el formato especificado en un puntero CFile.

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

Parámetros

cfFormat
El formato en el que se van a devolver los datos. Este parámetro puede ser uno de los formatos predefinidos del Portapapeles o el valor devuelto por la función RegisterClipboardFormat nativa de Windows.

lpFormatEtc
Apunta a una estructura FORMATETC que describe el formato en el que se van a devolver los datos. Proporcione un valor para este parámetro si desea especificar información de formato adicional más allá del formato de Portapapeles especificado por cfFormat. Si es null, se usarán los valores predeterminados para los demás campos de la estructuraFORMATETC.

Valor devuelto

Puntero al objeto nuevo CFile o al objeto derivado CFile que contiene los datos si se ejecuta correctamente; de lo contrario, null.

Comentarios

Dependiendo del medio en el que se almacenan los datos, el tipo real al que apunta el valor devuelto puede ser CFile, CSharedFileo COleStreamFile.

Nota:

El objeto CFile al que tiene acceso el valor devuelto de esta función es propiedad del autor de la llamada. Es responsabilidad del autor de la llamada delete el objeto CFile, cerrando así el archivo.

Para más información, consulte FORMATETC en Windows SDK.

Para más información, consulte RegisterClipboardFormat en Windows SDK.

COleDataObject::GetGlobalData

Llame a esta función para asignar un bloque de memoria global y recuperar datos en el formato especificado en un HGLOBAL.

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

Parámetros

cfFormat
El formato en el que se van a devolver los datos. Este parámetro puede ser uno de los formatos predefinidos del Portapapeles o el valor devuelto por la función RegisterClipboardFormat nativa de Windows.

lpFormatEtc
Apunta a una estructura FORMATETC que describe el formato en el que se van a devolver los datos. Proporcione un valor para este parámetro si desea especificar información de formato adicional más allá del formato de Portapapeles especificado por cfFormat. Si es null, se usarán los valores predeterminados para los demás campos de la estructuraFORMATETC.

Valor devuelto

El manipulador del bloque de memoria global que contiene los datos si se ejecuta correctamente; en caso contrario, null.

Comentarios

Para más información, consulte FORMATETC en Windows SDK.

Para más información, consulte RegisterClipboardFormat en Windows SDK.

COleDataObject::GetNextFormat

Llame a esta función repetidamente para obtener todos los formatos disponibles para recuperar datos del elemento.

BOOL GetNextFormat(LPFORMATETC lpFormatEtc);

Parámetros

lpFormatEtc
Apunta a la estructura FORMATETC que recibe la información de formato cuando la llamada de función vuelve.

Valor devuelto

Distinto de cero si hay otro formato disponible; de lo contrario, 0.

Comentarios

Después de una llamada a COleDataObject::BeginEnumFormats, se almacena la posición del primer formato admitido por este objeto de datos. Las llamadas sucesivas a GetNextFormat enumerarán la lista de formatos disponibles en el objeto de datos. Use estas funciones para enumerar los formatos disponibles.

Para comprobar la disponibilidad de un formato determinado, llame a COleDataObject::IsDataAvailable.

Para obtener más información, consulte IEnumXXXX::Next en Windows SDK.

COleDataObject::IsDataAvailable

Llame a esta función para determinar si hay un formato concreto disponible para recuperar datos del elemento OLE.

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

Parámetros

cfFormat
El formato de datos del Portapapeles que se va a usar en la estructura a la que apunta lpFormatEtc. Este parámetro puede ser uno de los formatos predefinidos del Portapapeles o el valor devuelto por la función RegisterClipboardFormat nativa de Windows.

lpFormatEtc
Apunta a una estructura FORMATETC que describe el formato deseado. Proporcione un valor para este parámetro solo si desea especificar información de formato adicional más allá del formato del Portapapeles especificado por cfFormat. Si es null, se usarán los valores predeterminados para los demás campos de la estructuraFORMATETC.

Valor devuelto

Distinto de cero si los datos están disponibles en el formato especificado; de lo contrario, 0.

Comentarios

Esta función es útil antes de llamar a GetData, GetFileDatao GetGlobalData.

Para más información, consulte IDataObject::GetData y FORMATETC en Windows SDK.

Para más información, consulte RegisterClipboardFormat en Windows SDK.

Ejemplo

Consulte el ejemplo de CRichEditView::QueryAcceptData.

COleDataObject::Release

Llame a esta función para liberar la propiedad del objeto IDataObject asociado anteriormente al objeto COleDataObject.

void Release();

Comentarios

IDataObject se asoció a COleDataObject mediante una llamada a Attach o AttachClipboard explícitamente o por el marco de trabajo. Si el parámetro bAutoRelease de Attach es FALSE, el objeto IDataObject no se liberará. En este caso, el autor de la llamada es quien debe liberar el IDataObject mediante una llamada a IUnknown::Release.

Consulte también

HIERSVR de muestra MFC
Ejemplo MFC de OCLIENT
Gráfico de jerarquías
COleDataSource (clase)
COleClientItem (clase)
COleServerItem (clase)