Shadow Style

The interpretation of the transform properties depends on the type of shadow:

msoshadowOffset, msoshadowDouble:

Only the offset is used. It is interpreted as an absolute offset expressed in EMUs. The default corresponds to 1/36" in both X and Y (2 or 3 pixels on screen depending on monitor resolution). The offset is relative to the drawing axes (as msoshadowDrawing below, not msoshadowRich) so a shadow offset to the bottom right of the drawing is still offset (by the same amount) to the bottom right if the shape is rotated. The "double" case causes two shadows to be drawn, the first (lower) at the second offset and in the shadowHighlightColor. If the second offset is 0,0 it defaults to being the inverse of the first.

msoshadowRich:

The offsets and transformation properties are in absolute units measured relative to the shape on the drawing - the shadow moves with the shape, but anisotropic scaling of the shape changes the proportions of the shadow, not its angles. Compare with the following where such scaling scales the shadow in proportion too, thus changes the angle between (e.g.) a vertical line in the shape and it's shadow.

msoshadowShape:

The offsets and transformation properties are relative to the shape; 1.0 corresponds to the shape width/height as appropriate. The shadow is cast relative to the shape then scaled with the shape, so it moves with the shape. The units are simple numbers (ratios of the G unit space effectively). This transformation type is unnatural in real world terms, but behaves nicely in geometric terms. The offset elements of the property set are treated as fixed-point 16.16 values.

msoshadowDrawing:

A rich shadow cast onto a plane in drawing space. The transform is applied to the drawing coordinates of the shape and is thus expressed in EMUs. This shadow type enables creation of shadows from multiple objects, however the shadows may overlap higher (different) objects if the shadow plane and shape drawing planes overlap on the screen.

The shadowWeight parameter is used as in the perspective property set to apply addiitonal scaling to the perspective parameters - these are divided by the weight.

Shadow transformations are independent of the perspective transformation applied to a shape - either hte perspective transformation or the shadow transformation is used as appropriate.

Property

PID

Type

Default

Description

shadowType

512

MSOSHADOWTYPE

Offset

Type of effect

shadowColor

513

MSOCLR

0x808080

Foreground color

shadowHighlight

514

MSOCLR

0xCBCBCB

Embossed color

shadowCrMod

515

MSOCLR

undefined

Modification for BW views

shadowOpacity

516

LONG

1<<16

Fixed 16.16

shadowOffsetX

517

LONG

25400

Offset shadow

shadowOffsetY

518

LONG

25400

Offset shadow

shadowSecondOffsetX

519

LONG

0

Double offset shadow

shadowSecondOffsetY

520

LONG

0

Double offset shadow

shadowScaleXToX

521

LONG

1<<16

16.16

shadowScaleYToX

522

LONG

0

16.16

shadowScaleXToY

523

LONG

0

16.16

shadowScaleYToY

524

LONG

1<<16

16.16

shadowPerspectiveX

525

LONG

0

16.16 / weight

shadowPerspectiveY

526

LONG

0

16.16 / weight

shadowWeight

527

LONG

1<<8

scaling factor

shadowOriginX

528

LONG

0

shadowOriginY

529

LONG

0

fShadow

574

BOOL

FALSE

Any shadow?

fshadowObscured

575

BOOL

FALSE

Excel5-style shadow