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 CFile
y 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
, CSharedFile
o 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
, GetFileData
o 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)