IViewObject::GetColorSet
Returns the logical palette that the object will use for drawing in its
IViewObject::Draw method with the corresponding parameters.
HRESULT GetColorSet(
DWORD dwAspect,
| //Specifies how the object is to be represented
|
LONG lindex,
| //Specifies the part of the object to draw
|
void * pvAspect,
| //Always NULL
|
DVTARGETDEVICE * ptd,
| //Specifies the target device in a structure
|
HDC hicTargetDev,
| //Specifies the information context for the target device ptd
|
LOGPALETTE ** ppColorSet
| //Points to LOGPALETTE structure
|
);
|
|
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. See the
DVASPECT enumeration for more information.
lindex
[in]Indicates the portion of the object that is of interest for the draw
operation. Its interpretation varies with
dwAspect. See the
DVASPECT enumeration for more information.
pvAspect
[in]Provides more information about the view of the object specified in
dwAspect. Since none of the current aspects support additional information;
pvAspect must always be NULL.
ptd
[in]Points to the target device 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 may actually
be printed if
hicTargetDev is a valid value or it may be displayed in print preview mode if
hicTargetDev is NULL.
hicTargetDev
[in]Specifies the 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]Points to location where a
LOGPALETTE structure is returned. The
LOGPALETTE structure contains the set of colors that would be used if
IViewObject::Draw were called with the same parameters for
dwAspect,
lindex,
pvAspect,
ptd, and
hicTargetDev. A NULL pointer to the
LOGPALETTE structure means that the object does not use a palette.
Return Values
S_OK
The set of colors was returned successfully.
S_FALSE
Set of colors is empty or the object will not give out the information.
E_INVALIDARG
One or more arguments are invalid.
OLE_E_BLANK
No presentation data for object.
E_UNEXPECTED
An unexpected error occurred.
DV_E_LINDEX
Invalid value for
lindex; currently only -1 is supported.
DV_E_DVASPECT
Invalid value for
dwAspect.
Comments
The
IViewObject::GetColorSet method recursively queries any 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
IViewObject::GetColorSet on each of its embedded objects to obtain all the 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
IViewObject::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.
Note to Implementors
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.
See Also
DVASPECT
- Software for developers
-
Delphi Components
.Net Components
Software for Android Developers
- More information resources
-
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
- Databases for Amazon shops developers
-
Amazon Categories Database
Browse Nodes Database