lib

wmfstruct.h
1/* WMF Metafile Structures
2 * Author: Stefan Taferner <taferner@kde.org>
3 */
4#ifndef wmfstruct_h
5#define wmfstruct_h
6
7typedef short WORD;
8typedef int DWORD;
9typedef TQ_INT32 LONG;
10typedef void* _HANDLE;
11
12struct RECT
13{
14 WORD left;
15 WORD top;
16 WORD right;
17 WORD bottom;
18};
19
20struct RECTL
21{
22 LONG left;
23 LONG top;
24 LONG right;
25 LONG bottom;
26};
27
28struct SIZE
29{
30 WORD width;
31 WORD height;
32};
33
34struct SIZEL
35{
36 LONG width;
37 LONG height;
38};
39
40
41struct WmfEnhMetaHeader
42{
43 DWORD iType; // Record type EMR_HEADER
44 DWORD nSize; // Record size in bytes. This may be greater
45 // than the sizeof( ENHMETAHEADER ).
46 RECTL rclBounds; // Inclusive-inclusive bounds in device units
47 RECTL rclFrame; // Inclusive-inclusive Picture Frame of metafile
48 // in .01 mm units
49 DWORD dSignature; // Signature. Must be ENHMETA_SIGNATURE.
50 DWORD nVersion; // Version number
51 DWORD nBytes; // Size of the metafile in bytes
52 DWORD nRecords; // Number of records in the metafile
53 WORD nHandles; // Number of handles in the handle table
54 // Handle index zero is reserved.
55 WORD sReserved; // Reserved. Must be zero.
56 DWORD nDescription; // Number of chars in the unicode description string
57 // This is 0 if there is no description string
58 DWORD offDescription; // Offset to the metafile description record.
59 // This is 0 if there is no description string
60 DWORD nPalEntries; // Number of entries in the metafile palette.
61 SIZEL szlDevice; // Size of the reference device in pels
62 SIZEL szlMillimeters; // Size of the reference device in millimeters
63};
64#define ENHMETA_SIGNATURE 0x464D4520
65
66
67struct WmfMetaHeader
68{
69 WORD mtType;
70 WORD mtHeaderSize;
71 WORD mtVersion;
72 DWORD mtSize;
73 WORD mtNoObjects;
74 DWORD mtMaxRecord;
75 WORD mtNoParameters;
76};
77
78
79struct WmfPlaceableHeader
80{
81 DWORD key;
82 WORD hmf;
83 RECT bbox;
84 WORD inch;
85 DWORD reserved;
86 WORD checksum;
87};
88#define APMHEADER_KEY 0x9AC6CDD7
89
90
91struct WmfMetaRecord
92{
93 DWORD rdSize; // Record size ( in words ) of the function
94 WORD rdFunction; // Record function number
95 WORD rdParm[ 1 ]; // WORD array of parameters
96};
97
98
99struct WmfEnhMetaRecord
100{
101 DWORD iType; // Record type EMR_xxx
102 DWORD nSize; // Record size in bytes
103 DWORD dParm[ 1 ]; // DWORD array of parameters
104};
105
106
107#endif /*wmfstruct_h*/