The GetEnhMetaFilePaletteEntries function retrieves optional palette entries from the specified enhanced metafile.
UINT GetEnhMetaFilePaletteEntries(
HENHMETAFILE hemf, |
// handle of enhanced metafile |
UINT cEntries, |
// count of palette entries |
LPPALETTEENTRY lppe |
// address of palette-entry array |
); |
If the array pointer is NULL and the enhanced metafile contains an optional palette, the return value is the number of entries in the enhanced metafile’s palette; if the array pointer is a valid pointer and the enhanced metafile contains an optional palette, the return value is the number of entries copied; if the metafile does not contain an optional palette, the return value is zero. Otherwise, the return value is GDI_ERROR. To get extended error information, call GetLastError.
An application can store an optional palette in an enhanced metafile by calling the CreatePalette and SetPaletteEntries functions before creating the picture and storing it in the metafile. By doing this, the application can achieve consistent colors when the picture is displayed on a variety of devices.
An application that displays a picture stored in an enhanced metafile can call the GetEnhMetaFilePaletteEntries function to determine whether the optional palette exists. If it does, the application can call the GetEnhMetaFilePaletteEntries function a second time to retrieve the palette entries and then create a logical palette (by using the CreatePalette function), select it into its device context (by using the SelectPalette function), and then realize it (by using the RealizePalette function). After the logical palette has been realized, calling the PlayEnhMetaFile function displays the picture using its original colors.
CreatePalette, PALETTEENTRY, PlayEnhMetaFile, RealizePalette, SelectPalette