mirror of
git://source.winehq.org/git/wine.git
synced 2024-07-21 11:34:12 +00:00
winedump: Dump metafiles in EMF spool files.
This commit is contained in:
parent
d745c8d4a0
commit
4d649c6232
|
@ -77,7 +77,7 @@ static unsigned int read_int(const unsigned char *buffer)
|
|||
#define EMRCASE(x) case x: printf("%-20s %08x\n", #x, length); break
|
||||
#define EMRPLUSCASE(x) case x: printf(" %-20s %04x %08x %08x\n", #x, (UINT)header->Flags, (UINT)header->Size, (UINT)header->DataSize); break
|
||||
|
||||
static unsigned long dump_emfrecord(unsigned long offset)
|
||||
unsigned long dump_emfrecord(unsigned long offset)
|
||||
{
|
||||
const unsigned char* ptr;
|
||||
unsigned int type, length, i;
|
||||
|
|
|
@ -120,7 +120,24 @@ static unsigned long dump_emfspool_record(unsigned long off)
|
|||
break;
|
||||
}
|
||||
|
||||
dump_data((const unsigned char *)(hdr + 1), hdr->cjSize, "");
|
||||
switch (hdr->ulID)
|
||||
{
|
||||
case EMRI_METAFILE:
|
||||
case EMRI_FORM_METAFILE:
|
||||
case EMRI_BW_METAFILE:
|
||||
case EMRI_BW_FORM_METAFILE:
|
||||
case EMRI_METAFILE_DATA:
|
||||
{
|
||||
unsigned long emf_off = off + sizeof(*hdr);
|
||||
while ((emf_off = dump_emfrecord(emf_off)) && emf_off < off + sizeof(*hdr) + hdr->cjSize);
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
dump_data((const unsigned char *)(hdr + 1), hdr->cjSize, "");
|
||||
break;
|
||||
}
|
||||
|
||||
return off + sizeof(*hdr) + hdr->cjSize;
|
||||
}
|
||||
|
||||
|
|
|
@ -248,6 +248,7 @@ void dbg_dump( void );
|
|||
enum FileSig get_kind_lnk(void);
|
||||
void lnk_dump( void );
|
||||
enum FileSig get_kind_emf(void);
|
||||
unsigned long dump_emfrecord(unsigned long offset);
|
||||
void emf_dump( void );
|
||||
enum FileSig get_kind_emfspool(void);
|
||||
void emfspool_dump(void);
|
||||
|
|
Loading…
Reference in a new issue