Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Примечание.
Библиотека классов Microsoft Foundation (MFC) продолжает поддерживаться. Однако мы больше не добавляем функции или обновляем документацию.
Используется в передаче данных для извлечения данных в разных форматах из буфера обмена путем перетаскивания или из встроенного элемента OLE.
Синтаксис
class COleDataObject
Участники
Открытые конструкторы
| Имя | Описание |
|---|---|
| COleDataObject::COleDataObject | Формирует объект COleDataObject. |
Открытые методы
| Имя | Описание |
|---|---|
| COleDataObject::Attach | Присоединяет указанный объект данных OLE к объекту COleDataObjectданных . |
| COleDataObject::AttachClipboard | Присоединяет объект данных, который находится в буфере обмена. |
| COleDataObject::BeginEnumFormats | Готовится к одному или нескольким последующим GetNextFormat вызовам. |
| COleDataObject::D etach | Отсоединяет связанный IDataObject объект. |
| COleDataObject::GetData | Копирует данные из присоединенного объекта данных OLE в указанном формате. |
| COleDataObject::GetFileData | Копирует данные из присоединенного объекта данных OLE в CFile указатель в указанном формате. |
| COleDataObject::GetGlobalData | Копирует данные из присоединенного объекта данных OLE в указанный HGLOBAL формат. |
| COleDataObject::GetNextFormat | Возвращает следующий формат данных, доступный. |
| COleDataObject::IsDataAvailable | Проверяет, доступны ли данные в указанном формате. |
| COleDataObject::Release | Отсоединяет и освобождает связанный IDataObject объект. |
Замечания
COleDataObject не имеет базового класса.
Эти типы передачи данных включают источник и назначение. Источник данных реализуется как объект класса COleDataSource . Всякий раз, когда целевое приложение удаляет данные или запрашивается выполнить операцию вставки из буфера обмена, необходимо создать объект COleDataObject класса.
Этот класс позволяет определить, существуют ли данные в указанном формате. Можно также перечислить доступные форматы данных или проверить, доступен ли данный формат, а затем получить данные в предпочтительном формате. Извлечение объектов может выполняться различными способами, включая использование CFile, HGLOBAL или STGMEDIUM структуры.
Дополнительные сведения см . в структуре STGMEDIUM в пакете SDK для Windows.
Дополнительные сведения об использовании объектов данных в приложении см. в статье "Объекты данных и источники данных" (OLE).
Иерархия наследования
COleDataObject
Требования
Заголовок: afxole.h
COleDataObject::Attach
Вызовите эту функцию, чтобы связать COleDataObject объект с объектом данных OLE.
void Attach(
LPDATAOBJECT lpDataObject,
BOOL bAutoRelease = TRUE);
Параметры
lpDataObject
Указывает на объект данных OLE.
bAutoRelease
ЗНАЧЕНИЕ TRUE, если объект данных OLE должен быть освобожден при COleDataObject уничтожении объекта; в противном случае — ЗНАЧЕНИЕ FALSE.
Замечания
Дополнительные сведения см. в разделе IDataObject в пакете SDK для Windows.
COleDataObject::AttachClipboard
Вызовите эту функцию, чтобы подключить объект данных, который в настоящее время находится в буфере обмена к объекту COleDataObject .
BOOL AttachClipboard();
Возвращаемое значение
Имеет ненулевое значение в случае успешного выполнения, иначе — 0.
Замечания
Примечание.
Вызов этой функции блокирует буфер обмена, пока этот объект данных не будет освобожден. Объект данных освобождается в деструкторе для объекта COleDataObject. Дополнительные сведения см. в статье OpenClipboard и CloseClipboard в документации по Win32.
COleDataObject::BeginEnumFormats
Вызовите эту функцию, чтобы подготовиться к последующим вызовам GetNextFormat для получения списка форматов данных из элемента.
void BeginEnumFormats();
Замечания
После вызова BeginEnumFormatsсохраняется позиция первого формата, поддерживаемого этим объектом данных. Последовательные вызовы GetNextFormat для перечисления списка доступных форматов в объекте данных.
Чтобы проверить доступность данных в определенном формате, используйте COleDataObject::IsDataAvailable.
Дополнительные сведения см. в разделе IDataObject::EnumFormatEtc в пакете SDK для Windows.
COleDataObject::COleDataObject
Формирует объект COleDataObject.
COleDataObject();
Замечания
Перед вызовом других функций необходимо вызвать COleDataObject::Attach или COleDataObject.
Примечание.
Так как один из параметров обработчиков перетаскивания является указателем на COleDataObjectобъект, не нужно вызывать этот конструктор для поддержки перетаскивания.
COleDataObject::D etach
Вызовите эту функцию, чтобы отсоединить COleDataObject объект от связанного объекта данных OLE без освобождения объекта данных.
LPDATAOBJECT Detach();
Возвращаемое значение
Указатель на отсоединяемый объект данных OLE.
Замечания
COleDataObject::GetData
Вызовите эту функцию, чтобы получить данные из элемента в указанном формате.
BOOL GetData(
CLIPFORMAT cfFormat,
LPSTGMEDIUM lpStgMedium,
LPFORMATETC lpFormatEtc = NULL);
Параметры
cfFormat
Формат, в котором возвращаются данные. Этот параметр может быть одним из стандартных форматов буфера обмена или значением, возвращаемым собственной функцией Windows RegisterClipboardFormat .
lpStgMedium
Указывает на структуру STGMEDIUM , которая будет получать данные.
lpFormatEtc
Указывает на структуру FORMATETC , описывающую формат возврата данных. Укажите значение этого параметра, если требуется указать дополнительные сведения о формате буфера обмена, заданном cfFormat. Если значение NULL, значения по умолчанию используются для других полей в FORMATETC структуре.
Возвращаемое значение
Имеет ненулевое значение в случае успешного выполнения, иначе — 0.
Замечания
Дополнительные сведения см. в разделе IDataObject::GetData, STGMEDIUM и FORMATETC в пакете SDK для Windows.
Дополнительные сведения см. в разделе RegisterClipboardFormat в пакете SDK для Windows.
COleDataObject::GetFileData
Вызовите эту функцию для создания CFile или CFileпроизводного объекта и получения данных в указанном формате в CFile указатель.
CFile* GetFileData(
CLIPFORMAT cfFormat,
LPFORMATETC lpFormatEtc = NULL);
Параметры
cfFormat
Формат, в котором возвращаются данные. Этот параметр может быть одним из стандартных форматов буфера обмена или значением, возвращаемым собственной функцией Windows RegisterClipboardFormat .
lpFormatEtc
Указывает на структуру FORMATETC , описывающую формат возврата данных. Укажите значение этого параметра, если требуется указать дополнительные сведения о формате буфера обмена, заданном cfFormat. Если значение NULL, значения по умолчанию используются для других полей в FORMATETC структуре.
Возвращаемое значение
Указатель на новый CFile или CFileпроизводный объект, содержащий данные в случае успешного выполнения; в противном случае — ЗНАЧЕНИЕ NULL.
Замечания
В зависимости от среды, в которую хранятся данные, фактический тип, указывающий на возвращаемое значение, может быть CFile, CSharedFileили COleStreamFile.
Примечание.
Объект CFile , к которым обращается возвращаемое значение этой функции, принадлежит вызывающей функции. Это ответственность вызывающего объекта deleteCFile , тем самым закрывая файл.
Дополнительные сведения см. в разделе FORMATETC в пакете SDK для Windows.
Дополнительные сведения см. в разделе RegisterClipboardFormat в пакете SDK для Windows.
COleDataObject::GetGlobalData
Вызовите эту функцию, чтобы выделить глобальный блок памяти и получить данные в указанном формате в HGLOBAL.
HGLOBAL GetGlobalData(
CLIPFORMAT cfFormat,
LPFORMATETC lpFormatEtc = NULL);
Параметры
cfFormat
Формат, в котором возвращаются данные. Этот параметр может быть одним из стандартных форматов буфера обмена или значением, возвращаемым собственной функцией Windows RegisterClipboardFormat .
lpFormatEtc
Указывает на структуру FORMATETC , описывающую формат возврата данных. Укажите значение этого параметра, если требуется указать дополнительные сведения о формате буфера обмена, заданном cfFormat. Если значение NULL, значения по умолчанию используются для других полей в FORMATETC структуре.
Возвращаемое значение
Дескриптор глобального блока памяти, содержащего данные в случае успешного выполнения; в противном случае ЗНАЧЕНИЕ NULL.
Замечания
Дополнительные сведения см. в разделе FORMATETC в пакете SDK для Windows.
Дополнительные сведения см. в разделе RegisterClipboardFormat в пакете SDK для Windows.
COleDataObject::GetNextFormat
Вызовите эту функцию многократно, чтобы получить все форматы, доступные для получения данных из элемента.
BOOL GetNextFormat(LPFORMATETC lpFormatEtc);
Параметры
lpFormatEtc
Указывает на структуру FORMATETC , которая получает сведения о формате при возврате вызова функции.
Возвращаемое значение
Ненулевое значение, если доступен другой формат; в противном случае — 0.
Замечания
После вызова COleDataObject::BeginEnumFormats сохраняется положение первого формата, поддерживаемого этим объектом данных. Последовательные вызовы GetNextFormat для перечисления списка доступных форматов в объекте данных. Используйте эти функции для перечисления доступных форматов.
Чтобы проверить доступность заданного формата, вызовите COleDataObject::IsDataAvailable.
Дополнительные сведения см. в разделе IEnumXXXXXX::Далее в пакете SDK для Windows.
COleDataObject::IsDataAvailable
Вызовите эту функцию, чтобы определить, доступен ли определенный формат для получения данных из элемента OLE.
BOOL IsDataAvailable(
CLIPFORMAT cfFormat,
LPFORMATETC lpFormatEtc = NULL);
Параметры
cfFormat
Формат данных буфера обмена, используемый в структуре, на которую указывает lpFormatEtc. Этот параметр может быть одним из стандартных форматов буфера обмена или значением, возвращаемым собственной функцией Windows RegisterClipboardFormat .
lpFormatEtc
Указывает на структуру FORMATETC, описывающую нужный формат. Укажите значение этого параметра только в том случае, если требуется указать дополнительные сведения о формате буфера обмена, заданном cfFormat. Если значение NULL, значения по умолчанию используются для других полей в FORMATETC структуре.
Возвращаемое значение
Ненулевое значение, если данные доступны в указанном формате; в противном случае — 0.
Замечания
Эта функция полезна перед вызовом GetDataили GetFileDataGetGlobalDataвызовом.
Дополнительные сведения см. в разделе IDataObject::QueryGetData и FORMATETC в пакете SDK для Windows.
Дополнительные сведения см. в разделе RegisterClipboardFormat в пакете SDK для Windows.
Пример
См. пример для CRichEditView::QueryAcceptData.
COleDataObject::Release
Вызовите эту функцию, чтобы освободить владение объектом IDataObject , который ранее был связан с COleDataObject объектом.
void Release();
Замечания
Он IDataObject был связан с COleDataObject вызовом Attach или AttachClipboard явным образом или платформой.
Attach имеет значение FALSE, IDataObject объект не будет выпущен. В этом случае вызывающий объект отвечает за освобождение IDataObject путем вызова IUnknown::Release.
См. также
Пример HIERSVR MFC
Пример OCLIENT MFC
Диаграмма иерархии
Класс COleDataSource
Класс COleClientItem
Класс COleServerItem