#ifndef WIN95_POLYFILL_TYPES_H
 
#define WIN95_POLYFILL_TYPES_H
 
 
 
#include <stddef.h>
 
#include <stdint.h>
 
 
 
typedef void* HANDLE_;
 
 
 
#ifndef _WIN32 // Pierre-Marie Baty -- include guard
 
 
 
#define GENERIC_READ 0x80000000
 
#define OPEN_EXISTING 3
 
//#define FILE_ATTRIBUTE_NORMAL 0x80 // Pierre-Marie Baty -- avoid multiple definitions
 
#define INVALID_HANDLE_VALUE ((HANDLE_*)-1)
 
#define INVALID_FILE_ATTRIBUTES -1
 
 
 
#define FILE_ATTRIBUTE_READONLY 0x01
 
#define FILE_ATTRIBUTE_NORMAL 0x80
 
 
 
#define HWND_BROADCAST ((void*)0xffff)
 
 
 
#define _CRT_ASSERT 2
 
 
 
#define WM_QUIT 0x0012
 
 
 
#define MB_ICONERROR 0x00000010
 
 
 
#endif // !_WIN32
 
 
 
#define _CRT_ASSERT 2 // Pierre-Marie Baty -- missing one
 
 
 
typedef struct _MEMORYSTATUS_ {
 
    uint32_t dwLength;
 
    uint32_t dwMemoryLoad;
 
    size_t dwTotalPhys;
 
    size_t dwAvailPhys;
 
    size_t dwTotalPageFile;
 
    size_t dwAvailPageFile;
 
    size_t dwTotalVirtual;
 
    size_t dwAvailVirtual;
 
} MEMORYSTATUS_;
 
 
 
typedef struct tagPOINT_ {
 
    long x;
 
    long y;
 
} POINT_;
 
 
 
#pragma pack(push, 1)
 
typedef struct tagPALETTEENTRY_ {
 
    uint8_t peRed;
 
    uint8_t peGreen;
 
    uint8_t peBlue;
 
    uint8_t peFlags;
 
} PALETTEENTRY_;
 
#pragma pack(pop)
 
 
 
typedef struct _WIN32_FIND_DATA_ {
 
    // uint32_t dwFileAttributes;
 
    // FILETIME ftCreationTime;
 
    // FILETIME ftLastAccessTime;
 
    // FILETIME ftLastWriteTime;
 
    // uint32_t nFileSizeHigh;
 
    // uint32_t nFileSizeLow;
 
    // uint32_t dwReserved0;
 
    // uint32_t dwReserved1;
 
    char cFileName[1024];
 
    // char cAlternateFileName[14];
 
} WIN32_FIND_DATAA_;
 
 
 
typedef struct tagMSG_ {
 
    void* hwnd;
 
    unsigned int message;
 
    int wParam;
 
    long lParam;
 
    uint32_t time;
 
    POINT_ pt;
 
    uint32_t lPrivate;
 
} MSG_;
 
 
 
#endif