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_NULL clsid 的值。 通过加载 对象并调用 IOleObject::GetUserClassID 方法,源可以检索 clsid。 请注意,对于链接对象,此值与 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