Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
f348a930
Commit
f348a930
authored
Apr 17, 2008
by
Dmitry Timoshkov
Committed by
Alexandre Julliard
Apr 17, 2008
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
winedump: Decipher contents of a couple EMF records.
parent
df75bde1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
57 additions
and
2 deletions
+57
-2
emf.c
tools/winedump/emf.c
+57
-2
No files found.
tools/winedump/emf.c
View file @
f348a930
...
@@ -36,6 +36,28 @@
...
@@ -36,6 +36,28 @@
#include "winbase.h"
#include "winbase.h"
#include "wingdi.h"
#include "wingdi.h"
static
const
char
*
debugstr_wn
(
const
WCHAR
*
wstr
,
int
n
)
{
static
char
buf
[
80
];
char
*
p
;
int
i
;
if
(
!
wstr
)
return
"(null)"
;
i
=
0
;
p
=
buf
;
*
p
++
=
'\"'
;
while
(
i
<
n
&&
i
<
sizeof
(
buf
)
-
2
&&
wstr
[
i
])
{
if
(
wstr
[
i
]
<
127
)
*
p
++
=
wstr
[
i
];
else
*
p
++
=
'.'
;
i
++
;
}
*
p
++
=
'\"'
;
*
p
=
0
;
return
buf
;
}
static
unsigned
int
read_int
(
const
unsigned
char
*
buffer
)
static
unsigned
int
read_int
(
const
unsigned
char
*
buffer
)
{
{
return
buffer
[
0
]
return
buffer
[
0
]
...
@@ -141,9 +163,42 @@ static int dump_emfrecord(void)
...
@@ -141,9 +163,42 @@ static int dump_emfrecord(void)
EMRCASE
(
EMR_PLGBLT
);
EMRCASE
(
EMR_PLGBLT
);
EMRCASE
(
EMR_SETDIBITSTODEVICE
);
EMRCASE
(
EMR_SETDIBITSTODEVICE
);
EMRCASE
(
EMR_STRETCHDIBITS
);
EMRCASE
(
EMR_STRETCHDIBITS
);
EMRCASE
(
EMR_EXTCREATEFONTINDIRECTW
);
case
EMR_EXTCREATEFONTINDIRECTW
:
{
const
EMREXTCREATEFONTINDIRECTW
*
pf
=
(
const
EMREXTCREATEFONTINDIRECTW
*
)
PRD
(
offset
,
4
);
const
LOGFONTW
*
plf
=
&
pf
->
elfw
.
elfLogFont
;
printf
(
"%-20s %08x
\n
"
,
"EMR_EXTCREATEFONTINDIRECTW"
,
length
);
printf
(
"(%d %d %d %d %x out %d clip %x quality %d charset %d) %s %s %s %s
\n
"
,
plf
->
lfHeight
,
plf
->
lfWidth
,
plf
->
lfEscapement
,
plf
->
lfOrientation
,
plf
->
lfPitchAndFamily
,
plf
->
lfOutPrecision
,
plf
->
lfClipPrecision
,
plf
->
lfQuality
,
plf
->
lfCharSet
,
debugstr_wn
(
plf
->
lfFaceName
,
LF_FACESIZE
),
plf
->
lfWeight
>
400
?
"Bold"
:
""
,
plf
->
lfItalic
?
"Italic"
:
""
,
plf
->
lfUnderline
?
"Underline"
:
""
);
break
;
}
EMRCASE
(
EMR_EXTTEXTOUTA
);
EMRCASE
(
EMR_EXTTEXTOUTA
);
EMRCASE
(
EMR_EXTTEXTOUTW
);
case
EMR_EXTTEXTOUTW
:
{
const
EMREXTTEXTOUTW
*
etoW
=
(
const
EMREXTTEXTOUTW
*
)
PRD
(
offset
,
4
);
printf
(
"%-20s %08x
\n
"
,
"EMR_EXTTEXTOUTW"
,
length
);
printf
(
"pt (%d,%d) rect (%d,%d - %d,%d) flags %#x, %s
\n
"
,
etoW
->
emrtext
.
ptlReference
.
x
,
etoW
->
emrtext
.
ptlReference
.
y
,
etoW
->
emrtext
.
rcl
.
left
,
etoW
->
emrtext
.
rcl
.
top
,
etoW
->
emrtext
.
rcl
.
right
,
etoW
->
emrtext
.
rcl
.
bottom
,
etoW
->
emrtext
.
fOptions
,
debugstr_wn
((
LPCWSTR
)((
const
BYTE
*
)
etoW
+
etoW
->
emrtext
.
offString
),
etoW
->
emrtext
.
nChars
));
break
;
}
EMRCASE
(
EMR_POLYBEZIER16
);
EMRCASE
(
EMR_POLYBEZIER16
);
EMRCASE
(
EMR_POLYGON16
);
EMRCASE
(
EMR_POLYGON16
);
EMRCASE
(
EMR_POLYLINE16
);
EMRCASE
(
EMR_POLYLINE16
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment