#ifndef TDKPIN_PALETTE_H #define TDKPIN_PALETTE_H #include "tdkpin_borland_runtime.h" #include #pragma pack(push, 1) typedef struct { uint8_t red; uint8_t green; uint8_t blue; uint8_t flags; } PALETTEENTRY16; typedef struct { uint16_t version; uint16_t entry_count; PALETTEENTRY16 entries[256]; } LOGPALETTE256; typedef struct { uint8_t blue; uint8_t green; uint8_t red; uint8_t reserved; } RGBQUAD16; typedef struct { uint32_t size; int32_t width; int32_t height; uint16_t planes; uint16_t bit_count; uint32_t compression; uint32_t image_bytes; int32_t x_pixels_per_meter; int32_t y_pixels_per_meter; uint32_t colors_used; uint32_t important_colors; } BITMAPINFOHEADER16; typedef struct { BITMAPINFOHEADER16 header; RGBQUAD16 colors[256]; } BITMAPINFO256; #pragma pack(pop) _Static_assert(sizeof(PALETTEENTRY16) == 4, "Win16 PALETTEENTRY drift"); _Static_assert(sizeof(LOGPALETTE256) == 1028, "Win16 LOGPALETTE drift"); _Static_assert(sizeof(RGBQUAD16) == 4, "Win16 RGBQUAD drift"); _Static_assert(sizeof(BITMAPINFOHEADER16) == 40, "BITMAPINFOHEADER drift"); _Static_assert( offsetof(BITMAPINFOHEADER16, bit_count) == 14, "BITMAPINFO bit-count drift"); _Static_assert(offsetof(BITMAPINFO256, colors) == 40, "BITMAPINFO color offset drift"); _Static_assert(sizeof(BITMAPINFO256) == 1064, "BITMAPINFO256 drift"); void tdkpin_create_palette_from_rgb_table(void); /* 1008:11c5 */ void tdkpin_realize_nocollapse_palette(HWND16 window); /* 1008:0023 */ void tdkpin_load_palette_resource( Win16FarPtr destination, Win16FarPtr resource_name, HINSTANCE16 instance); /* 1008:1326 */ void tdkpin_fill_bitmap_info_palette( Win16FarPtr bitmap_info); /* 1008:13a8 */ HBITMAP16 tdkpin_load_bitmap_resource( Win16FarPtr resource_name, HINSTANCE16 instance); /* 1008:149d */ #endif