A metafile is an array of variable-length structures called metafile records that store a picture in a device-independent format. The first records in the metafile specify general information like the resolution of the device on which the picture was created, the dimensions of the picture, etc. The remaining records, which make up the bulk of a metafile, correspond to the graphics device interface (GDI) functions required to draw the picture. These records are stored in the metafile after a special metafile device context is created. This metafile device context (DC) is then used for all drawing operations required to create the picture. When a GDI function associated with a metafile DC is processed, the system converts the function into the appropriate data and stores this data in a record at the end of the metafile.
After a picture is complete and the last record is stored, you can pass the metafile to another application by using the clipboard, Embedding it within another file, Storing it on disk, or Playing it repeatedly. A metafile is played when its records are converted to device commands and processed by the appropriate device.
Device independence is the one feature that sets metafiles apart from bitmaps. Unlike a bitmap, a metafile guarantees device independence. There is a drawback to metafiles however, they are generally drawn more slowly than bitmaps. Therefore, if an application requires fast drawing and device independence is not an issue, it should use bitmaps instead of metafiles.
|IBM IOCA||IBM MODCA||CALS||TGA|