Share via


IViewObject::GetColorSet

A version of this page is also available for

Windows Embedded CE 6.0 R3

4/8/2010

This method returns the logical palette that the object uses for drawing in its IViewObject::Draw method with the corresponding parameters.

Syntax

HRESULT GetColorSet( 
  DWORD dwAspect, 
  LONG lindex, 
  void* pvAspect, 
  DVTARGETDEVICE* ptd, 
  HDC hicTargetDev, 
  LOGPALETTE** ppColorSet 
);

Parameters

  • dwAspect
    [in] Specifies how the object is to be represented.

    Representations include content, an icon, a thumbnail, or a printed document.

    Valid values are taken from the enumeration DVASPECT.

  • lindex
    [in] Portion of the object that is of interest for the draw operation.

    Its interpretation varies with dwAspect. For more information, see the DVASPECT enumeration.

  • pvAspect
    [in] Pointer to additional information about the view of the object specified in dwAspect.

    Because none of the current aspects support additional information, pvAspect must always be NULL.

  • ptd
    [in] Pointer to the DVTARGETDEVICE structure that describes the device for which the object is to be rendered.

    If NULL, the view should be rendered for the default target device (typically the display).

    A value other than NULL is interpreted in conjunction with hicTargetDev and hdcDraw.

    For example, if hdcDraw specifies a printer as the device context, ptd points to a structure describing that printer device.

    The data might be printed if hicTargetDev is a valid value or it might be displayed in print preview mode if hicTargetDev is NULL.

  • hicTargetDev
    [in] Information context for the target device indicated by the ptd parameter from which the object can extract device metrics and test the device's capabilities.

    If ptd is NULL, the object should ignore the hicTargetDev parameter.

  • ppColorSet
    [out] Address of LOGPALETTE pointer variable that receives a pointer to the LOGPALETTE structure.

    The LOGPALETTE structure contains the set of colors that would be used if Draw were called with the same parameters for dwAspect, lindex, pvAspect, ptd, and hicTargetDev.

    If *ppColorSet is NULL, the object does not use a palette.

Return Value

This method supports the standard return values E_INVALIDARG and E_UNEXPECTED, as well as the values in the following table.

Value Description

S_OK

The set of colors was returned.

S_FALSE

The set of colors is empty, or the object will not give out the information.

OLE_E_BLANK

There is no presentation data for object.

DV_E_LINDEX

Invalid value for lindex; currently only -1 is supported.

DV_E_DVASPECT

Invalid value for dwAspect.

Remarks

The GetColorSet method recursively queries nested objects and returns a color set that represents the union of all colors requested. The color set eventually percolates to the top-level container that owns the window frame.

This container can call GetColorSet on each of its embedded objects to obtain all colors needed to draw the embedded objects.

The container can use the color sets obtained in conjunction with other colors it needs for itself to set the overall color palette.

The OLE-provided implementation of GetColorSet looks at the data it has on hand to draw the picture.

If CF_DIB is the drawing format, the palette found in the bitmap is used.

For a regular bitmap, no color information is returned.

If the drawing format is a metafile, the object handler enumerates the metafile looking for a CreatePalette metafile record. If one is found, the handler uses it as the color set.

To determine whether the platform supports this interface, see Determining Supported COM APIs.

Note to Implementers

Object applications that rely on the default handler for drawing and that use metafiles for doing so should provide a SetPaletteEntries record when they generate their metafiles.

If a SetPaletteEntries record is not found, the default object handler returns S_FALSE.

Requirements

Header Oleidl.h, oleidl.idl
Library oleaut32.lib, uuid.lib
Windows Embedded CE Windows CE 2.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also

Reference

IViewObject
DVASPECT
DVTARGETDEVICE
IViewObject::Draw

Concepts

Determining Supported COM APIs

Other Resources

LOGPALETTE
SetPaletteEntries