Структура OBJECTDESCRIPTOR (oleidl.h)

Представляет структуру данных, используемую для форматов файлов CF_OBJECTDESRIPTOR и CF_LINKSRCDESCRIPTOR. Эти форматы предоставляют сведения о пользовательском интерфейсе во время операций передачи данных, например диалоговое окно Специальная вставка или сведения о целевой обратной связи во время операций перетаскивания.

Синтаксис

typedef struct tagOBJECTDESCRIPTOR {
  ULONG  cbSize;
  CLSID  clsid;
  DWORD  dwDrawAspect;
  SIZEL  sizel;
  POINTL pointl;
  DWORD  dwStatus;
  DWORD  dwFullUserTypeName;
  DWORD  dwSrcOfCopy;
} OBJECTDESCRIPTOR, *POBJECTDESCRIPTOR, *LPOBJECTDESCRIPTOR, LINKSRCDESCRIPTOR, *PLINKSRCDESCRIPTOR, *LPLINKSRCDESCRIPTOR;

Члены

cbSize

Размер структуры в байтах.

clsid

CLSID передаваемого объекта. Clsid используется для получения значка для параметра Отображать как значок в диалоговом окне Специальная вставка и применяется только в том случае, если предлагаются форматы Внедрить исходный код или Внедренный объект. Если ни то, ни иное не предлагается, значение clsid должно быть CLSID_NULL. Clsid может быть получен источником путем загрузки объекта и вызова метода IOleObject::GetUserClassID . Обратите внимание, что для объектов link это значение не совпадает со значением, возвращаемым методом IPersist::GetClassID .

dwDrawAspect

Аспект отображения объекта. Как правило, это значение DVASPECT_CONTENT или DVASPECT_ICON. Если исходное приложение не нарисовало объект изначально, поле dwDrawAspect содержит нулевое значение (которое не совпадает с DVASPECT_CONTENT). Дополнительные сведения см. в разделе DVASPECT.

sizel

Истинный экстент объекта (без обрезки или масштабирования) в единицах HIMETRIC . Задание этого поля является необязательным. Значение может быть (0,0) для приложений, которые не рисуют передаваемый объект. Это поле используется в основном целевыми объектами операций перетаскивания, чтобы они могли предоставить пользователю соответствующую обратную связь.

pointl

Смещение в единицах HIMETRIC от верхнего левого угла объекта, в котором была инициирована операция перетаскивания. Это поле имеет смысл только для операции перетаскивания, так как оно соответствует точке, где был нажат указатель мыши, чтобы инициировать операцию перетаскивания. Значение равно (0,0) для других ситуаций передачи, таких как копирование и вставка буфера обмена.

dwStatus

Копия флагов состояния для объекта . Эти флаги определяются перечислением OLEMISC . Если внедренный объект передается, они возвращаются путем вызова метода IOleObject::GetMiscStatus .

dwFullUserTypeName

Смещение для поиска полного имени типа пользователя передаваемого объекта. Он задает смещение (в байтах) от начала структуры данных OBJECTDESCRIPTOR до строки, завершаемой null, которая указывает полное имя пользовательского типа передаваемого объекта. Значение равно нулю, если строки нет. Эта строка используется назначением передачи данных для создания меток в диалоговом окне Специальная вставка . Конечное приложение должно иметь возможность обрабатывать случаи, когда эта строка опущена.

dwSrcOfCopy

Смещение (в байтах) от начала структуры данных к строке, завершаемой null, которая указывает источник передачи. Член dwSrcOfCopy обычно реализуется как отображаемое имя временного моникера, идентифицирующее источник данных. Значение dwSrcOfCopy отображается в строке Источник диалогового окна Специальная вставка . Нулевое значение указывает, что строка отсутствует. Если параметр dwSrcOfCopy равен нулю, строка "Неизвестный источник" отображается в диалоговом окне Специальная вставка .

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Верхняя часть oleidl.h

См. также раздел

FORMATETC

Idataobject