PRB: PlayMetaFile() Not as Fast as More Complex Technique (28344)
The information in this article applies to:
- Microsoft Windows Software Development Kit (SDK) 3.0
- Microsoft Windows Software Development Kit (SDK) 3.1
This article was previously published under Q28344 SYMPTOMS
The PlayMetaFile() function is slower than using a loop that contains
the EnumMetaFile() and PlayMetaFileRecord() commands.
CAUSE
PlayMetaFile() takes longer because it plays the metafile records, and it
also performs several additional steps:
- Verifies that its handle parameter points to a valid metafile.
- Locks the metafile.
- Saves all objects in the device context (pens, brushes, regions,
etc.).
- Plays the metafile records.
- Restores all objects in the display context. PlayMetaFile() will
restore default objects if other restoration fails.
- Unlocks the metafiles.
- Deletes all objects created while playing the metafile.
To achieve this speed advantage, the callback function specified in
EnumMetaFile() would call only PlayMetaFileRecord(). The actual speed
of execution is determined by the amount of processing done in the
EnumMetaFile() callback function.
Modification Type: | Major | Last Reviewed: | 11/3/2003 |
---|
Keywords: | kb16bitonly KB28344 |
---|
|