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 以外的值与 hicTargetDev 和 hdcDraw 一起解释。 例如,如果 hdcDraw 将打印机指定为设备上下文,则 ptd 指向描述该打印机设备的 结构。 如果 hicTargetDev 是有效值,则实际上可以打印数据;如果 hicTargetDev 为 NULL,则可能会在打印预览模式下显示数据。
[in] hicTargetDev
由 ptd 参数指示的目标设备的信息上下文,对象可以从该参数中提取设备指标并测试设备的功能。 如果 ptd 为 NULL,则对象应忽略 hicTargetDev 参数。
[out] ppColorSet
接收指向 LOGPALETTE 结构的指针的 LOGPALETTE 指针变量的地址。 LOGPALETTE 结构包含当使用 dwAspect、lindex、pvAspect、ptd 和 hicTargetDev 的相同参数调用 IViewObject::D raw 时将使用的颜色集。 如果 ppColorSet 为 NULL,则对象不使用调色板。
返回值
此方法在成功时返回S_OK。 其他可能的返回值包括以下内容。
返回代码 | 说明 |
---|---|
|
颜色集为空,或者对象不会提供信息。 |
|
对象没有表示数据。 |
|
lindex 的值无效;目前仅支持 -1。 |
|
dwAspect 的值无效。 |
|
提供的一个或多个参数值无效。 |
|
可用于此操作的内存不足。 |
注解
IViewObject::GetColorSet 方法以递归方式查询任何嵌套对象,并返回表示所请求的所有颜色联合的颜色集。 颜色集最终会渗透到拥有窗口框架的顶级容器。 此容器可以对其每个嵌入对象调用 IViewObject::GetColorSet ,以获取绘制嵌入对象所需的所有颜色。 容器可以将获取的颜色集与自身设置整体调色板所需的其他颜色结合使用。
IViewObject::GetColorSet 的 OLE 提供的实现将查看手头用于绘制图片的数据。 如果CF_DIB为绘图格式,则使用位图中找到的调色板。 对于常规位图,不返回任何颜色信息。 如果绘图格式是图元文件,则对象处理程序将枚举查找 CreatePalette 图元文件记录的图元文件。 如果找到一个,处理程序将它用作颜色集。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | oleidl.h |