IViewObject::GetColorSet 方法 (oleidl.h)

返回逻辑调色板,对象将使用该调色板在其 IViewObject::D raw 方法中使用相应的参数进行绘制。

语法

HRESULT GetColorSet(
  [in]  DWORD          dwDrawAspect,
  [in]  LONG           lindex,
  [in]  void           *pvAspect,
  [in]  DVTARGETDEVICE *ptd,
  [in]  HDC            hicTargetDev,
  [out] LOGPALETTE     **ppColorSet
);

参数

[in] dwDrawAspect

指定要如何表示该对象。 表示形式包括内容、图标、缩略图或打印的文档。 有效值取自枚举 DVASPECT。 有关详细信息,请参阅 DVASPECT 枚举。

[in] lindex

与绘制操作有关的对象部分。 其解释因 dwDrawAspect 而异。 有关详细信息,请参阅 DVASPECT 枚举。

[in] pvAspect

指向有关 dwDrawAspect 中指定的对象的视图的其他信息的指针。 由于当前所有方面都不支持其他信息, 因此 pvAspect 必须始终为 NULL

[in] ptd

指向 DVTARGETDEVICE 结构的指针,该结构描述要呈现对象的设备。 如果 为 NULL,则应为默认目标设备呈现视图, (通常显示) 。 除 NULL 以外的值与 hicTargetDevhdcDraw 一起解释。 例如,如果 hdcDraw 将打印机指定为设备上下文,则 ptd 指向描述该打印机设备的 结构。 如果 hicTargetDev 是有效值,则实际上可以打印数据;如果 hicTargetDevNULL,则可能会在打印预览模式下显示数据。

[in] hicTargetDev

ptd 参数指示的目标设备的信息上下文,对象可以从该参数中提取设备指标并测试设备的功能。 如果 ptdNULL,则对象应忽略 hicTargetDev 参数。

[out] ppColorSet

接收指向 LOGPALETTE 结构的指针的 LOGPALETTE 指针变量的地址。 LOGPALETTE 结构包含当使用 dwAspectlindexpvAspectptdhicTargetDev 的相同参数调用 IViewObject::D raw 时将使用的颜色集。 如果 ppColorSetNULL,则对象不使用调色板。

返回值

此方法在成功时返回S_OK。 其他可能的返回值包括以下内容。

返回代码 说明
S_FALSE
颜色集为空,或者对象不会提供信息。
OLE_E_BLANK
对象没有表示数据。
DV_E_LINDEX
lindex 的值无效;目前仅支持 -1。
DV_E_DVASPECT
dwAspect 的值无效。
E_INVALIDARG
提供的一个或多个参数值无效。
E_OUTOFMEMORY
可用于此操作的内存不足。

注解

IViewObject::GetColorSet 方法以递归方式查询任何嵌套对象,并返回表示所请求的所有颜色联合的颜色集。 颜色集最终会渗透到拥有窗口框架的顶级容器。 此容器可以对其每个嵌入对象调用 IViewObject::GetColorSet ,以获取绘制嵌入对象所需的所有颜色。 容器可以将获取的颜色集与自身设置整体调色板所需的其他颜色结合使用。

IViewObject::GetColorSet 的 OLE 提供的实现将查看手头用于绘制图片的数据。 如果CF_DIB为绘图格式,则使用位图中找到的调色板。 对于常规位图,不返回任何颜色信息。 如果绘图格式是图元文件,则对象处理程序将枚举查找 CreatePalette 图元文件记录的图元文件。 如果找到一个,处理程序将它用作颜色集。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 oleidl.h

另请参阅

DVASPECT

IViewObject