ReactOS
0.4.17-dev-243-g1369312
gdiplusmetaheader.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2007 Google (Evan Stade)
3
*
4
* This library is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU Lesser General Public
6
* License as published by the Free Software Foundation; either
7
* version 2.1 of the License, or (at your option) any later version.
8
*
9
* This library is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
* Lesser General Public License for more details.
13
*
14
* You should have received a copy of the GNU Lesser General Public
15
* License along with this library; if not, write to the Free Software
16
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17
*/
18
19
#ifndef _GDIPLUSMETAHEADER_H
20
#define _GDIPLUSMETAHEADER_H
21
22
typedef
struct
23
{
24
DWORD
iType
;
25
DWORD
nSize
;
26
RECTL
rclBounds
;
27
RECTL
rclFrame
;
28
DWORD
dSignature
;
29
DWORD
nVersion
;
30
DWORD
nBytes
;
31
DWORD
nRecords
;
32
WORD
nHandles
;
33
WORD
sReserved
;
34
DWORD
nDescription
;
35
DWORD
offDescription
;
36
DWORD
nPalEntries
;
37
SIZEL
szlDevice
;
38
SIZEL
szlMillimeters
;
39
}
ENHMETAHEADER3
;
40
41
#include <
pshpack2.h
>
42
43
typedef
struct
44
{
45
INT16
Left
;
46
INT16
Top
;
47
INT16
Right
;
48
INT16
Bottom
;
49
}
PWMFRect16
;
50
51
typedef
struct
52
{
53
UINT32
Key
;
54
INT16
Hmf
;
55
PWMFRect16
BoundingBox
;
56
INT16
Inch
;
57
UINT32
Reserved
;
58
INT16
Checksum
;
59
}
WmfPlaceableFileHeader
;
60
61
#include <
poppack.h
>
62
63
#define GDIP_EMFPLUSFLAGS_DISPLAY 0x00000001
64
65
#ifdef __cplusplus
66
class
MetafileHeader
67
{
68
public
:
69
MetafileType
Type
;
70
UINT
Size
;
71
UINT
Version
;
72
UINT
EmfPlusFlags
;
73
REAL
DpiX
;
74
REAL
DpiY
;
75
INT
X
;
76
INT
Y
;
77
INT
Width
;
78
INT
Height
;
79
union
80
{
81
METAHEADER
WmfHeader
;
82
ENHMETAHEADER3
EmfHeader
;
83
};
84
INT
EmfPlusHeaderSize
;
85
INT
LogicalDpiX
;
86
INT
LogicalDpiY
;
87
88
public
:
89
MetafileType
GetType
()
const
{
return
Type
; }
90
91
UINT
GetMetafileSize()
const
{
return
Size
; }
92
93
UINT
GetVersion
()
const
{
return
Version
; }
94
95
UINT
GetEmfPlusFlags()
const
{
return
EmfPlusFlags
; }
96
97
REAL
GetDpiX()
const
{
return
DpiX
; }
98
99
REAL
GetDpiY()
const
{
return
DpiY
; }
100
101
VOID
GetBounds (
OUT
Rect
*
r
)
const
102
{
103
r
->X =
X
;
104
r
->Y =
Y
;
105
r
->Width =
Width
;
106
r
->Height =
Height
;
107
}
108
109
BOOL
IsWmf()
const
110
{
111
return
((
Type
==
MetafileTypeWmf
) || (
Type
==
MetafileTypeWmfPlaceable
));
112
}
113
114
BOOL
IsWmfPlaceable()
const
{
return
(
Type
==
MetafileTypeWmfPlaceable
); }
115
116
BOOL
IsEmf()
const
{
return
(
Type
==
MetafileTypeEmf
); }
117
118
BOOL
IsEmfOrEmfPlus()
const
{
return
(
Type
>=
MetafileTypeEmf
); }
119
120
BOOL
IsEmfPlus()
const
{
return
(
Type
>=
MetafileTypeEmfPlusOnly
); }
121
122
BOOL
IsEmfPlusDual()
const
{
return
(
Type
==
MetafileTypeEmfPlusDual
); }
123
124
BOOL
IsEmfPlusOnly()
const
{
return
(
Type
==
MetafileTypeEmfPlusOnly
); }
125
126
BOOL
IsDisplay()
const
127
{
128
return
IsEmfPlus() && ((
EmfPlusFlags
&
GDIP_EMFPLUSFLAGS_DISPLAY
) != 0);
129
}
130
131
const
METAHEADER
* GetWmfHeader()
const
132
{
133
return
IsWmf() ? &
WmfHeader
:
NULL
;
134
}
135
136
const
ENHMETAHEADER3
* GetEmfHeader()
const
137
{
138
return
IsEmfOrEmfPlus() ? &
EmfHeader
:
NULL
;
139
}
140
};
141
#else
/* end of c++ typedefs */
142
143
typedef
struct
MetafileHeader
144
{
145
MetafileType
Type
;
146
UINT
Size
;
147
UINT
Version
;
148
UINT
EmfPlusFlags
;
149
REAL
DpiX
;
150
REAL
DpiY
;
151
INT
X
;
152
INT
Y
;
153
INT
Width
;
154
INT
Height
;
155
union
156
{
157
METAHEADER
WmfHeader
;
158
ENHMETAHEADER3
EmfHeader
;
159
}
DUMMYUNIONNAME
;
160
INT
EmfPlusHeaderSize
;
161
INT
LogicalDpiX
;
162
INT
LogicalDpiY
;
163
}
MetafileHeader
;
164
165
#endif
/* end of c typedefs */
166
167
#endif
/* _GDIPLUSMETAHEADER_H */
Type
Type
Definition:
Type.h:7
INT16
short INT16
Definition:
actypes.h:130
NULL
#define NULL
Definition:
types.h:112
REAL
float REAL
Definition:
types.h:41
GetVersion
DWORD WINAPI GetVersion(void)
Definition:
version.c:1458
WORD
unsigned short WORD
Definition:
ntddk_ex.h:93
BOOL
unsigned int BOOL
Definition:
ntddk_ex.h:94
DWORD
unsigned long DWORD
Definition:
ntddk_ex.h:95
MetafileType
MetafileType
Definition:
gdiplusenums.h:213
MetafileTypeEmfPlusOnly
@ MetafileTypeEmfPlusOnly
Definition:
gdiplusenums.h:218
MetafileTypeWmf
@ MetafileTypeWmf
Definition:
gdiplusenums.h:215
MetafileTypeWmfPlaceable
@ MetafileTypeWmfPlaceable
Definition:
gdiplusenums.h:216
MetafileTypeEmf
@ MetafileTypeEmf
Definition:
gdiplusenums.h:217
MetafileTypeEmfPlusDual
@ MetafileTypeEmfPlusDual
Definition:
gdiplusenums.h:219
GDIP_EMFPLUSFLAGS_DISPLAY
#define GDIP_EMFPLUSFLAGS_DISPLAY
Definition:
gdiplusmetaheader.h:63
r
GLdouble GLdouble GLdouble r
Definition:
gl.h:2055
void
Definition:
nsiface.idl:2307
UINT
unsigned int UINT
Definition:
ndis.h:50
poppack.h
pshpack2.h
ENHMETAHEADER3
Definition:
gdiplusmetaheader.h:23
ENHMETAHEADER3::nDescription
DWORD nDescription
Definition:
gdiplusmetaheader.h:34
ENHMETAHEADER3::nRecords
DWORD nRecords
Definition:
gdiplusmetaheader.h:31
ENHMETAHEADER3::sReserved
WORD sReserved
Definition:
gdiplusmetaheader.h:33
ENHMETAHEADER3::szlDevice
SIZEL szlDevice
Definition:
gdiplusmetaheader.h:37
ENHMETAHEADER3::dSignature
DWORD dSignature
Definition:
gdiplusmetaheader.h:28
ENHMETAHEADER3::iType
DWORD iType
Definition:
gdiplusmetaheader.h:24
ENHMETAHEADER3::nSize
DWORD nSize
Definition:
gdiplusmetaheader.h:25
ENHMETAHEADER3::rclFrame
RECTL rclFrame
Definition:
gdiplusmetaheader.h:27
ENHMETAHEADER3::nPalEntries
DWORD nPalEntries
Definition:
gdiplusmetaheader.h:36
ENHMETAHEADER3::nVersion
DWORD nVersion
Definition:
gdiplusmetaheader.h:29
ENHMETAHEADER3::szlMillimeters
SIZEL szlMillimeters
Definition:
gdiplusmetaheader.h:38
ENHMETAHEADER3::nHandles
WORD nHandles
Definition:
gdiplusmetaheader.h:32
ENHMETAHEADER3::offDescription
DWORD offDescription
Definition:
gdiplusmetaheader.h:35
ENHMETAHEADER3::rclBounds
RECTL rclBounds
Definition:
gdiplusmetaheader.h:26
ENHMETAHEADER3::nBytes
DWORD nBytes
Definition:
gdiplusmetaheader.h:30
MetafileHeader
Definition:
gdiplusmetaheader.h:144
MetafileHeader::EmfPlusFlags
UINT EmfPlusFlags
Definition:
gdiplusmetaheader.h:148
MetafileHeader::Type
MetafileType Type
Definition:
gdiplusmetaheader.h:145
MetafileHeader::LogicalDpiX
INT LogicalDpiX
Definition:
gdiplusmetaheader.h:161
MetafileHeader::Width
INT Width
Definition:
gdiplusmetaheader.h:153
MetafileHeader::DpiY
REAL DpiY
Definition:
gdiplusmetaheader.h:150
MetafileHeader::Height
INT Height
Definition:
gdiplusmetaheader.h:154
MetafileHeader::DpiX
REAL DpiX
Definition:
gdiplusmetaheader.h:149
MetafileHeader::X
INT X
Definition:
gdiplusmetaheader.h:151
MetafileHeader::EmfHeader
ENHMETAHEADER3 EmfHeader
Definition:
gdiplusmetaheader.h:158
MetafileHeader::DUMMYUNIONNAME
union MetafileHeader::@3225 DUMMYUNIONNAME
MetafileHeader::LogicalDpiY
INT LogicalDpiY
Definition:
gdiplusmetaheader.h:162
MetafileHeader::EmfPlusHeaderSize
INT EmfPlusHeaderSize
Definition:
gdiplusmetaheader.h:160
MetafileHeader::Y
INT Y
Definition:
gdiplusmetaheader.h:152
MetafileHeader::WmfHeader
METAHEADER WmfHeader
Definition:
gdiplusmetaheader.h:157
MetafileHeader::Version
UINT Version
Definition:
gdiplusmetaheader.h:147
MetafileHeader::Size
UINT Size
Definition:
gdiplusmetaheader.h:146
PWMFRect16
Definition:
gdiplusmetaheader.h:44
PWMFRect16::Top
INT16 Top
Definition:
gdiplusmetaheader.h:46
PWMFRect16::Bottom
INT16 Bottom
Definition:
gdiplusmetaheader.h:48
PWMFRect16::Right
INT16 Right
Definition:
gdiplusmetaheader.h:47
PWMFRect16::Left
INT16 Left
Definition:
gdiplusmetaheader.h:45
RECTL
Definition:
polytest.cpp:52
Rect
Definition:
gdiplustypes.h:663
WmfPlaceableFileHeader
Definition:
gdiplusmetaheader.h:52
WmfPlaceableFileHeader::Hmf
INT16 Hmf
Definition:
gdiplusmetaheader.h:54
WmfPlaceableFileHeader::Key
UINT32 Key
Definition:
gdiplusmetaheader.h:53
WmfPlaceableFileHeader::Checksum
INT16 Checksum
Definition:
gdiplusmetaheader.h:58
WmfPlaceableFileHeader::Reserved
UINT32 Reserved
Definition:
gdiplusmetaheader.h:57
WmfPlaceableFileHeader::BoundingBox
PWMFRect16 BoundingBox
Definition:
gdiplusmetaheader.h:55
WmfPlaceableFileHeader::Inch
INT16 Inch
Definition:
gdiplusmetaheader.h:56
_SIZE
Definition:
kdterminal.h:26
tagMETAHEADER
Definition:
wingdi.h:2755
INT
int32_t INT
Definition:
typedefs.h:58
UINT32
uint32_t UINT32
Definition:
typedefs.h:59
OUT
#define OUT
Definition:
typedefs.h:40
GetType
#define GetType(This)
Definition:
conio.h:54
sdk
include
psdk
gdiplusmetaheader.h
Generated on Tue Jun 2 2026 06:13:43 for ReactOS by
1.9.6