00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100 #ifndef INC_CMXISTUT
00101 #define INC_CMXISTUT
00102
00103 #include "cmxform.h"
00104 #include "cmxibits.h"
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122 #define CI_READBYTE 1 // INT32
00123 #define CI_READINT16 2 // INT32
00124 #define CI_READINT32 3 // INT32
00125 #define CI_READUINT16 4 // UINT32
00126 #define CI_READUINT32 5 // UINT32
00127 #define CI_READREFERENCE 6 // INT32
00128 #define CI_READLENGTH 7 // INT32
00129 #define CI_READCOORD 8 // DocCoord
00130 #define CI_READBBOX 9 // DocRect
00131 #define CI_READNATURALWORD 10 // UINT32 (reads 16/32 bit word)
00132 #define CI_READOFFSET 11 // UINT32 (file offset)
00133 #define CI_READBOOLEAN 12 // BOOL
00134 #define CI_READANGLE 13 // double (angle in radians)
00135 #define CI_READDOUBLE 14 // double
00136 #define CI_READRENDATTR 15 // cmxiRenderAttr (rendering attributes)
00137 #define CI_READPOINTLIST 16 // Path * (remember to delete it)
00138 #define CI_READCOLOURLIST 17 // CMXImportColourList * (remember to delete it)
00139 #define CI_READSTRING 18 // StringBase * (remember to delete it)
00140 #define CI_READMATRIX 19 // Matrix
00141 #define CI_READSTRINGF_VAL 20 // char[n]
00142 #define CI_READTILING 21 // cmxiTiling (tiling description)
00143 #define CI_READINT16ARRAY 22 // cmxiIntArray (delete array afterwards with delete [])
00144 #define CI_READCHARLIST 23 // characterList for 16bit (remember to delete the WCHAR *)
00145 #define CI_READCOLUMN 24 // the column specification (something to delete there!)
00146 #define CI_TRANSPARENCY 25 // In case the new transparency is used we need to stop
00147
00148
00149
00150
00151
00152 #define CI_STOP 0 // stop everything
00153 #define CI_SKIPIN_VAL 64 // skip n bytes from input
00154 #define CI_SKIPOUT_VAL 65 // skip n bytes in output structure
00155 #define CI_STORENEXT 66 // stores next value for use in if's
00156 #define CI_IFSTOREDIS_VAL 67 // do next bits if stored has certain value
00157 #define CI_ELSEIF_VAL 68 // else statement
00158 #define CI_ENDIF 69 // end if bit
00159 #define CI_DO16 70 // do next bits for 16 bit only
00160 #define CI_DO32 71 // do next bits for 32 bit only
00161 #define CI_DOALL 72 // do next bits for everything (default)
00162 #define CI_TAG_VAL 73 // expect a tag
00163 #define CI_ENDTAG 74 // end of tag -- fix up file location
00164 #define CI_MINENDTAG 75 // expect one of those end of tags codes
00165
00166 #define CI_SETOUTMARKER 76 // set an output marker
00167 #define CI_GOTOOUTLOC_VAL 77 // goto a set distance after the output marker in the output structure
00168 #define CI_SKIPINTIMES_VAL 78 // skip input data depending on stored value
00169 #define CI_SETINMARKER 79 // sets a marker for the input file location
00170 #define CI_ENSUREINLOC 80 // ensures that the file location is in the correct position
00171
00172 #define CI_TAG_IF_THERE 81 // Trick to cope with transparency
00173
00174
00175 #define CI_SKIPIN(type) (CI_SKIPIN_VAL), sizeof(type)
00176 #define CI_SKIPOUT(type) (CI_SKIPOUT_VAL), sizeof(type)
00177 #define CI_SKIPIN_BYTES(n) (CI_SKIPIN_VAL), (n)
00178 #define CI_SKIPOUT_BYTES(n) (CI_SKIPOUT_VAL), (n)
00179 #define CI_IFSTOREDIS(type, n) (CI_IFSTOREDIS_VAL), (type), (n)
00180 #define CI_ELSEIF(type, n) (CI_ELSEIF_VAL), (type), (n)
00181 #define CI_TAG(n) (CI_TAG_VAL), (n)
00182 #define CI_GOTOOUTLOC(type) (CI_GOTOOUTLOC_VAL), sizeof(type)
00183 #define CI_SKIPINTIMES(type) (CI_SKIPINTIMES_VAL), sizeof(type)
00184 #define CI_SKIPINTIMES_BYTES(n) (CI_SKIPINTIMES_VAL), (n)
00185 #define CI_READSTRINGF(n) (CI_READSTRINGF_VAL), (n)
00186 #define CI_SKIPINTIMES_BYTE(n) (CI_SKIPINTIMES_VAL), (n)
00187
00188 #define CI_IF_TAG(n) (CI_TAG_IF_THERE), (n)
00189
00190
00191 #define CI_IFTYPE_VALUE 0 // if value is equal
00192 #define CI_IFTYPE_BITSET 1 // if bit is set
00193 #define CI_IFTYPE_BOOL 2 // for handling Corel's BOOLs (use TRUE/FALSE in the statements)
00194
00195 #ifdef _DEBUG
00196 #define CI_TRACE_VAL 101
00197 #define CI_TRACE(n) (CI_TRACE_VAL), (n),
00198 #else
00199 #define CI_TRACE(n)
00200 #endif
00201
00202
00203
00204
00205
00206
00207
00208
00209
00210 class CMXIinfo
00211 {
00212 public:
00213 static void SetUpInfo(void);
00214
00215 static char CommandLengths[256];
00216
00217 protected:
00218 static void SetLengths(char *instrs, INT32 num, INT32 val);
00219 };
00220
00221
00222 #define CI_READDATA(type, name) cmxi##type name; if(!ReadData(&name, cmxi##type##Desc)) return FALSE;
00223
00224 typedef struct {
00225 INT32 NumElements;
00226 INT32 *pElements;
00227 } cmxiIntArray;
00228
00229
00230 #pragma pack(push, 1)
00231
00232
00233
00234
00235 #define START_CMXSTRUCT typedef struct {
00236 #ifndef COMPILING_CMXISTUT_CPP
00237 #define END_CMXSTRUCT(name) } cmxi##name; extern char cmxi##name##Desc[];
00238 #else
00239 #define END_CMXSTRUCT(name) } cmxi##name;
00240 #endif
00241
00242 #define START_CMXDESC(name) char cmxi##name##Desc[] = {
00243 #define END_CMXDESC ,CI_STOP};
00244
00245
00246
00247 typedef struct {
00248 INT32 count;
00249 WCHAR* characters;
00250 WORD* indices;
00251 } characterList;
00252
00253 typedef struct {
00254 INT32 count;
00255 INT32* columns;
00256 INT32* gutters;
00257 } cmxiColumnList;
00258
00259
00260
00261 typedef struct {
00262 INT32 x,y;
00263 } fudgedDocCoord;
00264
00265 typedef struct {
00266 INT32 x0,y0,x1,y1;
00267 } fudgedDocRect;
00268
00269
00270
00271
00272
00273 START_CMXSTRUCT
00274 char ID[32];
00275 INT32 ByteOrder;
00276 INT32 CoordSize;
00277 INT32 Major;
00278 INT32 Minor;
00279 INT32 Unit;
00280 double Factor;
00281 INT32 IOption, IForeignKey, ICapability, IndexSection, InfoSection, Thumbnail;
00282 struct {
00283 INT32 x0, y1, x1, y0;
00284 } bbox;
00285 INT32 Tally;
00286 END_CMXSTRUCT(FileHeader)
00287
00288 START_CMXSTRUCT
00289 INT32 MasterID;
00290 INT32 Size;
00291 INT32 RecordCount;
00292 END_CMXSTRUCT(MasterIndexHeader)
00293
00294
00295 START_CMXSTRUCT
00296 INT32 IndexRecordID;
00297 INT32 Offset;
00298 END_CMXSTRUCT(MasterIndexEntry)
00299
00300 START_CMXSTRUCT
00301 INT32 RecordCount;
00302 END_CMXSTRUCT(SimpleIndexHeader)
00303
00304 START_CMXSTRUCT
00305 INT32 SizeInFile;
00306 INT32 PageOffset;
00307 INT32 LayerTableOffset;
00308 INT32 ThumbnailOffset;
00309 INT32 RefListOffset;
00310
00311 END_CMXSTRUCT(PageIndexEntry)
00312
00313 START_CMXSTRUCT
00314 INT32 Size;
00315 INT32 Code;
00316 END_CMXSTRUCT(CommandHeader)
00317
00318 START_CMXSTRUCT
00319 INT32 PageNumber;
00320 UINT32 PageFlags;
00321 DocRect BBox;
00322 INT32 EndPageOffset;
00323 INT32 GroupCount;
00324 INT32 InstructionCount;
00325 Matrix PageMatrix;
00326 END_CMXSTRUCT(BeginPage)
00327
00328 START_CMXSTRUCT
00329 INT32 PageNumber;
00330 INT32 LayerNumber;
00331 INT32 LayerFlags;
00332 INT32 InstructionCount;
00333 StringBase *pLayerName;
00334 Matrix LayerMatrix;
00335 END_CMXSTRUCT(BeginLayer)
00336
00337 START_CMXSTRUCT
00338 INT32 ColourModel;
00339 INT32 PaletteType;
00340 union {
00341 struct {
00342 INT32 ID, Density;
00343 } Pantone;
00344 struct {
00345 INT32 Cyan, Magenta, Yellow, Key;
00346 } CMYK;
00347 struct {
00348 INT32 Red, Green, Blue;
00349 } RGB;
00350 struct {
00351 INT32 Hue, Saturation, Value;
00352 } HSV;
00353 struct {
00354 INT32 Grey;
00355 } Grey;
00356 struct {
00357 INT32 Value1, Value2, Value3, Value4;
00358 } Misc;
00359 } Spec;
00360 END_CMXSTRUCT(Colour)
00361
00362 START_CMXSTRUCT
00363 INT32 Width;
00364 INT32 Height;
00365 INT32 XOffset;
00366 INT32 YOffset;
00367 INT32 InterTileOffset;
00368 INT32 TilingFlags;
00369 END_CMXSTRUCT(Tiling)
00370
00371 typedef struct {
00372 INT32 FillID;
00373 union {
00374 struct {
00375 INT32 ColourReference;
00376 INT32 ScreenReference;
00377 } Uniform;
00378 struct {
00379 INT32 Type;
00380 INT32 Screen;
00381 INT32 Padding;
00382 double Angle;
00383 fudgedDocCoord Offset;
00384 INT32 StepCount;
00385 INT32 FillMode;
00386 INT32 RateMethod;
00387 INT32 RateValue;
00388 CMXImportColourList *pColours;
00389 } Fountain;
00390 struct {
00391 INT32 Reference;
00392 INT32 ParamCount;
00393 StringBase *UserFunction;
00394 } Postscript;
00395 struct {
00396 INT32 VectorFillReference;
00397 cmxiTiling Tile;
00398 fudgedDocRect BBox;
00399 } Bitmap;
00400 struct {
00401 INT32 BitmapReference;
00402 cmxiTiling Tile;
00403 INT32 ForeColourReference;
00404 INT32 BackColourReference;
00405 INT32 ScreenReference;
00406 } TwoColourBitmap;
00407 struct {
00408 INT32 VectorFillReference;
00409 cmxiTiling Tile;
00410 fudgedDocRect BBox;
00411 INT32 StringLen1, StringLen2, StringLen3, ParamCount;
00412 } Texture;
00413 } Spec;
00414 } cmxiFillSpec;
00415
00416 typedef union {
00417 struct {
00418 INT32 TintMethod;
00419 INT32 UniformRate;
00420 INT32 ColourRef;
00421 INT32 RangeProcRef;
00422 } Glass;
00423 struct {
00424 INT32 UniformRate;
00425 INT32 RangeProcRef;
00426 } Magnify;
00427 struct {
00428 INT32 UniformRate;
00429 INT32 RangeProcRef;
00430 } Fisheye;
00431 struct {
00432 INT32 OutlineMethod;
00433 INT32 OutlineColour;
00434 INT32 FillMethod;
00435 INT32 FillColour;
00436 INT32 RangeProcRef;
00437 } Wireframe;
00438 } cmxiLensSpecSpec;
00439
00440 typedef struct {
00441 INT32 Type;
00442 union {
00443 struct {
00444 INT32 TintMethod;
00445 INT32 UniformRate;
00446 INT32 ColourRef;
00447 INT32 RangeProcRef;
00448 } Glass;
00449 struct {
00450 INT32 UniformRate;
00451 INT32 RangeProcRef;
00452 } Magnify;
00453 struct {
00454 INT32 UniformRate;
00455 INT32 RangeProcRef;
00456 } Fisheye;
00457 struct {
00458 INT32 OutlineMethod;
00459 INT32 OutlineColour;
00460 INT32 FillMethod;
00461 INT32 FillColour;
00462 INT32 RangeProcRef;
00463 } Wireframe;
00464 };
00465 } cmxiLensSpec;
00466
00467 typedef struct {
00468 INT32 ContainerReference;
00469 BOOL AutoTransform;
00470 } cmxiContainerSpec;
00471
00472 START_CMXSTRUCT
00473 INT32 Mask;
00474 cmxiFillSpec FillSpec;
00475 INT32 OutlineReference;
00476 cmxiLensSpec LensSpec;
00477 cmxiContainerSpec ContainerSpec;
00478 END_CMXSTRUCT(RenderAttr)
00479
00480 START_CMXSTRUCT
00481 cmxiRenderAttr RenderAttributes;
00482 Path *PointList;
00483 DocRect BBox;
00484 END_CMXSTRUCT(PolyCurve)
00485
00486 START_CMXSTRUCT
00487 cmxiRenderAttr RenderAttributes;
00488 DocCoord Centre;
00489 INT32 Width;
00490 INT32 Height;
00491 double CornerRadius;
00492 double Rotation;
00493 DocRect BBox;
00494 END_CMXSTRUCT ( Rectangle )
00495
00496 START_CMXSTRUCT
00497 Matrix TransformMatrix;
00498 END_CMXSTRUCT(AddGlobalTransform)
00499
00500 START_CMXSTRUCT
00501 Matrix TransformMatrix;
00502 END_CMXSTRUCT(SetGlobalTransform)
00503
00504 START_CMXSTRUCT
00505 INT32 LineStyleRef;
00506 INT32 ScreenRef;
00507 INT32 ColourRef;
00508 INT32 ArrowheadsRef;
00509 INT32 PenRef;
00510 INT32 DotDashRef;
00511 END_CMXSTRUCT(Outline)
00512
00513 START_CMXSTRUCT
00514 INT32 Width;
00515 INT32 Aspect;
00516 double Angle;
00517 Matrix Mat;
00518 END_CMXSTRUCT(Pen)
00519
00520 START_CMXSTRUCT
00521 INT32 Spec;
00522 INT32 CapAndJoin;
00523 END_CMXSTRUCT(LineStyle)
00524
00525 START_CMXSTRUCT
00526 cmxiIntArray Dots;
00527 END_CMXSTRUCT(DotDash)
00528
00529 START_CMXSTRUCT
00530 cmxiRenderAttr RenderAttributes;
00531 DocRect ImageExtent;
00532 DocRect CroppingRectangle;
00533 Matrix Transformation;
00534 INT32 ImageType;
00535 INT32 ImageFileReference1;
00536 INT32 ImageFileReference2;
00537 END_CMXSTRUCT(DrawImage)
00538
00539 START_CMXSTRUCT
00540 INT32 SizeInFile;
00541 INT32 Offset;
00542 INT32 Type;
00543
00544 END_CMXSTRUCT(EmbeddedFileIndexEntry)
00545
00546 START_CMXSTRUCT
00547 INT32 SizeInFile;
00548 INT32 ReferenceList;
00549 INT32 Position;
00550
00551 END_CMXSTRUCT(ProcedureIndexEntry)
00552
00553 START_CMXSTRUCT
00554 INT32 Offset;
00555 END_CMXSTRUCT(JumpAbsolute)
00556
00557 START_CMXSTRUCT
00558 INT32 Type;
00559 INT32 Compression;
00560 INT32 ISize;
00561 INT32 ICompressedSize;
00562 END_CMXSTRUCT(ImageInfo)
00563
00564 START_CMXSTRUCT
00565 UINT32 Type;
00566 UINT32 Size;
00567 INT32 Reserved1, Reserved2;
00568 INT32 OffsetToBits;
00569 END_CMXSTRUCT(ImageContents)
00570
00571 START_CMXSTRUCT
00572 UINT32 Type;
00573 UINT32 Size;
00574 INT32 Reserved1, Reserved2;
00575 INT32 OffsetToBits;
00576 END_CMXSTRUCT(ImageContentsDIB)
00577
00578 START_CMXSTRUCT
00579 UINT32 Type;
00580 UINT32 CompressionType;
00581 UINT32 Width;
00582 UINT32 Height;
00583 UINT32 Planes;
00584 UINT32 BitsPerPlane;
00585 UINT32 BytesPerPlane;
00586 UINT32 BufferSize;
00587 UINT32 CompressedBufferSize;
00588 UINT32 XPelsPerKM;
00589 UINT32 YPelsPerKM;
00590 INT32 IPaletteOffset;
00591 INT32 IDataOffset;
00592 INT32 IStartBufOffset;
00593 INT32 IAlphaOffset;
00594 INT32 IMaskOffset;
00595 END_CMXSTRUCT(RImageHeader)
00596
00597 START_CMXSTRUCT
00598 INT32 Type;
00599 INT32 NumEntries;
00600 END_CMXSTRUCT(RImagePalette)
00601
00602 START_CMXSTRUCT
00603 INT32 Blue, Green, Red;
00604 END_CMXSTRUCT(RImagePaletteEntry)
00605
00606 typedef union {
00607 struct {
00608 INT32 x0, x1;
00609 } Vertical;
00610 struct {
00611 INT32 y0, y1;
00612 } Horizontal;
00613 fudgedDocRect Rectangular;
00614 Path *pPolygon;
00615 } cmxiRegionSpec;
00616
00617 START_CMXSTRUCT
00618 INT32 RegionType;
00619 cmxiRegionSpec Spec;
00620 INT32 ClipMode;
00621 INT32 RecoverySpecification;
00622 END_CMXSTRUCT(AddClippingRegion)
00623
00624 START_CMXSTRUCT
00625 INT32 RecordCount;
00626 INT32 SizeInFile;
00627 INT32 Type;
00628 END_CMXSTRUCT(ArrowShapeIndexHeader)
00629
00630 START_CMXSTRUCT
00631 INT32 Offset;
00632 END_CMXSTRUCT(ArrowShapeIndexEntry)
00633
00634 START_CMXSTRUCT
00635 Path *pShape;
00636 INT32 LineOffset;
00637 END_CMXSTRUCT(ArrowShape)
00638
00639 START_CMXSTRUCT
00640 INT32 StartRef;
00641 INT32 EndRef;
00642 END_CMXSTRUCT(Arrowheads)
00643
00644 START_CMXSTRUCT
00645 INT32 RecordCount;
00646 INT32 SizeInFile;
00647 INT32 Type;
00648 END_CMXSTRUCT(BitmapIndexHeader)
00649
00650 START_CMXSTRUCT
00651 INT32 Offset;
00652 END_CMXSTRUCT(BitmapIndexEntry)
00653
00654 START_CMXSTRUCT
00655 INT32 RecordCount;
00656 INT32 SizeInFile;
00657 INT32 Type;
00658 END_CMXSTRUCT(FontIndexHeader)
00659
00660 START_CMXSTRUCT
00661 INT32 Offset;
00662 END_CMXSTRUCT(FontIndexEntry)
00663
00664
00665 START_CMXSTRUCT
00666 BOOL Artistic;
00667 INT32 Pad;
00668 DocRect BBox;
00669 INT32 Frames;
00670 INT32 Num_Paragraph;
00671 INT32 Num_Instruction;
00672 END_CMXSTRUCT(BeginTextStream)
00673
00674 START_CMXSTRUCT
00675 cmxiColumnList columns;
00676 INT32 Height;
00677 INT32 Skew;
00678 Matrix Mat;
00679 END_CMXSTRUCT(TextFrame)
00680
00681 START_CMXSTRUCT
00682 cmxiRenderAttr RenderAttributes;
00683 INT32 FontRef;
00684 INT32 FontSize;
00685 INT32 KerningVertical;
00686 INT32 KerningHorizontal;
00687 double KerningAngle;
00688 INT32 Justification;
00689 INT32 InterCharSpacing;
00690 INT32 InterWordSpacing;
00691 INT32 InterLineSpacing;
00692 INT32 BeforeParagraphSpacing;
00693 INT32 AfterParagraphSpacing;
00694 INT32 MaxInterChar;
00695 INT32 MinInterWord;
00696 INT32 MaxInterWord;
00697 INT32 SpacingMode;
00698 INT32 UnderlineFlag;
00699 INT32 UnderlineDistanceFromBaseline;
00700 INT32 UnderlineStrokeThickness;
00701 INT32 ThickUnderlineFlag;
00702 INT32 ThickUnderlineDistanceFromBaseline;
00703 INT32 ThickUnderlineStrokeThickness;
00704 INT32 DoubleUnderlineFlag;
00705 INT32 DoubleUnderlineDistanceFromBaseline;
00706 INT32 DoubleUnderlineStrokeThickness;
00707 INT32 DoubleUnderline1Flag;
00708 INT32 DoubleUnderline1DistanceFromBaseline;
00709 INT32 DoubleUnderline1StrokeThickness;
00710 INT32 DoubleUnderline2Flag;
00711 INT32 DoubleUnderline2DistanceFromBaseline;
00712 INT32 DoubleUnderline2StrokeThickness;
00713 INT32 ThickOverlineFlag;
00714 INT32 ThickOverlineDistanceFromBaseline;
00715 INT32 ThickOverlineStrokeThickness;
00716 INT32 ThickOverline1Flag;
00717 INT32 ThickOverline1DistanceFromBaseline;
00718 INT32 ThickOverline1StrokeThickness;
00719 INT32 ThickOverline2Flag;
00720 INT32 ThickOverline2DistanceFromBaseline;
00721 INT32 ThickOverline2StrokeThickness;
00722 INT32 ThickStrikeoutFlag;
00723 INT32 ThickStrikeoutDistanceFromBaseline;
00724 INT32 ThickStrikeoutStrokeThickness;
00725 INT32 DoubleStrikeout1Flag;
00726 INT32 DoubleStrikeout1DistanceFromBaseline;
00727 INT32 DoubleStrikeout1StrokeThickness;
00728 INT32 DoubleStrikeout2Flag;
00729 INT32 DoubleStrikeout2DistanceFromBaseline;
00730 INT32 DoubleStrikeout2StrokeThickness;
00731 INT32 TabCount;
00732 BOOL BulletOn;
00733 INT32 BulletFlagMulticolour;
00734 INT32 BulletDefaultFont;
00735 INT32 BulletFontSize;
00736 INT32 BulletCharacter;
00737 INT32 BulletVerticalShift;
00738 INT32 BulletHorizontalShift;
00739 double BulletKerningAngle;
00740 cmxiRenderAttr BulletRenderAttributes;
00741 INT32 LeftMargin;
00742 INT32 RightMargin;
00743 INT32 FirstLine;
00744 INT32 RemainingLines;
00745 BOOL AutoHyphenation;
00746 BOOL BreakCapitalisedWords;
00747 INT32 MinWordLength;
00748 INT32 MinCharsBefore;
00749 INT32 MinCharsAfter;
00750 INT32 HotZone;
00751 BOOL DropCapOn;
00752
00753
00754
00755
00756
00757 END_CMXSTRUCT(BeginParagraph)
00758
00759
00760 START_CMXSTRUCT
00761 characterList ch;
00762 END_CMXSTRUCT(Characters)
00763
00764 START_CMXSTRUCT
00765 INT32 UsageMask;
00766 INT32 FontRef;
00767 INT32 TypeSize;
00768 double CharAngle;
00769 cmxiRenderAttr RenderAttributes;
00770 INT32 HShift;
00771 INT32 VShift;
00772 END_CMXSTRUCT(CharInfo)
00773
00774 START_CMXSTRUCT
00775 INT32 count;
00776 INT32 SizeInFile;
00777 INT32 Type;
00778 INT32 *Offsets;
00779 END_CMXSTRUCT(FontIndex)
00780
00781
00782 START_CMXSTRUCT
00783
00784 StringBase * FontName;
00785 INT32 FontStyle;
00786
00787 INT32 bFamily;
00788 INT32 bSerifStyle;
00789 INT32 bWeight;
00790 INT32 bProportion;
00791 INT32 bContrast;
00792 INT32 bStrokeVaration;
00793 INT32 bArmStyle;
00794 INT32 bLetterForm;
00795 INT32 bMidline;
00796 INT32 bXHeight;
00797 END_CMXSTRUCT(FontRecord)
00798
00799
00800
00801
00802
00803 #pragma pack(pop)
00804 #endif
00805