#ifndef _INCL_PMWIN_H_ #define _INCL_PMWIN_H_ #include "os2types.h" #ifdef __cplusplus extern "C" { #endif typedef HANDLE HAB, *PHAB; typedef HANDLE HMQ, *PHMQ; typedef HANDLE HWND, *PHWND; typedef PVOID MPARAM, *PMPARAM; typedef PVOID MRESULT, *PMRESULT; typedef struct { LONG x; LONG y; } POINTL, *PPOINTL; typedef struct { LONG xLeft; LONG yBottom; LONG xRight; LONG yTop; } RECTL, *PRECTL; typedef struct { HWND hwnd; ULONG msg; MPARAM mp1; MPARAM mp2; ULONG time; POINTL ptl; ULONG reserved; } QMSG, *PQMSG; typedef MRESULT (OS2API FNWP)(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2); typedef FNWP *PFNWP; enum { CS_MOVENOTIFY = 0x00000001, CS_SIZEREDRAW = 0x00000004, CS_HITTEST = 0x00000008, CS_PUBLIC = 0x00000010, CS_FRAME = 0x00000020, CS_SYNCPAINT = 0x02000000, CS_PARENTCLIP = 0x08000000, CS_SAVEBITS = 0x04000000, CS_CLIPSIBLINGS = 0x10000000, CS_CLIPCHILDREN = 0x20000000 }; enum { WS_VISIBLE = 0x80000000, WS_DISABLED = 0x40000000, WS_CLIPCHILDREN = 0x20000000, WS_CLIPSIBLINGS = 0x10000000, WS_PARENTCLIP = 0x08000000, WS_SAVEBITS = 0x04000000, WS_SYNCPAINT = 0x02000000, WS_MINIMIZED = 0x01000000, WS_MAXIMIZED = 0x00800000, WS_ANIMATE = 0x00400000 }; // magic HWND identifiers #define HWND_DESKTOP 1 #define HWND_OBJECT 2 #define HWND_TOP 3 #define HWND_BOTTOM 4 // built-in window classes (not real strings, like user classes would be here). enum { WC_FRAME = 0xFFFF0001, WC_COMBOBOX = 0xFFFF0002, WC_BUTTON = 0xFFFF0003, WC_MENU = 0xFFFF0004, WC_STATIC = 0xFFFF0005, WC_ENTRYFIELD = 0xFFFF0006, WC_LISTBOX = 0xFFFF0007, WC_SCROLLBAR = 0xFFFF0008, WC_TITLEBAR = 0xFFFF0009, WC_MLE = 0xFFFF000A, WC_APPSTAT = 0xFFFF0010, WC_KBDSTAT = 0xFFFF0011, WC_PECIC = 0xFFFF0012, WC_DBE_KKPOPUP = 0xFFFF0013, WC_SPINBUTTON = 0xFFFF0020, WC_CONTAINER = 0xFFFF0025, WC_SLIDER = 0xFFFF0026, WC_VALUESET = 0xFFFF0027, WC_NOTEBOOK = 0xFFFF0028, WC_CIRCULARSLIDER = 0xFFFF0041 }; // Window messages... enum { WM_NULL = 0x0000, WM_CREATE = 0x0001, WM_DESTROY = 0x0002, WM_ENABLE = 0x0004, WM_SHOW = 0x0005, WM_MOVE = 0x0006, WM_SIZE = 0x0007, WM_ADJUSTWINDOWPOS = 0x0008, WM_CALCVALIDRECTS = 0x0009, WM_SETWINDOWPARAMS = 0x000a, WM_QUERYWINDOWPARAMS = 0x000b, WM_HITTEST = 0x000c, WM_ACTIVATE = 0x000d, WM_SETFOCUS = 0x000f, WM_SETSELECTION = 0x0010, WM_PPAINT = 0x0011, WM_PSETFOCUS = 0x0012, WM_PSYSCOLORCHANGE = 0x0013, WM_PSIZE = 0x0014, WM_PACTIVATE = 0x0015, WM_PCONTROL = 0x0016, WM_COMMAND = 0x0020, WM_SYSCOMMAND = 0x0021, WM_HELP = 0x0022, WM_PAINT = 0x0023, WM_TIMER = 0x0024, WM_SEM1 = 0x0025, WM_SEM2 = 0x0026, WM_SEM3 = 0x0027, WM_SEM4 = 0x0028, WM_CLOSE = 0x0029, WM_QUIT = 0x002a, WM_SYSCOLORCHANGE = 0x002b, WM_SYSVALUECHANGED = 0x002d, WM_APPTERMINATENOTIFY = 0x002e, WM_PRESPARAMCHANGED = 0x002f, WM_CONTROL = 0x0030, WM_VSCROLL = 0x0031, WM_HSCROLL = 0x0032, WM_INITMENU = 0x0033, WM_MENUSELECT = 0x0034, WM_MENUEND = 0x0035, WM_DRAWITEM = 0x0036, WM_MEASUREITEM = 0x0037, WM_CONTROLPOINTER = 0x0038, WM_QUERYDLGCODE = 0x003a, WM_INITDLG = 0x003b, WM_SUBSTITUTESTRING = 0x003c, WM_MATCHMNEMONIC = 0x003d, WM_SAVEAPPLICATION = 0x003e, WM_FLASHWINDOW = 0x0040, WM_FORMATFRAME = 0x0041, WM_UPDATEFRAME = 0x0042, WM_FOCUSCHANGE = 0x0043, WM_SETBORDERSIZE = 0x0044, WM_TRACKFRAME = 0x0045, WM_MINMAXFRAME = 0x0046, WM_SETICON = 0x0047, WM_QUERYICON = 0x0048, WM_SETACCELTABLE = 0x0049, WM_QUERYACCELTABLE = 0x004a, WM_TRANSLATEACCEL = 0x004b, WM_QUERYTRACKINFO = 0x004c, WM_QUERYBORDERSIZE = 0x004d, WM_NEXTMENU = 0x004e, WM_ERASEBACKGROUND = 0x004f, WM_QUERYFRAMEINFO = 0x0050, WM_QUERYFOCUSCHAIN = 0x0051, WM_OWNERPOSCHANGE = 0x0052, WM_CALCFRAMERECT = 0x0053, WM_WINDOWPOSCHANGED = 0x0055, WM_ADJUSTFRAMEPOS = 0x0056, WM_QUERYFRAMECTLCOUNT = 0x0059, WM_QUERYHELPINFO = 0x005B, WM_SETHELPINFO = 0x005C, WM_ERROR = 0x005D, WM_REALIZEPALETTE = 0x005E, WM_RENDERFMT = 0x0060, WM_RENDERALLFMTS = 0x0061, WM_DESTROYCLIPBOARD = 0x0062, WM_PAINTCLIPBOARD = 0x0063, WM_SIZECLIPBOARD = 0x0064, WM_HSCROLLCLIPBOARD = 0x0065, WM_VSCROLLCLIPBOARD = 0x0066, WM_DRAWCLIPBOARD = 0x0067, WM_MOUSEMOVE = 0x0070, WM_BUTTON1DOWN = 0x0071, WM_BUTTON1UP = 0x0072, WM_BUTTON1DBLCLK = 0x0073, WM_BUTTON2DOWN = 0x0074, WM_BUTTON2UP = 0x0075, WM_BUTTON2DBLCLK = 0x0076, WM_BUTTON3DOWN = 0x0077, WM_BUTTON3UP = 0x0078, WM_BUTTON3DBLCLK = 0x0079, WM_CHAR = 0x007a, WM_VIOCHAR = 0x007b, WM_JOURNALNOTIFY = 0x007c, WM_MOUSEMAP = 0x007D, WM_VRNDISABLED = 0x007e, WM_VRNENABLED = 0x007f, WM_DDE_INITIATE = 0x00A0, WM_DDE_REQUEST = 0x00A1, WM_DDE_ACK = 0x00A2, WM_DDE_DATA = 0x00A3, WM_DDE_ADVISE = 0x00A4, WM_DDE_UNADVISE = 0x00A5, WM_DDE_POKE = 0x00A6, WM_DDE_EXECUTE = 0x00A7, WM_DDE_TERMINATE = 0x00A8, WM_DDE_INITIATEACK = 0x00A9, WM_QUERYCONVERTPOS = 0x00b0, WM_MSGBOXINIT = 0x010E, WM_MSGBOXDISMISS = 0x010F, WM_CTLCOLORCHANGE = 0x0129, WM_QUERYCTLTYPE = 0x0130, WM_CHORD = 0x0410, WM_BUTTON1MOTIONSTART = 0x0411, WM_BUTTON1MOTIONEND = 0x0412, WM_BUTTON1CLICK = 0x0413, WM_BUTTON2MOTIONSTART = 0x0414, WM_BUTTON2MOTIONEND = 0x0415, WM_BUTTON2CLICK = 0x0416, WM_BUTTON3MOTIONSTART = 0x0417, WM_BUTTON3MOTIONEND = 0x0418, WM_BUTTON3CLICK = 0x0419, WM_BEGINDRAG = 0x0420, WM_ENDDRAG = 0x0421, WM_SINGLESELECT = 0x0422, WM_OPEN = 0x0423, WM_CONTEXTMENU = 0x0424, WM_CONTEXTHELP = 0x0425, WM_TEXTEDIT = 0x0426, WM_BEGINSELECT = 0x0427, WM_ENDSELECT = 0x0428, WM_PICKUP = 0x0429, WM_SEMANTICEVENT = 0x0490, WM_USER = 0x1000, }; // used by WM_ADJUSTWINDOWPOS, etc. enum { SWP_SIZE = 0x0001, SWP_MOVE = 0x0002, SWP_ZORDER = 0x0004, SWP_SHOW = 0x0008, SWP_HIDE = 0x0010, SWP_NOREDRAW = 0x0020, SWP_NOADJUST = 0x0040, SWP_ACTIVATE = 0x0080, SWP_DEACTIVATE = 0x0100, SWP_EXTSTATECHANGE = 0x0200, SWP_MINIMIZE = 0x0400, SWP_MAXIMIZE = 0x0800, SWP_RESTORE = 0x1000, SWP_FOCUSACTIVATE = 0x2000, SWP_FOCUSDEACTIVATE = 0x4000, SWP_NOAUTOCLOSE = 0x8000 }; typedef struct { ULONG fl; LONG cy; LONG cx; LONG y; LONG x; HWND hwndInsertBehind; HWND hwnd; ULONG ulReserved1; ULONG ulReserved2; } SWP, *PSWP; // used by WM_HITTEST enum { HT_NORMAL = 0, HT_TRANSPARENT = -1, HT_DISCARD = -2, HT_ERROR = -3 }; // Built-in window class specific data... // frame control IDs. enum { FID_SYSMENU = 0x8002, FID_TITLEBAR = 0x8003, FID_MINMAX = 0x8004, FID_MENU = 0x8005, FID_VERTSCROLL = 0x8006, FID_HORZSCROLL = 0x8007, FID_CLIENT = 0x8008, FID_DBE_APPSTAT = 0x8010, FID_DBE_KBDSTAT = 0x8011, FID_DBE_PECIC = 0x8012, FID_DBE_KKPOPUP = 0x8013 }; // OS/2's SDK packs these to 2 because 16-bit and 32-bit code share the same structs. :/ #pragma pack(push, 2) typedef struct { USHORT cb; ULONG flCreateFlags; USHORT hmodResources; USHORT idResources; } FRAMECDATA, *PFRAMECDATA; #pragma pack(pop) // Error codes... enum { PMERR_OK = 0x0000, PMERR_INVALID_HWND = 0x1001, PMERR_INVALID_HMQ = 0x1002, PMERR_PARAMETER_OUT_OF_RANGE = 0x1003, PMERR_WINDOW_LOCK_UNDERFLOW = 0x1004, PMERR_WINDOW_LOCK_OVERFLOW = 0x1005, PMERR_BAD_WINDOW_LOCK_COUNT = 0x1006, PMERR_WINDOW_NOT_LOCKED = 0x1007, PMERR_INVALID_SELECTOR = 0x1008, PMERR_CALL_FROM_WRONG_THREAD = 0x1009, PMERR_RESOURCE_NOT_FOUND = 0x100A, PMERR_INVALID_STRING_PARM = 0x100B, PMERR_INVALID_HHEAP = 0x100C, PMERR_INVALID_HEAP_POINTER = 0x100D, PMERR_INVALID_HEAP_SIZE_PARM = 0x100E, PMERR_INVALID_HEAP_SIZE = 0x100F, PMERR_INVALID_HEAP_SIZE_WORD = 0x1010, PMERR_HEAP_OUT_OF_MEMORY = 0x1011, PMERR_HEAP_MAX_SIZE_REACHED = 0x1012, PMERR_INVALID_HATOMTBL = 0x1013, PMERR_INVALID_ATOM = 0x1014, PMERR_INVALID_ATOM_NAME = 0x1015, PMERR_INVALID_INTEGER_ATOM = 0x1016, PMERR_ATOM_NAME_NOT_FOUND = 0x1017, PMERR_QUEUE_TOO_LARGE = 0x1018, PMERR_INVALID_FLAG = 0x1019, PMERR_INVALID_HACCEL = 0x101A, PMERR_INVALID_HPTR = 0x101B, PMERR_INVALID_HENUM = 0x101C, PMERR_INVALID_SRC_CODEPAGE = 0x101D, PMERR_INVALID_DST_CODEPAGE = 0x101E, PMERR_UNKNOWN_COMPONENT_ID = 0x101f, PMERR_UNKNOWN_ERROR_CODE = 0x1020, PMERR_SEVERITY_LEVELS = 0x1021, PMERR_INVALID_RESOURCE_FORMAT = 0x1034, PMERR_NO_MSG_QUEUE = 0x1036, PMERR_CANNOT_SET_FOCUS = 0x1037, PMERR_QUEUE_FULL = 0x1038, PMERR_LIBRARY_LOAD_FAILED = 0x1039, PMERR_PROCEDURE_LOAD_FAILED = 0x103A, PMERR_LIBRARY_DELETE_FAILED = 0x103B, PMERR_PROCEDURE_DELETE_FAILED = 0x103C, PMERR_ARRAY_TOO_LARGE = 0x103D, PMERR_ARRAY_TOO_SMALL = 0x103E, PMERR_DATATYPE_ENTRY_BAD_INDEX = 0x103F, PMERR_DATATYPE_ENTRY_CTL_BAD = 0x1040, PMERR_DATATYPE_ENTRY_CTL_MISS = 0x1041, PMERR_DATATYPE_ENTRY_INVALID = 0x1042, PMERR_DATATYPE_ENTRY_NOT_NUM = 0x1043, PMERR_DATATYPE_ENTRY_NOT_OFF = 0x1044, PMERR_DATATYPE_INVALID = 0x1045, PMERR_DATATYPE_NOT_UNIQUE = 0x1046, PMERR_DATATYPE_TOO_LONG = 0x1047, PMERR_DATATYPE_TOO_SMALL = 0x1048, PMERR_DIRECTION_INVALID = 0x1049, PMERR_INVALID_HAB = 0x104A, PMERR_INVALID_HSTRUCT = 0x104D, PMERR_LENGTH_TOO_SMALL = 0x104E, PMERR_MSGID_TOO_SMALL = 0x104F, PMERR_NO_HANDLE_ALLOC = 0x1050, PMERR_NOT_IN_A_PM_SESSION = 0x1051, PMERR_MSG_QUEUE_ALREADY_EXISTS = 0x1052, PMERR_SEND_MSG_TIMEOUT = 0x1053, PMERR_SEND_MSG_FAILED = 0x1054, PMERR_OLD_RESOURCE = 0x1055, PMERR_INVALID_PIB = 0x1101, PMERR_INSUFF_SPACE_TO_ADD = 0x1102, PMERR_INVALID_GROUP_HANDLE = 0x1103, PMERR_DUPLICATE_TITLE = 0x1104, PMERR_INVALID_TITLE = 0x1105, PMERR_HANDLE_NOT_IN_GROUP = 0x1107, PMERR_INVALID_TARGET_HANDLE = 0x1106, PMERR_INVALID_PATH_STATEMENT = 0x1108, PMERR_NO_PROGRAM_FOUND = 0x1109, PMERR_INVALID_BUFFER_SIZE = 0x110A, PMERR_BUFFER_TOO_SMALL = 0x110B, PMERR_PL_INITIALISATION_FAIL = 0x110C, PMERR_CANT_DESTROY_SYS_GROUP = 0x110D, PMERR_INVALID_TYPE_CHANGE = 0x110E, PMERR_INVALID_PROGRAM_HANDLE = 0x110F, PMERR_NOT_CURRENT_PL_VERSION = 0x1110, PMERR_INVALID_CIRCULAR_REF = 0x1111, PMERR_MEMORY_ALLOCATION_ERR = 0x1112, PMERR_MEMORY_DEALLOCATION_ERR = 0x1113, PMERR_TASK_HEADER_TOO_BIG = 0x1114, PMERR_INVALID_INI_FILE_HANDLE = 0x1115, PMERR_MEMORY_SHARE = 0x1116, PMERR_OPEN_QUEUE = 0x1117, PMERR_CREATE_QUEUE = 0x1118, PMERR_WRITE_QUEUE = 0x1119, PMERR_READ_QUEUE = 0x111A, PMERR_CALL_NOT_EXECUTED = 0x111B, PMERR_UNKNOWN_APIPKT = 0x111C, PMERR_INITHREAD_EXISTS = 0x111D, PMERR_CREATE_THREAD = 0x111E, PMERR_NO_HK_PROFILE_INSTALLED = 0x111F, PMERR_INVALID_DIRECTORY = 0x1120, PMERR_WILDCARD_IN_FILENAME = 0x1121, PMERR_FILENAME_BUFFER_FULL = 0x1122, PMERR_FILENAME_TOO_LONG = 0x1123, PMERR_INI_FILE_IS_SYS_OR_USER = 0x1124, PMERR_BROADCAST_PLMSG = 0x1125, PMERR_190_INIT_DONE = 0x1126, PMERR_HMOD_FOR_PMSHAPI = 0x1127, PMERR_SET_HK_PROFILE = 0x1128, PMERR_API_NOT_ALLOWED = 0x1129, PMERR_INI_STILL_OPEN = 0x112A, PMERR_PROGDETAILS_NOT_IN_INI = 0x112B, PMERR_PIBSTRUCT_NOT_IN_INI = 0x112C, PMERR_INVALID_DISKPROGDETAILS = 0x112D, PMERR_PROGDETAILS_READ_FAILURE = 0x112E, PMERR_PROGDETAILS_WRITE_FAILURE = 0x112F, PMERR_PROGDETAILS_QSIZE_FAILURE = 0x1130, PMERR_INVALID_PROGDETAILS = 0x1131, PMERR_SHEPROFILEHOOK_NOT_FOUND = 0x1132, PMERR_190PLCONVERTED = 0x1133, PMERR_FAILED_TO_CONVERT_INI_PL = 0x1134, PMERR_PMSHAPI_NOT_INITIALISED = 0x1135, PMERR_INVALID_SHELL_API_HOOK_ID = 0x1136, PMERR_DOS_ERROR = 0x1200, PMERR_NO_SPACE = 0x1201, PMERR_INVALID_SWITCH_HANDLE = 0x1202, PMERR_NO_HANDLE = 0x1203, PMERR_INVALID_PROCESS_ID = 0x1204, PMERR_NOT_SHELL = 0x1205, PMERR_INVALID_WINDOW = 0x1206, PMERR_INVALID_POST_MSG = 0x1207, PMERR_INVALID_PARAMETERS = 0x1208, PMERR_INVALID_PROGRAM_TYPE = 0x1209, PMERR_NOT_EXTENDED_FOCUS = 0x120A, PMERR_INVALID_SESSION_ID = 0x120B, PMERR_SMG_INVALID_ICON_FILE = 0x120C, PMERR_SMG_ICON_NOT_CREATED = 0x120D, PMERR_SHL_DEBUG = 0x120E, PMERR_OPENING_INI_FILE = 0x1301, PMERR_INI_FILE_CORRUPT = 0x1302, PMERR_INVALID_PARM = 0x1303, PMERR_NOT_IN_IDX = 0x1304, PMERR_NO_ENTRIES_IN_GROUP = 0x1305, PMERR_INI_WRITE_FAIL = 0x1306, PMERR_IDX_FULL = 0x1307, PMERR_INI_PROTECTED = 0x1308, PMERR_MEMORY_ALLOC = 0x1309, PMERR_INI_INIT_ALREADY_DONE = 0x130A, PMERR_INVALID_INTEGER = 0x130B, PMERR_INVALID_ASCIIZ = 0x130C, PMERR_CAN_NOT_CALL_SPOOLER = 0x130D, PMERR_VALIDATION_REJECTED = PMERR_CAN_NOT_CALL_SPOOLER, PMERR_WARNING_WINDOW_NOT_KILLED = 0x1401, PMERR_ERROR_INVALID_WINDOW = 0x1402, PMERR_ALREADY_INITIALIZED = 0x1403, PMERR_MSG_PROG_NO_MOU = 0x1405, PMERR_MSG_PROG_NON_RECOV = 0x1406, PMERR_WINCONV_INVALID_PATH = 0x1407, PMERR_PI_NOT_INITIALISED = 0x1408, PMERR_PL_NOT_INITIALISED = 0x1409, PMERR_NO_TASK_MANAGER = 0x140A, PMERR_SAVE_NOT_IN_PROGRESS = 0x140B, PMERR_NO_STACK_SPACE = 0x140C, PMERR_INVALID_COLR_FIELD = 0x140d, PMERR_INVALID_COLR_VALUE = 0x140e, PMERR_COLR_WRITE = 0x140f, PMERR_TARGET_FILE_EXISTS = 0x1501, PMERR_SOURCE_SAME_AS_TARGET = 0x1502, PMERR_SOURCE_FILE_NOT_FOUND = 0x1503, PMERR_INVALID_NEW_PATH = 0x1504, PMERR_TARGET_FILE_NOT_FOUND = 0x1505, PMERR_INVALID_DRIVE_NUMBER = 0x1506, PMERR_NAME_TOO_LONG = 0x1507, PMERR_NOT_ENOUGH_ROOM_ON_DISK = 0x1508, PMERR_NOT_ENOUGH_MEM = 0x1509, PMERR_LOG_DRV_DOES_NOT_EXIST = 0x150B, PMERR_INVALID_DRIVE = 0x150C, PMERR_ACCESS_DENIED = 0x150D, PMERR_NO_FIRST_SLASH = 0x150E, PMERR_READ_ONLY_FILE = 0x150F, PMERR_GROUP_PROTECTED = 0x151F, PMERR_INVALID_PROGRAM_CATEGORY = 0x152F, PMERR_INVALID_APPL = 0x1530, PMERR_CANNOT_START = 0x1531, PMERR_STARTED_IN_BACKGROUND = 0x1532, PMERR_INVALID_HAPP = 0x1533, PMERR_CANNOT_STOP = 0x1534, PMERR_INTERNAL_ERROR_1 = 0x1601, PMERR_INTERNAL_ERROR_2 = 0x1602, PMERR_INTERNAL_ERROR_3 = 0x1603, PMERR_INTERNAL_ERROR_4 = 0x1604, PMERR_INTERNAL_ERROR_5 = 0x1605, PMERR_INTERNAL_ERROR_6 = 0x1606, PMERR_INTERNAL_ERROR_7 = 0x1607, PMERR_INTERNAL_ERROR_8 = 0x1608, PMERR_INTERNAL_ERROR_9 = 0x1609, PMERR_INTERNAL_ERROR_10 = 0x160A, PMERR_INTERNAL_ERROR_11 = 0x160B, PMERR_INTERNAL_ERROR_12 = 0x160C, PMERR_INTERNAL_ERROR_13 = 0x160D, PMERR_INTERNAL_ERROR_14 = 0x160E, PMERR_INTERNAL_ERROR_15 = 0x160F, PMERR_INTERNAL_ERROR_16 = 0x1610, PMERR_INTERNAL_ERROR_17 = 0x1611, PMERR_INTERNAL_ERROR_18 = 0x1612, PMERR_INTERNAL_ERROR_19 = 0x1613, PMERR_INTERNAL_ERROR_20 = 0x1614, PMERR_INTERNAL_ERROR_21 = 0x1615, PMERR_INTERNAL_ERROR_22 = 0x1616, PMERR_INTERNAL_ERROR_23 = 0x1617, PMERR_INTERNAL_ERROR_24 = 0x1618, PMERR_INTERNAL_ERROR_25 = 0x1619, PMERR_INTERNAL_ERROR_26 = 0x161A, PMERR_INTERNAL_ERROR_27 = 0x161B, PMERR_INTERNAL_ERROR_28 = 0x161C, PMERR_INTERNAL_ERROR_29 = 0x161D, PMERR_INVALID_FREE_MESSAGE_ID = 0x1630, PMERR_FUNCTION_NOT_SUPPORTED = 0x1641, PMERR_INVALID_ARRAY_COUNT = 0x1642, PMERR_INVALID_LENGTH = 0x1643, PMERR_INVALID_BUNDLE_TYPE = 0x1644, PMERR_INVALID_PARAMETER = 0x1645, PMERR_INVALID_NUMBER_OF_PARMS = 0x1646, PMERR_GREATER_THAN_64K = 0x1647, PMERR_INVALID_PARAMETER_TYPE = 0x1648, PMERR_NEGATIVE_STRCOND_DIM = 0x1649, PMERR_INVALID_NUMBER_OF_TYPES = 0x164A, PMERR_INCORRECT_HSTRUCT = 0x164B, PMERR_INVALID_ARRAY_SIZE = 0x164C, PMERR_INVALID_CONTROL_DATATYPE = 0x164D, PMERR_INCOMPLETE_CONTROL_SEQU = 0x164E, PMERR_INVALID_DATATYPE = 0x164F, PMERR_INCORRECT_DATATYPE = 0x1650, PMERR_NOT_SELF_DESCRIBING_DTYP = 0x1651, PMERR_INVALID_CTRL_SEQ_INDEX = 0x1652, PMERR_INVALID_TYPE_FOR_LENGTH = 0x1653, PMERR_INVALID_TYPE_FOR_OFFSET = 0x1654, PMERR_INVALID_TYPE_FOR_MPARAM = 0x1655, PMERR_INVALID_MESSAGE_ID = 0x1656, PMERR_C_LENGTH_TOO_SMALL = 0x1657, PMERR_APPL_STRUCTURE_TOO_SMALL = 0x1658, PMERR_INVALID_ERRORINFO_HANDLE = 0x1659, PMERR_INVALID_CHARACTER_INDEX = 0x165A, PMERR_ALREADY_IN_AREA = 0x2001, PMERR_ALREADY_IN_ELEMENT = 0x2002, PMERR_ALREADY_IN_PATH = 0x2003, PMERR_ALREADY_IN_SEG = 0x2004, PMERR_AREA_INCOMPLETE = 0x2005, PMERR_BASE_ERROR = 0x2006, PMERR_BITBLT_LENGTH_EXCEEDED = 0x2007, PMERR_BITMAP_IN_USE = 0x2008, PMERR_BITMAP_IS_SELECTED = 0x2009, PMERR_BITMAP_NOT_FOUND = 0x200A, PMERR_BITMAP_NOT_SELECTED = 0x200B, PMERR_BOUNDS_OVERFLOW = 0x200C, PMERR_CALLED_SEG_IS_CHAINED = 0x200D, PMERR_CALLED_SEG_IS_CURRENT = 0x200E, PMERR_CALLED_SEG_NOT_FOUND = 0x200F, PMERR_CANNOT_DELETE_ALL_DATA = 0x2010, PMERR_CANNOT_REPLACE_ELEMENT_0 = 0x2011, PMERR_COL_TABLE_NOT_REALIZABLE = 0x2012, PMERR_COL_TABLE_NOT_REALIZED = 0x2013, PMERR_COORDINATE_OVERFLOW = 0x2014, PMERR_CORR_FORMAT_MISMATCH = 0x2015, PMERR_DATA_TOO_LONG = 0x2016, PMERR_DC_IS_ASSOCIATED = 0x2017, PMERR_DESC_STRING_TRUNCATED = 0x2018, PMERR_DEVICE_DRIVER_ERROR_1 = 0x2019, PMERR_DEVICE_DRIVER_ERROR_2 = 0x201A, PMERR_DEVICE_DRIVER_ERROR_3 = 0x201B, PMERR_DEVICE_DRIVER_ERROR_4 = 0x201C, PMERR_DEVICE_DRIVER_ERROR_5 = 0x201D, PMERR_DEVICE_DRIVER_ERROR_6 = 0x201E, PMERR_DEVICE_DRIVER_ERROR_7 = 0x201F, PMERR_DEVICE_DRIVER_ERROR_8 = 0x2020, PMERR_DEVICE_DRIVER_ERROR_9 = 0x2021, PMERR_DEVICE_DRIVER_ERROR_10 = 0x2022, PMERR_DEV_FUNC_NOT_INSTALLED = 0x2023, PMERR_DOSOPEN_FAILURE = 0x2024, PMERR_DOSREAD_FAILURE = 0x2025, PMERR_DRIVER_NOT_FOUND = 0x2026, PMERR_DUP_SEG = 0x2027, PMERR_DYNAMIC_SEG_SEQ_ERROR = 0x2028, PMERR_DYNAMIC_SEG_ZERO_INV = 0x2029, PMERR_ELEMENT_INCOMPLETE = 0x202A, PMERR_ESC_CODE_NOT_SUPPORTED = 0x202B, PMERR_EXCEEDS_MAX_SEG_LENGTH = 0x202C, PMERR_FONT_AND_MODE_MISMATCH = 0x202D, PMERR_FONT_FILE_NOT_LOADED = 0x202E, PMERR_FONT_NOT_LOADED = 0x202F, PMERR_FONT_TOO_BIG = 0x2030, PMERR_HARDWARE_INIT_FAILURE = 0x2031, PMERR_HBITMAP_BUSY = 0x2032, PMERR_HDC_BUSY = 0x2033, PMERR_HRGN_BUSY = 0x2034, PMERR_HUGE_FONTS_NOT_SUPPORTED = 0x2035, PMERR_ID_HAS_NO_BITMAP = 0x2036, PMERR_IMAGE_INCOMPLETE = 0x2037, PMERR_INCOMPAT_COLOR_FORMAT = 0x2038, PMERR_INCOMPAT_COLOR_OPTIONS = 0x2039, PMERR_INCOMPATIBLE_BITMAP = 0x203A, PMERR_INCOMPATIBLE_METAFILE = 0x203B, PMERR_INCORRECT_DC_TYPE = 0x203C, PMERR_INSUFFICIENT_DISK_SPACE = 0x203D, PMERR_INSUFFICIENT_MEMORY = 0x203E, PMERR_INV_ANGLE_PARM = 0x203F, PMERR_INV_ARC_CONTROL = 0x2040, PMERR_INV_AREA_CONTROL = 0x2041, PMERR_INV_ARC_POINTS = 0x2042, PMERR_INV_ATTR_MODE = 0x2043, PMERR_INV_BACKGROUND_COL_ATTR = 0x2044, PMERR_INV_BACKGROUND_MIX_ATTR = 0x2045, PMERR_INV_BITBLT_MIX = 0x2046, PMERR_INV_BITBLT_STYLE = 0x2047, PMERR_INV_BITMAP_DIMENSION = 0x2048, PMERR_INV_BOX_CONTROL = 0x2049, PMERR_INV_BOX_ROUNDING_PARM = 0x204A, PMERR_INV_CHAR_ANGLE_ATTR = 0x204B, PMERR_INV_CHAR_DIRECTION_ATTR = 0x204C, PMERR_INV_CHAR_MODE_ATTR = 0x204D, PMERR_INV_CHAR_POS_OPTIONS = 0x204E, PMERR_INV_CHAR_SET_ATTR = 0x204F, PMERR_INV_CHAR_SHEAR_ATTR = 0x2050, PMERR_INV_CLIP_PATH_OPTIONS = 0x2051, PMERR_INV_CODEPAGE = 0x2052, PMERR_INV_COLOR_ATTR = 0x2053, PMERR_INV_COLOR_DATA = 0x2054, PMERR_INV_COLOR_FORMAT = 0x2055, PMERR_INV_COLOR_INDEX = 0x2056, PMERR_INV_COLOR_OPTIONS = 0x2057, PMERR_INV_COLOR_START_INDEX = 0x2058, PMERR_INV_COORD_OFFSET = 0x2059, PMERR_INV_COORD_SPACE = 0x205A, PMERR_INV_COORDINATE = 0x205B, PMERR_INV_CORRELATE_DEPTH = 0x205C, PMERR_INV_CORRELATE_TYPE = 0x205D, PMERR_INV_CURSOR_BITMAP = 0x205E, PMERR_INV_DC_DATA = 0x205F, PMERR_INV_DC_TYPE = 0x2060, PMERR_INV_DEVICE_NAME = 0x2061, PMERR_INV_DEV_MODES_OPTIONS = 0x2062, PMERR_INV_DRAW_CONTROL = 0x2063, PMERR_INV_DRAW_VALUE = 0x2064, PMERR_INV_DRAWING_MODE = 0x2065, PMERR_INV_DRIVER_DATA = 0x2066, PMERR_INV_DRIVER_NAME = 0x2067, PMERR_INV_DRAW_BORDER_OPTION = 0x2068, PMERR_INV_EDIT_MODE = 0x2069, PMERR_INV_ELEMENT_OFFSET = 0x206A, PMERR_INV_ELEMENT_POINTER = 0x206B, PMERR_INV_END_PATH_OPTIONS = 0x206C, PMERR_INV_ESC_CODE = 0x206D, PMERR_INV_ESCAPE_DATA = 0x206E, PMERR_INV_EXTENDED_LCID = 0x206F, PMERR_INV_FILL_PATH_OPTIONS = 0x2070, PMERR_INV_FIRST_CHAR = 0x2071, PMERR_INV_FONT_ATTRS = 0x2072, PMERR_INV_FONT_FILE_DATA = 0x2073, PMERR_INV_FOR_THIS_DC_TYPE = 0x2074, PMERR_INV_FORMAT_CONTROL = 0x2075, PMERR_INV_FORMS_CODE = 0x2076, PMERR_INV_FONTDEF = 0x2077, PMERR_INV_GEOM_LINE_WIDTH_ATTR = 0x2078, PMERR_INV_GETDATA_CONTROL = 0x2079, PMERR_INV_GRAPHICS_FIELD = 0x207A, PMERR_INV_HBITMAP = 0x207B, PMERR_INV_HDC = 0x207C, PMERR_INV_HJOURNAL = 0x207D, PMERR_INV_HMF = 0x207E, PMERR_INV_HPS = 0x207F, PMERR_INV_HRGN = 0x2080, PMERR_INV_ID = 0x2081, PMERR_INV_IMAGE_DATA_LENGTH = 0x2082, PMERR_INV_IMAGE_DIMENSION = 0x2083, PMERR_INV_IMAGE_FORMAT = 0x2084, PMERR_INV_IN_AREA = 0x2085, PMERR_INV_IN_CALLED_SEG = 0x2086, PMERR_INV_IN_CURRENT_EDIT_MODE = 0x2087, PMERR_INV_IN_DRAW_MODE = 0x2088, PMERR_INV_IN_ELEMENT = 0x2089, PMERR_INV_IN_IMAGE = 0x208A, PMERR_INV_IN_PATH = 0x208B, PMERR_INV_IN_RETAIN_MODE = 0x208C, PMERR_INV_IN_SEG = 0x208D, PMERR_INV_IN_VECTOR_SYMBOL = 0x208E, PMERR_INV_INFO_TABLE = 0x208F, PMERR_INV_JOURNAL_OPTION = 0x2090, PMERR_INV_KERNING_FLAGS = 0x2091, PMERR_INV_LENGTH_OR_COUNT = 0x2092, PMERR_INV_LINE_END_ATTR = 0x2093, PMERR_INV_LINE_JOIN_ATTR = 0x2094, PMERR_INV_LINE_TYPE_ATTR = 0x2095, PMERR_INV_LINE_WIDTH_ATTR = 0x2096, PMERR_INV_LOGICAL_ADDRESS = 0x2097, PMERR_INV_MARKER_BOX_ATTR = 0x2098, PMERR_INV_MARKER_SET_ATTR = 0x2099, PMERR_INV_MARKER_SYMBOL_ATTR = 0x209A, PMERR_INV_MATRIX_ELEMENT = 0x209B, PMERR_INV_MAX_HITS = 0x209C, PMERR_INV_METAFILE = 0x209D, PMERR_INV_METAFILE_LENGTH = 0x209E, PMERR_INV_METAFILE_OFFSET = 0x209F, PMERR_INV_MICROPS_DRAW_CONTROL = 0x20A0, PMERR_INV_MICROPS_FUNCTION = 0x20A1, PMERR_INV_MICROPS_ORDER = 0x20A2, PMERR_INV_MIX_ATTR = 0x20A3, PMERR_INV_MODE_FOR_OPEN_DYN = 0x20A4, PMERR_INV_MODE_FOR_REOPEN_SEG = 0x20A5, PMERR_INV_MODIFY_PATH_MODE = 0x20A6, PMERR_INV_MULTIPLIER = 0x20A7, PMERR_INV_NESTED_FIGURES = 0x20A8, PMERR_INV_OR_INCOMPAT_OPTIONS = 0x20A9, PMERR_INV_ORDER_LENGTH = 0x20AA, PMERR_INV_ORDERING_PARM = 0x20AB, PMERR_INV_OUTSIDE_DRAW_MODE = 0x20AC, PMERR_INV_PAGE_VIEWPORT = 0x20AD, PMERR_INV_PATH_ID = 0x20AE, PMERR_INV_PATH_MODE = 0x20AF, PMERR_INV_PATTERN_ATTR = 0x20B0, PMERR_INV_PATTERN_REF_PT_ATTR = 0x20B1, PMERR_INV_PATTERN_SET_ATTR = 0x20B2, PMERR_INV_PATTERN_SET_FONT = 0x20B3, PMERR_INV_PICK_APERTURE_OPTION = 0x20B4, PMERR_INV_PICK_APERTURE_POSN = 0x20B5, PMERR_INV_PICK_APERTURE_SIZE = 0x20B6, PMERR_INV_PICK_NUMBER = 0x20B7, PMERR_INV_PLAY_METAFILE_OPTION = 0x20B8, PMERR_INV_PRIMITIVE_TYPE = 0x20B9, PMERR_INV_PS_SIZE = 0x20BA, PMERR_INV_PUTDATA_FORMAT = 0x20BB, PMERR_INV_QUERY_ELEMENT_NO = 0x20BC, PMERR_INV_RECT = 0x20BD, PMERR_INV_REGION_CONTROL = 0x20BE, PMERR_INV_REGION_MIX_MODE = 0x20BF, PMERR_INV_REPLACE_MODE_FUNC = 0x20C0, PMERR_INV_RESERVED_FIELD = 0x20C1, PMERR_INV_RESET_OPTIONS = 0x20C2, PMERR_INV_RGBCOLOR = 0x20C3, PMERR_INV_SCAN_START = 0x20C4, PMERR_INV_SEG_ATTR = 0x20C5, PMERR_INV_SEG_ATTR_VALUE = 0x20C6, PMERR_INV_SEG_CH_LENGTH = 0x20C7, PMERR_INV_SEG_NAME = 0x20C8, PMERR_INV_SEG_OFFSET = 0x20C9, PMERR_INV_SETID = 0x20CA, PMERR_INV_SETID_TYPE = 0x20CB, PMERR_INV_SET_VIEWPORT_OPTION = 0x20CC, PMERR_INV_SHARPNESS_PARM = 0x20CD, PMERR_INV_SOURCE_OFFSET = 0x20CE, PMERR_INV_STOP_DRAW_VALUE = 0x20CF, PMERR_INV_TRANSFORM_TYPE = 0x20D0, PMERR_INV_USAGE_PARM = 0x20D1, PMERR_INV_VIEWING_LIMITS = 0x20D2, PMERR_JFILE_BUSY = 0x20D3, PMERR_JNL_FUNC_DATA_TOO_LONG = 0x20D4, PMERR_KERNING_NOT_SUPPORTED = 0x20D5, PMERR_LABEL_NOT_FOUND = 0x20D6, PMERR_MATRIX_OVERFLOW = 0x20D7, PMERR_METAFILE_INTERNAL_ERROR = 0x20D8, PMERR_METAFILE_IN_USE = 0x20D9, PMERR_METAFILE_LIMIT_EXCEEDED = 0x20DA, PMERR_NAME_STACK_FULL = 0x20DB, PMERR_NOT_CREATED_BY_DEVOPENDC = 0x20DC, PMERR_NOT_IN_AREA = 0x20DD, PMERR_NOT_IN_DRAW_MODE = 0x20DE, PMERR_NOT_IN_ELEMENT = 0x20DF, PMERR_NOT_IN_IMAGE = 0x20E0, PMERR_NOT_IN_PATH = 0x20E1, PMERR_NOT_IN_RETAIN_MODE = 0x20E2, PMERR_NOT_IN_SEG = 0x20E3, PMERR_NO_BITMAP_SELECTED = 0x20E4, PMERR_NO_CURRENT_ELEMENT = 0x20E5, PMERR_NO_CURRENT_SEG = 0x20E6, PMERR_NO_METAFILE_RECORD_HANDLE = 0x20E7, PMERR_ORDER_TOO_BIG = 0x20E8, PMERR_OTHER_SET_ID_REFS = 0x20E9, PMERR_OVERRAN_SEG = 0x20EA, PMERR_OWN_SET_ID_REFS = 0x20EB, PMERR_PATH_INCOMPLETE = 0x20EC, PMERR_PATH_LIMIT_EXCEEDED = 0x20ED, PMERR_PATH_UNKNOWN = 0x20EE, PMERR_PEL_IS_CLIPPED = 0x20EF, PMERR_PEL_NOT_AVAILABLE = 0x20F0, PMERR_PRIMITIVE_STACK_EMPTY = 0x20F1, PMERR_PROLOG_ERROR = 0x20F2, PMERR_PROLOG_SEG_ATTR_NOT_SET = 0x20F3, PMERR_PS_BUSY = 0x20F4, PMERR_PS_IS_ASSOCIATED = 0x20F5, PMERR_RAM_JNL_FILE_TOO_SMALL = 0x20F6, PMERR_REALIZE_NOT_SUPPORTED = 0x20F7, PMERR_REGION_IS_CLIP_REGION = 0x20F8, PMERR_RESOURCE_DEPLETION = 0x20F9, PMERR_SEG_AND_REFSEG_ARE_SAME = 0x20FA, PMERR_SEG_CALL_RECURSIVE = 0x20FB, PMERR_SEG_CALL_STACK_EMPTY = 0x20FC, PMERR_SEG_CALL_STACK_FULL = 0x20FD, PMERR_SEG_IS_CURRENT = 0x20FE, PMERR_SEG_NOT_CHAINED = 0x20FF, PMERR_SEG_NOT_FOUND = 0x2100, PMERR_SEG_STORE_LIMIT_EXCEEDED = 0x2101, PMERR_SETID_IN_USE = 0x2102, PMERR_SETID_NOT_FOUND = 0x2103, PMERR_STARTDOC_NOT_ISSUED = 0x2104, PMERR_STOP_DRAW_OCCURRED = 0x2105, PMERR_TOO_MANY_METAFILES_IN_USE = 0x2106, PMERR_TRUNCATED_ORDER = 0x2107, PMERR_UNCHAINED_SEG_ZERO_INV = 0x2108, PMERR_UNSUPPORTED_ATTR = 0x2109, PMERR_UNSUPPORTED_ATTR_VALUE = 0x210A, PMERR_ENDDOC_NOT_ISSUED = 0x210B, PMERR_PS_NOT_ASSOCIATED = 0x210C, PMERR_INV_FLOOD_FILL_OPTIONS = 0x210D, PMERR_INV_FACENAME = 0x210E, PMERR_PALETTE_SELECTED = 0x210F, PMERR_NO_PALETTE_SELECTED = 0x2110, PMERR_INV_HPAL = 0x2111, PMERR_PALETTE_BUSY = 0x2112, PMERR_START_POINT_CLIPPED = 0x2113, PMERR_NO_FILL = 0x2114, PMERR_INV_FACENAMEDESC = 0x2115, PMERR_INV_BITMAP_DATA = 0x2116, PMERR_INV_CHAR_ALIGN_ATTR = 0x2117, PMERR_INV_HFONT = 0x2118, PMERR_HFONT_IS_SELECTED = 0x2119, PMERR_DRVR_NOT_SUPPORTED = 0x2120, PMERR_INV_INKPS_FUNCTION = 0x2121 // !!! FIXME: there are more of these. }; enum { CLR_FALSE = -5, CLR_TRUE = -4, CLR_DEFAULT = -3, CLR_WHITE = -2, CLR_BLACK = -1, CLR_BACKGROUND = 0, CLR_BLUE = 1, CLR_RED = 2, CLR_PINK = 3, CLR_GREEN = 4, CLR_CYAN = 5, CLR_YELLOW = 6, CLR_NEUTRAL = 7, CLR_DARKGRAY = 8, CLR_DARKBLUE = 9, CLR_DARKRED = 10, CLR_DARKPINK = 11, CLR_DARKGREEN = 12, CLR_DARKCYAN = 13, CLR_BROWN = 14, CLR_PALEGRAY = 15 }; // API entry points... OS2EXPORT HAB OS2API WinInitialize(ULONG flOptions); OS2EXPORT BOOL OS2API WinTerminate(HAB hab); OS2EXPORT ERRORID OS2API WinGetLastError(HAB hab); OS2EXPORT HMQ OS2API WinCreateMsgQueue(HAB hab, LONG cmsg); OS2EXPORT BOOL OS2API WinGetMsg(HAB hab, PQMSG pqmsg, HWND hwndFilter, ULONG msgFilterFirst, ULONG msgFilterLast); OS2EXPORT MRESULT OS2API WinDispatchMsg(HAB hab, PQMSG pqmsg); OS2EXPORT BOOL OS2API WinDestroyMsgQueue(HMQ hmq); OS2EXPORT HWND OS2API WinCreateStdWindow(HWND hwndParent, ULONG flStyle, PULONG pflCreateFlags, PSZ pszClientClass, PSZ pszTitle, ULONG styleClient, HMODULE hmod, ULONG idResources, PHWND phwndClient); OS2EXPORT HWND OS2API WinCreateWindow(HWND hwndParent, PSZ pszClass, PSZ pszName, ULONG flStyle, LONG x, LONG y, LONG cx, LONG cy, HWND hwndOwner, HWND hwndInsertBehind, ULONG id, PVOID pCtlData, PVOID pPresParams); OS2EXPORT BOOL OS2API WinDestroyWindow(HWND hwnd); OS2EXPORT BOOL OS2API WinRegisterClass(HAB hab, PSZ pszClassName, PFNWP pfnWndProc, ULONG flStyle, ULONG cbWindowData); OS2EXPORT MRESULT OS2API WinDefWindowProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2); OS2EXPORT MRESULT OS2API WinSendMsg(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2); OS2EXPORT BOOL OS2API WinPostMsg(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2); OS2EXPORT BOOL OS2API WinPostQueueMsg(HMQ hmq, ULONG msg, MPARAM mp1, MPARAM mp2); OS2EXPORT HPS OS2API WinBeginPaint(HWND hwnd, HPS hps, PRECTL prclPaint); OS2EXPORT BOOL OS2API WinEndPaint(HPS hps); OS2EXPORT BOOL OS2API WinFillRect(HPS hps, PRECTL prcl, LONG lColor); #ifdef __cplusplus } #endif #endif // end of pmwin.h ...