The CreatePalette function creates a logical color palette.
CONST LOGPALETTE *lplgpl // pointer to logical color palette
lplgpl Points to a LOGPALETTE structure that contains information about the colors in the logical palette.
If the function succeeds, the return value is a handle that identifies a logical palette.
If the function fails, the return value is NULL. To get extended error information, call GetLastError.
An application can determine whether a device supports palette operations by calling the GetDeviceCaps function and specifying the RASTERCAPS constant. Once an application creates a logical palette, it can select that palette into a device context by calling the SelectPalette function. A palette selected into a device context can be realized by calling the RealizePalette function.
When you no longer need the palette, call the DeleteObject function to delete it.