1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
23 #include <sal/types.h>
24 #include <tools/solar.h>
25 #include <tools/stream.hxx>
26 #include "svx/svxdllapi.h"
28 #define DFF_COMMON_RECORD_HEADER_SIZE 8
30 const sal_uInt32 nMaxLegalDffRecordLength
= \
31 SAL_MAX_UINT32
- DFF_COMMON_RECORD_HEADER_SIZE
;
33 #define DFF_PSFLAG_CONTAINER 0x0F // If the version field of a record
34 // header takes on this value, the
35 // record header marks the start of
38 #define DFF_PST_Unknown 0
39 #define DFF_PST_SubContainerCompleted 1
40 #define DFF_PST_IRRAtom 2
42 #define DFF_PST_SubContainerException 4
43 #define DFF_PST_ClientSignal1 6
44 #define DFF_PST_ClientSignal2 7
45 #define DFF_PST_PowerPointStateInfoAtom 10
46 #define DFF_PST_Document 1000
47 #define DFF_PST_DocumentAtom 1001
48 #define DFF_PST_EndDocument 1002
49 #define DFF_PST_SlidePersist 1003
50 #define DFF_PST_SlideBase 1004
51 #define DFF_PST_SlideBaseAtom 1005
52 #define DFF_PST_Slide 1006
53 #define DFF_PST_SlideAtom 1007
54 #define DFF_PST_Notes 1008
55 #define DFF_PST_NotesAtom 1009
56 #define DFF_PST_Environment 1010
57 #define DFF_PST_SlidePersistAtom 1011
58 #define DFF_PST_Scheme 1012
59 #define DFF_PST_SchemeAtom 1013
60 #define DFF_PST_DocViewInfo 1014
61 #define DFF_PST_SslideLayoutAtom 1015
62 #define DFF_PST_MainMaster 1016
63 #define DFF_PST_SSSlideInfoAtom 1017
64 #define DFF_PST_SlideViewInfo 1018
65 #define DFF_PST_GuideAtom 1019
66 #define DFF_PST_ViewInfo 1020
67 #define DFF_PST_ViewInfoAtom 1021
68 #define DFF_PST_SlideViewInfoAtom 1022
69 #define DFF_PST_VBAInfo 1023
70 #define DFF_PST_VBAInfoAtom 1024
71 #define DFF_PST_SSDocInfoAtom 1025
72 #define DFF_PST_Summary 1026
73 #define DFF_PST_Texture 1027
74 #define DFF_PST_VBASlideInfo 1028
75 #define DFF_PST_VBASlideInfoAtom 1029
76 #define DFF_PST_DocRoutingSlip 1030
77 #define DFF_PST_OutlineViewInfo 1031
78 #define DFF_PST_SorterViewInfo 1032
79 #define DFF_PST_ExObjList 1033
80 #define DFF_PST_ExObjListAtom 1034
81 #define DFF_PST_PPDrawingGroup 1035
82 #define DFF_PST_PPDrawing 1036
83 #define DFF_PST_NamedShows 1040
84 #define DFF_PST_NamedShow 1041
85 #define DFF_PST_NamedShowSlides 1042
86 #define DFF_PST_List 2000
87 #define DFF_PST_FontCollection 2005
88 #define DFF_PST_ListPlaceholder 2017
89 #define DFF_PST_BookmarkCollection 2019
90 #define DFF_PST_SoundCollection 2020
91 #define DFF_PST_SoundCollAtom 2021
92 #define DFF_PST_Sound 2022
93 #define DFF_PST_SoundData 2023
94 #define DFF_PST_BookmarkSeedAtom 2025
95 #define DFF_PST_GuideList 2026
96 #define DFF_PST_RunArray 2028
97 #define DFF_PST_RunArrayAtom 2029
98 #define DFF_PST_ArrayElementAtom 2030
99 #define DFF_PST_Int4ArrayAtom 2031
100 #define DFF_PST_ColorSchemeAtom 2032
101 #define DFF_PST_OEShape 3008
102 #define DFF_PST_ExObjRefAtom 3009
103 #define DFF_PST_OEPlaceholderAtom 3011
104 #define DFF_PST_GrColor 3020
105 #define DFF_PST_GrectAtom 3025
106 #define DFF_PST_GratioAtom 3031
107 #define DFF_PST_Gscaling 3032
108 #define DFF_PST_GpointAtom 3034
109 #define DFF_PST_OEShapeAtom 3035
110 #define DFF_PST_OutlineTextRefAtom 3998
111 #define DFF_PST_TextHeaderAtom 3999
112 #define DFF_PST_TextCharsAtom 4000
113 #define DFF_PST_StyleTextPropAtom 4001
114 #define DFF_PST_BaseTextPropAtom 4002
115 #define DFF_PST_TxMasterStyleAtom 4003
116 #define DFF_PST_TxCFStyleAtom 4004
117 #define DFF_PST_TxPFStyleAtom 4005
118 #define DFF_PST_TextRulerAtom 4006
119 #define DFF_PST_TextBookmarkAtom 4007
120 #define DFF_PST_TextBytesAtom 4008
121 #define DFF_PST_TxSIStyleAtom 4009
122 #define DFF_PST_TextSpecInfoAtom 4010
123 #define DFF_PST_DefaultRulerAtom 4011
124 #define DFF_PST_FontEntityAtom 4023
125 #define DFF_PST_FontEmbedData 4024
126 #define DFF_PST_TypeFace 4025
127 #define DFF_PST_CString 4026
128 #define DFF_PST_ExternalObject 4027
129 #define DFF_PST_MetaFile 4033
130 #define DFF_PST_ExOleObj 4034
131 #define DFF_PST_ExOleObjAtom 4035
132 #define DFF_PST_ExPlainLinkAtom 4036
133 #define DFF_PST_CorePict 4037
134 #define DFF_PST_CorePictAtom 4038
135 #define DFF_PST_ExPlainAtom 4039
136 #define DFF_PST_SrKinsoku 4040
137 #define DFF_PST_Handout 4041
138 #define DFF_PST_ExEmbed 4044
139 #define DFF_PST_ExEmbedAtom 4045
140 #define DFF_PST_ExLink 4046
141 #define DFF_PST_ExLinkAtom_old 4047
142 #define DFF_PST_BookmarkEntityAtom 4048
143 #define DFF_PST_ExLinkAtom 4049
144 #define DFF_PST_SrKinsokuAtom 4050
145 #define DFF_PST_ExHyperlinkAtom 4051
146 #define DFF_PST_ExPlain 4053
147 #define DFF_PST_ExPlainLink 4054
148 #define DFF_PST_ExHyperlink 4055
149 #define DFF_PST_SlideNumberMCAtom 4056
150 #define DFF_PST_HeadersFooters 4057
151 #define DFF_PST_HeadersFootersAtom 4058
152 #define DFF_PST_RecolorEntryAtom 4062
153 #define DFF_PST_TxInteractiveInfoAtom 4063
154 #define DFF_PST_EmFormatAtom 4065
155 #define DFF_PST_CharFormatAtom 4066
156 #define DFF_PST_ParaFormatAtom 4067
157 #define DFF_PST_MasterText 4068
158 #define DFF_PST_RecolorInfoAtom 4071
159 #define DFF_PST_ExQuickTime 4073
160 #define DFF_PST_ExQuickTimeMovie 4074
161 #define DFF_PST_ExQuickTimeMovieData 4075
162 #define DFF_PST_ExSubscription 4076
163 #define DFF_PST_ExSubscriptionSection 4077
164 #define DFF_PST_ExControl 4078
165 #define DFF_PST_ExControlAtom 4091
166 #define DFF_PST_SlideListWithText 4080
167 #define DFF_PST_AnimationInfoAtom 4081
168 #define DFF_PST_InteractiveInfo 4082
169 #define DFF_PST_InteractiveInfoAtom 4083
170 #define DFF_PST_SlideList 4084
171 #define DFF_PST_UserEditAtom 4085
172 #define DFF_PST_CurrentUserAtom 4086
173 #define DFF_PST_DateTimeMCAtom 4087
174 #define DFF_PST_GenericDateMCAtom 4088
175 #define DFF_PST_HeaderMCAtom 4089
176 #define DFF_PST_FooterMCAtom 4090
177 #define DFF_PST_ExMediaAtom 4100
178 #define DFF_PST_ExVideo 4101
179 #define DFF_PST_ExAviMovie 4102
180 #define DFF_PST_ExMCIMovie 4103
181 #define DFF_PST_ExMIDIAudio 4109
182 #define DFF_PST_ExCDAudio 4110
183 #define DFF_PST_ExWAVAudioEmbedded 4111
184 #define DFF_PST_ExWAVAudioLink 4112
185 #define DFF_PST_ExOleObjStg 4113
186 #define DFF_PST_ExCDAudioAtom 4114
187 #define DFF_PST_ExWAVAudioEmbeddedAtom 4115
188 #define DFF_PST_AnimationInfo 4116
189 #define DFF_PST_RTFDateTimeMCAtom 4117
190 #define DFF_PST_ProgTags 5000
191 #define DFF_PST_ProgStringTag 5001
192 #define DFF_PST_ProgBinaryTag 5002
193 #define DFF_PST_BinaryTagData 5003
194 #define DFF_PST_PrintOptions 6000
195 #define DFF_PST_PersistPtrFullBlock 6001
196 #define DFF_PST_PersistPtrIncrementalBlock 6002
197 #define DFF_PST_RulerIndentAtom 10000
198 #define DFF_PST_GscalingAtom 10001
199 #define DFF_PST_GrColorAtom 10002
200 #define DFF_PST_GLPointAtom 10003
201 #define DFF_PST_GlineAtom 10004
203 // Record Name FBT-Value Instance Contents Wrd Exl Ppt Ver
205 #define DFF_msofbtDggContainer 0xF000 // per-document data X X X
206 #define DFF_msofbtDgg 0xF006 // an FDGG and several FIDCLs X X X 0
207 #define DFF_msofbtCLSID 0xF016 // the CLSID of the application that put the data on the clipboard C C C 0
208 #define DFF_msofbtOPT 0xF00B // count of properties the document-wide default shape properties X X X 3
209 #define DFF_msofbtColorMRU 0xF11A // count of colors the colors in the MRU swatch X X X 0
210 #define DFF_msofbtSplitMenuColors 0xF11E // count of colors the colors in the top-level split menus X X X 0
211 #define DFF_msofbtBstoreContainer 0xF001 // count of BLIPs all images in the document (JPEGs, metafiles, etc.) X X X
212 #define DFF_msofbtBSE 0xF007 // BLIP type an FBSE (one per BLIP) X X X 2
213 #define DFF_msofbtBlipFirst 0xF018 // range of fbts reserved for various kinds of BLIPs X X X
214 #define DFF_msofbtBlipLast 0xF117 // range of fbts reserved for various kinds of BLIPs X X X
216 #define DFF_msofbtDgContainer 0xF002 // per-sheet/page/slide data X X X
217 #define DFF_msofbtDg 0xF008 // drawing ID an FDG X X X 0
218 #define DFF_msofbtRegroupItems 0xF118 // count of regroup entries several FRITs X X X 0
219 #define DFF_msofbtColorScheme 0xF120 // count of colors the colors of the source host's color scheme C C 0
220 #define DFF_msofbtSpgrContainer 0xF003 // several SpContainers, the first of which is the group shape itself X X X
221 #define DFF_msofbtSpContainer 0xF004 // a shape X X X
222 #define DFF_msofbtSpgr 0xF009 // an FSPGR; only present if the shape is a group shape X X X 1
223 #define DFF_msofbtSp 0xF00A // shape type an FSP X X X 2
224 #define DFF_msofbtTextbox 0xF00C // RTF text C C C 0
225 #define DFF_msofbtClientTextbox 0xF00D // host-defined the text in the textbox, in host-defined format X X X
226 #define DFF_msofbtAnchor 0xF00E // a RECT, in 100000ths of an inch C C C 0
227 #define DFF_msofbtChildAnchor 0xF00F // a RECT, in units relative to the parent group X X X 0
228 #define DFF_msofbtClientAnchor 0xF010 // host-defined the location of the shape, in a host-defined format X X X
229 #define DFF_msofbtClientData 0xF011 // host-defined host-specific data X X X
230 #define DFF_msofbtOleObject 0xF11F // a serialized IStorage for an OLE object C C C 0
231 #define DFF_msofbtDeletedPspl 0xF11D // an FPSPL; only present in top-level deleted shapes X 0
232 #define DFF_msofbtUDefProp 0xF122 // range of fbts reserved for various kinds of BLIPs X X X
233 #define DFF_msofbtSolverContainer 0xF005 // count of rules the rules governing shapes X X X
234 #define DFF_msofbtConnectorRule 0xF012 // an FConnectorRule X X 1
235 #define DFF_msofbtAlignRule 0xF013 // an FAlignRule X X X 0
236 #define DFF_msofbtArcRule 0xF014 // an FARCRU X X X 0
237 #define DFF_msofbtClientRule 0xF015 // host-defined host-defined
238 #define DFF_msofbtCalloutRule 0xF017 // an FCORU X X X 0
240 #define DFF_msofbtSelection 0xF119 // an FDGSL followed by the SPIDs of the shapes in the selection X 0
242 // Values for the ULONG in DFF_PST_TextHeaderAtom
243 enum DFF_TextHeader
{
248 DFFTH_OTHER
, // Text in a Shape
249 DFFTH_CENTERBODY
, // Subtitle in Title-Slide
250 DFFTH_CENTERTITLE
, // Title in Title-Slide
251 DFFTH_HALFBODY
, // Body in two-column slide
252 DFFTH_QUARTERBODY
// Body in four-body slide
257 // 1pt = 12700 EMU (English Metric Units)
258 // 1pt = 20 Twip = 20/1440" = 1/72"
260 // 1" = 12700*72 = 914400 EMU
264 #define DFF_Prop_Rotation 4 // Fixed Point 16.16 degrees
266 #define DFF_Prop_LockRotation 119 // sal_Bool No rotation
267 #define DFF_Prop_LockAspectRatio 120 // sal_Bool Don't allow changes in aspect ratio
268 #define DFF_Prop_LockPosition 121 // sal_Bool Don't allow the shape to be moved
269 #define DFF_Prop_LockAgainstSelect 122 // sal_Bool Shape may not be selected
270 #define DFF_Prop_LockCropping 123 // sal_Bool No cropping this shape
271 #define DFF_Prop_LockVertices 124 // sal_Bool Edit Points not allowed
272 #define DFF_Prop_LockText 125 // sal_Bool Do not edit text
273 #define DFF_Prop_LockAdjustHandles 126 // sal_Bool Do not adjust
274 #define DFF_Prop_LockAgainstGrouping 127 // sal_Bool Do not group this shape
276 #define DFF_Prop_lTxid 128 // LONG id for the text, value determined by the host
277 #define DFF_Prop_dxTextLeft 129 // LONG margins relative to shape's inscribed text rectangle (in EMUs)
278 #define DFF_Prop_dyTextTop 130 // LONG
279 #define DFF_Prop_dxTextRight 131 // LONG
280 #define DFF_Prop_dyTextBottom 132 // LONG
281 #define DFF_Prop_WrapText 133 // MSO_WRAPMODE Wrap text at shape margins
282 #define DFF_Prop_scaleText 134 // LONG Text zoom/scale (used if fFitTextToShape)
283 #define DFF_Prop_anchorText 135 // MSO_ANCHOR How to anchor the text
284 #define DFF_Prop_txflTextFlow 136 // MSO_TXFL Text flow
285 #define DFF_Prop_cdirFont 137 // MSO_CDIR Font rotation
286 #define DFF_Prop_hspNext 138 // MSO_HSP ID of the next shape (used by Word for linked textboxes)
287 #define DFF_Prop_txdir 139 // MSO_TXDIR Bi-Di Text direction
288 #define DFF_Prop_SelectText 187 // sal_Bool sal_True if single click selects text, sal_False if two clicks
289 #define DFF_Prop_AutoTextMargin 188 // sal_Bool use host's margin calculations
290 #define DFF_Prop_RotateText 189 // sal_Bool Rotate text with shape
291 #define DFF_Prop_FitShapeToText 190 // sal_Bool Size shape to fit text size
292 #define DFF_Prop_FitTextToShape 191 // sal_Bool Size text to fit shape size
294 #define DFF_Prop_gtextUNICODE 192 // WCHAR* UNICODE text string
295 #define DFF_Prop_gtextRTF 193 // char* RTF text string
296 #define DFF_Prop_gtextAlign 194 // MSO_GEOTEXTALIGN alignment on curve
297 #define DFF_Prop_gtextSize 195 // LONG default point size
298 #define DFF_Prop_gtextSpacing 196 // LONG fixed point 16.16
299 #define DFF_Prop_gtextFont 197 // WCHAR* font family name
300 #define DFF_Prop_gtextFReverseRows 240 // sal_Bool 8000 Reverse row order
301 #define DFF_Prop_fGtext 241 // sal_Bool 4000 Has text effect
302 #define DFF_Prop_gtextFVertical 242 // sal_Bool 2000 Rotate characters
303 #define DFF_Prop_gtextFKern 243 // sal_Bool 1000 Kern characters
304 #define DFF_Prop_gtextFTight 244 // sal_Bool 800 Tightening or tracking
305 #define DFF_Prop_gtextFStretch 245 // sal_Bool 400 Stretch to fit shape
306 #define DFF_Prop_gtextFShrinkFit 246 // sal_Bool 200 Char bounding box
307 #define DFF_Prop_gtextFBestFit 247 // sal_Bool 100 Scale text-on-path
308 #define DFF_Prop_gtextFNormalize 248 // sal_Bool 80 Stretch char height
309 #define DFF_Prop_gtextFDxMeasure 249 // sal_Bool 40 Do not measure along path
310 #define DFF_Prop_gtextFBold 250 // sal_Bool 20 Bold font
311 #define DFF_Prop_gtextFItalic 251 // sal_Bool 10 Italic font
312 #define DFF_Prop_gtextFUnderline 252 // sal_Bool 8 Underline font
313 #define DFF_Prop_gtextFShadow 253 // sal_Bool 4 Shadow font
314 #define DFF_Prop_gtextFSmallcaps 254 // sal_Bool 2 Small caps font
315 #define DFF_Prop_gtextFStrikethrough 255 // sal_Bool 1 Strike through font
317 #define DFF_Prop_cropFromTop 256 // LONG 16.16 fraction times total image width or height, as appropriate.
318 #define DFF_Prop_cropFromBottom 257 // LONG
319 #define DFF_Prop_cropFromLeft 258 // LONG
320 #define DFF_Prop_cropFromRight 259 // LONG
321 #define DFF_Prop_pib 260 // IMsoBlip* Blip to display
322 #define DFF_Prop_pibName 261 // WCHAR* Blip file name
323 #define DFF_Prop_pibFlags 262 // MSO_BLIPFLAGS Blip flags
324 #define DFF_Prop_pictureTransparent 263 // LONG transparent color (none if ~0UL)
325 #define DFF_Prop_pictureContrast 264 // LONG contrast setting
326 #define DFF_Prop_pictureBrightness 265 // LONG brightness setting
327 #define DFF_Prop_pictureGamma 266 // LONG 16.16 gamma
328 #define DFF_Prop_pictureId 267 // LONG Host-defined ID for OLE objects (usually a pointer)
329 #define DFF_Prop_pictureDblCrMod 268 // MSO_CLR Modification used if shape has double shadow
330 #define DFF_Prop_pictureFillCrMod 269 // MSO_CLR
331 #define DFF_Prop_pictureLineCrMod 270 // MSO_CLR
332 #define DFF_Prop_pibPrint 271 // IMsoBlip* Blip to display when printing
333 #define DFF_Prop_pibPrintName 272 // WCHAR* Blip file name
334 #define DFF_Prop_pibPrintFlags 273 // MSO_BLIPFLAGS Blip flags
335 #define DFF_Prop_fNoHitTestPicture 316 // sal_Bool Do not hit test the picture
336 #define DFF_Prop_pictureGray 317 // sal_Bool grayscale display
337 #define DFF_Prop_pictureBiLevel 318 // sal_Bool bi-level display
338 #define DFF_Prop_pictureActive 319 // sal_Bool Server is active (OLE objects only)
340 #define DFF_Prop_geoLeft 320 // LONG Defines the G (geometry) coordinate space.
341 #define DFF_Prop_geoTop 321 // LONG
342 #define DFF_Prop_geoRight 322 // LONG
343 #define DFF_Prop_geoBottom 323 // LONG
344 #define DFF_Prop_shapePath 324 // MSO_SHAPEPATH
345 #define DFF_Prop_pVertices 325 // IMsoArray An array of points, in G units.
346 #define DFF_Prop_pSegmentInfo 326 // IMsoArray
347 #define DFF_Prop_adjustValue 327 // LONG Adjustment values corresponding to the positions of the
348 #define DFF_Prop_adjust2Value 328 // LONG adjust handles of the shape. The number of values used
349 #define DFF_Prop_adjust3Value 329 // LONG and their allowable ranges vary from shape type to shape type.
350 #define DFF_Prop_adjust4Value 330 // LONG
351 #define DFF_Prop_adjust5Value 331 // LONG
352 #define DFF_Prop_adjust6Value 332 // LONG
353 #define DFF_Prop_adjust7Value 333 // LONG
354 #define DFF_Prop_adjust8Value 334 // LONG
355 #define DFF_Prop_adjust9Value 335 // LONG
356 #define DFF_Prop_adjust10Value 336 // LONG
357 #define DFF_Prop_connectorPoints 337 // IMsoArray
358 #define DFF_Prop_stretchPointX 339 // LONG
359 #define DFF_Prop_stretchPointY 340 // LONG
360 #define DFF_Prop_Handles 341 // H*
361 #define DFF_Prop_pFormulas 342 // LONG
362 #define DFF_Prop_textRectangles 343 // LONG
363 #define DFF_Prop_connectorType 344 // LONG ->0=none, 1=segments, 2=custom, 3=rect
364 #define DFF_Prop_fShadowOK 378 // sal_Bool Shadow may be set
365 #define DFF_Prop_f3DOK 379 // sal_Bool 3D may be set
366 #define DFF_Prop_fLineOK 380 // sal_Bool Line style may be set
367 #define DFF_Prop_fGtextOK 381 // sal_Bool Text effect (FontWork) supported
368 #define DFF_Prop_fFillShadeShapeOK 382 // BOOL
369 #define DFF_Prop_fFillOK 383 // sal_Bool OK to fill the shape through the UI or VBA?
371 #define DFF_Prop_fillType 384 // MSO_FILLTYPE Type of fill
372 #define DFF_Prop_fillColor 385 // MSO_CLR Foreground color
373 #define DFF_Prop_fillOpacity 386 // LONG Fixed 16.16
374 #define DFF_Prop_fillBackColor 387 // MSO_CLR Background color
375 #define DFF_Prop_fillBackOpacity 388 // LONG Shades only
376 #define DFF_Prop_fillCrMod 389 // MSO_CLR Modification for BW views
377 #define DFF_Prop_fillBlip 390 // IMsoBlip* Pattern/texture
378 #define DFF_Prop_fillBlipName 391 // WCHAR* Blip file name
379 #define DFF_Prop_fillBlipFlags 392 // MSO_BLIPFLAGS Blip flags
380 #define DFF_Prop_fillWidth 393 // LONG How big (A units) to make a metafile texture.
381 #define DFF_Prop_fillHeight 394 // LONG
382 #define DFF_Prop_fillAngle 395 // LONG Fade angle - degrees in 16.16
383 #define DFF_Prop_fillFocus 396 // LONG Linear shaded fill focus percent
384 #define DFF_Prop_fillToLeft 397 // LONG Fraction 16.16
385 #define DFF_Prop_fillToTop 398 // LONG Fraction 16.16
386 #define DFF_Prop_fillToRight 399 // LONG Fraction 16.16
387 #define DFF_Prop_fillToBottom 400 // LONG Fraction 16.16
388 #define DFF_Prop_fillRectLeft 401 // LONG For shaded fills, use the specified rectangle instead of the shape's bounding rect to define how large the fade is going to be.
389 #define DFF_Prop_fillRectTop 402 // LONG
390 #define DFF_Prop_fillRectRight 403 // LONG
391 #define DFF_Prop_fillRectBottom 404 // LONG
392 #define DFF_Prop_fillDztype 405 // MSO_DZTYPE
393 #define DFF_Prop_fillShadePreset 406 // LONG Special shades
394 #define DFF_Prop_fillShadeColors 407 // IMsoArray a preset array of colors
395 #define DFF_Prop_fillOriginX 408 // LONG
396 #define DFF_Prop_fillOriginY 409 // LONG
397 #define DFF_Prop_fillShapeOriginX 410 // LONG
398 #define DFF_Prop_fillShapeOriginY 411 // LONG
399 #define DFF_Prop_fillShadeType 412 // MSO_SHADETYPE Type of shading, if a shaded (gradient) fill.
400 #define DFF_Prop_fFilled 443 // sal_Bool Is shape filled?
401 #define DFF_Prop_fHitTestFill 444 // sal_Bool Should we hit test fill?
402 #define DFF_Prop_fillShape 445 // sal_Bool Register pattern on shape
403 #define DFF_Prop_fillUseRect 446 // sal_Bool Use the large rect?
404 #define DFF_Prop_fNoFillHitTest 447 // sal_Bool Hit test a shape as though filled
406 #define DFF_Prop_lineColor 448 // MSO_CLR Color of line
407 #define DFF_Prop_lineOpacity 449 // LONG Not implemented
408 #define DFF_Prop_lineBackColor 450 // MSO_CLR Background color
409 #define DFF_Prop_lineCrMod 451 // MSO_CLR Modification for BW views
410 #define DFF_Prop_lineType 452 // MSO_LINETYPE Type of line
411 #define DFF_Prop_lineFillBlip 453 // IMsoBlip* Pattern/texture
412 #define DFF_Prop_lineFillBlipName 454 // WCHAR* Blip file name
413 #define DFF_Prop_lineFillBlipFlags 455 // MSO_BLIPFLAGS Blip flags
414 #define DFF_Prop_lineFillWidth 456 // LONG How big (A units) to make a metafile texture.
415 #define DFF_Prop_lineFillHeight 457 // LONG
416 #define DFF_Prop_lineFillDztype 458 // MSO_DZTYPE How to interpret fillWidth/Height numbers.
417 #define DFF_Prop_lineWidth 459 // LONG A units; 1pt == 12700 EMUs
418 #define DFF_Prop_lineMiterLimit 460 // LONG ratio (16.16) of width
419 #define DFF_Prop_lineStyle 461 // MSO_LINESTYLE Draw parallel lines?
420 #define DFF_Prop_lineDashing 462 // MSO_LINEDASHING Can be overridden by:
421 #define DFF_Prop_lineDashStyle 463 // IMsoArray As Win32 ExtCreatePen
422 #define DFF_Prop_lineStartArrowhead 464 // MSO_LINEEND Arrow at start
423 #define DFF_Prop_lineEndArrowhead 465 // MSO_LINEEND Arrow at end
424 #define DFF_Prop_lineStartArrowWidth 466 // MSO_LINEENDWIDTH Arrow at start
425 #define DFF_Prop_lineStartArrowLength 467 // MSO_LINEENDLENGTH Arrow at end
426 #define DFF_Prop_lineEndArrowWidth 468 // MSO_LINEENDWIDTH Arrow at start
427 #define DFF_Prop_lineEndArrowLength 469 // MSO_LINEENDLENGTH Arrow at end
428 #define DFF_Prop_lineJoinStyle 470 // MSO_LINEJOIN How to join lines
429 #define DFF_Prop_lineEndCapStyle 471 // MSO_LINECAP How to end lines
430 #define DFF_Prop_fArrowheadsOK 507 // sal_Bool Allow arrowheads if prop. is set
431 #define DFF_Prop_fLine 508 // sal_Bool Any line?
432 #define DFF_Prop_fHitTestLine 509 // sal_Bool Should we hit test lines?
433 #define DFF_Prop_lineFillShape 510 // sal_Bool Register pattern on shape
434 #define DFF_Prop_fNoLineDrawDash 511 // sal_Bool Draw a dashed line if no line
436 #define DFF_Prop_shadowType 512 // MSO_SHADOWTYPE Type of effect
437 #define DFF_Prop_shadowColor 513 // MSO_CLR Foreground color
438 #define DFF_Prop_shadowHighlight 514 // MSO_CLR Embossed color
439 #define DFF_Prop_shadowCrMod 515 // MSO_CLR Modification for BW views
440 #define DFF_Prop_shadowOpacity 516 // LONG Fixed 16.16
441 #define DFF_Prop_shadowOffsetX 517 // LONG Offset shadow
442 #define DFF_Prop_shadowOffsetY 518 // LONG Offset shadow
443 #define DFF_Prop_shadowSecondOffsetX 519 // LONG Double offset shadow
444 #define DFF_Prop_shadowSecondOffsetY 520 // LONG Double offset shadow
445 #define DFF_Prop_shadowScaleXToX 521 // LONG 16.16
446 #define DFF_Prop_shadowScaleYToX 522 // LONG 16.16
447 #define DFF_Prop_shadowScaleXToY 523 // LONG 16.16
448 #define DFF_Prop_shadowScaleYToY 524 // LONG 16.16
449 #define DFF_Prop_shadowPerspectiveX 525 // LONG 16.16 / weight
450 #define DFF_Prop_shadowPerspectiveY 526 // LONG 16.16 / weight
451 #define DFF_Prop_shadowWeight 527 // LONG scaling factor
452 #define DFF_Prop_shadowOriginX 528 // LONG
453 #define DFF_Prop_shadowOriginY 529 // LONG
454 #define DFF_Prop_fShadow 574 // sal_Bool Any shadow?
455 #define DFF_Prop_fshadowObscured 575 // sal_Bool Excel5-style shadow
457 #define DFF_Prop_perspectiveType 576 // MSO_XFORMTYPE Where transform applies
458 #define DFF_Prop_perspectiveOffsetX 577 // LONG The LONG values define a transformation matrix, effectively, each value is scaled by the perspectiveWeight parameter.
459 #define DFF_Prop_perspectiveOffsetY 578 // LONG
460 #define DFF_Prop_perspectiveScaleXToX 579 // LONG
461 #define DFF_Prop_perspectiveScaleYToX 580 // LONG
462 #define DFF_Prop_perspectiveScaleXToY 581 // LONG
463 #define DFF_Prop_perspectiveScaleYToY 582 // LONG
464 #define DFF_Prop_perspectivePerspectiveX 583 // LONG
465 #define DFF_Prop_perspectivePerspectiveY 584 // LONG
466 #define DFF_Prop_perspectiveWeight 585 // LONG Scaling factor
467 #define DFF_Prop_perspectiveOriginX 586 // LONG
468 #define DFF_Prop_perspectiveOriginY 587 // LONG
469 #define DFF_Prop_fPerspective 639 // sal_Bool On/off
471 #define DFF_Prop_c3DSpecularAmt 640 // LONG Fixed-point 16.16
472 #define DFF_Prop_c3DDiffuseAmt 641 // LONG Fixed-point 16.16
473 #define DFF_Prop_c3DShininess 642 // LONG Default gives OK results
474 #define DFF_Prop_c3DEdgeThickness 643 // LONG Specular edge thickness
475 #define DFF_Prop_c3DExtrudeForward 644 // LONG Distance of extrusion in EMUs
476 #define DFF_Prop_c3DExtrudeBackward 645 // LONG
477 #define DFF_Prop_c3DExtrudePlane 646 // LONG Extrusion direction
478 #define DFF_Prop_c3DExtrusionColor 647 // MSO_CLR Basic color of extruded part of shape; the lighting model used will determine the exact shades used when rendering.
479 #define DFF_Prop_c3DCrMod 648 // MSO_CLR Modification for BW views
480 #define DFF_Prop_f3D 700 // sal_Bool Does this shape have a 3D effect?
481 #define DFF_Prop_fc3DMetallic 701 // sal_Bool Use metallic specularity?
482 #define DFF_Prop_fc3DUseExtrusionColor 702 // BOOL
483 #define DFF_Prop_fc3DLightFace 703 // BOOL
485 #define DFF_Prop_c3DYRotationAngle 704 // LONG degrees (16.16) about y axis
486 #define DFF_Prop_c3DXRotationAngle 705 // LONG degrees (16.16) about x axis
487 #define DFF_Prop_c3DRotationAxisX 706 // LONG These specify the rotation axis; only their relative magnitudes matter.
488 #define DFF_Prop_c3DRotationAxisY 707 // LONG
489 #define DFF_Prop_c3DRotationAxisZ 708 // LONG
490 #define DFF_Prop_c3DRotationAngle 709 // LONG degrees (16.16) about axis
491 #define DFF_Prop_c3DRotationCenterX 710 // LONG rotation center x (16.16 or g-units)
492 #define DFF_Prop_c3DRotationCenterY 711 // LONG rotation center y (16.16 or g-units)
493 #define DFF_Prop_c3DRotationCenterZ 712 // LONG rotation center z (absolute (emus))
494 #define DFF_Prop_c3DRenderMode 713 // MSO_3DRENDERMODE Full,wireframe, or bcube
495 #define DFF_Prop_c3DTolerance 714 // LONG pixels (16.16)
496 #define DFF_Prop_c3DXViewpoint 715 // LONG X view point (emus)
497 #define DFF_Prop_c3DYViewpoint 716 // LONG Y view point (emus)
498 #define DFF_Prop_c3DZViewpoint 717 // LONG Z view distance (emus)
499 #define DFF_Prop_c3DOriginX 718 // LONG
500 #define DFF_Prop_c3DOriginY 719 // LONG
501 #define DFF_Prop_c3DSkewAngle 720 // LONG degree (16.16) skew angle
502 #define DFF_Prop_c3DSkewAmount 721 // LONG Percentage skew amount
503 #define DFF_Prop_c3DAmbientIntensity 722 // LONG Fixed point intensity
504 #define DFF_Prop_c3DKeyX 723 // LONG Key light source direc-
505 #define DFF_Prop_c3DKeyY 724 // LONG tion; only their relative
506 #define DFF_Prop_c3DKeyZ 725 // LONG magnitudes matter
507 #define DFF_Prop_c3DKeyIntensity 726 // LONG Fixed point intensity
508 #define DFF_Prop_c3DFillX 727 // LONG Fill light source direc-
509 #define DFF_Prop_c3DFillY 728 // LONG tion; only their relative
510 #define DFF_Prop_c3DFillZ 729 // LONG magnitudes matter
511 #define DFF_Prop_c3DFillIntensity 730 // LONG Fixed point intensity
512 #define DFF_Prop_fc3DConstrainRotation 763 // BOOL
513 #define DFF_Prop_fc3DRotationCenterAuto 764 // BOOL
514 #define DFF_Prop_fc3DParallel 765 // sal_Bool Parallel projection?
515 #define DFF_Prop_fc3DKeyHarsh 766 // sal_Bool Is key lighting harsh?
516 #define DFF_Prop_fc3DFillHarsh 767 // sal_Bool Is fill lighting harsh?
518 #define DFF_Prop_hspMaster 769 // MSO_HSP master shape
519 #define DFF_Prop_cxstyle 771 // MSO_CXSTYLE Type of connector
520 #define DFF_Prop_bWMode 772 // MSO_BWMODE Settings for modifications to be made when in different forms of black-and-white mode.
521 #define DFF_Prop_bWModePureBW 773 // MSO_BWMODE
522 #define DFF_Prop_bWModeBW 774 // MSO_BWMODE
523 #define DFF_Prop_fOleIcon 826 // sal_Bool For OLE objects, whether the object is in icon form
524 #define DFF_Prop_fPreferRelativeResize 827 // sal_Bool For UI only. Prefer relative resizing.
525 #define DFF_Prop_fLockShapeType 828 // sal_Bool Lock the shape type (don't allow Change Shape)
526 #define DFF_Prop_fDeleteAttachedObject 830 // BOOL
527 #define DFF_Prop_fBackground 831 // sal_Bool If sal_True, this is the background shape.
530 #define DFF_Prop_spcot 832 // MSO_SPCOT Callout type
531 #define DFF_Prop_dxyCalloutGap 833 // LONG Distance from box to first point.(EMUs)
532 #define DFF_Prop_spcoa 834 // MSO_SPCOA Callout angle
533 #define DFF_Prop_spcod 835 // MSO_SPCOD Callout drop type
534 #define DFF_Prop_dxyCalloutDropSpecified 836 // LONG if mso_spcodSpecified, the actual drop distance
535 #define DFF_Prop_dxyCalloutLengthSpecified 837 // LONG if fCalloutLengthSpecified, the actual distance
536 #define DFF_Prop_fCallout 889 // sal_Bool Is the shape a callout?
537 #define DFF_Prop_fCalloutAccentBar 890 // sal_Bool does callout have accent bar
538 #define DFF_Prop_fCalloutTextBorder 891 // sal_Bool does callout have a text border
539 #define DFF_Prop_fCalloutMinusX 892 // BOOL
540 #define DFF_Prop_fCalloutMinusY 893 // BOOL
541 #define DFF_Prop_fCalloutDropAuto 894 // sal_Bool If true, then we occasionally invert the drop distance
542 #define DFF_Prop_fCalloutLengthSpecified 895 // sal_Bool if true, we look at dxyCalloutLengthSpecified
545 #define DFF_Prop_wzName 896 // WCHAR* Shape Name (present only if explicitly set)
546 #define DFF_Prop_wzDescription 897 // WCHAR* alternate text
547 #define DFF_Prop_pihlShape 898 // IHlink* The hyperlink in the shape.
548 #define DFF_Prop_pWrapPolygonVertices 899 // IMsoArray The polygon that text will be wrapped around (Word)
549 #define DFF_Prop_dxWrapDistLeft 900 // LONG Left wrapping distance from text (Word)
550 #define DFF_Prop_dyWrapDistTop 901 // LONG Top wrapping distance from text (Word)
551 #define DFF_Prop_dxWrapDistRight 902 // LONG Right wrapping distance from text (Word)
552 #define DFF_Prop_dyWrapDistBottom 903 // LONG Bottom wrapping distance from text (Word)
553 #define DFF_Prop_lidRegroup 904 // LONG Regroup ID
554 #define DFF_Prop_tableProperties 927 // LONG
555 #define DFF_Prop_tableRowProperties 928 // LONG*
556 #define DFF_Prop_fEditedWrap 953 // sal_Bool Has the wrap polygon been edited?
557 #define DFF_Prop_fBehindDocument 954 // sal_Bool Word-only (shape is behind text)
558 #define DFF_Prop_fOnDblClickNotify 955 // sal_Bool Notify client on a double click
559 #define DFF_Prop_fIsButton 956 // sal_Bool A button shape (i.e., clicking performs an action). Set for shapes with attached hyperlinks or macros.
560 #define DFF_Prop_fOneD 957 // sal_Bool 1D adjustment
561 #define DFF_Prop_fHidden 958 // sal_Bool Do not display
562 #define DFF_Prop_fPrint 959 // sal_Bool Print this shape
563 // entsprechende BitFlags
564 #define DFF_PBit_EditedWrap 0x00000040
565 #define DFF_PBit_BehindDocument 0x00000020
566 #define DFF_PBit_OnDblClickNotify 0x00000010
567 #define DFF_PBit_IsButton 0x00000008
568 #define DFF_PBit_OneD 0x00000004
569 #define DFF_PBit_Hidden 0x00000002
570 #define DFF_PBit_Print 0x00000001
572 // properties of the second property set
573 #define DFF_Prop_metroBlob 937 // XML ZipPackage*
575 //---------------------------------------------------------------------------
576 // linchpin: the shape type
577 //---------------------------------------------------------------------------
581 mso_sptNotPrimitive
= mso_sptMin
,
582 mso_sptRectangle
= 1,
583 mso_sptRoundRectangle
= 2,
586 mso_sptIsocelesTriangle
= 5,
587 mso_sptRightTriangle
= 6,
588 mso_sptParallelogram
= 7,
589 mso_sptTrapezoid
= 8,
595 mso_sptThickArrow
= 14,
596 mso_sptHomePlate
= 15,
605 mso_sptTextSimple
= 24,
606 mso_sptTextOctagon
= 25,
607 mso_sptTextHexagon
= 26,
608 mso_sptTextCurve
= 27,
609 mso_sptTextWave
= 28,
610 mso_sptTextRing
= 29,
611 mso_sptTextOnCurve
= 30,
612 mso_sptTextOnRing
= 31,
613 mso_sptStraightConnector1
= 32,
614 mso_sptBentConnector2
= 33,
615 mso_sptBentConnector3
= 34,
616 mso_sptBentConnector4
= 35,
617 mso_sptBentConnector5
= 36,
618 mso_sptCurvedConnector2
= 37,
619 mso_sptCurvedConnector3
= 38,
620 mso_sptCurvedConnector4
= 39,
621 mso_sptCurvedConnector5
= 40,
622 mso_sptCallout1
= 41,
623 mso_sptCallout2
= 42,
624 mso_sptCallout3
= 43,
625 mso_sptAccentCallout1
= 44,
626 mso_sptAccentCallout2
= 45,
627 mso_sptAccentCallout3
= 46,
628 mso_sptBorderCallout1
= 47,
629 mso_sptBorderCallout2
= 48,
630 mso_sptBorderCallout3
= 49,
631 mso_sptAccentBorderCallout1
= 50,
632 mso_sptAccentBorderCallout2
= 51,
633 mso_sptAccentBorderCallout3
= 52,
637 mso_sptPentagon
= 56,
638 mso_sptNoSmoking
= 57,
642 mso_sptWedgeRectCallout
= 61,
643 mso_sptWedgeRRectCallout
= 62,
644 mso_sptWedgeEllipseCallout
= 63,
646 mso_sptFoldedCorner
= 65,
647 mso_sptLeftArrow
= 66,
648 mso_sptDownArrow
= 67,
650 mso_sptLeftRightArrow
= 69,
651 mso_sptUpDownArrow
= 70,
652 mso_sptIrregularSeal1
= 71,
653 mso_sptIrregularSeal2
= 72,
654 mso_sptLightningBolt
= 73,
656 mso_sptPictureFrame
= 75,
657 mso_sptQuadArrow
= 76,
658 mso_sptLeftArrowCallout
= 77,
659 mso_sptRightArrowCallout
= 78,
660 mso_sptUpArrowCallout
= 79,
661 mso_sptDownArrowCallout
= 80,
662 mso_sptLeftRightArrowCallout
= 81,
663 mso_sptUpDownArrowCallout
= 82,
664 mso_sptQuadArrowCallout
= 83,
666 mso_sptLeftBracket
= 85,
667 mso_sptRightBracket
= 86,
668 mso_sptLeftBrace
= 87,
669 mso_sptRightBrace
= 88,
670 mso_sptLeftUpArrow
= 89,
671 mso_sptBentUpArrow
= 90,
672 mso_sptBentArrow
= 91,
674 mso_sptStripedRightArrow
= 93,
675 mso_sptNotchedRightArrow
= 94,
676 mso_sptBlockArc
= 95,
677 mso_sptSmileyFace
= 96,
678 mso_sptVerticalScroll
= 97,
679 mso_sptHorizontalScroll
= 98,
680 mso_sptCircularArrow
= 99,
681 mso_sptNotchedCircularArrow
= 100,
682 mso_sptUturnArrow
= 101,
683 mso_sptCurvedRightArrow
= 102,
684 mso_sptCurvedLeftArrow
= 103,
685 mso_sptCurvedUpArrow
= 104,
686 mso_sptCurvedDownArrow
= 105,
687 mso_sptCloudCallout
= 106,
688 mso_sptEllipseRibbon
= 107,
689 mso_sptEllipseRibbon2
= 108,
690 mso_sptFlowChartProcess
= 109,
691 mso_sptFlowChartDecision
= 110,
692 mso_sptFlowChartInputOutput
= 111,
693 mso_sptFlowChartPredefinedProcess
= 112,
694 mso_sptFlowChartInternalStorage
= 113,
695 mso_sptFlowChartDocument
= 114,
696 mso_sptFlowChartMultidocument
= 115,
697 mso_sptFlowChartTerminator
= 116,
698 mso_sptFlowChartPreparation
= 117,
699 mso_sptFlowChartManualInput
= 118,
700 mso_sptFlowChartManualOperation
= 119,
701 mso_sptFlowChartConnector
= 120,
702 mso_sptFlowChartPunchedCard
= 121,
703 mso_sptFlowChartPunchedTape
= 122,
704 mso_sptFlowChartSummingJunction
= 123,
705 mso_sptFlowChartOr
= 124,
706 mso_sptFlowChartCollate
= 125,
707 mso_sptFlowChartSort
= 126,
708 mso_sptFlowChartExtract
= 127,
709 mso_sptFlowChartMerge
= 128,
710 mso_sptFlowChartOfflineStorage
= 129,
711 mso_sptFlowChartOnlineStorage
= 130,
712 mso_sptFlowChartMagneticTape
= 131,
713 mso_sptFlowChartMagneticDisk
= 132,
714 mso_sptFlowChartMagneticDrum
= 133,
715 mso_sptFlowChartDisplay
= 134,
716 mso_sptFlowChartDelay
= 135,
717 mso_sptTextPlainText
= 136,
718 mso_sptTextStop
= 137,
719 mso_sptTextTriangle
= 138,
720 mso_sptTextTriangleInverted
= 139,
721 mso_sptTextChevron
= 140,
722 mso_sptTextChevronInverted
= 141,
723 mso_sptTextRingInside
= 142,
724 mso_sptTextRingOutside
= 143,
725 mso_sptTextArchUpCurve
= 144,
726 mso_sptTextArchDownCurve
= 145,
727 mso_sptTextCircleCurve
= 146,
728 mso_sptTextButtonCurve
= 147,
729 mso_sptTextArchUpPour
= 148,
730 mso_sptTextArchDownPour
= 149,
731 mso_sptTextCirclePour
= 150,
732 mso_sptTextButtonPour
= 151,
733 mso_sptTextCurveUp
= 152,
734 mso_sptTextCurveDown
= 153,
735 mso_sptTextCascadeUp
= 154,
736 mso_sptTextCascadeDown
= 155,
737 mso_sptTextWave1
= 156,
738 mso_sptTextWave2
= 157,
739 mso_sptTextWave3
= 158,
740 mso_sptTextWave4
= 159,
741 mso_sptTextInflate
= 160,
742 mso_sptTextDeflate
= 161,
743 mso_sptTextInflateBottom
= 162,
744 mso_sptTextDeflateBottom
= 163,
745 mso_sptTextInflateTop
= 164,
746 mso_sptTextDeflateTop
= 165,
747 mso_sptTextDeflateInflate
= 166,
748 mso_sptTextDeflateInflateDeflate
= 167,
749 mso_sptTextFadeRight
= 168,
750 mso_sptTextFadeLeft
= 169,
751 mso_sptTextFadeUp
= 170,
752 mso_sptTextFadeDown
= 171,
753 mso_sptTextSlantUp
= 172,
754 mso_sptTextSlantDown
= 173,
755 mso_sptTextCanUp
= 174,
756 mso_sptTextCanDown
= 175,
757 mso_sptFlowChartAlternateProcess
= 176,
758 mso_sptFlowChartOffpageConnector
= 177,
759 mso_sptCallout90
= 178,
760 mso_sptAccentCallout90
= 179,
761 mso_sptBorderCallout90
= 180,
762 mso_sptAccentBorderCallout90
= 181,
763 mso_sptLeftRightUpArrow
= 182,
766 mso_sptBracketPair
= 185,
767 mso_sptBracePair
= 186,
769 mso_sptDoubleWave
= 188,
770 mso_sptActionButtonBlank
= 189,
771 mso_sptActionButtonHome
= 190,
772 mso_sptActionButtonHelp
= 191,
773 mso_sptActionButtonInformation
= 192,
774 mso_sptActionButtonForwardNext
= 193,
775 mso_sptActionButtonBackPrevious
= 194,
776 mso_sptActionButtonEnd
= 195,
777 mso_sptActionButtonBeginning
= 196,
778 mso_sptActionButtonReturn
= 197,
779 mso_sptActionButtonDocument
= 198,
780 mso_sptActionButtonSound
= 199,
781 mso_sptActionButtonMovie
= 200,
782 mso_sptHostControl
= 201,
783 mso_sptTextBox
= 202,
785 mso_sptNil
= mso_sptMax
788 // different enums from the OfficeDraw documentation, Appendix D - beginning
790 // note: in opposite to the MS documentation, they all
791 // start with "mso_" instead of "mso"
794 mso_shapeLines
, // A line of straight segments
795 mso_shapeLinesClosed
, // A closed polygonal object
796 mso_shapeCurves
, // A line of Bezier curve segments
797 mso_shapeCurvesClosed
, // A closed shape with curved edges
798 mso_shapeComplex
// pSegmentInfo must be non-empty
810 mso_bwColor
, // only used for predefined shades
811 mso_bwAutomatic
, // depends on object type
812 mso_bwGrayScale
, // shades of gray only
813 mso_bwLightGrayScale
, // shades of light gray only
814 mso_bwInverseGray
, // dark gray mapped to light gray, etc.
815 mso_bwGrayOutline
, // pure gray and white
816 mso_bwBlackTextLine
, // black text and lines, all else grayscale
817 mso_bwHighContrast
, // pure black and white mode (no grays)
818 mso_bwBlack
, // solid black
819 mso_bwWhite
, // solid white
820 mso_bwDontShow
, // object not drawn
821 mso_bwNumModes
// number of Black and white modes
828 mso_anchorTopCentered
,
829 mso_anchorMiddleCentered
,
830 mso_anchorBottomCentered
,
831 mso_anchorTopBaseline
,
832 mso_anchorBottomBaseline
,
833 mso_anchorTopCenteredBaseline
,
834 mso_anchorBottomCenteredBaseline
845 enum MSO_ConnectorStyle
{
846 mso_cxstyleStraight
= 0,
852 // MSO_TXFL -- text flow
854 mso_txflHorzN
, // Horizontal non-@
855 mso_txflTtoBA
, // Top to Bottom @-font
856 mso_txflBtoT
, // Bottom to Top non-@
857 mso_txflTtoBN
, // Top to Bottom non-@
858 mso_txflHorzA
, // Horizontal @-font
859 mso_txflVertN
// Vertical, non-@
862 // MSO_TXDIR - text direction (needed for Bi-Di support)
864 mso_txdirLTR
, // left-to-right text direction
865 mso_txdirRTL
, // right-to-left text direction
866 mso_txdirContext
// context text direction
869 // MSO_SPCOT -- Callout Type
870 enum MSO_SPCalloutType
{
871 mso_spcotRightAngle
= 1,
872 mso_spcotOneSegment
= 2,
873 mso_spcotTwoSegment
= 3,
874 mso_spcotThreeSegment
= 4
877 // MSO_SPCOA -- Callout Angle
878 enum MSO_SPCalloutAngle
{
887 // MSO_SPCOD -- Callout Drop
888 enum MSO_SPCalloutDrop
{
895 // MSO_GEOTEXTALIGN - FontWork alignment
896 enum MSO_GeoTextAlign
{
897 mso_alignTextStretch
, /* Stretch each line of text to fit width. */
898 mso_alignTextCenter
, /* Center text on width. */
899 mso_alignTextLeft
, /* Left justify. */
900 mso_alignTextRight
, /* Right justify. */
901 mso_alignTextLetterJust
, /* Spread letters out to fit width. */
902 mso_alignTextWordJust
, /* Spread words out to fit width. */
903 mso_alignTextInvalid
/* Invalid */
906 // MSO_BLIPFLAGS - flags for pictures
908 mso_blipflagDefault
= 0,
909 mso_blipflagComment
= 0, // Blip name is a comment
910 mso_blipflagFile
, // Blip name is a file name
911 mso_blipflagURL
, // Blip name is a full URL
912 mso_blipflagType
= 3, // Mask to extract type
913 /* Or the following flags with any of the above. */
914 mso_blipflagDontSave
= 4, // A "dont" is the depression in the metal
915 // body work of an automobile caused when a
916 // cyclist violently thrusts his or her nose
917 // at it, thus a DontSave is another name for
919 mso_blipflagDoNotSave
= 4, // For those who prefer English
920 mso_blipflagLinkToFile
= 8
923 enum MSO_3DRenderMode
{
924 mso_FullRender
, // Generate a full rendering
925 mso_Wireframe
, // Generate a wireframe
926 mso_BoundingCube
// Generate a bounding cube
930 mso_xformAbsolute
, // Apply transform in absolute space centered on shape
931 mso_xformShape
, // Apply transform to shape geometry
932 mso_xformDrawing
// Apply transform in drawing space
935 enum MSO_ShadowType
{
936 mso_shadowOffset
, // N pixel offset shadow
937 mso_shadowDouble
, // Use second offset too
938 mso_shadowRich
, // Rich perspective shadow (cast relative to shape)
939 mso_shadowShape
, // Rich perspective shadow (cast in shape space)
940 mso_shadowDrawing
, // Perspective shadow cast in drawing space
941 mso_shadowEmbossOrEngrave
944 // MSO_DZTYPE - the type of a (length) measurement
947 mso_dztypeDefault
= 0, // Default size, ignore the values
948 mso_dztypeA
= 1, // Values are in EMUs
949 mso_dztypeV
= 2, // Values are in pixels
950 mso_dztypeShape
= 3, // Values are 16.16 fractions of shape size
951 mso_dztypeFixedAspect
= 4, // Aspect ratio is fixed
952 mso_dztypeAFixed
= 5, // EMUs, fixed aspect ratio
953 mso_dztypeVFixed
= 6, // Pixels, fixed aspect ratio
954 mso_dztypeShapeFixed
= 7, // Proportion of shape, fixed aspect ratio
955 mso_dztypeFixedAspectEnlarge
956 = 8, // Aspect ratio is fixed, favor larger size
957 mso_dztypeAFixedBig
= 9, // EMUs, fixed aspect ratio
958 mso_dztypeVFixedBig
= 10, // Pixels, fixed aspect ratio
959 mso_dztypeShapeFixedBig
= 11, // Proportion of shape, fixed aspect ratio
964 mso_fillSolid
, // Fill with a solid color
965 mso_fillPattern
, // Fill with a pattern (bitmap)
966 mso_fillTexture
, // A texture (pattern with its own color map)
967 mso_fillPicture
, // Center a picture in the shape
968 mso_fillShade
, // Shade from start to end points
969 mso_fillShadeCenter
, // Shade from bounding rectangle to end point
970 mso_fillShadeShape
, // Shade from shape outline to end point
971 mso_fillShadeScale
, // Similar to mso_fillShade, but the fillAngle
972 // is additionally scaled by the aspect ratio of
973 // the shape. If shape is square, it is the
974 // same as mso_fillShade.
975 mso_fillShadeTitle
, // special type - shade to title --- for PP
976 mso_fillBackground
// Use the background fill color/pattern
979 // MSO_SHADETYPE - how to interpret the colors in a shaded fill.
981 mso_shadeNone
= 0, // Interpolate without correction between RGBs
982 mso_shadeGamma
= 1, // Apply gamma correction to colors
983 mso_shadeSigma
= 2, // Apply a sigma transfer function to position
984 mso_shadeBand
= 4, // Add a flat band at the start of the shade
985 mso_shadeOneColor
= 8, // This is a one color shade
987 /* A parameter for the band or sigma function can be stored in the top
988 16 bits of the value - this is a proportion of *each* band of the
989 shade to make flat (or the approximate equal value for a sigma
990 function). NOTE: the parameter is not used for the sigma function,
991 instead a built in value is used. This value should not be changed
993 mso_shadeParameterShift
= 16,
994 mso_shadeParameterMask
= 0xffff0000,
996 mso_shadeDefault
= (mso_shadeGamma
|mso_shadeSigma
|
997 (16384<<mso_shadeParameterShift
))
1000 // MSOLINESTYLE - compound line style
1001 enum MSO_LineStyle
{
1002 mso_lineSimple
, // Single line (of width lineWidth)
1003 mso_lineDouble
, // Double lines of equal width
1004 mso_lineThickThin
, // Double lines, one thick, one thin
1005 mso_lineThinThick
, // Double lines, reverse order
1006 mso_lineTriple
// Three lines, thin, thick, thin
1009 // MSO_LINETYPE - how to "fill" the line contour
1011 mso_lineSolidType
, // Fill with a solid color
1012 mso_linePattern
, // Fill with a pattern (bitmap)
1013 mso_lineTexture
, // A texture (pattern with its own color map)
1014 mso_linePicture
// Center a picture in the shape
1017 // MSO_LINEDASHING - dashed line style
1018 enum MSO_LineDashing
{
1019 mso_lineSolid
, // Solid (continuous) pen
1020 mso_lineDashSys
, // PS_DASH system dash style
1021 mso_lineDotSys
, // PS_DOT system dash style
1022 mso_lineDashDotSys
, // PS_DASHDOT system dash style
1023 mso_lineDashDotDotSys
, // PS_DASHDOTDOT system dash style
1024 mso_lineDotGEL
, // square dot style
1025 mso_lineDashGEL
, // dash style
1026 mso_lineLongDashGEL
, // long dash style
1027 mso_lineDashDotGEL
, // dash short dash
1028 mso_lineLongDashDotGEL
, // long dash short dash
1029 mso_lineLongDashDotDotGEL
// long dash short dash short dash
1032 // MSO_LINEEND - line end effect
1036 mso_lineArrowStealthEnd
,
1037 mso_lineArrowDiamondEnd
,
1038 mso_lineArrowOvalEnd
,
1039 mso_lineArrowOpenEnd
1042 // MSO_LINEENDWIDTH - size of arrowhead
1043 enum MSO_LineEndWidth
{
1044 mso_lineNarrowArrow
,
1045 mso_lineMediumWidthArrow
,
1049 // MSO_LINEENDLENGTH - size of arrowhead
1050 enum MSO_LineEndLength
{
1052 mso_lineMediumLenArrow
,
1056 // MSO_LINEJOIN - line join style.
1058 mso_lineJoinBevel
, // Join edges by a straight line
1059 mso_lineJoinMiter
, // Extend edges until they join
1060 mso_lineJoinRound
// Draw an arc between the two edges
1063 // MSO_LINECAP - line cap style (applies to ends of dash segments too).
1065 mso_lineEndCapRound
, // Rounded ends - the default
1066 mso_lineEndCapSquare
, // Square protrudes by half line width
1067 mso_lineEndCapFlat
// Line ends at end point
1069 // verschiedene enums aus der OfficeDraw-Doku, Appendix D - Ende
1072 // FBSE - File Blip Store Entry
1073 typedef struct _MSOF_BSE
{
1074 sal_uInt8 btWin32
; // Required type on Win32
1075 sal_uInt8 btMacOS
; // Required type on Mac
1076 sal_uInt8 rgbUid
[16]; // Identifier of blip
1077 sal_uInt16 tag
; // currently unused
1078 sal_uIntPtr size
; // Blip size in stream
1079 sal_uIntPtr cRef
; // Reference count on the blip
1080 sal_uIntPtr
/*MSOFO*/ foDelay
; // File offset in the delay stream
1081 sal_uInt8 usage
; // How this blip is used (MSOBLIPUSAGE)
1082 sal_uInt8 cbName
; // length of the blip name
1083 sal_uInt8 unused2
; // for the future
1084 sal_uInt8 unused3
; // for the future
1088 mso_blipUsageDefault
, // All non-texture fill blips get this.
1089 mso_blipUsageTexture
,
1090 mso_blipUsageMax
= 255 // Since this is stored in a byte
1093 typedef enum { // GEL provided types...
1094 mso_blipERROR
= 0, // An error occurred during loading
1095 mso_blipUNKNOWN
, // An unknown blip type
1096 mso_blipEMF
, // Windows Enhanced Metafile
1097 mso_blipWMF
, // Windows Metafile
1098 mso_blipPICT
, // Macintosh PICT
1099 mso_blipJPEG
, // JFIF
1101 mso_blipDIB
, // Windows DIB
1102 mso_blipFirstClient
= 32, // First client defined blip type
1103 mso_blipLastClient
= 255 // Last client defined blip type
1108 mso_biWMF
= 0x216, // Metafile header then compressed WMF
1109 mso_biEMF
= 0x3D4, // Metafile header then compressed EMF
1110 mso_biPICT
= 0x542, // Metafile header then compressed PICT
1111 mso_biPNG
= 0x6E0, // One byte tag then PNG data
1112 mso_biJFIF
= 0x46A, // One byte tag then JFIF data
1113 mso_biJPEG
= mso_biJFIF
,
1114 mso_biDIB
= 0x7A8, // One byte tag then DIB data
1115 mso_biClient
=0x800 // Clients should set this bit
1116 } MSO_BI
; // Blip signature as encoded in the MSO_FBH.inst
1119 mso_compressionDeflate
= 0,
1120 mso_compressionNone
= 254, // Used only if compression fails
1121 mso_compressionTest
= 255 // For testing only
1122 } MSO_BLIPCOMPRESSION
;
1125 mso_filterAdaptive
= 0, // PNG type - not used/supported for metafile
1126 mso_filterNone
= 254,
1127 mso_filterTest
= 255 // For testing only
1131 mso_syscolorButtonFace
, // COLOR_BTNFACE
1132 mso_syscolorWindowText
, // COLOR_WINDOWTEXT
1133 mso_syscolorMenu
, // COLOR_MENU
1134 mso_syscolorHighlight
, // COLOR_HIGHLIGHT
1135 mso_syscolorHighlightText
, // COLOR_HIGHLIGHTTEXT
1136 mso_syscolorCaptionText
, // COLOR_CAPTIONTEXT
1137 mso_syscolorActiveCaption
, // COLOR_ACTIVECAPTION
1138 mso_syscolorButtonHighlight
, // COLOR_BTNHIGHLIGHT
1139 mso_syscolorButtonShadow
, // COLOR_BTNSHADOW
1140 mso_syscolorButtonText
, // COLOR_BTNTEXT
1141 mso_syscolorGrayText
, // COLOR_GRAYTEXT
1142 mso_syscolorInactiveCaption
, // COLOR_INACTIVECAPTION
1143 mso_syscolorInactiveCaptionText
, // COLOR_INACTIVECAPTIONTEXT
1144 mso_syscolorInfoBackground
, // COLOR_INFOBK
1145 mso_syscolorInfoText
, // COLOR_INFOTEXT
1146 mso_syscolorMenuText
, // COLOR_MENUTEXT
1147 mso_syscolorScrollbar
, // COLOR_SCROLLBAR
1148 mso_syscolorWindow
, // COLOR_WINDOW
1149 mso_syscolorWindowFrame
, // COLOR_WINDOWFRAME
1150 mso_syscolor3DLight
, // COLOR_3DLIGHT
1151 mso_syscolorMax
, // Count of system colors
1153 mso_colorFillColor
= 0xF0, // Use the fillColor property
1154 mso_colorLineOrFillColor
, // Use the line color only if there is a line
1155 mso_colorLineColor
, // Use the lineColor property
1156 mso_colorShadowColor
, // Use the shadow color
1157 mso_colorThis
, // Use this color (only valid as described below)
1158 mso_colorFillBackColor
, // Use the fillBackColor property
1159 mso_colorLineBackColor
, // Use the lineBackColor property
1160 mso_colorFillThenLine
, // Use the fillColor unless no fill and line
1161 mso_colorIndexMask
= 0xFF, // Extract the color index
1163 mso_colorProcessMask
=0xFFFF00,// All the processing bits
1164 mso_colorModificationMask
=0x0F00, // Just the function
1165 mso_colorModFlagMask
=0xF000, // Just the additional flags
1166 mso_colorDarken
=0x0100, // Darken color by parameter/255
1167 mso_colorLighten
=0x0200, // Lighten color by parameter/255
1168 mso_colorAdd
=0x0300, // Add grey level RGB(param,param,param)
1169 mso_colorSubtract
=0x0400, // Subtract grey level RGB(p,p,p)
1170 mso_colorReverseSubtract
=0x0500, // Subtract from grey level RGB(p,p,p)
1171 /* In the following "black" means maximum component value, white minimum.
1172 The operation is per component, to guarantee white combine with
1174 mso_colorBlackWhite
=0x0600, // Black if < uParam, else white (>=)
1175 mso_colorInvert
=0x2000, // Invert color (at the *end*)
1176 mso_colorInvert128
=0x4000, // Invert by toggling the top bit
1177 mso_colorGray
=0x8000, // Make the color gray (before the above!)
1178 mso_colorBParamMask
=0xFF0000,// Parameter used as above
1179 mso_colorBParamShift
= 16 // To extract the parameter value
1180 } MSO_SYSCOLORINDEX
;
1184 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */