From d6e258cc9eacebb6db193cc2ef9128e7c48b5dfc Mon Sep 17 00:00:00 2001 From: Robert Kopferl Date: Tue, 23 Jul 2002 13:00:46 +0000 Subject: [PATCH] free os2.h version svn path=/trunk/; revision=3299 --- os2/include/os2.h | 12583 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 12583 insertions(+) create mode 100644 os2/include/os2.h diff --git a/os2/include/os2.h b/os2/include/os2.h new file mode 100644 index 00000000000..81f567e297c --- /dev/null +++ b/os2/include/os2.h @@ -0,0 +1,12583 @@ +/* os2emx.h (emx+gcc) */ + +#ifndef _OS2EMX_H +#define _OS2EMX_H + +#pragma pack(1) + +/* ------------------------ INCL_ SYMBOLS --------------------------------- */ + +#if defined (INCL_BASE) +#define INCL_DOS +#define INCL_DOSERRORS +#define INCL_SUB +#endif + +#if defined (INCL_DOS) +#define INCL_DOSDATETIME +#define INCL_DOSDEVICES +#define INCL_DOSEXCEPTIONS +#define INCL_DOSFILEMGR +#define INCL_DOSMEMMGR +#define INCL_DOSMISC +#define INCL_DOSMVDM +#define INCL_DOSMODULEMGR +#define INCL_DOSNLS +#define INCL_DOSPROCESS +#define INCL_DOSPROFILE +#define INCL_DOSRAS +#define INCL_DOSQUEUES +#define INCL_DOSRESOURCES +#define INCL_DOSSEMAPHORES +#define INCL_DOSSESMGR +#endif + +#if defined (INCL_REXXSAA) +#define INCL_RXSUBCOM +#define INCL_RXSHV +#define INCL_RXFUNC +#define INCL_RXSYSEXIT +#define INCL_RXMACRO +#define INCL_RXARI +#endif + +#if defined (INCL_SUB) +#define INCL_KBD +#define INCL_VIO +#define INCL_MOU +#endif + +#if defined (INCL_PM) +#define INCL_AVIO +#define INCL_FONTFILEFORMAT +#define INCL_GPI +#define INCL_SPL +#define INCL_WIN +#define INCL_WINWORKPLACE +#endif + +#if defined (INCL_WIN) || defined (RC_INVOKED) +#define INCL_WINACCELERATORS +#define INCL_WINBUTTONS +#define INCL_WINDIALOGS +#define INCL_WINENTRYFIELDS +#define INCL_WINFRAMECTLS +#define INCL_WINFRAMEMGR +#define INCL_WINHELP +#define INCL_WININPUT +#define INCL_WINLISTBOXES +#define INCL_WINMENUS +#define INCL_WINMESSAGEMGR +#define INCL_WINMLE +#define INCL_WINPOINTERS +#define INCL_WINSCROLLBARS +#define INCL_WINSTATICS +#define INCL_WINSTDDLGS +#define INCL_WINSYS +#endif /* INCL_WIN || RC_INVOKED */ + +#if defined (INCL_WIN) +#define INCL_WINATOM +#define INCL_WINCLIPBOARD +#define INCL_WINCOUNTRY +#define INCL_WINCURSORS +#define INCL_WINDDE +#define INCL_WINDESKTOP +#define INCL_WINERRORS +#define INCL_WINHOOKS +#define INCL_WINLOAD +#define INCL_WINPALETTE +#define INCL_WINPROGRAMLIST +#define INCL_WINRECTANGLES +#define INCL_WINSHELLDATA +#define INCL_WINSWITCHLIST +#define INCL_WINTHUNKAPI +#define INCL_WINTIMER +#define INCL_WINTRACKRECT +#define INCL_WINTYPES +#define INCL_WINWINDOWMGR +#endif /* INCL_WIN */ + +#if defined (INCL_WINCOMMON) +#define INCL_WINWINDOWMGR +#endif + +#if defined (INCL_WINSTDDLGS) +#define INCL_WINCIRCULARSLIDER +#define INCL_WINSTDBOOK +#define INCL_WINSTDCNR +#define INCL_WINSTDDRAG +#define INCL_WINSTDFILE +#define INCL_WINSTDFONT +#define INCL_WINSTDSLIDER +#define INCL_WINSTDSPIN +#define INCL_WINSTDVALSET +#endif + +#if defined (INCL_WINSTDCNR) || defined (INCL_WINSTDVALSET) +#define INCL_WINSTDDRAG +#endif + +#if defined (INCL_WINMLE) && !defined (INCL_WINENTRYFIELDS) +#define INCL_WINENTRYFIELDS +#endif + +#if defined (INCL_WINWORKPLACE) +#define INCL_WPCLASS +#endif + +#if defined (INCL_GPI) +#define INCL_GPIBITMAPS +#define INCL_GPICONTROL +#define INCL_GPICORRELATION +#define INCL_GPIINK +#define INCL_GPISEGMENTS +#endif + +#if defined (INCL_ERRORS) +#define INCL_DOSERRORS +#define INCL_GPIERRORS +#define INCL_SHLERRORS +#define INCL_WINERRORS +#endif + +#if defined (INCL_DDIDEFS) +#define INCL_GPIBITMAPS +#define INCL_GPIERRORS +#endif + +#if defined (INCL_CIRCULARSLIDER) && !defined (INCL_WINCIRCULARSLIDER) +#define INCL_WINCIRCULARSLIDER +#endif + +/* ------------------------ DISABLE KEYWORDS ------------------------------ */ + +#define APIENTRY +#define EXPENTRY +#define FAR + +/* ------------------------ CONSTANTS AND TYPES --------------------------- */ + +#if !defined (FALSE) +#define FALSE 0 +#endif + +#if !defined (TRUE) +#define TRUE 1 +#endif + +#define VOID void + +#define NULLHANDLE ((LHANDLE)0) +#define NULLSHANDLE ((SHANDLE)0) + +#if !defined (NULL) +#if defined (__cplusplus) +#define NULL 0 +#else +#define NULL ((void *)0) +#endif +#endif + +typedef int INT; /* Required for Toolkit sample programs */ +typedef unsigned UINT; +typedef unsigned long APIRET; + +typedef unsigned long BOOL; +typedef BOOL *PBOOL; + +typedef unsigned long BOOL32; +typedef BOOL *PBOOL32; + +typedef char CHAR; +typedef CHAR *PCHAR; + +#if !defined (OS2EMX_PLAIN_CHAR) + +typedef unsigned char BYTE; +typedef unsigned char *PCH; +typedef unsigned char *PSZ; +typedef __const__ unsigned char *PCCH; +typedef __const__ unsigned char *PCSZ; + +#else + +typedef char BYTE; +typedef char *PCH; +typedef char *PSZ; +typedef __const__ char *PCCH; +typedef __const__ char *PCSZ; + +#endif + +typedef BYTE *PBYTE; + +typedef unsigned char UCHAR; +typedef UCHAR *PUCHAR; + +typedef short SHORT; +typedef SHORT *PSHORT; + +typedef unsigned short USHORT; +typedef USHORT *PUSHORT; + +typedef long LONG; +typedef LONG *PLONG; + +typedef unsigned long ULONG; +typedef ULONG *PULONG; + +typedef VOID *PVOID; +typedef PVOID *PPVOID; + +typedef __const__ VOID *CPVOID; + +typedef CHAR STR8[8]; +typedef STR8 *PSTR8; + +typedef CHAR STR16[16]; +typedef STR16 *PSTR16; +typedef CHAR STR32[32]; +typedef STR32 *PSTR32; +typedef CHAR STR64[64]; +typedef STR64 *PSTR64; + +typedef unsigned short SHANDLE; +typedef unsigned long LHANDLE; + +typedef LHANDLE HPIPE; +typedef HPIPE *PHPIPE; + +typedef LHANDLE HQUEUE; +typedef HQUEUE *PHQUEUE; + +typedef LHANDLE HMODULE; +typedef HMODULE *PHMODULE; + +typedef VOID *HSEM; +typedef HSEM *PHSEM; + +typedef LHANDLE HOBJECT; + +typedef ULONG PID; +typedef PID *PPID; + +typedef ULONG TID; +typedef TID *PTID; + +typedef int (*PFN)(); +typedef PFN *PPFN; + +typedef USHORT SEL; +typedef SEL *PSEL; + +typedef ULONG HMTX; +typedef HMTX *PHMTX; + +typedef ULONG HMUX; +typedef HMUX *PHMUX; + + +#define FIELDOFFSET(t,f) ((SHORT)&(((t *)0)->f)) + +#define MAKETYPE(v,t) (*((t *)&v)) + +#define MAKEUSHORT(l,h) (((USHORT)(l)) | ((USHORT)(h))<<8) +#define MAKESHORT(l,h) ((SHORT)MAKEUSHORT(l, h)) + +#define MAKEULONG(l,h) ((ULONG)(((USHORT)(l)) | ((ULONG)((USHORT)(h)))<<16)) +#define MAKELONG(l,h) ((LONG)MAKEULONG(l, h)) + +#define LOUCHAR(w) ((UCHAR)(w)) +#define HIUCHAR(w) ((UCHAR)((USHORT)(w)>>8)) + +#define LOBYTE(x) LOUCHAR(x) +#define HIBYTE(x) HIUCHAR(x) + +#define LOUSHORT(x) ((USHORT)((ULONG)(x))) +#define HIUSHORT(x) ((USHORT)((ULONG)(x)>>16)) + +/* ---------------------------- ERROR CODES ------------------------------- */ + +#define WINERR_BASE 0x1000 +#define GPIERR_BASE 0x2000 +#define DEVERR_BASE 0x3000 +#define SPLERR_BASE 0x4000 + +#define SEVERITY_NOERROR 0x0000 +#define SEVERITY_WARNING 0x0004 +#define SEVERITY_ERROR 0x0008 +#define SEVERITY_SEVERE 0x000c +#define SEVERITY_UNRECOVERABLE 0x0010 + +#if defined (INCL_DOSERRORS) + +#define NO_ERROR 0 +#define ERROR_INVALID_FUNCTION 1 +#define ERROR_FILE_NOT_FOUND 2 +#define ERROR_PATH_NOT_FOUND 3 +#define ERROR_TOO_MANY_OPEN_FILES 4 +#define ERROR_ACCESS_DENIED 5 +#define ERROR_INVALID_HANDLE 6 +#define ERROR_ARENA_TRASHED 7 +#define ERROR_NOT_ENOUGH_MEMORY 8 +#define ERROR_INVALID_BLOCK 9 +#define ERROR_BAD_ENVIRONMENT 10 +#define ERROR_BAD_FORMAT 11 +#define ERROR_INVALID_ACCESS 12 +#define ERROR_INVALID_DATA 13 +#define ERROR_INVALID_DRIVE 15 +#define ERROR_CURRENT_DIRECTORY 16 +#define ERROR_NOT_SAME_DEVICE 17 +#define ERROR_NO_MORE_FILES 18 +#define ERROR_WRITE_PROTECT 19 +#define ERROR_BAD_UNIT 20 +#define ERROR_NOT_READY 21 +#define ERROR_BAD_COMMAND 22 +#define ERROR_CRC 23 +#define ERROR_BAD_LENGTH 24 +#define ERROR_SEEK 25 +#define ERROR_NOT_DOS_DISK 26 +#define ERROR_SECTOR_NOT_FOUND 27 +#define ERROR_OUT_OF_PAPER 28 +#define ERROR_WRITE_FAULT 29 +#define ERROR_READ_FAULT 30 +#define ERROR_GEN_FAILURE 31 +#define ERROR_SHARING_VIOLATION 32 +#define ERROR_LOCK_VIOLATION 33 +#define ERROR_WRONG_DISK 34 +#define ERROR_FCB_UNAVAILABLE 35 +#define ERROR_SHARING_BUFFER_EXCEEDED 36 +#define ERROR_CODE_PAGE_MISMATCHED 37 +#define ERROR_HANDLE_EOF 38 +#define ERROR_HANDLE_DISK_FULL 39 +#define ERROR_NOT_SUPPORTED 50 +#define ERROR_REM_NOT_LIST 51 +#define ERROR_DUP_NAME 52 +#define ERROR_BAD_NETPATH 53 +#define ERROR_NETWORK_BUSY 54 +#define ERROR_DEV_NOT_EXIST 55 +#define ERROR_TOO_MANY_CMDS 56 +#define ERROR_ADAP_HDW_ERR 57 +#define ERROR_BAD_NET_RESP 58 +#define ERROR_UNEXP_NET_ERR 59 +#define ERROR_BAD_REM_ADAP 60 +#define ERROR_PRINTQ_FULL 61 +#define ERROR_NO_SPOOL_SPACE 62 +#define ERROR_PRINT_CANCELLED 63 +#define ERROR_NETNAME_DELETED 64 +#define ERROR_NETWORK_ACCESS_DENIED 65 +#define ERROR_BAD_DEV_TYPE 66 +#define ERROR_BAD_NET_NAME 67 +#define ERROR_TOO_MANY_NAMES 68 +#define ERROR_TOO_MANY_SESS 69 +#define ERROR_SHARING_PAUSED 70 +#define ERROR_REQ_NOT_ACCEP 71 +#define ERROR_REDIR_PAUSED 72 +#define ERROR_SBCS_ATT_WRITE_PROT 73 +#define ERROR_SBCS_GENERAL_FAILURE 74 +#define ERROR_XGA_OUT_MEMORY 75 +#define ERROR_FILE_EXISTS 80 +#define ERROR_DUP_FCB 81 +#define ERROR_CANNOT_MAKE 82 +#define ERROR_FAIL_I24 83 +#define ERROR_OUT_OF_STRUCTURES 84 +#define ERROR_ALREADY_ASSIGNED 85 +#define ERROR_INVALID_PASSWORD 86 +#define ERROR_INVALID_PARAMETER 87 +#define ERROR_NET_WRITE_FAULT 88 +#define ERROR_NO_PROC_SLOTS 89 +#define ERROR_NOT_FROZEN 90 +#define ERROR_SYS_COMP_NOT_LOADED 90 /*!*/ +#define ERR_TSTOVFL 91 +#define ERR_TSTDUP 92 +#define ERROR_NO_ITEMS 93 +#define ERROR_INTERRUPT 95 +#define ERROR_DEVICE_IN_USE 99 +#define ERROR_TOO_MANY_SEMAPHORES 100 +#define ERROR_EXCL_SEM_ALREADY_OWNED 101 +#define ERROR_SEM_IS_SET 102 +#define ERROR_TOO_MANY_SEM_REQUESTS 103 +#define ERROR_INVALID_AT_INTERRUPT_TIME 104 +#define ERROR_SEM_OWNER_DIED 105 +#define ERROR_SEM_USER_LIMIT 106 +#define ERROR_DISK_CHANGE 107 +#define ERROR_DRIVE_LOCKED 108 +#define ERROR_BROKEN_PIPE 109 +#define ERROR_OPEN_FAILED 110 +#define ERROR_BUFFER_OVERFLOW 111 +#define ERROR_DISK_FULL 112 +#define ERROR_NO_MORE_SEARCH_HANDLES 113 +#define ERROR_INVALID_TARGET_HANDLE 114 +#define ERROR_PROTECTION_VIOLATION 115 +#define ERROR_VIOKBD_REQUEST 116 +#define ERROR_INVALID_CATEGORY 117 +#define ERROR_INVALID_VERIFY_SWITCH 118 +#define ERROR_BAD_DRIVER_LEVEL 119 +#define ERROR_CALL_NOT_IMPLEMENTED 120 +#define ERROR_SEM_TIMEOUT 121 +#define ERROR_INSUFFICIENT_BUFFER 122 +#define ERROR_INVALID_NAME 123 +#define ERROR_INVALID_LEVEL 124 +#define ERROR_NO_VOLUME_LABEL 125 +#define ERROR_MOD_NOT_FOUND 126 +#define ERROR_PROC_NOT_FOUND 127 +#define ERROR_WAIT_NO_CHILDREN 128 +#define ERROR_CHILD_NOT_COMPLETE 129 +#define ERROR_DIRECT_ACCESS_HANDLE 130 +#define ERROR_NEGATIVE_SEEK 131 +#define ERROR_SEEK_ON_DEVICE 132 +#define ERROR_IS_JOIN_TARGET 133 +#define ERROR_IS_JOINED 134 +#define ERROR_IS_SUBSTED 135 +#define ERROR_NOT_JOINED 136 +#define ERROR_NOT_SUBSTED 137 +#define ERROR_JOIN_TO_JOIN 138 +#define ERROR_SUBST_TO_SUBST 139 +#define ERROR_JOIN_TO_SUBST 140 +#define ERROR_SUBST_TO_JOIN 141 +#define ERROR_BUSY_DRIVE 142 +#define ERROR_SAME_DRIVE 143 +#define ERROR_DIR_NOT_ROOT 144 +#define ERROR_DIR_NOT_EMPTY 145 +#define ERROR_IS_SUBST_PATH 146 +#define ERROR_IS_JOIN_PATH 147 +#define ERROR_PATH_BUSY 148 +#define ERROR_IS_SUBST_TARGET 149 +#define ERROR_SYSTEM_TRACE 150 +#define ERROR_INVALID_EVENT_COUNT 151 +#define ERROR_TOO_MANY_MUXWAITERS 152 +#define ERROR_INVALID_LIST_FORMAT 153 +#define ERROR_LABEL_TOO_LONG 154 +#define ERROR_TOO_MANY_TCBS 155 +#define ERROR_SIGNAL_REFUSED 156 +#define ERROR_DISCARDED 157 +#define ERROR_NOT_LOCKED 158 +#define ERROR_BAD_THREADID_ADDR 159 +#define ERROR_BAD_ARGUMENTS 160 +#define ERROR_BAD_PATHNAME 161 +#define ERROR_SIGNAL_PENDING 162 +#define ERROR_UNCERTAIN_MEDIA 163 +#define ERROR_MAX_THRDS_REACHED 164 +#define ERROR_MONITORS_NOT_SUPPORTED 165 +#define ERROR_UNC_DRIVER_NOT_INSTALLED 166 +#define ERROR_LOCK_FAILED 167 +#define ERROR_SWAPIO_FAILED 168 +#define ERROR_SWAPIN_FAILED 169 +#define ERROR_BUSY 170 +#define ERROR_CANCEL_VIOLATION 173 +#define ERROR_ATOMIC_LOCK_NOT_SUPPORTED 174 +#define ERROR_READ_LOCKS_NOT_SUPPORTED 175 +#define ERROR_INVALID_SEGMENT_NUMBER 180 +#define ERROR_INVALID_CALLGATE 181 +#define ERROR_INVALID_ORDINAL 182 +#define ERROR_ALREADY_EXISTS 183 +#define ERROR_NO_CHILD_PROCESS 184 +#define ERROR_CHILD_ALIVE_NOWAIT 185 +#define ERROR_INVALID_FLAG_NUMBER 186 +#define ERROR_SEM_NOT_FOUND 187 +#define ERROR_INVALID_STARTING_CODESEG 188 +#define ERROR_INVALID_STACKSEG 189 +#define ERROR_INVALID_MODULETYPE 190 +#define ERROR_INVALID_EXE_SIGNATURE 191 +#define ERROR_EXE_MARKED_INVALID 192 +#define ERROR_BAD_EXE_FORMAT 193 +#define ERROR_ITERATED_DATA_EXCEEDS_64K 194 +#define ERROR_INVALID_MINALLOCSIZE 195 +#define ERROR_DYNLINK_FROM_INVALID_RING 196 +#define ERROR_IOPL_NOT_ENABLED 197 +#define ERROR_INVALID_SEGDPL 198 +#define ERROR_AUTODATASEG_EXCEEDS_64K 199 +#define ERROR_RING2SEG_MUST_BE_MOVABLE 200 +#define ERROR_RELOCSRC_CHAIN_EXCEEDS_SEGLIMIT 201 +#define ERROR_INFLOOP_IN_RELOC_CHAIN 202 +#define ERROR_ENVVAR_NOT_FOUND 203 +#define ERROR_NOT_CURRENT_CTRY 204 +#define ERROR_NO_SIGNAL_SENT 205 +#define ERROR_FILENAME_EXCED_RANGE 206 +#define ERROR_RING2_STACK_IN_USE 207 +#define ERROR_META_EXPANSION_TOO_LONG 208 +#define ERROR_INVALID_SIGNAL_NUMBER 209 +#define ERROR_THREAD_1_INACTIVE 210 +#define ERROR_INFO_NOT_AVAIL 211 +#define ERROR_LOCKED 212 +#define ERROR_BAD_DYNALINK 213 +#define ERROR_TOO_MANY_MODULES 214 +#define ERROR_NESTING_NOT_ALLOWED 215 +#define ERROR_CANNOT_SHRINK 216 +#define ERROR_ZOMBIE_PROCESS 217 +#define ERROR_STACK_IN_HIGH_MEMORY 218 +#define ERROR_INVALID_EXITROUTINE_RING 219 +#define ERROR_GETBUF_FAILED 220 +#define ERROR_FLUSHBUF_FAILED 221 +#define ERROR_TRANSFER_TOO_LONG 222 +#define ERROR_FORCENOSWAP_FAILED 223 +#define ERROR_SMG_NO_TARGET_WINDOW 224 +#define ERROR_NO_CHILDREN 228 +#define ERROR_INVALID_SCREEN_GROUP 229 +#define ERROR_BAD_PIPE 230 +#define ERROR_PIPE_BUSY 231 +#define ERROR_NO_DATA 232 +#define ERROR_PIPE_NOT_CONNECTED 233 +#define ERROR_MORE_DATA 234 +#define ERROR_VC_DISCONNECTED 240 +#define ERROR_CIRCULARITY_REQUESTED 250 +#define ERROR_DIRECTORY_IN_CDS 251 +#define ERROR_INVALID_FSD_NAME 252 +#define ERROR_INVALID_PATH 253 +#define ERROR_INVALID_EA_NAME 254 +#define ERROR_EA_LIST_INCONSISTENT 255 +#define ERROR_EA_LIST_TOO_LONG 256 +#define ERROR_NO_META_MATCH 257 +#define ERROR_FINDNOTIFY_TIMEOUT 258 +#define ERROR_NO_MORE_ITEMS 259 +#define ERROR_SEARCH_STRUC_REUSED 260 +#define ERROR_CHAR_NOT_FOUND 261 +#define ERROR_TOO_MUCH_STACK 262 +#define ERROR_INVALID_ATTR 263 +#define ERROR_INVALID_STARTING_RING 264 +#define ERROR_INVALID_DLL_INIT_RING 265 +#define ERROR_CANNOT_COPY 266 +#define ERROR_DIRECTORY 267 +#define ERROR_OPLOCKED_FILE 268 +#define ERROR_OPLOCK_THREAD_EXISTS 269 +#define ERROR_VOLUME_CHANGED 270 +#define ERROR_FINDNOTIFY_HANDLE_IN_USE 271 +#define ERROR_FINDNOTIFY_HANDLE_CLOSED 272 +#define ERROR_NOTIFY_OBJECT_REMOVED 273 +#define ERROR_ALREADY_SHUTDOWN 274 +#define ERROR_EAS_DIDNT_FIT 275 +#define ERROR_EA_FILE_CORRUPT 276 +#define ERROR_EA_TABLE_FULL 277 +#define ERROR_INVALID_EA_HANDLE 278 +#define ERROR_NO_CLUSTER 279 +#define ERROR_CREATE_EA_FILE 280 +#define ERROR_CANNOT_OPEN_EA_FILE 281 +#define ERROR_EAS_NOT_SUPPORTED 282 +#define ERROR_NEED_EAS_FOUND 283 +#define ERROR_DUPLICATE_HANDLE 284 +#define ERROR_DUPLICATE_NAME 285 +#define ERROR_EMPTY_MUXWAIT 286 +#define ERROR_MUTEX_OWNED 287 +#define ERROR_NOT_OWNER 288 +#define ERROR_PARAM_TOO_SMALL 289 +#define ERROR_TOO_MANY_HANDLES 290 +#define ERROR_TOO_MANY_OPENS 291 +#define ERROR_WRONG_TYPE 292 +#define ERROR_UNUSED_CODE 293 +#define ERROR_THREAD_NOT_TERMINATED 294 +#define ERROR_INIT_ROUTINE_FAILED 295 +#define ERROR_MODULE_IN_USE 296 +#define ERROR_NOT_ENOUGH_WATCHPOINTS 297 +#define ERROR_TOO_MANY_POSTS 298 +#define ERROR_ALREADY_POSTED 299 +#define ERROR_ALREADY_RESET 300 +#define ERROR_SEM_BUSY 301 +#define ERROR_INVALID_PROCID 303 +#define ERROR_INVALID_PDELTA 304 +#define ERROR_NOT_DESCENDANT 305 +#define ERROR_NOT_SESSION_MANAGER 306 +#define ERROR_INVALID_PCLASS 307 +#define ERROR_INVALID_SCOPE 308 +#define ERROR_INVALID_THREADID 309 +#define ERROR_DOSSUB_SHRINK 310 +#define ERROR_DOSSUB_NOMEM 311 +#define ERROR_DOSSUB_OVERLAP 312 +#define ERROR_DOSSUB_BADSIZE 313 +#define ERROR_DOSSUB_BADFLAG 314 +#define ERROR_DOSSUB_BADSELECTOR 315 +#define ERROR_MR_MSG_TOO_LONG 316 +#define ERROR_MR_MID_NOT_FOUND 317 +#define ERROR_MR_UN_ACC_MSGF 318 +#define ERROR_MR_INV_MSGF_FORMAT 319 +#define ERROR_MR_INV_IVCOUNT 320 +#define ERROR_MR_UN_PERFORM 321 +#define ERROR_TS_WAKEUP 322 +#define ERROR_TS_SEMHANDLE 323 +#define ERROR_TS_NOTIMER 324 +#define ERROR_TS_HANDLE 326 +#define ERROR_TS_DATETIME 327 +#define ERROR_SYS_INTERNAL 328 +#define ERROR_QUE_CURRENT_NAME 329 +#define ERROR_QUE_PROC_NOT_OWNED 330 +#define ERROR_QUE_PROC_OWNED 331 +#define ERROR_QUE_DUPLICATE 332 +#define ERROR_QUE_ELEMENT_NOT_EXIST 333 +#define ERROR_QUE_NO_MEMORY 334 +#define ERROR_QUE_INVALID_NAME 335 +#define ERROR_QUE_INVALID_PRIORITY 336 +#define ERROR_QUE_INVALID_HANDLE 337 +#define ERROR_QUE_LINK_NOT_FOUND 338 +#define ERROR_QUE_MEMORY_ERROR 339 +#define ERROR_QUE_PREV_AT_END 340 +#define ERROR_QUE_PROC_NO_ACCESS 341 +#define ERROR_QUE_EMPTY 342 +#define ERROR_QUE_NAME_NOT_EXIST 343 +#define ERROR_QUE_NOT_INITIALIZED 344 +#define ERROR_QUE_UNABLE_TO_ACCESS 345 +#define ERROR_QUE_UNABLE_TO_ADD 346 +#define ERROR_QUE_UNABLE_TO_INIT 347 +#define ERROR_VIO_INVALID_MASK 349 +#define ERROR_VIO_PTR 350 +#define ERROR_VIO_APTR 351 +#define ERROR_VIO_RPTR 352 +#define ERROR_VIO_CPTR 353 +#define ERROR_VIO_LPTR 354 +#define ERROR_VIO_MODE 355 +#define ERROR_VIO_WIDTH 356 +#define ERROR_VIO_ATTR 357 +#define ERROR_VIO_ROW 358 +#define ERROR_VIO_COL 359 +#define ERROR_VIO_TOPROW 360 +#define ERROR_VIO_BOTROW 361 +#define ERROR_VIO_RIGHTCOL 362 +#define ERROR_VIO_LEFTCOL 363 +#define ERROR_SCS_CALL 364 +#define ERROR_SCS_VALUE 365 +#define ERROR_VIO_WAIT_FLAG 366 +#define ERROR_VIO_UNLOCK 367 +#define ERROR_SGS_NOT_SESSION_MGR 368 +#define ERROR_SMG_INVALID_SGID 369 +#define ERROR_SMG_INVALID_SESSION_ID 369 /*!*/ +#define ERROR_SMG_NOSG 370 +#define ERROR_SMG_NO_SESSIONS 370 /*!*/ +#define ERROR_SMG_GRP_NOT_FOUND 371 +#define ERROR_SMG_SESSION_NOT_FOUND 371 /*!*/ +#define ERROR_SMG_SET_TITLE 372 +#define ERROR_KBD_PARAMETER 373 +#define ERROR_KBD_NO_DEVICE 374 +#define ERROR_KBD_INVALID_IOWAIT 375 +#define ERROR_KBD_INVALID_LENGTH 376 +#define ERROR_KBD_INVALID_ECHO_MASK 377 +#define ERROR_KBD_INVALID_INPUT_MASK 378 +#define ERROR_MON_INVALID_PARMS 379 +#define ERROR_MON_INVALID_DEVNAME 380 +#define ERROR_MON_INVALID_HANDLE 381 +#define ERROR_MON_BUFFER_TOO_SMALL 382 +#define ERROR_MON_BUFFER_EMPTY 383 +#define ERROR_MON_DATA_TOO_LARGE 384 +#define ERROR_MOUSE_NO_DEVICE 385 +#define ERROR_MOUSE_INV_HANDLE 386 +#define ERROR_MOUSE_INV_PARMS 387 +#define ERROR_MOUSE_CANT_RESET 388 +#define ERROR_MOUSE_DISPLAY_PARMS 389 +#define ERROR_MOUSE_INV_MODULE 390 +#define ERROR_MOUSE_INV_ENTRY_PT 391 +#define ERROR_MOUSE_INV_MASK 392 +#define NO_ERROR_MOUSE_NO_DATA 393 +#define NO_ERROR_MOUSE_PTR_DRAWN 394 +#define ERROR_INVALID_FREQUENCY 395 +#define ERROR_NLS_NO_COUNTRY_FILE 396 +#define ERROR_NLS_OPEN_FAILED 397 +#define ERROR_NLS_NO_CTRY_CODE 398 +#define ERROR_NLS_TABLE_TRUNCATED 399 +#define ERROR_NLS_BAD_TYPE 400 +#define ERROR_NLS_TYPE_NOT_FOUND 401 +#define ERROR_VIO_SMG_ONLY 402 +#define ERROR_VIO_INVALID_ASCIIZ 403 +#define ERROR_VIO_DEREGISTER 404 +#define ERROR_VIO_NO_POPUP 405 +#define ERROR_VIO_EXISTING_POPUP 406 +#define ERROR_KBD_SMG_ONLY 407 +#define ERROR_KBD_INVALID_ASCIIZ 408 +#define ERROR_KBD_INVALID_MASK 409 +#define ERROR_KBD_REGISTER 410 +#define ERROR_KBD_DEREGISTER 411 +#define ERROR_MOUSE_SMG_ONLY 412 +#define ERROR_MOUSE_INVALID_ASCIIZ 413 +#define ERROR_MOUSE_INVALID_MASK 414 +#define ERROR_MOUSE_REGISTER 415 +#define ERROR_MOUSE_DEREGISTER 416 +#define ERROR_SMG_BAD_ACTION 417 +#define ERROR_SMG_INVALID_CALL 418 +#define ERROR_SCS_SG_NOTFOUND 419 +#define ERROR_SCS_NOT_SHELL 420 +#define ERROR_VIO_INVALID_PARMS 421 +#define ERROR_VIO_FUNCTION_OWNED 422 +#define ERROR_VIO_RETURN 423 +#define ERROR_SCS_INVALID_FUNCTION 424 +#define ERROR_SCS_NOT_SESSION_MGR 425 +#define ERROR_VIO_REGISTER 426 +#define ERROR_VIO_NO_MODE_THREAD 427 +#define ERROR_VIO_NO_SAVE_RESTORE_THD 428 +#define ERROR_VIO_IN_BG 429 +#define ERROR_VIO_ILLEGAL_DURING_POPUP 430 +#define ERROR_SMG_NOT_BASESHELL 431 +#define ERROR_SMG_BAD_STATUSREQ 432 +#define ERROR_QUE_INVALID_WAIT 433 +#define ERROR_VIO_LOCK 434 +#define ERROR_MOUSE_INVALID_IOWAIT 435 +#define ERROR_VIO_INVALID_HANDLE 436 +#define ERROR_VIO_ILLEGAL_DURING_LOCK 437 +#define ERROR_VIO_INVALID_LENGTH 438 +#define ERROR_KBD_INVALID_HANDLE 439 +#define ERROR_KBD_NO_MORE_HANDLE 440 +#define ERROR_KBD_CANNOT_CREATE_KCB 441 +#define ERROR_KBD_CODEPAGE_LOAD_INCOMPL 442 +#define ERROR_KBD_INVALID_CODEPAGE_ID 443 +#define ERROR_KBD_NO_CODEPAGE_SUPPORT 444 +#define ERROR_KBD_FOCUS_REQUIRED 445 +#define ERROR_KBD_FOCUS_ALREADY_ACTIVE 446 +#define ERROR_KBD_KEYBOARD_BUSY 447 +#define ERROR_KBD_INVALID_CODEPAGE 448 +#define ERROR_KBD_UNABLE_TO_FOCUS 449 +#define ERROR_SMG_SESSION_NON_SELECT 450 +#define ERROR_SMG_SESSION_NOT_FOREGRND 451 +#define ERROR_SMG_SESSION_NOT_PARENT 452 +#define ERROR_SMG_INVALID_START_MODE 453 +#define ERROR_SMG_INVALID_RELATED_OPT 454 +#define ERROR_SMG_INVALID_BOND_OPTION 455 +#define ERROR_SMG_INVALID_SELECT_OPT 456 +#define ERROR_SMG_START_IN_BACKGROUND 457 +#define ERROR_SMG_INVALID_STOP_OPTION 458 +#define ERROR_SMG_BAD_RESERVE 459 +#define ERROR_SMG_PROCESS_NOT_PARENT 460 +#define ERROR_SMG_INVALID_DATA_LENGTH 461 +#define ERROR_SMG_NOT_BOUND 462 +#define ERROR_SMG_RETRY_SUB_ALLOC 463 +#define ERROR_KBD_DETACHED 464 +#define ERROR_VIO_DETACHED 465 +#define ERROR_MOU_DETACHED 466 +#define ERROR_VIO_FONT 467 +#define ERROR_VIO_USER_FONT 468 +#define ERROR_VIO_BAD_CP 469 +#define ERROR_VIO_NO_CP 470 +#define ERROR_VIO_NA_CP 471 +#define ERROR_INVALID_CODE_PAGE 472 +#define ERROR_CPLIST_TOO_SMALL 473 +#define ERROR_CP_NOT_MOVED 474 +#define ERROR_MODE_SWITCH_INIT 475 +#define ERROR_CODE_PAGE_NOT_FOUND 476 +#define ERROR_UNEXPECTED_SLOT_RETURNED 477 +#define ERROR_SMG_INVALID_TRACE_OPTION 478 +#define ERROR_VIO_INTERNAL_RESOURCE 479 +#define ERROR_VIO_SHELL_INIT 480 +#define ERROR_SMG_NO_HARD_ERRORS 481 +#define ERROR_CP_SWITCH_INCOMPLETE 482 +#define ERROR_VIO_TRANSPARENT_POPUP 483 +#define ERROR_CRITSEC_OVERFLOW 484 +#define ERROR_CRITSEC_UNDERFLOW 485 +#define ERROR_VIO_BAD_RESERVE 486 +#define ERROR_INVALID_ADDRESS 487 +#define ERROR_ZERO_SELECTORS_REQUESTED 488 +#define ERROR_NOT_ENOUGH_SELECTORS_AVA 489 +#define ERROR_INVALID_SELECTOR 490 +#define ERROR_SMG_INVALID_PROGRAM_TYPE 491 +#define ERROR_SMG_INVALID_PGM_CONTROL 492 +#define ERROR_SMG_INVALID_INHERIT_OPT 493 +#define ERROR_VIO_EXTENDED_SG 494 +#define ERROR_VIO_NOT_PRES_MGR_SG 495 +#define ERROR_VIO_SHIELD_OWNED 496 +#define ERROR_VIO_NO_MORE_HANDLES 497 +#define ERROR_VIO_SEE_ERROR_LOG 498 +#define ERROR_VIO_ASSOCIATED_DC 499 +#define ERROR_KBD_NO_CONSOLE 500 +#define ERROR_MOUSE_NO_CONSOLE 501 +#define ERROR_MOUSE_INVALID_HANDLE 502 +#define ERROR_SMG_INVALID_DEBUG_PARMS 503 +#define ERROR_KBD_EXTENDED_SG 504 +#define ERROR_MOU_EXTENDED_SG 505 +#define ERROR_SMG_INVALID_ICON_FILE 506 +#define ERROR_TRC_PID_NON_EXISTENT 507 +#define ERROR_TRC_COUNT_ACTIVE 508 +#define ERROR_TRC_SUSPENDED_BY_COUNT 509 +#define ERROR_TRC_COUNT_INACTIVE 510 +#define ERROR_TRC_COUNT_REACHED 511 +#define ERROR_NO_MC_TRACE 512 +#define ERROR_MC_TRACE 513 +#define ERROR_TRC_COUNT_ZERO 514 +#define ERROR_SMG_TOO_MANY_DDS 515 +#define ERROR_SMG_INVALID_NOTIFICATION 516 +#define ERROR_LF_INVALID_FUNCTION 517 +#define ERROR_LF_NOT_AVAIL 518 +#define ERROR_LF_SUSPENDED 519 +#define ERROR_LF_BUF_TOO_SMALL 520 +#define ERROR_LF_BUFFER_CORRUPTED 521 +#define ERROR_LF_BUFFER_FULL 521 /*!*/ +#define ERROR_LF_INVALID_DAEMON 522 +#define ERROR_LF_INVALID_RECORD 522 /*!*/ +#define ERROR_LF_INVALID_TEMPL 523 +#define ERROR_LF_INVALID_SERVICE 523 /*!*/ +#define ERROR_LF_GENERAL_FAILURE 524 +#define ERROR_LF_INVALID_ID 525 +#define ERROR_LF_INVALID_HANDLE 526 +#define ERROR_LF_NO_ID_AVAIL 527 +#define ERROR_LF_TEMPLATE_AREA_FULL 528 +#define ERROR_LF_ID_IN_USE 529 +#define ERROR_MOU_NOT_INITIALIZED 530 +#define ERROR_MOUINITREAL_DONE 531 +#define ERROR_DOSSUB_CORRUPTED 532 +#define ERROR_MOUSE_CALLER_NOT_SUBSYS 533 +#define ERROR_ARITHMETIC_OVERFLOW 534 +#define ERROR_TMR_NO_DEVICE 535 +#define ERROR_TMR_INVALID_TIME 536 +#define ERROR_PVW_INVALID_ENTITY 537 +#define ERROR_PVW_INVALID_ENTITY_TYPE 538 +#define ERROR_PVW_INVALID_SPEC 539 +#define ERROR_PVW_INVALID_RANGE_TYPE 540 +#define ERROR_PVW_INVALID_COUNTER_BLK 541 +#define ERROR_PVW_INVALID_TEXT_BLK 542 +#define ERROR_PRF_NOT_INITIALIZED 543 +#define ERROR_PRF_ALREADY_INITIALIZED 544 +#define ERROR_PRF_NOT_STARTED 545 +#define ERROR_PRF_ALREADY_STARTED 546 +#define ERROR_PRF_TIMER_OUT_OF_RANGE 547 +#define ERROR_PRF_TIMER_RESET 548 +#define ERROR_VDD_LOCK_USEAGE_DENIED 639 +#define ERROR_TIMEOUT 640 +#define ERROR_VDM_DOWN 641 +#define ERROR_VDM_LIMIT 642 +#define ERROR_VDD_NOT_FOUND 643 +#define ERROR_INVALID_CALLER 644 +#define ERROR_PID_MISMATCH 645 +#define ERROR_INVALID_VDD_HANDLE 646 +#define ERROR_VLPT_NO_SPOOLER 647 +#define ERROR_VCOM_DEVICE_BUSY 648 +#define ERROR_VLPT_DEVICE_BUSY 649 +#define ERROR_NESTING_TOO_DEEP 650 +#define ERROR_VDD_MISSING 651 +#define ERROR_BIDI_INVALID_LENGTH 671 +#define ERROR_BIDI_INVALID_INCREMENT 672 +#define ERROR_BIDI_INVALID_COMBINATION 673 +#define ERROR_BIDI_INVALID_RESERVED 674 +#define ERROR_BIDI_INVALID_EFFECT 675 +#define ERROR_BIDI_INVALID_CSDREC 676 +#define ERROR_BIDI_INVALID_CSDSTATE 677 +#define ERROR_BIDI_INVALID_LEVEL 678 +#define ERROR_BIDI_INVALID_TYPE_SUPPORT 679 +#define ERROR_BIDI_INVALID_ORIENTATION 680 +#define ERROR_BIDI_INVALID_NUM_SHAPE 681 +#define ERROR_BIDI_INVALID_CSD 682 +#define ERROR_BIDI_NO_SUPPORT 683 +#define NO_ERROR_BIDI_RW_INCOMPLETE 684 +#define ERROR_IMP_INVALID_PARM 691 +#define ERROR_IMP_INVALID_LENGTH 692 +#define ERROR_MON_BAD_BUFFER 730 +#define ERROR_MODULE_CORRUPTED 731 +#define ERROR_SM_OUTOF_SWAPFILE 1477 +#define ERROR_LF_TIMEOUT 2055 +#define ERROR_LF_SUSPEND_SUCCESS 2057 +#define ERROR_LF_RESUME_SUCCESS 2058 +#define ERROR_LF_REDIRECT_SUCCESS 2059 +#define ERROR_LF_REDIRECT_FAILURE 2060 +#define ERROR_SWAPPER_NOT_ACTIVE 32768 +#define ERROR_INVALID_SWAPID 32769 +#define ERROR_IOERR_SWAP_FILE 32770 +#define ERROR_SWAP_TABLE_FULL 32771 +#define ERROR_SWAP_FILE_FULL 32772 +#define ERROR_CANT_INIT_SWAPPER 32773 +#define ERROR_SWAPPER_ALREADY_INIT 32774 +#define ERROR_PMM_INSUFFICIENT_MEMORY 32775 +#define ERROR_PMM_INVALID_FLAGS 32776 +#define ERROR_PMM_INVALID_ADDRESS 32777 +#define ERROR_PMM_LOCK_FAILED 32778 +#define ERROR_PMM_UNLOCK_FAILED 32779 +#define ERROR_PMM_MOVE_INCOMPLETE 32780 +#define ERROR_UCOM_DRIVE_RENAMED 32781 +#define ERROR_UCOM_FILENAME_TRUNCATED 32782 +#define ERROR_UCOM_BUFFER_LENGTH 32783 +#define ERROR_MON_CHAIN_HANDLE 32784 +#define ERROR_MON_NOT_REGISTERED 32785 +#define ERROR_SMG_ALREADY_TOP 32786 +#define ERROR_PMM_ARENA_MODIFIED 32787 +#define ERROR_SMG_PRINTER_OPEN 32788 +#define ERROR_PMM_SET_FLAGS_FAILED 32789 +#define ERROR_INVALID_DOS_DD 32790 +#define ERROR_BLOCKED 32791 +#define ERROR_NOBLOCK 32792 +#define ERROR_INSTANCE_SHARED 32793 +#define ERROR_NO_OBJECT 32794 +#define ERROR_PARTIAL_ATTACH 32795 +#define ERROR_INCACHE 32796 +#define ERROR_SWAP_IO_PROBLEMS 32797 +#define ERROR_CROSSES_OBJECT_BOUNDARY 32798 +#define ERROR_LONGLOCK 32799 +#define ERROR_SHORTLOCK 32800 +#define ERROR_UVIRTLOCK 32801 +#define ERROR_ALIASLOCK 32802 +#define ERROR_ALIAS 32803 +#define ERROR_NO_MORE_HANDLES 32804 +#define ERROR_SCAN_TERMINATED 32805 +#define ERROR_TERMINATOR_NOT_FOUND 32806 +#define ERROR_NOT_DIRECT_CHILD 32807 +#define ERROR_DELAY_FREE 32808 +#define ERROR_GUARDPAGE 32809 +#define ERROR_SWAPERROR 32900 +#define ERROR_LDRERROR 32901 +#define ERROR_NOMEMORY 32902 +#define ERROR_NOACCESS 32903 +#define ERROR_NO_DLL_TERM 32904 +#define ERROR_CPSIO_CODE_PAGE_INVALID 65026 +#define ERROR_CPSIO_NO_SPOOLER 65027 +#define ERROR_CPSIO_FONT_ID_INVALID 65028 +#define ERROR_CPSIO_INTERNAL_ERROR 65033 +#define ERROR_CPSIO_INVALID_PTR_NAME 65034 +#define ERROR_CPSIO_NOT_ACTIVE 65037 +#define ERROR_CPSIO_PID_FULL 65039 +#define ERROR_CPSIO_PID_NOT_FOUND 65040 +#define ERROR_CPSIO_READ_CTL_SEQ 65043 +#define ERROR_CPSIO_READ_FNT_DEF 65045 +#define ERROR_CPSIO_WRITE_ERROR 65047 +#define ERROR_CPSIO_WRITE_FULL_ERROR 65048 +#define ERROR_CPSIO_WRITE_HANDLE_BAD 65049 +#define ERROR_CPSIO_SWIT_LOAD 65074 +#define ERROR_CPSIO_INV_COMMAND 65077 +#define ERROR_CPSIO_NO_FONT_SWIT 65078 +#define ERROR_ENTRY_IS_CALLGATE 65079 + +#endif /* INCL_DOSERRORS */ + +/* ----------------------------- ERRORS ----------------------------------- */ + +#if defined (INCL_DOSERRORS) + +#define ERRACT_RETRY 1 +#define ERRACT_DLYRET 2 +#define ERRACT_USER 3 +#define ERRACT_ABORT 4 +#define ERRACT_PANIC 5 +#define ERRACT_IGNORE 6 +#define ERRACT_INTRET 7 + +#define ERRCLASS_OUTRES 1 +#define ERRCLASS_TEMPSIT 2 +#define ERRCLASS_AUTH 3 +#define ERRCLASS_INTRN 4 +#define ERRCLASS_HRDFAIL 5 +#define ERRCLASS_SYSFAIL 6 +#define ERRCLASS_APPERR 7 +#define ERRCLASS_NOTFND 8 +#define ERRCLASS_BADFMT 9 +#define ERRCLASS_LOCKED 10 +#define ERRCLASS_MEDIA 11 +#define ERRCLASS_ALREADY 12 +#define ERRCLASS_UNK 13 +#define ERRCLASS_CANT 14 +#define ERRCLASS_TIME 15 + +#define ERRLOC_UNK 1 +#define ERRLOC_DISK 2 +#define ERRLOC_NET 3 +#define ERRLOC_SERDEV 4 +#define ERRLOC_MEM 5 + +#endif /* INCL_DOSERRORS */ + +#if defined (INCL_DOSMISC) + +#define FERR_DISABLEHARDERR 0x0000L +#define FERR_ENABLEHARDERR 0x0001L +#define FERR_ENABLEEXCEPTION 0x0000L +#define FERR_DISABLEEXCEPTION 0x0002L + +#define BEGIN_LIBPATH 1 +#define END_LIBPATH 2 + +ULONG DosErrClass (ULONG ulCode, PULONG pulClass, PULONG pulAction, + PULONG pulLocus); +ULONG DosError (ULONG ulError); +ULONG DosQueryExtLIBPATH (PCSZ pszExtLIBPATH, ULONG flags); +ULONG DosSetExtLIBPATH (PCSZ pszExtLIBPATH, ULONG flags); + +#endif /* INCL_DOSMISC */ + +/* ----------------------------- FONTS ------------------------------------ */ + +#define FACESIZE 32 + +#define FATTR_SEL_ITALIC 0x0001 +#define FATTR_SEL_UNDERSCORE 0x0002 +#define FATTR_SEL_OUTLINE 0x0008 +#define FATTR_SEL_STRIKEOUT 0x0010 +#define FATTR_SEL_BOLD 0x0020 + +#define FATTR_TYPE_KERNING 0x0004 +#define FATTR_TYPE_MBCS 0x0008 +#define FATTR_TYPE_DBCS 0x0010 +#define FATTR_TYPE_ANTIALIASED 0x0020 + +#define FATTR_FONTUSE_NOMIX 0x0002 +#define FATTR_FONTUSE_OUTLINE 0x0004 +#define FATTR_FONTUSE_TRANSFORMABLE 0x0008 + +#define FM_TYPE_FIXED 0x0001 +#define FM_TYPE_LICENSED 0x0002 +#define FM_TYPE_KERNING 0x0004 +#define FM_TYPE_DBCS 0x0010 +#define FM_TYPE_MBCS 0x0018 +#define FM_TYPE_64K 0x8000 +#define FM_TYPE_ATOMS 0x4000 +#define FM_TYPE_FAMTRUNC 0x2000 +#define FM_TYPE_FACETRUNC 0x1000 + +#define FM_DEFN_OUTLINE 0x0001 +#define FM_DEFN_IFI 0x0002 +#define FM_DEFN_WIN 0x0004 +#define FM_DEFN_GENERIC 0x8000 + +#define FM_SEL_ITALIC 0x0001 +#define FM_SEL_UNDERSCORE 0x0002 +#define FM_SEL_NEGATIVE 0x0004 +#define FM_SEL_OUTLINE 0x0008 +#define FM_SEL_STRIKEOUT 0x0010 +#define FM_SEL_BOLD 0x0020 +#define FM_SEL_ISO9241_TESTED 0x0040 + +#define FM_CAP_NOMIX 0x0001 + +#define FM_ISO_9518_640 0x01 +#define FM_ISO_9515_640 0x02 +#define FM_ISO_9515_1024 0x04 +#define FM_ISO_9517_640 0x08 +#define FM_ISO_9517_1024 0x10 + + +typedef struct _PANOSE +{ + BYTE bFamilyType; + BYTE bSerifStyle; + BYTE bWeight; + BYTE bProportion; + BYTE bContrast; + BYTE bStrokeVariation; + BYTE bArmStyle; + BYTE bLetterform; + BYTE bMidline; + BYTE bXHeight; + BYTE fbPassedISO; + BYTE fbFailedISO; +} PANOSE; + +typedef struct _FONTMETRICS +{ + CHAR szFamilyname[FACESIZE]; + CHAR szFacename[FACESIZE]; + USHORT idRegistry; + USHORT usCodePage; + LONG lEmHeight; + LONG lXHeight; + LONG lMaxAscender; + LONG lMaxDescender; + LONG lLowerCaseAscent; + LONG lLowerCaseDescent; + LONG lInternalLeading; + LONG lExternalLeading; + LONG lAveCharWidth; + LONG lMaxCharInc; + LONG lEmInc; + LONG lMaxBaselineExt; + SHORT sCharSlope; + SHORT sInlineDir; + SHORT sCharRot; + USHORT usWeightClass; + USHORT usWidthClass; + SHORT sXDeviceRes; + SHORT sYDeviceRes; + SHORT sFirstChar; + SHORT sLastChar; + SHORT sDefaultChar; + SHORT sBreakChar; + SHORT sNominalPointSize; + SHORT sMinimumPointSize; + SHORT sMaximumPointSize; + USHORT fsType; + USHORT fsDefn; + USHORT fsSelection; + USHORT fsCapabilities; + LONG lSubscriptXSize; + LONG lSubscriptYSize; + LONG lSubscriptXOffset; + LONG lSubscriptYOffset; + LONG lSuperscriptXSize; + LONG lSuperscriptYSize; + LONG lSuperscriptXOffset; + LONG lSuperscriptYOffset; + LONG lUnderscoreSize; + LONG lUnderscorePosition; + LONG lStrikeoutSize; + LONG lStrikeoutPosition; + SHORT sKerningPairs; + SHORT sFamilyClass; + LONG lMatch; + LONG FamilyNameAtom; + LONG FaceNameAtom; + PANOSE panose; +} FONTMETRICS; +typedef FONTMETRICS *PFONTMETRICS; + +typedef struct _FATTRS +{ + USHORT usRecordLength; + USHORT fsSelection; + LONG lMatch; + CHAR szFacename[FACESIZE]; + USHORT idRegistry; + USHORT usCodePage; + LONG lMaxBaselineExt; + LONG lAveCharWidth; + USHORT fsType; + USHORT fsFontUse; +} FATTRS; +typedef FATTRS *PFATTRS; + +/* ------------------------- MEMORY MANAGEMENT ---------------------------- */ + +#if defined (INCL_DOSMEMMGR) || !defined (INCL_NOCOMMON) + +#define PAG_READ 0x0001 +#define PAG_WRITE 0x0002 +#define PAG_EXECUTE 0x0004 +#define PAG_GUARD 0x0008 +#define PAG_COMMIT 0x0010 +#define PAG_DECOMMIT 0x0020 +#define OBJ_TILE 0x0040 +#define OBJ_PROTECTED 0x0080 +#define OBJ_GETTABLE 0x0100 +#define OBJ_GIVEABLE 0x0200 +#define PAG_DEFAULT 0x0400 +#define PAG_SHARED 0x2000 +#define PAG_FREE 0x4000 +#define PAG_BASE 0x00010000 + +#define DOSSUB_INIT 0x0001 +#define DOSSUB_GROW 0x0002 +#define DOSSUB_SPARSE_OBJ 0x0004 +#define DOSSUB_SERIALIZE 0x0008 + +#define fPERM (PAG_EXECUTE | PAG_READ | PAG_WRITE) +#define fSHARE (OBJ_GETTABLE | OBJ_GIVEABLE) +#define fALLOC (fPERM | OBJ_TILE | PAG_COMMIT) +#define fALLOCSHR (fPERM | fSHARE | OBJ_TILE | PAG_COMMIT) +#define fGETNMSHR (fPERM) +#define fGETSHR (fPERM) +#define fGIVESHR (fPERM) +#define fSET (fPERM|PAG_COMMIT|PAG_DECOMMIT|PAG_DEFAULT) + +ULONG DosAllocMem (PPVOID pBaseAddress, ULONG ulObjectSize, + ULONG ulAllocationFlags); +ULONG DosAllocSharedMem (PPVOID pBaseAddress, PCSZ pszName, + ULONG ulObjectSize, ULONG ulAllocationFlags); +ULONG DosFreeMem (PVOID pBaseAddress); +ULONG DosGetNamedSharedMem (PPVOID pBaseAddress, PCSZ pszSharedMemName, + ULONG ulAttributeFlags); +ULONG DosGetSharedMem (CPVOID pBaseAddress, ULONG ulAttributeFlags); +ULONG DosGiveSharedMem (CPVOID pBaseAddress, PID idProcessId, + ULONG ulAttributeFlags); +ULONG DosQueryMem (CPVOID pBaseAddress, PULONG pulRegionSize, + PULONG pulAllocationFlags); +ULONG DosSetMem (CPVOID pBaseAddress, ULONG ulRegionSize, + ULONG ulAttributeFlags); +ULONG DosSubAllocMem (PVOID pOffset, PPVOID pBlockOffset, ULONG ulSize); +ULONG DosSubFreeMem (PVOID pOffset, PVOID pBlockOffset, ULONG ulSize); +ULONG DosSubSetMem (PVOID pOffset, ULONG ulFlags, ULONG ulSize); +ULONG DosSubUnsetMem (PVOID pOffset); + +#endif /* INCL_DOSMEMMGR || !INCL_NOCOMMON */ + +/* --------------------------- FILE SYSTEM -------------------------------- */ + +#define CCHMAXPATH 260 +#define CCHMAXPATHCOMP 256 + +#if defined (INCL_DOSMISC) +#define DSP_IMPLIEDCUR 1 +#define DSP_PATHREF 2 +#define DSP_IGNORENETERR 4 +#endif + +#if defined (INCL_DOSFILEMGR) || !defined (INCL_NOCOMMON) + +#define DCPY_EXISTING 0x0001 +#define DCPY_APPEND 0x0002 +#define DCPY_FAILEAS 0x0004 + +#define DSPI_WRTTHRU 0x0010 + +#define EAT_BINARY 0xfffe +#define EAT_ASCII 0xfffd +#define EAT_BITMAP 0xfffb +#define EAT_METAFILE 0xfffa +#define EAT_ICON 0xfff9 +#define EAT_EA 0xffee +#define EAT_MVMT 0xffdf +#define EAT_MVST 0xffde +#define EAT_ASN1 0xffdd + +#define ENUMEA_LEVEL_NO_VALUE 1 + +#define ENUMEA_REFTYPE_FHANDLE 0 +#define ENUMEA_REFTYPE_PATH 1 +#define ENUMEA_REFTYPE_MAX ENUMEA_REFTYPE_PATH + +#define ENUMEA_REFTYPE_FHANDLE 0 +#define ENUMEA_REFTYPE_PATH 1 + +#define FEA_NEEDEA 0x80 + +#define FHB_DSKREMOTE 0x8000 +#define FHB_CHRDEVREMOTE 0x8000 +#define FHB_PIPEREMOTE 0x8000 + +#define FHT_DISKFILE 0x0000 +#define FHT_CHRDEV 0x0001 +#define FHT_PIPE 0x0002 + +#define FIL_STANDARD 1 +#define FIL_QUERYEASIZE 2 +#define FIL_QUERYEASFROMLIST 3 +#define FIL_QUERYFULLNAME 5 /* DosQueryPathInfo */ + +#define FILE_BEGIN 0 +#define FILE_CURRENT 1 +#define FILE_END 2 + +#define FILE_NORMAL 0x0000 +#define FILE_READONLY 0x0001 +#define FILE_HIDDEN 0x0002 +#define FILE_SYSTEM 0x0004 +#define FILE_DIRECTORY 0x0010 +#define FILE_ARCHIVED 0x0020 + +#define FILE_IGNORE 0x10000 + +#define FILE_EXISTED 0x0001 +#define FILE_CREATED 0x0002 +#define FILE_TRUNCATED 0x0003 + +#define FILE_OPEN 0x0001 +#define FILE_TRUNCATE 0x0002 +#define FILE_CREATE 0x0010 + +#define FS_ATTACH 0 +#define FS_DETACH 1 +#define FS_SPOOLATTACH 2 +#define FS_SPOOLDETACH 3 + +#define FSAIL_QUERYNAME 1 +#define FSAIL_DEVNUMBER 2 +#define FSAIL_DRVNUMBER 3 + +#define FSAT_CHARDEV 1 +#define FSAT_PSEUDODEV 2 +#define FSAT_LOCALDRV 3 +#define FSAT_REMOTEDRV 4 + +#define FSCTL_HANDLE 1 +#define FSCTL_PATHNAME 2 +#define FSCTL_FSDNAME 3 + +#define FSCTL_ERROR_INFO 1 +#define FSCTL_MAX_EASIZE 2 +#define FSCTL_GET_NEXT_ROUTE_NAME 3 +#define FSCTL_DAEMON_QUERY 4 + +#define FSCTL_QUERY_COMPLETE 0 +#define FSCTL_QUERY_AGAIN 1 + +#define FSIL_ALLOC 1 +#define FSIL_VOLSER 2 + +#define HANDTYPE_FILE 0x0000 +#define HANDTYPE_DEVICE 0x0001 +#define HANDTYPE_PIPE 0x0002 +#define HANDTYPE_PROTECTED 0x4000 +#define HANDTYPE_NETWORK 0x8000 + +#define HDIR_SYSTEM 1 +#define HDIR_CREATE ((HDIR)-1) + +#define MUST_HAVE_READONLY (FILE_READONLY | (FILE_READONLY << 8)) +#define MUST_HAVE_HIDDEN (FILE_HIDDEN | (FILE_HIDDEN << 8)) +#define MUST_HAVE_SYSTEM (FILE_SYSTEM | (FILE_SYSTEM << 8)) +#define MUST_HAVE_DIRECTORY (FILE_DIRECTORY | (FILE_DIRECTORY << 8)) +#define MUST_HAVE_ARCHIVED (FILE_ARCHIVED | (FILE_ARCHIVED << 8)) + +#define OPEN_ACTION_FAIL_IF_EXISTS 0x0000 +#define OPEN_ACTION_OPEN_IF_EXISTS 0x0001 +#define OPEN_ACTION_REPLACE_IF_EXISTS 0x0002 +#define OPEN_ACTION_FAIL_IF_NEW 0x0000 +#define OPEN_ACTION_CREATE_IF_NEW 0x0010 + +#define OPEN_ACCESS_READONLY 0x0000 +#define OPEN_ACCESS_WRITEONLY 0x0001 +#define OPEN_ACCESS_READWRITE 0x0002 + +#define OPEN_SHARE_DENYREADWRITE 0x0010 +#define OPEN_SHARE_DENYWRITE 0x0020 +#define OPEN_SHARE_DENYREAD 0x0030 +#define OPEN_SHARE_DENYNONE 0x0040 + +#define OPEN_FLAGS_NOINHERIT 0x0080 +#define OPEN_FLAGS_NO_LOCALITY 0x0000 +#define OPEN_FLAGS_SEQUENTIAL 0x0100 +#define OPEN_FLAGS_RANDOM 0x0200 +#define OPEN_FLAGS_RANDOMSEQUENTIAL 0x0300 +#define OPEN_FLAGS_NO_CACHE 0x1000 +#define OPEN_FLAGS_FAIL_ON_ERROR 0x2000 +#define OPEN_FLAGS_WRITE_THROUGH 0x4000 +#define OPEN_FLAGS_DASD 0x8000 +#define OPEN_FLAGS_NONSPOOLED 0x40000 +#define OPEN_FLAGS_PROTECTED_HANDLE 0x40000000 + +#define SEARCH_PATH 0x0000 +#define SEARCH_CUR_DIRECTORY 0x0001 +#define SEARCH_ENVIRONMENT 0x0002 +#define SEARCH_IGNORENETERRS 0x0004 + + +typedef LHANDLE HFILE; +typedef HFILE *PHFILE; + +typedef ULONG FHLOCK; +typedef PULONG PFHLOCK; + +typedef LHANDLE HDIR; +typedef HDIR *PHDIR; + + +typedef struct _FTIME +{ + USHORT twosecs : 5; + USHORT minutes : 6; + USHORT hours : 5; +} FTIME; +typedef FTIME *PFTIME; + +typedef struct _FDATE +{ + USHORT day : 5; + USHORT month : 4; + USHORT year : 7; +} FDATE; +typedef FDATE *PFDATE; + +typedef struct _FEA +{ + BYTE fEA; + BYTE cbName; + USHORT cbValue; +} FEA; +typedef FEA *PFEA; + +typedef struct _FEALIST +{ + ULONG cbList; + FEA list[1]; +} FEALIST; +typedef FEALIST *PFEALIST; + +typedef struct _GEA +{ + BYTE cbName; + CHAR szName[1]; +} GEA; +typedef GEA *PGEA; + +typedef struct _GEALIST +{ + ULONG cbList; + GEA list[1]; +} GEALIST; +typedef GEALIST *PGEALIST; + +typedef struct _EAOP +{ + PGEALIST fpGEAList; + PFEALIST fpFEAList; + ULONG oError; +} EAOP; +typedef EAOP *PEAOP; + +typedef struct _FEA2 +{ + ULONG oNextEntryOffset; + BYTE fEA; + BYTE cbName; + USHORT cbValue; + CHAR szName[1]; +} FEA2; +typedef FEA2 *PFEA2; + +typedef struct _FEA2LIST +{ + ULONG cbList; + FEA2 list[1]; +} FEA2LIST; +typedef FEA2LIST *PFEA2LIST; + +typedef struct _GEA2 +{ + ULONG oNextEntryOffset; + BYTE cbName; + CHAR szName[1]; +} GEA2; +typedef GEA2 *PGEA2; + +typedef struct _GEA2LIST +{ + ULONG cbList; + GEA2 list[1]; +} GEA2LIST; +typedef GEA2LIST *PGEA2LIST; + +typedef struct _EAOP2 +{ + PGEA2LIST fpGEA2List; + PFEA2LIST fpFEA2List; + ULONG oError; +} EAOP2; +typedef EAOP2 *PEAOP2; + +typedef struct _DENA1 +{ + UCHAR reserved; + UCHAR cbName; + USHORT cbValue; + UCHAR szName[1]; +} DENA1; +typedef DENA1 *PDENA1; + +typedef FEA2 DENA2; +typedef PFEA2 PDENA2; + +typedef struct _EASIZEBUF +{ + USHORT cbMaxEASize; + ULONG cbMaxEAListSize; /* Packed? */ +} EASIZEBUF; +typedef EASIZEBUF *PEASIZEBUF; + +typedef struct _ROUTENAMEBUF +{ + ULONG hRouteHandle; + UCHAR szRouteName; +} ROUTENAMEBUF; +typedef ROUTENAMEBUF *PROUTENAMEBUF; + +typedef struct _FSDTHREAD +{ + USHORT usFunc; + USHORT usStackSize; + ULONG ulPriorityClass; + LONG lPriorityLevel; +} FSDTHREAD; + +typedef struct _FSDDAEMON +{ + USHORT usNumThreads; + USHORT usMoreFlag; + USHORT usCallInstance; + FSDTHREAD tdThrds[16]; +} FSDDAEMON; + +typedef struct _FILEFINDBUF +{ + FDATE fdateCreation; + FTIME ftimeCreation; + FDATE fdateLastAccess; + FTIME ftimeLastAccess; + FDATE fdateLastWrite; + FTIME ftimeLastWrite; + ULONG cbFile; + ULONG cbFileAlloc; + USHORT attrFile; + UCHAR cchName; + CHAR achName[CCHMAXPATHCOMP]; +} FILEFINDBUF; +typedef FILEFINDBUF *PFILEFINDBUF; + +typedef struct _FILEFINDBUF2 +{ + FDATE fdateCreation; + FTIME ftimeCreation; + FDATE fdateLastAccess; + FTIME ftimeLastAccess; + FDATE fdateLastWrite; + FTIME ftimeLastWrite; + ULONG cbFile; + ULONG cbFileAlloc; + USHORT attrFile; + ULONG cbList; + UCHAR cchName; + CHAR achName[CCHMAXPATHCOMP]; +} FILEFINDBUF2; +typedef FILEFINDBUF2 *PFILEFINDBUF2; + +typedef struct _FILEFINDBUF3 +{ + ULONG oNextEntryOffset; + FDATE fdateCreation; + FTIME ftimeCreation; + FDATE fdateLastAccess; + FTIME ftimeLastAccess; + FDATE fdateLastWrite; + FTIME ftimeLastWrite; + ULONG cbFile; + ULONG cbFileAlloc; + ULONG attrFile; + UCHAR cchName; + CHAR achName[CCHMAXPATHCOMP]; +} FILEFINDBUF3; +typedef FILEFINDBUF3 *PFILEFINDBUF3; + +typedef struct _FILEFINDBUF4 +{ + ULONG oNextEntryOffset; + FDATE fdateCreation; + FTIME ftimeCreation; + FDATE fdateLastAccess; + FTIME ftimeLastAccess; + FDATE fdateLastWrite; + FTIME ftimeLastWrite; + ULONG cbFile; + ULONG cbFileAlloc; + ULONG attrFile; + ULONG cbList; + UCHAR cchName; + CHAR achName[CCHMAXPATHCOMP]; +} FILEFINDBUF4; +typedef FILEFINDBUF4 *PFILEFINDBUF4; + +typedef struct _FILELOCK +{ + LONG lOffset; + LONG lRange; +} FILELOCK; +typedef FILELOCK *PFILELOCK; + +typedef struct _FILESTATUS +{ + FDATE fdateCreation; + FTIME ftimeCreation; + FDATE fdateLastAccess; + FTIME ftimeLastAccess; + FDATE fdateLastWrite; + FTIME ftimeLastWrite; + ULONG cbFile; + ULONG cbFileAlloc; + USHORT attrFile; +} FILESTATUS; +typedef FILESTATUS *PFILESTATUS; + +typedef struct _FILESTATUS2 +{ + FDATE fdateCreation; + FTIME ftimeCreation; + FDATE fdateLastAccess; + FTIME ftimeLastAccess; + FDATE fdateLastWrite; + FTIME ftimeLastWrite; + ULONG cbFile; + ULONG cbFileAlloc; + USHORT attrFile; + ULONG cbList; +} FILESTATUS2; +typedef FILESTATUS2 *PFILESTATUS2; + +typedef struct _FILESTATUS3 +{ + FDATE fdateCreation; + FTIME ftimeCreation; + FDATE fdateLastAccess; + FTIME ftimeLastAccess; + FDATE fdateLastWrite; + FTIME ftimeLastWrite; + ULONG cbFile; + ULONG cbFileAlloc; + ULONG attrFile; +} FILESTATUS3; +typedef FILESTATUS3 *PFILESTATUS3; + +typedef struct _FILESTATUS4 +{ + FDATE fdateCreation; + FTIME ftimeCreation; + FDATE fdateLastAccess; + FTIME ftimeLastAccess; + FDATE fdateLastWrite; + FTIME ftimeLastWrite; + ULONG cbFile; + ULONG cbFileAlloc; + ULONG attrFile; + ULONG cbList; +} FILESTATUS4; +typedef FILESTATUS4 *PFILESTATUS4; + +typedef struct _FSALLOCATE +{ + ULONG idFileSystem; + ULONG cSectorUnit; + ULONG cUnit; + ULONG cUnitAvail; + USHORT cbSector; +} FSALLOCATE; +typedef FSALLOCATE *PFSALLOCATE; + +typedef struct _FSQBUFFER +{ + USHORT iType; + USHORT cbName; + UCHAR szName[1]; + USHORT cbFSDName; + UCHAR szFSDName[1]; + USHORT cbFSAData; + UCHAR rgFSAData[1]; +} FSQBUFFER; +typedef FSQBUFFER *PFSQBUFFER; + +typedef struct _FSQBUFFER2 +{ + USHORT iType; + USHORT cbName; + USHORT cbFSDName; + USHORT cbFSAData; + UCHAR szName[1]; + UCHAR szFSDName[1]; + UCHAR rgFSAData[1]; +} FSQBUFFER2; +typedef FSQBUFFER2 *PFSQBUFFER2; + +typedef struct _SPOOLATTACH +{ + USHORT hNmPipe; + ULONG ulKey; +} SPOOLATTACH; +typedef SPOOLATTACH *PSPOOLATTACH; + +typedef struct _VOLUMELABEL +{ + BYTE cch; + CHAR szVolLabel[12]; +} VOLUMELABEL; +typedef VOLUMELABEL *PVOLUMELABEL; + +typedef struct _FSINFO +{ + FDATE fdateCreation; + FTIME ftimeCreation; + VOLUMELABEL vol; +} FSINFO; +typedef FSINFO *PFSINFO; + + +ULONG DosCancelLockRequest (HFILE hFile, __const__ FILELOCK *pfl); +ULONG DosClose (HFILE hFile); +ULONG DosCopy (PCSZ pszSource, PCSZ pszTarget, ULONG ulOption); +ULONG DosCreateDir (PCSZ pszDirName, PEAOP2 pEABuf); +ULONG DosDelete (PCSZ pszFileName); +ULONG DosDeleteDir (PCSZ pszDirName); +ULONG DosDupHandle (HFILE hFile, PHFILE phFile); +ULONG DosEditName (ULONG ulLevel, PCSZ pszSource, PCSZ pszEdit, + PBYTE pszTargetBuf, ULONG ulTargetBufLength); +ULONG DosEnumAttribute (ULONG ulRefType, CPVOID pvFile, ULONG ulEntry, + PVOID pvBuf, ULONG ulBufLength, PULONG pulCount, ULONG ulInfoLevel); +ULONG DosFindClose (HDIR hDir); +ULONG DosFindFirst (PCSZ pszFileSpec, PHDIR phDir, ULONG flAttribute, + PVOID pFindBuf, ULONG ulFindBufLength, PULONG pulFileNames, + ULONG ulInfoLevel); +ULONG DosFindNext (HDIR hDir, PVOID pFindBuf, ULONG ulFindBufLength, + PULONG pulFileNames); +ULONG DosForceDelete (PCSZ pszFileName); +ULONG DosFSAttach (PCSZ pszDevice, PCSZ pszFilesystem, + __const__ VOID *pData, ULONG ulDataLength, ULONG ulFlag); +ULONG DosFSCtl (PVOID pData, ULONG ulDataLengthMax, PULONG pulDataLength, + PVOID pParmList, ULONG ulParmLengthMax, PULONG pulParmLength, + ULONG ulFunction, PCSZ pszRouteName, HFILE hFile, ULONG ulMethod); +ULONG DosMove (PCSZ pszOldName, PCSZ pszNewName); +ULONG DosOpen (PCSZ pszFileName, PHFILE phFile, PULONG pulAction, + ULONG ulFileSize, ULONG ulAttribute, ULONG ulOpenFlags, ULONG ulOpenMode, + PEAOP2 pEABuf); +ULONG DosProtectClose (HFILE hFile, FHLOCK fhFileHandleLockID); +ULONG DosProtectEnumAttribute (ULONG ulRefType, CPVOID pvFile, + ULONG ulEntry, PVOID pvBuf, ULONG ulBufLength, PULONG pulCount, + ULONG ulInfoLevel, FHLOCK fhFileHandleLockID); +ULONG DosProtectOpen (PCSZ pszFileName, PHFILE phFile, PULONG pulAction, + ULONG ulFileSize, ULONG ulAttribute, ULONG ulOpenFlags, ULONG ulOpenMode, + PEAOP2 pEABuf, PFHLOCK pfhFileHandleLockID); +ULONG DosProtectQueryFHState (HFILE hFile, PULONG pulMode, + FHLOCK fhFileHandleLockID); +ULONG DosProtectQueryFileInfo (HFILE hFile, ULONG ulInfoLevel, + PVOID pInfoBuffer, ULONG ulInfoLength, FHLOCK fhFileHandleLockID); +ULONG DosProtectRead (HFILE hFile, PVOID pBuffer, ULONG ulLength, + PULONG pulBytesRead, FHLOCK fhFileHandleLockID); +ULONG DosProtectSetFHState (HFILE hFile, ULONG ulMode, + FHLOCK fhFileHandleLockID); +ULONG DosProtectSetFileInfo (HFILE hFile, ULONG ulInfoLevel, PVOID pInfoBuffer, + ULONG ulInfoLength, FHLOCK fhFileHandleLockID); +ULONG DosProtectSetFileLocks (HFILE hFile, __const__ FILELOCK *pflUnlock, + __const__ FILELOCK *pflLock, ULONG ulTimeout, ULONG ulFlags, + FHLOCK fhFileHandleLockID); +ULONG DosProtectSetFilePtr (HFILE hFile, LONG lOffset, ULONG ulOrigin, + PULONG pulPos, FHLOCK fhFileHandleLockID); +ULONG DosProtectSetFileSize (HFILE hFile, ULONG ulSize, + FHLOCK fhFileHandleLockID); +ULONG DosProtectWrite (HFILE hFile, CPVOID pBuffer, ULONG ulLength, + PULONG pulBytesWritten, FHLOCK fhFileHandleLockID); +ULONG DosQueryCurrentDir (ULONG ulDrive, PBYTE pPath, PULONG pulPathLength); +ULONG DosQueryCurrentDisk (PULONG pulDrive, PULONG pulLogical); +ULONG DosQueryFHState (HFILE hFile, PULONG pulMode); +ULONG DosQueryFileInfo (HFILE hFile, ULONG ulInfoLevel, PVOID pInfoBuffer, + ULONG ulInfoLength); +ULONG DosQueryFSAttach (PCSZ pszDeviceName, ULONG ulOrdinal, + ULONG ulFSAInfoLevel, PFSQBUFFER2 pfsqb, PULONG pulBufLength); +ULONG DosQueryFSInfo (ULONG ulDrive, ULONG ulInfoLevel, PVOID pBuf, + ULONG ulBufLength); +ULONG DosQueryHType (HFILE hFile, PULONG pulType, PULONG pulAttr); +ULONG DosQueryPathInfo (PCSZ pszPathName, ULONG ulInfoLevel, + PVOID pInfoBuffer, ULONG ulInfoLength); +ULONG DosQueryVerify (PBOOL32 pVerify); +ULONG DosRead (HFILE hFile, PVOID pBuffer, ULONG ulLength, + PULONG pulBytesRead); +ULONG DosResetBuffer (HFILE hf); +ULONG DosSetCurrentDir (PCSZ pszDir); +ULONG DosSetDefaultDisk (ULONG ulDrive); +ULONG DosSetFHState (HFILE hFile, ULONG ulMode); +ULONG DosSetFileInfo (HFILE hFile, ULONG ulInfoLevel, PVOID pInfoBuffer, + ULONG ulInfoLength); +ULONG DosSetFileLocks (HFILE hFile, __const__ FILELOCK *pflUnlock, + __const__ FILELOCK *pflLock, ULONG ulTimeout, ULONG ulFlags); +ULONG DosSetFilePtr (HFILE hFile, LONG lOffset, ULONG ulOrigin, PULONG pulPos); +ULONG DosSetFileSize (HFILE hFile, ULONG ulSize); +ULONG DosSetFSInfo (ULONG ulDrive, ULONG ulInfoLevel, PVOID pBuf, + ULONG ulBufLength); +ULONG DosSetMaxFH (ULONG ulCount); +ULONG DosSetPathInfo (PCSZ pszPathName, ULONG ulInfoLevel, PVOID pInfoBuffer, + ULONG ulInfoLength, ULONG ulOptions); +ULONG DosSetRelMaxFH (PLONG pulReqCount, PULONG pulCurMaxFH); +ULONG DosSetVerify (BOOL32 f32Verify); +ULONG DosShutdown (ULONG ulReserved); +ULONG DosWrite (HFILE hFile, CPVOID pBuffer, ULONG ulLength, + PULONG pulBytesWritten); + +#endif /* INCL_DOSFILEMGR || !INCL_NOCOMMON */ + + +#if defined (INCL_DOSMISC) +ULONG DosSearchPath (ULONG ulControl, PCSZ pszPath, PCSZ pszFilename, + PBYTE pBuf, ULONG ulBufLength); +#endif /* INCL_DOSMISC */ + +/* ---------------------------- DEVICE I/O -------------------------------- */ + +#if defined (INCL_DOSDEVICES) + +#define DEVINFO_PRINTER 0 +#define DEVINFO_RS232 1 +#define DEVINFO_FLOPPY 2 +#define DEVINFO_COPROCESSOR 3 +#define DEVINFO_SUBMODEL 4 +#define DEVINFO_MODEL 5 +#define DEVINFO_ADAPTER 6 + +#define INFO_COUNT_PARTITIONABLE_DISKS 1 +#define INFO_GETIOCTLHANDLE 2 +#define INFO_FREEIOCTLHANDLE 3 + +ULONG DosDevConfig (PVOID pInfo, ULONG ulItem); +ULONG DosDevIOCtl (HFILE hDevice, ULONG ulCategory, ULONG ulFunction, + PVOID pParams, ULONG ulParamsLengthMax, PULONG pulParamsLength, + PVOID pData, ULONG ulDataLengthMax, PULONG pulDataLength); +ULONG DosPhysicalDisk (ULONG ulFunction, PVOID pBuffer, ULONG ulBufferLength, + PVOID pParams, ULONG ulParamsLength); + +#endif /* INCL_DOSDEVICES */ + +#if defined (INCL_DOSDEVIOCTL) + +#define IOCTL_ASYNC 0x0001 +#define IOCTL_SCR_AND_PTRDRAW 0x0003 +#define IOCTL_KEYBOARD 0x0004 +#define IOCTL_PRINTER 0x0005 +#define IOCTL_LIGHTPEN 0x0006 +#define IOCTL_POINTINGDEVICE 0x0007 +#define IOCTL_DISK 0x0008 +#define IOCTL_PHYSICALDISK 0x0009 +#define IOCTL_MONITOR 0x000a +#define IOCTL_GENERAL 0x000b +#define IOCTL_POWER 0x000c +#define IOCTL_OEMHLP 0x0080 +#define IOCTL_TESTCFG_SYS 0x0080 +#define IOCTL_CDROMDISK 0x0080 +#define IOCTL_CDROMAUDIO 0x0081 +#define IOCTL_TOUCH_DEVDEP 0x0081 +#define IOCTL_TOUCH_DEVINDEP 0x0081 + +#define ASYNC_SETBAUDRATE 0x0041 +#define ASYNC_SETLINECTRL 0x0042 +#define ASYNC_EXTSETBAUDRATE 0x0043 +#define ASYNC_TRANSMITIMM 0x0044 +#define ASYNC_SETBREAKOFF 0x0045 +#define ASYNC_SETMODEMCTRL 0x0046 +#define ASYNC_STOPTRANSMIT 0x0047 +#define ASYNC_STARTTRANSMIT 0x0048 +#define ASYNC_SETBREAKON 0x004b +#define ASYNC_SETDCBINFO 0x0053 +#define ASYNC_SETENHANCEDMODEPARMS 0x0054 +#define ASYNC_GETBAUDRATE 0x0061 +#define ASYNC_GETLINECTRL 0x0062 +#define ASYNC_EXTGETBAUDRATE 0x0063 +#define ASYNC_GETCOMMSTATUS 0x0064 +#define ASYNC_GETLINESTATUS 0x0065 +#define ASYNC_GETMODEMOUTPUT 0x0066 +#define ASYNC_GETMODEMINPUT 0x0067 +#define ASYNC_GETINQUECOUNT 0x0068 +#define ASYNC_GETOUTQUECOUNT 0x0069 +#define ASYNC_GETCOMMERROR 0x006d +#define ASYNC_GETCOMMEVENT 0x0072 +#define ASYNC_GETDCBINFO 0x0073 +#define ASYNC_GETENHANCEDMODEPARMS 0x0074 + +#define SCR_ALLOCLDT 0x0070 +#define SCR_DEALLOCLDT 0x0071 +#define PTR_GETPTRDRAWADDRESS 0x0072 +#define VID_INITCALLVECTOR 0x0073 +#define SCR_ABIOSPASSTHRU 0x0074 +#define SCR_ALLOCLDTOFF 0x0075 +#define SCR_ALLOCLDTBGVAL 0x0076 +#define SCR_ALLOCVIDEOBUFFER 0x007e +#define SCR_GETROMFONTADDR 0x007f + +#define KBD_SETTRANSTABLE 0x0050 +#define KBD_SETINPUTMODE 0x0051 +#define KBD_SETINTERIMFLAG 0x0052 +#define KBD_SETSHIFTSTATE 0x0053 +#define KBD_SETTYPAMATICRATE 0x0054 +#define KBD_SETFGNDSCREENGRP 0x0055 +#define KBD_SETSESMGRHOTKEY 0x0056 +#define KBD_SETFOCUS 0x0057 +#define KBD_SETKCB 0x0058 +#define KBD_SETREADNOTIFICATION 0x0059 +#define KBD_ALTERKBDLED 0x005a +#define KBD_SETNLS 0x005c +#define KBD_CREATE 0x005d +#define KBD_DESTROY 0x005e +#define KBD_GETINPUTMODE 0x0071 +#define KBD_GETINTERIMFLAG 0x0072 +#define KBD_GETSHIFTSTATE 0x0073 +#define KBD_READCHAR 0x0074 +#define KBD_PEEKCHAR 0x0075 +#define KBD_GETSESMGRHOTKEY 0x0076 +#define KBD_GETKEYBDTYPE 0x0077 +#define KBD_GETCODEPAGEID 0x0078 +#define KBD_XLATESCAN 0x0079 +#define KBD_QUERYKBDHARDWAREID 0x007a +#define KBD_QUERYKBDCODEPAGESUPPORT 0x007b + +#define PRT_QUERYJOBHANDLE 0x0021 +#define PRT_SETFRAMECTL 0x0042 +#define PRT_SETINFINITERETRY 0x0044 +#define PRT_INITPRINTER 0x0046 +#define PRT_ACTIVATEFONT 0x0048 +#define PRT_SETPRINTJOBTITLE 0x004d +#define PRT_SETIRQTIMEOUT 0x004e +#define PRT_GETFRAMECTL 0x0062 +#define PRT_GETINFINITERETRY 0x0064 +#define PRT_GETPRINTERSTATUS 0x0066 +#define PRT_QUERYACTIVEFONT 0x0069 +#define PRT_VERIFYFONT 0x006a +#define PRT_QUERYIRQTIMEOUT 0x006e + +#define MOU_ALLOWPTRDRAW 0x0050 +#define MOU_UPDATEDISPLAYMODE 0x0051 +#define MOU_SCREENSWITCH 0x0052 +#define MOU_SETSCALEFACTORS 0x0053 +#define MOU_SETEVENTMASK 0x0054 +#define MOU_SETHOTKEYBUTTON 0x0055 +#define MOU_REASSIGNTHRESHOLDVALUES 0x0055 /* ? */ +#define MOU_SETPTRSHAPE 0x0056 +#define MOU_DRAWPTR 0x0057 +#define MOU_UNMARKCOLLISIONAREA 0x0057 /* ? */ +#define MOU_REMOVEPTR 0x0058 +#define MOU_MARKCOLLISIONAREA 0x0058 /* ? */ +#define MOU_SETPTRPOS 0x0059 +#define MOU_SETPROTDRAWADDRESS 0x005a +#define MOU_SETREALDRAWADDRESS 0x005b +#define MOU_SETMOUSTATUS 0x005c +#define MOU_DISPLAYMODECHANGE 0x005d +#define MOU_GETBUTTONCOUNT 0x0060 +#define MOU_GETMICKEYCOUNT 0x0061 +#define MOU_GETMOUSTATUS 0x0062 +#define MOU_READEVENTQUE 0x0063 +#define MOU_GETQUESTATUS 0x0064 +#define MOU_GETEVENTMASK 0x0065 +#define MOU_GETSCALEFACTORS 0x0066 +#define MOU_GETPTRPOS 0x0067 +#define MOU_GETPTRSHAPE 0x0068 +#define MOU_GETHOTKEYBUTTON 0x0069 +#define MOU_QUERYTHRESHOLDVALUES 0x0069 /* ? */ +#define MOU_VER 0x006a +#define MOU_QUERYPOINTERID 0x006b /* ? */ + +#define DSK_LOCKDRIVE 0x0000 +#define DSK_UNLOCKDRIVE 0x0001 +#define DSK_REDETERMINEMEDIA 0x0002 +#define DSK_SETLOGICALMAP 0x0003 +#define DSK_BEGINFORMAT 0x0004 +#define DSK_BLOCKREMOVABLE 0x0020 +#define DSK_GETLOGICALMAP 0x0021 +#define DSK_UNLOCKEJECTMEDIA 0x0040 +#define DSK_SETDEVICEPARAMS 0x0043 +#define DSK_WRITETRACK 0x0044 +#define DSK_FORMATVERIFY 0x0045 +#define DSK_DISKETTECONTROL 0x005d +#define DSK_QUERYMEDIASENSE 0x0060 +#define DSK_GETDEVICEPARAMS 0x0063 +#define DSK_READTRACK 0x0064 +#define DSK_VERIFYTRACK 0x0065 +#define DSK_GETLOCKSTATUS 0x0066 + +#define PDSK_LOCKPHYSDRIVE 0x0000 +#define PDSK_UNLOCKPHYSDRIVE 0x0001 +#define PDSK_WRITEPHYSTRACK 0x0044 +#define PDSK_GETPHYSDEVICEPARAMS 0x0063 +#define PDSK_READPHYSTRACK 0x0064 +#define PDSK_VERIFYPHYSTRACK 0x0065 + +#define POWER_SENDPOWEREVENT 0x0040 +#define POWER_SETPOWEREVENTRES 0x0041 +#define POWER_GETPOWERSTATUS 0x0060 +#define POWER_GETPOWEREVENT 0x0061 +#define POWER_GETPOWERINFO 0x0062 + +#define OEMHLP_GETOEMADAPTIONINFO 0x0000 +#define OEMHLP_GETMACHINEINFO 0x0001 +#define OEMHLP_GETDISPLAYCOMBCODE 0x0002 +#define OEMHLP_GETVIDEOFONTS 0x0003 +#define OEMHLP_READEISACONFIGINFO 0x0004 +#define OEMHLP_GETROMBIOSINFO 0x0005 +#define OEMHLP_GETMISCVIDEOINFO 0x0006 +#define OEMHLP_GETVIDEOADAPTER 0x0007 +#define OEMHLP_GETSVGAINFO 0x0008 +#define OEMHLP_GETMEMINFO 0x0009 +#define OEMHLP_GETDMQSINFO 0x000a +#define OEMHLP_PCI 0x000b + +#define TESTCFG_SYS_GETBIOSADAPTER 0x0040 +#define TESTCFG_SYS_ISSUEINIOINSTR 0x0041 +#define TESTCFG_SYS_ISSUEOUTIOINSTR 0x0042 +#define TESTCFG_SYS_GETBUSARCH 0x0060 +#define TESTCFG_SYS_GETALLPOSIDS 0x0061 +#define TESTCFG_SYS_GETALLEISAIDS 0x0062 + +#define CDROMDISK_RESETDRIVE 0x0040 +#define CDROMDISK_EJECTDISK 0x0044 +#define CDROMDISK_LOCKUNLOCKDOOR 0x0046 +#define CDROMDISK_SEEK 0x0050 +#define CDROMDISK_DEVICESTATUS 0x0060 +#define CDROMDISK_GETDRIVER 0x0061 +#define CDROMDISK_GETSECTORSIZE 0x0063 +#define CDROMDISK_GETHEADLOC 0x0070 +#define CDROMDISK_READLONG 0x0072 +#define CDROMDISK_GETVOLUMESIZE 0x0078 +#define CDROMDISK_GETUPC 0x0079 + +#define CDROMAUDIO_SETCHANNELCTRL 0x0040 +#define CDROMAUDIO_PLAYAUDIO 0x0050 +#define CDROMAUDIO_STOPAUDIO 0x0051 +#define CDROMAUDIO_RESUMEAUDIO 0x0052 +#define CDROMAUDIO_GETCHANNEL 0x0060 +#define CDROMAUDIO_GETAUDIODISK 0x0061 +#define CDROMAUDIO_GETAUDIOTRACK 0x0062 +#define CDROMAUDIO_GETSUBCHANNELQ 0x0063 +#define CDROMAUDIO_GETAUDIOSTATUS 0x0065 + +#define TOUCH_DEVDEP_SETCALIBCONST 0x0052 +#define TOUCH_DEVDEP_READDATA 0x0053 +#define TOUCH_DEVDEP_SETDATAMODE 0x0054 +#define TOUCH_DEVDEP_SETCLICKLOCK 0x0055 +#define TOUCH_DEVDEP_SETTOUCHTHRESHOLD 0x0056 +#define TOUCH_DEVDEP_SETEMULXY 0x0057 +#define TOUCH_DEVDEP_SETDATAREPORTRATE 0x0058 +#define TOUCH_DEVDEP_SETLOWPASSFILTER 0x0059 +#define TOUCH_DEVDEP_WRITEMEMLOC 0x005a +#define TOUCH_DEVDEP_GETCALIBCONST 0x0060 +#define TOUCH_DEVDEP_GETDATAMODE 0x0061 +#define TOUCH_DEVDEP_GETCLICKLOCK 0x0062 +#define TOUCH_DEVDEP_GETTOUCHTHRESHOLD 0x0063 +#define TOUCH_DEVDEP_GETEMULXY 0x0064 +#define TOUCH_DEVDEP_GETDATAREPORTRATE 0x0065 +#define TOUCH_DEVDEP_GETLOWPASSFILTER 0x0066 +#define TOUCH_DEVDEP_READMEMLOC 0x0067 + +#define TOUCH_DEVINDEP_SETCOORDSYS 0x0050 +#define TOUCH_DEVINDEP_SETSELECTMECH 0x0052 +#define TOUCH_DEVINDEP_SETEVENTMASK 0x0053 +#define TOUCH_DEVINDEP_SETQUEUESIZE 0x0054 +#define TOUCH_DEVINDEP_SETEMULSTATE 0x0055 +#define TOUCH_DEVINDEP_GETCOORDSYS 0x0060 +#define TOUCH_DEVINDEP_GETSELECTMECH 0x0062 +#define TOUCH_DEVINDEP_GETEVENTMASK 0x0063 +#define TOUCH_DEVINDEP_GETQUEUESIZE 0x0064 +#define TOUCH_DEVINDEP_GETEMULSTATE 0x0065 +#define TOUCH_DEVINDEP_GETREADEVENTQUEUE 0x0066 + +#define MON_REGISTERMONITOR 0x0040 + +#define DEV_FLUSHINPUT 0x0001 +#define DEV_FLUSHOUTPUT 0x0002 +#define DEV_SYSTEMNOTIFYPDD 0x0041 +#define DEV_QUERYMONSUPPORT 0x0060 + +#define RX_QUE_OVERRUN 0x0001 +#define RX_HARDWARE_OVERRUN 0x0002 +#define PARITY_ERROR 0x0004 +#define FRAMING_ERROR 0x0008 + +#define CHAR_RECEIVED 0x0001 +#define LAST_CHAR_SENT 0x0004 +#define CTS_CHANGED 0x0008 +#define DSR_CHANGED 0x0010 +#define DCD_CHANGED 0x0020 +#define BREAK_DETECTED 0x0040 +#define ERROR_OCCURRED 0x0080 +#define RI_DETECTED 0x0100 + +#define TX_WAITING_FOR_CTS 0x0001 +#define TX_WAITING_FOR_DSR 0x0002 +#define TX_WAITING_FOR_DCD 0x0004 +#define TX_WAITING_FOR_XON 0x0008 +#define TX_WAITING_TO_SEND_XON 0x0010 +#define TX_WAITING_WHILE_BREAK_ON 0x0020 +#define TX_WAITING_TO_SEND_IMM 0x0040 +#define RX_WAITING_FOR_DSR 0x0080 + +#define WRITE_REQUEST_QUEUED 0x0001 +#define DATA_IN_TX_QUE 0x0002 +#define HARDWARE_TRANSMITTING 0x0004 +#define CHAR_READY_TO_SEND_IMM 0x0008 +#define WAITING_TO_SEND_XON 0x0010 +#define WAITING_TO_SEND_XOFF 0x0020 + +#define CTS_ON 0x10 +#define DSR_ON 0x20 +#define RI_ON 0x40 +#define DCD_ON 0x80 + +#define MODE_DTR_CONTROL 0x01 +#define MODE_DTR_HANDSHAKE 0x02 +#define MODE_CTS_HANDSHAKE 0x08 +#define MODE_DSR_HANDSHAKE 0x10 +#define MODE_DCD_HANDSHAKE 0x20 +#define MODE_DSR_SENSITIVITY 0x40 + +#define MODE_AUTO_TRANSMIT 0x01 +#define MODE_AUTO_RECEIVE 0x02 +#define MODE_ERROR_CHAR 0x04 +#define MODE_NULL_STRIPPING 0x08 +#define MODE_BREAK_CHAR 0x10 +#define MODE_RTS_CONTROL 0x40 +#define MODE_RTS_HANDSHAKE 0x80 +#define MODE_TRANSMIT_TOGGLE 0xc0 + +#define MODE_NO_WRITE_TIMEOUT 0x01 +#define MODE_READ_TIMEOUT 0x02 +#define MODE_WAIT_READ_TIMEOUT 0x04 +#define MODE_NOWAIT_READ_TIMEOUT 0x06 + +#define DTR_ON 0x01 +#define RTS_ON 0x02 + +#define DTR_OFF 0xfe +#define RTS_OFF 0xfd + +#define ASCII_MODE 0x00 +#define BINARY_MODE 0x80 + +#define CONVERSION_REQUEST 0x20 +#define INTERIM_CHAR 0x80 + +#define HOTKEY_MAX_COUNT 0x0000 +#define HOTKEY_CURRENT_COUNT 0x0001 + +#define KBD_DATA_RECEIVED 0x0001 +#define KBD_DATA_BINARY 0x8000 + +#define KBD_READ_WAIT 0x0000 +#define KBD_READ_NOWAIT 0x8000 + +#define SHIFT_REPORT_MODE 0x01 + +#define RIGHTSHIFT 0x0001 +#define LEFTSHIFT 0x0002 +#define CONTROL 0x0004 +#define ALT 0x0008 +#define SCROLLLOCK_ON 0x0010 +#define NUMLOCK_ON 0x0020 +#define CAPSLOCK_ON 0x0040 +#define INSERT_ON 0x0080 +#define LEFTCONTROL 0x0100 +#define LEFTALT 0x0200 +#define RIGHTCONTROL 0x0400 +#define RIGHTALT 0x0800 +#define SCROLLLOCK 0x1000 +#define NUMLOCK 0x2000 +#define CAPSLOCK 0x4000 +#define SYSREQ 0x8000 + +#define PRINTER_TIMEOUT 0x0001 +#define PRINTER_IO_ERROR 0x0008 +#define PRINTER_SELECTED 0x0010 +#define PRINTER_OUT_OF_PAPER 0x0020 +#define PRINTER_ACKNOWLEDGED 0x0040 +#define PRINTER_NOT_BUSY 0x0080 + +#define MOUSE_MOTION 0x0001 +#define MOUSE_MOTION_WITH_BN1_DOWN 0x0002 +#define MOUSE_BN1_DOWN 0x0004 +#define MOUSE_MOTION_WITH_BN2_DOWN 0x0008 +#define MOUSE_BN2_DOWN 0x0010 +#define MOUSE_MOTION_WITH_BN3_DOWN 0x0020 +#define MOUSE_BN3_DOWN 0x0040 + +#define MHK_BUTTON1 0x0001 +#define MHK_BUTTON2 0x0002 +#define MHK_BUTTON3 0x0004 + +#define MOU_NOWAIT 0x0000 +#define MOU_WAIT 0x0001 + +#define MHK_NO_HOTKEY 0x0000 + +#define MOUSE_QUEUEBUSY 0x0001 +#define MOUSE_BLOCKREAD 0x0002 +#define MOUSE_FLUSH 0x0004 +#define MOUSE_UNSUPPORTED_MODE 0x0008 +#define MOUSE_DISABLED 0x0100 +#define MOUSE_MICKEYS 0x0200 + +#define BUILD_BPB_FROM_MEDIUM 0x00 +#define REPLACE_BPB_FOR_DEVICE 0x01 +#define REPLACE_BPB_FOR_MEDIUM 0x02 + +#define DEVTYPE_48TPI 0x0000 +#define DEVTYPE_96TPI 0x0001 +#define DEVTYPE_35 0x0002 +#define DEVTYPE_8SD 0x0003 +#define DEVTYPE_8DD 0x0004 +#define DEVTYPE_FIXED 0x0005 +#define DEVTYPE_TAPE 0x0006 +#define DEVTYPE_UNKNOWN 0x0007 + +#define SCREENDD_GETCURRENTBANK 0x00 +#define SCREENDD_SETCURRENTBANK 0x01 +#define SCREENDD_SVGA_ID 0x08 +#define SCREENDD_SVGA_OEM 0x09 +#define SCREENDD_UPDATEMEMORY 0x0a +#define SCREENDD_GETLINEARACCESS 0x0b +#define SCREENDD_GETGLOBALACCESS 0x0c +#define SCREENDD_FREEGLOBALACCESS 0x0d +#define SCREENDD_REGISTER_RING0_CALLER 0x0e +#define SCREENDD_WAIT_ON_RING0_CALLER 0x0f +#define SCREENDD_CATEGORY 0x80 +#define SCREENDD_NAME "SCREEN$" + +#define GETLINEAR_FLAG_MAPPHYSICAL 0x00000010 +#define GETLINEAR_FLAG_MAPPROCESS 0x00000020 +#define GETLINEAR_FLAG_MAPSHARED 0x00000400 +#define GETLINEAR_FLAG_MAPATTACH 0x80000000 + +#define EGA_BIT 4 +#define VGA_BIT 8 +#define EGAVGA_BIT (EGA_BIT|VGA_BIT) + +#define READ_BANK 0 +#define WRITE_BANK 1 +#define MODE_TEXT 0 +#define MODE_PLANAR 1 +#define MODE_LINEAR 2 + +typedef struct _DCBINFO +{ + USHORT usWriteTimeout; + USHORT usReadTimeout; + BYTE fbCtlHndShake; + BYTE fbFlowReplace; + BYTE fbTimeout; + BYTE bErrorReplacementChar; + BYTE bBreakReplacementChar; + BYTE bXONChar; + BYTE bXOFFChar; +} DCBINFO; +typedef DCBINFO *PDCBINFO; + +typedef struct _LINECONTROL +{ + BYTE bDataBits; + BYTE bParity; + BYTE bStopBits; + BYTE fTransBreak; +} LINECONTROL; +typedef LINECONTROL *PLINECONTROL; + +typedef struct _MODEMSTATUS +{ + BYTE fbModemOn; + BYTE fbModemOff; +} MODEMSTATUS; +typedef MODEMSTATUS *PMODEMSTATUS; + +typedef struct _KBDTYPE +{ + USHORT usType; + USHORT reserved1; + USHORT reserved2; +} KBDTYPE; +typedef KBDTYPE *PKBDTYPE; + +typedef struct _RATEDELAY +{ + USHORT usDelay; + USHORT usRate; +} RATEDELAY; +typedef RATEDELAY *PRATEDELAY; + +typedef struct _CODEPAGEINFO +{ + PBYTE pbTransTable; + USHORT idCodePage; + USHORT idTable; +} CODEPAGEINFO; +typedef CODEPAGEINFO *PCODEPAGEINFO; + +typedef struct _CPID +{ + USHORT idCodePage; + USHORT Reserved; +} CPID; +typedef CPID *PCPID; + +typedef struct _SHIFTSTATE +{ + USHORT fsState; + BYTE fNLS; +} SHIFTSTATE; +typedef SHIFTSTATE *PSHIFTSTATE; + +typedef struct _HOTKEY +{ + USHORT fsHotKey; + UCHAR uchScancodeMake; + UCHAR uchScancodeBreak; + USHORT idHotKey; +} HOTKEY; +typedef HOTKEY *PHOTKEY; + +typedef struct _PTRDRAWFUNCTION +{ + USHORT usReturnCode; + PFN pfnDraw; + PCH pchDataSeg; +} PTRDRAWFUNCTION; +typedef PTRDRAWFUNCTION *PPTRDRAWFUNCTION; + +typedef struct _PTRDRAWADDRESS +{ + USHORT reserved; + PTRDRAWFUNCTION ptrdfnc; +} PTRDRAWADDRESS; +typedef PTRDRAWADDRESS *PPTRDRAWADDRESS; + +typedef struct _PTRDRAWDATA +{ + USHORT cb; + USHORT usConfig; + USHORT usFlag; +} PTRDRAWDATA; +typedef PTRDRAWDATA *PPTRDRAWDATA; + +typedef struct _TRACKLAYOUT +{ + BYTE bCommand; + USHORT usHead; + USHORT usCylinder; + USHORT usFirstSector; + USHORT cSectors; + struct + { + USHORT usSectorNumber; + USHORT usSectorSize; + } TrackTable[1]; +} TRACKLAYOUT; +typedef TRACKLAYOUT *PTRACKLAYOUT; + +typedef struct _TRACKFORMAT +{ + BYTE bCommand; + USHORT usHead; + USHORT usCylinder; + USHORT usReserved; + USHORT cSectors; + struct + { + BYTE bCylinder; + BYTE bHead; + BYTE idSector; + BYTE bBytesSector; + } FormatTable[1]; +} TRACKFORMAT; +typedef TRACKFORMAT *PTRACKFORMAT; + +typedef struct _BIOSPARAMETERBLOCK +{ + USHORT usBytesPerSector; + BYTE bSectorsPerCluster; + USHORT usReservedSectors; + BYTE cFATs; + USHORT cRootEntries; + USHORT cSectors; + BYTE bMedia; + USHORT usSectorsPerFAT; + USHORT usSectorsPerTrack; + USHORT cHeads; + ULONG cHiddenSectors; + ULONG cLargeSectors; + BYTE abReserved[6]; + USHORT cCylinders; + BYTE bDeviceType; + USHORT fsDeviceAttr; +} BIOSPARAMETERBLOCK; +typedef BIOSPARAMETERBLOCK *PBIOSPARAMETERBLOCK; + +typedef struct _DEVICEPARAMETERBLOCK +{ + USHORT reserved1; + USHORT cCylinders; + USHORT cHeads; + USHORT cSectorsPerTrack; + USHORT reserved2; + USHORT reserved3; + USHORT reserved4; + USHORT reserved5; +} DEVICEPARAMETERBLOCK; +typedef DEVICEPARAMETERBLOCK *PDEVICEPARAMETERBLOCK; + +typedef struct _MONITORPOSITION +{ + USHORT fPosition; + USHORT index; + ULONG pbInBuf; + USHORT offOutBuf; +} MONITORPOSITION; +typedef MONITORPOSITION *PMONITORPOSITION; + +typedef struct _FRAME +{ + BYTE bCharsPerLine; + BYTE bLinesPerInch; +} FRAME; +typedef FRAME *PFRAME; + +typedef struct _LDTADDRINFO +{ + PULONG pulPhysAddr; + USHORT cb; +} LDTADDRINFO; +typedef LDTADDRINFO *PLDTADDRINFO; + +typedef struct _SCREENGROUP +{ + USHORT idScreenGrp; + USHORT fTerminate; +} SCREENGROUP; +typedef SCREENGROUP *PSCREENGROUP; + +typedef struct _RXQUEUE +{ + USHORT cch; + USHORT cb; +} RXQUEUE; +typedef RXQUEUE *PRXQUEUE; + +typedef struct _GETLINIOCTLDATA +{ + ULONG PacketLength; + ULONG PhysicalAddress; + ULONG ApertureSize; + PBYTE LinearAddress; + ULONG LinearFlags; +} GETLINIOCTLDATA; +typedef GETLINIOCTLDATA *PGETLINIOCTLDATA; + +typedef struct _BANKINFO +{ + ULONG ulBankLength; + USHORT usBank; + USHORT usVideoModeType; + USHORT usReadWriteMode; +} BANKINFO; + +typedef struct _GLOBALIOCTLDATA +{ + ULONG ProcessAddress; + ULONG AddressLength; + ULONG GlobalAddress; +} GLOBALIOCTLDATA; + +typedef struct _OEMSVGAINFO +{ + USHORT AdapterType; + USHORT ChipType; + ULONG Memory; +} OEMSVGAINFO; + +typedef struct _OEMINFO +{ + ULONG OEMLength; + USHORT Manufacturer; + ULONG ManufacturerData; +} OEMINFO; + +typedef struct _GETGLOBALPACKET +{ + ULONG GlobalPktLength; + GLOBALIOCTLDATA GlobalPktData[1]; +} GETGLOBALPACKET; + +#endif /* INCL_DOSDEVIOCTL */ + +/* -------------------- NATIONAL LANGUAGE SUPPORT ------------------------- */ + +#if defined (INCL_DOSNLS) + +typedef struct _COUNTRYCODE +{ + ULONG country; + ULONG codepage; +} COUNTRYCODE; +typedef COUNTRYCODE *PCOUNTRYCODE; + +typedef struct _COUNTRYINFO +{ + ULONG country; + ULONG codepage; + ULONG fsDateFmt; + CHAR szCurrency[5]; + CHAR szThousandsSeparator[2]; + CHAR szDecimal[2]; + CHAR szDateSeparator[2]; + CHAR szTimeSeparator[2]; + UCHAR fsCurrencyFmt; + UCHAR cDecimalPlace; + UCHAR fsTimeFmt; + USHORT abReserved1[2]; + CHAR szDataSeparator[2]; + USHORT abReserved2[5]; +} COUNTRYINFO; +typedef COUNTRYINFO *PCOUNTRYINFO; + + +ULONG DosMapCase (ULONG ulLength, __const__ COUNTRYCODE *pCountryCode, + PCHAR pchString); +ULONG DosQueryCollate (ULONG ulLength, __const__ COUNTRYCODE *pCountryCode, + PCHAR pchBuffer, PULONG pulDataLength); +ULONG DosQueryCp (ULONG ulLength, PULONG pCodePageList, PULONG pDataLength); +ULONG DosQueryCtryInfo (ULONG ulLength, PCOUNTRYCODE pCountryCode, + PCOUNTRYINFO pCountryInfo, PULONG pulDataLength); +ULONG DosQueryDBCSEnv (ULONG ulLength, PCOUNTRYCODE pCountryCode, PCHAR pBuf); +ULONG DosSetProcessCp (ULONG ulCodePage); + +#endif /* INCL_DOSNLS */ + +/* -------------------------- DYNAMIC LINKING ----------------------------- */ + +#if defined (INCL_DOSMODULEMGR) + +#define PT_16BIT 0 +#define PT_32BIT 1 + + +ULONG DosFreeModule (HMODULE hmod); +ULONG DosLoadModule (PSZ pszObject, ULONG uObjectLen, PCSZ pszModule, + PHMODULE phmod); +ULONG DosQueryModuleHandle (PCSZ pszModname, PHMODULE phmod); +ULONG DosQueryModuleName (HMODULE hmod, ULONG ulNameLength, PCHAR pNameBuf); +ULONG DosQueryProcAddr (HMODULE hmod, ULONG ulOrdinal, PCSZ pszProcName, + PPFN pProcAddr); +ULONG DosQueryProcType (HMODULE hmod, ULONG ulOrdinal, PCSZ pszProcName, + PULONG pulProcType); + +#endif /* INCL_DOSMODULEMGR */ + +/* ----------------------------- RESOURCES -------------------------------- */ + +#if defined (INCL_DOSRESOURCES) || !defined (INCL_NOCOMMON) + +#define RT_POINTER 1 +#define RT_BITMAP 2 +#define RT_MENU 3 +#define RT_DIALOG 4 +#define RT_STRING 5 +#define RT_FONTDIR 6 +#define RT_FONT 7 +#define RT_ACCELTABLE 8 +#define RT_RCDATA 9 +#define RT_MESSAGE 10 +#define RT_DLGINCLUDE 11 +#define RT_VKEYTBL 12 +#define RT_KEYTBL 13 +#define RT_CHARTBL 14 +#define RT_DISPLAYINFO 15 +#define RT_FKASHORT 16 +#define RT_FKALONG 17 +#define RT_HELPTABLE 18 +#define RT_HELPSUBTABLE 19 +#define RT_FDDIR 20 +#define RT_FD 21 +#define RT_MAX 22 + +#define RF_ORDINALID 0x80000000L + + +ULONG DosFreeResource (PVOID pResAddr); +ULONG DosGetResource (HMODULE hmod, ULONG ulTypeID, ULONG ulNameID, + PPVOID pOffset); +ULONG DosQueryResourceSize (HMODULE hmod, ULONG ulTypeID, ULONG ulNameID, + PULONG pulSize); + +#endif /* INCL_DOSRESOURCES || !INCL_NOCOMMON */ + +/* -------------------------------- TASKS --------------------------------- */ + +#if defined (INCL_DOSPROCESS) || !defined (INCL_NOCOMMON) + +#define EXIT_THREAD 0 +#define EXIT_PROCESS 1 + +ULONG DosBeep (ULONG ulFrequency, ULONG ulDuration); +VOID DosExit (ULONG ulAction, ULONG ulResult) __attribute__ ((__noreturn__)); + +#endif /* INCL_DOSPROCESS || !defined (INCL_NOCOMMON) */ + + +#if defined (INCL_DOSPROCESS) + +#define CREATE_READY 0 +#define CREATE_SUSPENDED 1 + +#define STACK_SPARSE 0 +#define STACK_COMMITTED 2 + +#define DCWA_PROCESS 0 +#define DCWA_PROCESSTREE 1 + +#define DCWW_WAIT 0 +#define DCWW_NOWAIT 1 + +#define DKP_PROCESSTREE 0 +#define DKP_PROCESS 1 + +#define EXEC_SYNC 0 +#define EXEC_ASYNC 1 +#define EXEC_ASYNCRESULT 2 +#define EXEC_TRACE 3 +#define EXEC_BACKGROUND 4 +#define EXEC_LOAD 5 +#define EXEC_ASYNCRESULTDB 6 + +#define EXLST_ADD 1 +#define EXLST_REMOVE 2 +#define EXLST_EXIT 3 + +#define PRTYC_NOCHANGE 0 +#define PRTYC_IDLETIME 1 +#define PRTYC_REGULAR 2 +#define PRTYC_TIMECRITICAL 3 +#define PRTYC_FOREGROUNDSERVER 4 + +#define PRTYD_MINIMUM (-31) +#define PRTYD_MAXIMUM 31 + +#define PRTYS_PROCESS 0 +#define PRTYS_PROCESSTREE 1 +#define PRTYS_THREAD 2 + +#define TC_EXIT 0 +#define TC_HARDERROR 1 +#define TC_TRAP 2 +#define TC_KILLPROCESS 3 +#define TC_EXCEPTION 4 + + +typedef struct _RESULTCODES +{ + ULONG codeTerminate; + ULONG codeResult; +} RESULTCODES; +typedef RESULTCODES *PRESULTCODES; + +typedef struct tib2_s +{ + ULONG tib2_ultid; + ULONG tib2_ulpri; + ULONG tib2_version; + USHORT tib2_usMCCount; + USHORT tib2_fMCForceFlag; +} TIB2; +typedef TIB2 *PTIB2; + +typedef struct tib_s +{ + PVOID tib_pexchain; + PVOID tib_pstack; + PVOID tib_pstacklimit; + PTIB2 tib_ptib2; + ULONG tib_version; + ULONG tib_ordinal; +} TIB; +typedef TIB *PTIB; + +typedef struct pib_s +{ + ULONG pib_ulpid; + ULONG pib_ulppid; + ULONG pib_hmte; + PCHAR pib_pchcmd; + PCHAR pib_pchenv; + ULONG pib_flstatus; + ULONG pib_ultype; +} PIB; +typedef PIB *PPIB; + +typedef VOID (*PFNTHREAD)(ULONG ulThreadArg); +typedef VOID (*PFNEXITLIST)(ULONG ulArg); + + +ULONG DosAllocThreadLocalMemory (ULONG cb, PULONG *p); +ULONG DosCreateThread (PTID ptidThreadID, PFNTHREAD pfnThreadAddr, + ULONG ulThreadArg, ULONG ulFlags, ULONG ulStackSize); +ULONG DosEnterCritSec (VOID); +ULONG DosExecPgm (PCHAR pObjname, LONG lObjnameLength, ULONG ulFlagS, + PCSZ pszArg, PCSZ pszEnv, PRESULTCODES pReturnCodes, PCSZ pszName); +ULONG DosExitCritSec (VOID); +ULONG DosExitList (ULONG ulOrder, PFNEXITLIST pfn); +ULONG DosFreeThreadLocalMemory (ULONG *p); +ULONG DosGetInfoBlocks (PTIB *ptib, PPIB *ppib); +ULONG DosKillProcess (ULONG ulAction, PID pid); +ULONG DosKillThread (TID tid); +ULONG DosResumeThread (TID tid); +ULONG DosSetPriority (ULONG ulScope, ULONG ulClass, LONG lDelta, ULONG ulID); +ULONG DosSleep (ULONG ulInterval); +ULONG DosSuspendThread (TID tid); +ULONG DosVerifyPidTid (PID pid, TID tid); +ULONG DosWaitChild (ULONG ulAction, ULONG ulWait, PRESULTCODES pReturnCodes, + PPID ppidOut, PID pidIn); +ULONG DosWaitThread (PTID ptid, ULONG ulWait); + +#endif /* INCL_DOSPROCESS */ + +/* ------------------------------ SESSIONS -------------------------------- */ + +#if defined (INCL_DOSSESMGR) || defined (INCL_DOSFILEMGR) + +#define FAPPTYP_NOTSPEC 0x0000 +#define FAPPTYP_NOTWINDOWCOMPAT 0x0001 +#define FAPPTYP_WINDOWCOMPAT 0x0002 +#define FAPPTYP_WINDOWAPI 0x0003 +#define FAPPTYP_BOUND 0x0008 +#define FAPPTYP_DLL 0x0010 +#define FAPPTYP_DOS 0x0020 +#define FAPPTYP_PHYSDRV 0x0040 +#define FAPPTYP_VIRTDRV 0x0080 +#define FAPPTYP_PROTDLL 0x0100 +#define FAPPTYP_WINDOWSREAL 0x0200 +#define FAPPTYP_WINDOWSPROT 0x0400 +#define FAPPTYP_WINDOWSPROT31 0x1000 +#define FAPPTYP_32BIT 0x4000 +#define FAPPTYP_EXETYPE 0x0003 +#define FAPPTYP_RESERVED (~(FAPPTYP_WINDOWAPI | FAPPTYP_BOUND | \ + FAPPTYP_DLL | FAPPTYP_DOS | \ + FAPPTYP_PHYSDRV | FAPPTYP_VIRTDRV | \ + FAPPTYP_PROTDLL | FAPPTYP_32BIT)) + +#endif /* INCL_DOSSESMGR || INCL_DOSFILEMGR */ + +#if defined (INCL_DOSSESMGR) + +#define SET_SESSION_UNCHANGED 0 +#define SET_SESSION_SELECTABLE 1 +#define SET_SESSION_NON_SELECTABLE 2 +#define SET_SESSION_BOND 1 +#define SET_SESSION_NO_BOND 2 + +#define SSF_RELATED_INDEPENDENT 0 +#define SSF_RELATED_CHILD 1 + +#define SSF_FGBG_FORE 0 +#define SSF_FGBG_BACK 1 + +#define SSF_TRACEOPT_NONE 0 +#define SSF_TRACEOPT_TRACE 1 +#define SSF_TRACEOPT_TRACEALL 2 + +#define SSF_INHERTOPT_SHELL 0 +#define SSF_INHERTOPT_PARENT 1 + +#define SSF_TYPE_DEFAULT 0 +#define SSF_TYPE_FULLSCREEN 1 +#define SSF_TYPE_WINDOWABLEVIO 2 +#define SSF_TYPE_PM 3 +#define SSF_TYPE_VDM 4 +#define SSF_TYPE_GROUP 5 +#define SSF_TYPE_DLL 6 +#define SSF_TYPE_WINDOWEDVDM 7 +#define SSF_TYPE_PDD 8 +#define SSF_TYPE_VDD 9 + +#define SSF_CONTROL_VISIBLE 0x0000 +#define SSF_CONTROL_INVISIBLE 0x0001 +#define SSF_CONTROL_MAXIMIZE 0x0002 +#define SSF_CONTROL_MINIMIZE 0x0004 +#define SSF_CONTROL_NOAUTOCLOSE 0x0008 +#define SSF_CONTROL_SETPOS 0x8000 + +#define STOP_SESSION_SPECIFIED 0 +#define STOP_SESSION_ALL 1 + +typedef struct _STARTDATA +{ + USHORT Length; + USHORT Related; + USHORT FgBg; + USHORT TraceOpt; + PSZ PgmTitle; + PSZ PgmName; + PBYTE PgmInputs; + PBYTE TermQ; + PBYTE Environment; + USHORT InheritOpt; + USHORT SessionType; + PSZ IconFile; + ULONG PgmHandle; + USHORT PgmControl; + USHORT InitXPos; + USHORT InitYPos; + USHORT InitXSize; + USHORT InitYSize; + USHORT Reserved; + PSZ ObjectBuffer; + ULONG ObjectBuffLen; +} STARTDATA; +typedef STARTDATA *PSTARTDATA; + +typedef struct _STATUSDATA +{ + USHORT Length; + USHORT SelectInd; + USHORT BondInd; +} STATUSDATA; +typedef STATUSDATA *PSTATUSDATA; + +ULONG DosQueryAppType (PCSZ pszName, PULONG pulFlags); +ULONG DosSelectSession (ULONG ulIDSession); +ULONG DosSetSession (ULONG ulIDSession, PSTATUSDATA psd); +ULONG DosStartSession (PSTARTDATA psd, PULONG pulIDSession, PPID ppid); +ULONG DosStopSession (ULONG ulScope, ULONG ulIDSession); + +#endif /* INCL_DOSSESMGR */ + +/* ----------------------------- SEMAPHORES ------------------------------- */ + +#if defined (INCL_DOSSEMAPHORES) || !defined (INCL_NOCOMMON) + +#define DC_SEM_SHARED 0x01 +#define DCMW_WAIT_ANY 0x02 +#define DCMW_WAIT_ALL 0x04 + +#define SEM_INDEFINITE_WAIT ((ULONG)-1) +#define SEM_IMMEDIATE_RETURN 0 + +typedef ULONG HEV; +typedef HEV *PHEV; + +typedef struct _PSEMRECORD /* Note 1 */ +{ + HSEM hsemCur; + ULONG ulUser; +} SEMRECORD; +typedef SEMRECORD *PSEMRECORD; + +#endif /* INCL_DOSSEMAPHORES || !INCL_NOCOMMON */ + +#if defined (INCL_DOSSEMAPHORES) + +ULONG DosCloseEventSem (HEV hev); +ULONG DosCreateEventSem (PCSZ pszName, PHEV phev, ULONG ulAttr, BOOL32 fState); +ULONG DosOpenEventSem (PCSZ pszName, PHEV phev); +ULONG DosPostEventSem (HEV hev); +ULONG DosQueryEventSem (HEV hev, PULONG pulCount); +ULONG DosResetEventSem (HEV hev, PULONG pulCount); +ULONG DosWaitEventSem (HEV hev, ULONG ulTimeout); + +ULONG DosCloseMutexSem (HMTX hmtx); +ULONG DosCreateMutexSem (PCSZ pszName, PHMTX phmtx, ULONG ulAttr, + BOOL32 fState); +ULONG DosOpenMutexSem (PCSZ pszName, PHMTX phmtx); +ULONG DosQueryMutexSem (HMTX hmtx, PPID ppid, PTID ptid, PULONG pulCount); +ULONG DosReleaseMutexSem (HMTX hmtx); +ULONG DosRequestMutexSem (HMTX hmtx, ULONG ulTimeout); + +ULONG DosAddMuxWaitSem (HMUX hmux, PSEMRECORD pSemRec); +ULONG DosCloseMuxWaitSem (HMUX hmux); +ULONG DosCreateMuxWaitSem (PCSZ pszName, PHMUX phmux, ULONG ulcSemRec, + PSEMRECORD pSemRec, ULONG ulAttr); +ULONG DosDeleteMuxWaitSem (HMUX hmux, HSEM hSem); +ULONG DosOpenMuxWaitSem (PCSZ pszName, PHMUX phmux); +ULONG DosQueryMuxWaitSem (HMUX hmux, PULONG pulcSemRec, PSEMRECORD pSemRec, + PULONG pulAttr); +ULONG DosWaitMuxWaitSem (HMUX hmux, ULONG ulTimeout, PULONG pulUser); + +#endif /* INCL_DOSSEMAPHORES */ + +/* ---------------------------- NAMED PIPES ------------------------------- */ + +#define NP_INDEFINITE_WAIT ((ULONG)-1) +#define NP_DEFAULT_WAIT 0 + +#define NP_STATE_DISCONNECTED 1 +#define NP_STATE_LISTENING 2 +#define NP_STATE_CONNECTED 3 +#define NP_STATE_CLOSING 4 + +#define NP_ACCESS_INBOUND 0x0000 +#define NP_ACCESS_OUTBOUND 0x0001 +#define NP_ACCESS_DUPLEX 0x0002 +#define NP_INHERIT 0x0000 +#define NP_NOINHERIT 0x0080 +#define NP_WRITEBEHIND 0x0000 +#define NP_NOWRITEBEHIND 0x4000 + +#define NP_READMODE_BYTE 0x0000 +#define NP_READMODE_MESSAGE 0x0100 +#define NP_TYPE_BYTE 0x0000 +#define NP_TYPE_MESSAGE 0x0400 +#define NP_END_CLIENT 0x0000 +#define NP_END_SERVER 0x4000 +#define NP_WAIT 0x0000 +#define NP_NOWAIT 0x8000 +#define NP_UNLIMITED_INSTANCES 0x00ff + +#define NP_NBLK NO_WAIT +#define NP_SERVER NP_END_SERVER +#define NP_WMESG NP_TYPE_MESSAGE +#define NP_RMESG NP_READMODE_MESSAGE +#define NP_ICOUNT 0x00ff + +#define NPSS_EOI 0 +#define NPSS_RDATA 1 +#define NPSS_WSPACE 2 +#define NPSS_CLOSE 3 + +#define NPSS_WAIT 0x0001 + +typedef struct _AVAILDATA +{ + USHORT cbpipe; + USHORT cbmessage; +} AVAILDATA; +typedef AVAILDATA *PAVAILDATA; + +typedef struct _PIPEINFO +{ + USHORT cbOut; + USHORT cbIn; + BYTE cbMaxInst; + BYTE cbCurInst; + BYTE cbName; + CHAR szName[1]; +} PIPEINFO; +typedef PIPEINFO *PPIPEINFO; + +typedef struct _PIPESEMSTATE +{ + BYTE fStatus; + BYTE fFlag; + USHORT usKey; + USHORT usAvail; +} PIPESEMSTATE; +typedef PIPESEMSTATE *PPIPESEMSTATE; + +ULONG DosCallNPipe (PCSZ pszName, PVOID pInbuf, ULONG ulInbufLength, + PVOID pOutbuf, ULONG ulOutbufSize, PULONG pulActualLength, + ULONG ulTimeout); +ULONG DosConnectNPipe (HPIPE hpipe); +ULONG DosCreateNPipe (PCSZ pszName, PHPIPE phpipe, ULONG ulOpenMode, + ULONG ulPipeMode, ULONG ulInbufLength, ULONG ulOutbufLength, + ULONG ulTimeout); +ULONG DosDisConnectNPipe (HPIPE hpipe); +ULONG DosPeekNPipe (HPIPE hpipe, PVOID pBuf, ULONG ulBufLength, + PULONG pulActualLength, PAVAILDATA pAvail, PULONG pulState); +ULONG DosQueryNPHState (HPIPE hpipe, PULONG pulState); +ULONG DosQueryNPipeInfo (HPIPE hpipe, ULONG ulInfoLevel, PVOID pBuf, + ULONG ulBufLength); +ULONG DosQueryNPipeSemState (HSEM hsem, PPIPESEMSTATE pState, + ULONG ulBufLength); +ULONG DosRawReadNPipe (PCSZ pszName, ULONG ulCount, PULONG pulLength, + PVOID pBuf); +ULONG DosRawWriteNPipe (PCSZ pszName, ULONG ulCount); +ULONG DosSetNPHState (HPIPE hpipe, ULONG ulState); +ULONG DosSetNPipeSem (HPIPE hpipe, HSEM hsem, ULONG ulKey); +ULONG DosTransactNPipe (HPIPE hpipe, PVOID pOutbuf, ULONG ulOutbufLength, + PVOID pInbuf, ULONG ulInbufLength, PULONG pulBytesRead); +ULONG DosWaitNPipe (PCSZ pszName, ULONG ulTimeout); + +/* ------------------------------- QUEUES --------------------------------- */ + +#if defined (INCL_DOSQUEUES) + +#define QUE_FIFO 0x0000 +#define QUE_LIFO 0x0001 +#define QUE_PRIORITY 0x0002 +#define QUE_NOCONVERT_ADDRESS 0x0000 +#define QUE_CONVERT_ADDRESS 0x0004 + +typedef struct _REQUESTDATA +{ + PID pid; + ULONG ulData; +} REQUESTDATA; +typedef REQUESTDATA *PREQUESTDATA; + +ULONG DosCreatePipe (PHFILE phfReadHandle, PHFILE phfWriteHandle, + ULONG ulPipeSize); + +ULONG DosCloseQueue (HQUEUE hq); +ULONG DosCreateQueue (PHQUEUE phq, ULONG ulPriority, PCSZ pszName); +ULONG DosOpenQueue (PPID ppid, PHQUEUE phq, PCSZ pszName); +ULONG DosPeekQueue (HQUEUE hq, PREQUESTDATA pRequest, PULONG pulDataLength, + PPVOID pDataAddress, PULONG pulElement, BOOL32 fNowait, PBYTE pPriority, + HEV hsem); +ULONG DosPurgeQueue (HQUEUE hq); +ULONG DosQueryQueue (HQUEUE hq, PULONG pulCount); +ULONG DosReadQueue (HQUEUE hq, PREQUESTDATA pRequest, PULONG pulDataLength, + PPVOID pDataAddress, ULONG pulElement, BOOL32 fNowait, PBYTE pPriority, + HEV hsem); +ULONG DosWriteQueue (HQUEUE hq, ULONG ulRequest, ULONG ulDataLength, + PVOID pData, ULONG ulPriority); + +#endif /* INCL_DOSQUEUES */ + +/* --------------------------- EXCEPTIONS --------------------------------- */ + +#if defined (INCL_DOSEXCEPTIONS) + +#define CONTEXT_CONTROL 0x0001 +#define CONTEXT_INTEGER 0x0002 +#define CONTEXT_SEGMENTS 0x0004 +#define CONTEXT_FLOATING_POINT 0x0008 +#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | \ + CONTEXT_SEGMENTS | CONTEXT_FLOATING_POINT) + +#define EH_NONCONTINUABLE 0x0001 +#define EH_UNWINDING 0x0002 +#define EH_EXIT_UNWIND 0x0004 +#define EH_STACK_INVALID 0x0008 +#define EH_NESTED_CALL 0x0010 + +#define SIG_UNSETFOCUS 0 +#define SIG_SETFOCUS 1 + +#define UNWIND_ALL 0 + +#define XCPT_CONTINUE_SEARCH 0x00000000 +#define XCPT_CONTINUE_EXECUTION 0xffffffff +#define XCPT_CONTINUE_STOP 0x00716668 + +#define XCPT_SIGNAL_INTR 1 +#define XCPT_SIGNAL_KILLPROC 3 +#define XCPT_SIGNAL_BREAK 4 + +#define XCPT_FATAL_EXCEPTION 0xc0000000 +#define XCPT_SEVERITY_CODE 0xc0000000 +#define XCPT_CUSTOMER_CODE 0x20000000 +#define XCPT_FACILITY_CODE 0x1fff0000 +#define XCPT_EXCEPTION_CODE 0x0000ffff + +#define XCPT_UNKNOWN_ACCESS 0x00000000 +#define XCPT_READ_ACCESS 0x00000001 +#define XCPT_WRITE_ACCESS 0x00000002 +#define XCPT_EXECUTE_ACCESS 0x00000004 +#define XCPT_SPACE_ACCESS 0x00000008 +#define XCPT_LIMIT_ACCESS 0x00000010 +#define XCPT_DATA_UNKNOWN 0xffffffff + +#define XCPT_GUARD_PAGE_VIOLATION 0x80000001 +#define XCPT_UNABLE_TO_GROW_STACK 0x80010001 +#define XCPT_ACCESS_VIOLATION 0xc0000005 +#define XCPT_IN_PAGE_ERROR 0xc0000006 +#define XCPT_ILLEGAL_INSTRUCTION 0xc000001c +#define XCPT_INVALID_LOCK_SEQUENCE 0xc000001d +#define XCPT_NONCONTINUABLE_EXCEPTION 0xc0000024 +#define XCPT_INVALID_DISPOSITION 0xc0000025 +#define XCPT_UNWIND 0xc0000026 +#define XCPT_BAD_STACK 0xc0000027 +#define XCPT_INVALID_UNWIND_TARGET 0xc0000028 +#define XCPT_ARRAY_BOUNDS_EXCEEDED 0xc0000093 +#define XCPT_FLOAT_DENORMAL_OPERAND 0xc0000094 +#define XCPT_FLOAT_DIVIDE_BY_ZERO 0xc0000095 +#define XCPT_FLOAT_INEXACT_RESULT 0xc0000096 +#define XCPT_FLOAT_INVALID_OPERATION 0xc0000097 +#define XCPT_FLOAT_OVERFLOW 0xc0000098 +#define XCPT_FLOAT_STACK_CHECK 0xc0000099 +#define XCPT_FLOAT_UNDERFLOW 0xc000009a +#define XCPT_INTEGER_DIVIDE_BY_ZERO 0xc000009b +#define XCPT_INTEGER_OVERFLOW 0xc000009c +#define XCPT_PRIVILEGED_INSTRUCTION 0xc000009d +#define XCPT_DATATYPE_MISALIGNMENT 0xc000009e +#define XCPT_BREAKPOINT 0xc000009f +#define XCPT_SINGLE_STEP 0xc00000a0 +#define XCPT_PROCESS_TERMINATE 0xc0010001 +#define XCPT_ASYNC_PROCESS_TERMINATE 0xc0010002 +#define XCPT_SIGNAL 0xc0010003 + +typedef struct _fpreg /* Note 1 */ +{ + ULONG losig; + ULONG hisig; + USHORT signexp; +} FPREG; +typedef FPREG *PFPREG; + +typedef struct _CONTEXT /* Note 1 */ +{ + ULONG ContextFlags; + ULONG ctx_env[7]; + FPREG ctx_stack[8]; + ULONG ctx_SegGs; + ULONG ctx_SegFs; + ULONG ctx_SegEs; + ULONG ctx_SegDs; + ULONG ctx_RegEdi; + ULONG ctx_RegEsi; + ULONG ctx_RegEax; + ULONG ctx_RegEbx; + ULONG ctx_RegEcx; + ULONG ctx_RegEdx; + ULONG ctx_RegEbp; + ULONG ctx_RegEip; + ULONG ctx_SegCs; + ULONG ctx_EFlags; + ULONG ctx_RegEsp; + ULONG ctx_SegSs; +} CONTEXTRECORD; +typedef CONTEXTRECORD *PCONTEXTRECORD; + +#define EXCEPTION_MAXIMUM_PARAMETERS 4 + +typedef struct _EXCEPTIONREPORTRECORD +{ + ULONG ExceptionNum; + ULONG fHandlerFlags; + struct _EXCEPTIONREPORTRECORD * NestedExceptionReportRecord; + PVOID ExceptionAddress; + ULONG cParameters; + ULONG ExceptionInfo[EXCEPTION_MAXIMUM_PARAMETERS]; +} EXCEPTIONREPORTRECORD; +typedef EXCEPTIONREPORTRECORD *PEXCEPTIONREPORTRECORD; + +struct _EXCEPTIONREGISTRATIONRECORD; + +typedef ULONG _ERR (PEXCEPTIONREPORTRECORD pReport, + struct _EXCEPTIONREGISTRATIONRECORD *pRegistration, + PCONTEXTRECORD pContext, PVOID pWhatever); +typedef _ERR *ERR; + +typedef struct _EXCEPTIONREGISTRATIONRECORD +{ + struct _EXCEPTIONREGISTRATIONRECORD * __volatile__ prev_structure; + ERR __volatile__ ExceptionHandler; +} EXCEPTIONREGISTRATIONRECORD; +typedef EXCEPTIONREGISTRATIONRECORD *PEXCEPTIONREGISTRATIONRECORD; + +#define END_OF_CHAIN ((PEXCEPTIONREGISTRATIONRECORD)(-1)) + +ULONG DosAcknowledgeSignalException (ULONG ulSignal); +ULONG DosEnterMustComplete (PULONG pulNesting); +ULONG DosExitMustComplete (PULONG pulNesting); +ULONG DosQueryThreadContext (TID tid, ULONG ulLevel, PCONTEXTRECORD pContext); +ULONG DosRaiseException (PEXCEPTIONREPORTRECORD pXRepRec); +ULONG DosSendSignalException (PID pid, ULONG ulSignal); +ULONG DosSetExceptionHandler (PEXCEPTIONREGISTRATIONRECORD pXRegRec); +ULONG DosSetSignalExceptionFocus (BOOL32 flag, PULONG pulTimes); +ULONG DosUnsetExceptionHandler (PEXCEPTIONREGISTRATIONRECORD pXRegRec); +ULONG DosUnwindException (PEXCEPTIONREGISTRATIONRECORD pXRegRec, + PVOID pJumpThere, PEXCEPTIONREPORTRECORD pXRepRec); + +#endif /* INCL_DOSEXCEPTIONS */ + +/* --------------------------- INFORMATION -------------------------------- */ + +#if defined (INCL_DOSMISC) + +#define QSV_MAX_PATH_LENGTH 1 +#define QSV_MAX_TEXT_SESSIONS 2 +#define QSV_MAX_PM_SESSIONS 3 +#define QSV_MAX_VDM_SESSIONS 4 +#define QSV_BOOT_DRIVE 5 +#define QSV_DYN_PRI_VARIATION 6 +#define QSV_MAX_WAIT 7 +#define QSV_MIN_SLICE 8 +#define QSV_MAX_SLICE 9 +#define QSV_PAGE_SIZE 10 +#define QSV_VERSION_MAJOR 11 +#define QSV_VERSION_MINOR 12 +#define QSV_VERSION_REVISION 13 +#define QSV_MS_COUNT 14 +#define QSV_TIME_LOW 15 +#define QSV_TIME_HIGH 16 +#define QSV_TOTPHYSMEM 17 +#define QSV_TOTRESMEM 18 +#define QSV_TOTAVAILMEM 19 +#define QSV_MAXPRMEM 20 +#define QSV_MAXSHMEM 21 +#define QSV_TIMER_INTERVAL 22 +#define QSV_MAX_COMP_LENGTH 23 +#define QSV_FOREGROUND_FS_SESSION 24 +#define QSV_FOREGROUND_PROCESS 25 +#define QSV_MAX QSV_FOREGROUND_PROCESS + +#define SIS_MMIOADDR 0 +#define SIS_MEC_TABLE 1 +#define SIS_SYS_LOG 2 + +ULONG DosQuerySysInfo (ULONG ulStart, ULONG ulLast, PVOID pBuf, + ULONG ulBufLength); +ULONG DosScanEnv (PCSZ pszName, PSZ *pszValue); +ULONG DosQueryRASInfo (ULONG Index, PPVOID Addr); + +#endif /* INCL_DOSMISC */ + +/* ---------------------------- TIMERS ------------------------------------ */ + +#if defined (INCL_DOSDATETIME) || !defined (INCL_NOCOMMON) + +typedef struct _DATETIME +{ + UCHAR hours; + UCHAR minutes; + UCHAR seconds; + UCHAR hundredths; + UCHAR day; + UCHAR month; + USHORT year; + SHORT timezone; + UCHAR weekday; +} DATETIME; +typedef DATETIME *PDATETIME; + +ULONG DosGetDateTime (PDATETIME pdt); +ULONG DosSetDateTime (__const__ DATETIME *pdt); + +#endif /* INCL_DOSDATETIME || !INCL_NOCOMMON */ + + +#if defined (INCL_DOSDATETIME) + +typedef LHANDLE HTIMER; +typedef HTIMER *PHTIMER; + +ULONG DosAsyncTimer (ULONG ulMilliSec, HSEM hsem, PHTIMER phtimer); +ULONG DosStartTimer (ULONG ulMilliSec, HSEM hsem, PHTIMER phtimer); +ULONG DosStopTimer (HTIMER htimer); + +#endif /* INCL_DOSDATETIME */ + +#if defined (INCL_DOSPROFILE) + +typedef struct _QWORD +{ + ULONG ulLo; + ULONG ulHi; +} QWORD; +typedef QWORD *PQWORD; + +ULONG DosTmrQueryFreq (PULONG pulTmrFreq); +ULONG DosTmrQueryTime (PQWORD pqwTmrTime); + +#endif /* INCL_DOSPROFILE */ + +/* ---------------------- VIRTUAL DOS MACHINES----------------------------- */ + +typedef USHORT SGID; + +#if defined (INCL_DOSMVDM) + +typedef LHANDLE HVDD; +typedef HVDD *PHVDD; + +ULONG DosCloseVDD (HVDD hvdd); +ULONG DosOpenVDD (PCSZ pszVDD, PHVDD phvdd); +ULONG DosQueryDOSProperty (SGID sgidSesssionID, PCSZ pszName, + ULONG ulBufferLength, PSZ pBuffer); +ULONG DosRequestVDD (HVDD hvdd, SGID sgidSessionID, ULONG ulCommand, + ULONG ulInputBufferLength, PVOID pInputBuffer, + ULONG ulOutputBufferLength, PVOID pOutputBuffer); +ULONG DosSetDOSProperty (SGID sgidSessionID, PCSZ pszName, + ULONG ulBufferLength, PCSZ pBuffer); + +#endif /* INCL_DOSMVDM */ + +/* --------------------------- DEBUGGING ---------------------------------- */ + +#if defined (INCL_DOSPROCESS) + +#define DBG_C_Null 0 +#define DBG_C_ReadMem 1 +#define DBG_C_ReadMem_I 1 +#define DBG_C_ReadMem_D 2 +#define DBG_C_ReadReg 3 +#define DBG_C_WriteMem 4 +#define DBG_C_WriteMem_I 4 +#define DBG_C_WriteMem_D 5 +#define DBG_C_WriteReg 6 +#define DBG_C_Go 7 +#define DBG_C_Term 8 +#define DBG_C_SStep 9 +#define DBG_C_Stop 10 +#define DBG_C_Freeze 11 +#define DBG_C_Resume 12 +#define DBG_C_NumToAddr 13 +#define DBG_C_ReadCoRegs 14 +#define DBG_C_WriteCoRegs 15 +#define DBG_C_ThrdStat 17 +#define DBG_C_MapROAlias 18 +#define DBG_C_MapRWAlias 19 +#define DBG_C_UnMapAlias 20 +#define DBG_C_Connect 21 +#define DBG_C_ReadMemBuf 22 +#define DBG_C_WriteMemBuf 23 +#define DBG_C_SetWatch 24 +#define DBG_C_ClearWatch 25 +#define DBG_C_RangeStep 26 +#define DBG_C_Continue 27 +#define DBG_C_AddrToObject 28 +#define DBG_C_XchngOpcode 29 +#define DBG_C_LinToSel 30 +#define DBG_C_SelToLin 31 + +#define DBG_N_Success 0 +#define DBG_N_Error (-1) +#define DBG_N_ProcTerm (-6) +#define DBG_N_Exception (-7) +#define DBG_N_ModuleLoad (-8) +#define DBG_N_CoError (-9) +#define DBG_N_ThreadTerm (-10) +#define DBG_N_AsyncStop (-11) +#define DBG_N_NewProc (-12) +#define DBG_N_AliasFree (-13) +#define DBG_N_Watchpoint (-14) +#define DBG_N_ThreadCreate (-15) +#define DBG_N_ModuleFree (-16) +#define DBG_N_RangeStep (-17) + +#define DBG_D_Thawed 0 +#define DBG_D_Frozen 1 + +#define DBG_T_Runnable 0 +#define DBG_T_Suspended 1 +#define DBG_T_Blocked 2 +#define DBG_T_CritSec 3 + +#define DBG_L_386 1 + +#define DBG_LEN_387 108 + +#define DBG_CO_387 1 + +#define DBG_O_OBJMTE 0x10000000 + +#define DBG_W_Global 0x00000001 +#define DBG_W_Local 0x00000002 +#define DBG_W_Execute 0x00010000 +#define DBG_W_Write 0x00020000 +#define DBG_W_ReadWrite 0x00030000 + +#define DBG_X_PRE_FIRST_CHANCE 0x00000000 +#define DBG_X_FIRST_CHANCE 0x00000001 +#define DBG_X_LAST_CHANCE 0x00000002 +#define DBG_X_STACK_INVALID 0x00000003 + +typedef struct _TStat +{ + UCHAR DbgState; + UCHAR TState; + USHORT TPriority; +} TStat_t; + +typedef struct _uDB +{ + ULONG Pid; + ULONG Tid; + LONG Cmd; + LONG Value; + ULONG Addr; + ULONG Buffer; + ULONG Len; + ULONG Index; + ULONG MTE; + ULONG EAX; + ULONG ECX; + ULONG EDX; + ULONG EBX; + ULONG ESP; + ULONG EBP; + ULONG ESI; + ULONG EDI; + ULONG EFlags; + ULONG EIP; + ULONG CSLim; + ULONG CSBase; + UCHAR CSAcc; + UCHAR CSAtr; + USHORT CS; + ULONG DSLim; + ULONG DSBase; + UCHAR DSAcc; + UCHAR DSAtr; + USHORT DS; + ULONG ESLim; + ULONG ESBase; + UCHAR ESAcc; + UCHAR ESAtr; + USHORT ES; + ULONG FSLim; + ULONG FSBase; + UCHAR FSAcc; + UCHAR FSAtr; + USHORT FS; + ULONG GSLim; + ULONG GSBase; + UCHAR GSAcc; + UCHAR GSAtr; + USHORT GS; + ULONG SSLim; + ULONG SSBase; + UCHAR SSAcc; + UCHAR SSAtr; + USHORT SS; +} uDB_t; + +ULONG DosDebug (uDB_t *pDebugBuffer); + +#endif /* INCL_DOSPROCESS */ + +/* ---------------------------- MESSAGES ---------------------------------- */ + +#if defined (INCL_DOSMISC) + +ULONG DosGetMessage (PCHAR *pTable, ULONG ulTableEntries, + PCHAR pBuffer, ULONG ulBufferLengthMax, ULONG ulMsgnNumber, + PCSZ pszFile, PULONG pulBufferLength); +ULONG DosInsertMessage (PCHAR *pTable, ULONG ulCount, PCSZ pszMsg, + ULONG ulMsgLength, PCHAR pBuffer, ULONG ulBufferLengthMax, + PULONG pulBufferLength); +ULONG DosPutMessage (HFILE hfile, ULONG ulMessageLength, PCHAR pMessage); +ULONG DosQueryMessageCP (PCHAR pBuffer, ULONG ulBufferLengthMax, + PCSZ pszFilename, PULONG pulBufferLength); + +#endif /* INCL_DOSMISC */ + +/* ----------------------------- RAS -------------------------------------- */ + +#if defined (INCL_DOSRAS) + +#define DDP_DISABLEPROCDUMP 0 +#define DDP_ENABLEPROCDUMP 1 +#define DDP_PERFORMPROCDUMP 2 + +#define LF_LOGENABLE 0x0001 +#define LF_LOGAVAILABLE 0x0002 + +#define SIS_MMIOADDR 0 +#define SIS_MEC_TABLE 1 +#define SIS_SYS_LOG 2 + +#define SPU_DISABLESUPPRESSION 0 +#define SPU_ENABLESUPPRESSION 1 + +ULONG DosDumpProcess (ULONG ulFlag, ULONG ulDrive, PID pid); +ULONG DosForceSystemDump (ULONG ulReserved); +ULONG DosQueryRASInfo (ULONG ulIndex, PPVOID addr); +ULONG DosSuppressPopUps (ULONG ulFlag, ULONG ulDrive); + +#endif /* INCL_DOSRAS */ + +/* ---------------------------- REXX -------------------------------------- */ + +#define RXAUTOBUFLEN 256 + +typedef struct _RXSTRING +{ + ULONG strlength; + PCH strptr; +} RXSTRING; +typedef RXSTRING *PRXSTRING; + +typedef struct _RXSYSEXIT +{ + PSZ sysexit_name; + LONG sysexit_code; +} RXSYSEXIT; +typedef RXSYSEXIT *PRXSYSEXIT; + +#define RXNULLSTRING(r) ((r).strptr == (PCH)0) +#define RXZEROLENSTRING(r) ((r).strptr != (PCH)0 && (r).strlength == 0) +#define RXVALIDSTRING(r) ((r).strptr != (PCH)0 && (r).strlength != 0) +#define RXSTRLEN(r) (RXNULLSTRING(r) ? 0 : (r).strlength) +#define RXSTRPTR(r) (r).strptr +#define MAKERXSTRING(r,p,l) \ + ((r).strptr = (PCH)p, (r).strlength = (ULONG)l) + +#define RXCOMMAND 0 +#define RXSUBROUTINE 1 +#define RXFUNCTION 2 + +#if defined (INCL_RXSUBCOM) + +#define RXSUBCOM_DROPPABLE 0x0000 +#define RXSUBCOM_NONDROP 0x0001 + +#define RXSUBCOM_ISREG 0x0001 +#define RXSUBCOM_ERROR 0x0001 +#define RXSUBCOM_FAILURE 0x0002 + +#define RXSUBCOM_BADENTRY 1001 +#define RXSUBCOM_NOEMEM 1002 +#define RXSUBCOM_BADTYPE 1003 +#define RXSUBCOM_NOTINIT 1004 + +#define RXSUBCOM_OK 0 +#define RXSUBCOM_DUP 10 +#define RXSUBCOM_MAXREG 20 +#define RXSUBCOM_NOTREG 30 +#define RXSUBCOM_NOCANDROP 40 +#define RXSUBCOM_LOADERR 50 +#define RXSUBCOM_NOPROC 127 + +typedef ULONG RexxSubcomHandler (PRXSTRING prxCommand, PUSHORT pusFlags, + PRXSTRING prxResult); + +ULONG RexxDeregisterSubcom (PCSZ pszEnvName, PCSZ pszModuleName); +ULONG RexxQuerySubcom (PCSZ pszEnvName, PCSZ pszModuleName, PUSHORT pusFlags, + PUCHAR pUserWord); +ULONG RexxRegisterSubcomDll (PCSZ pszEnvName, PCSZ pszModuleName, + PCSZ pszEntryPoint, PUCHAR pUserArea, ULONG ulDropAuth); +ULONG RexxRegisterSubcomExe (PCSZ pszEnvName, PFN pfnEntryPoint, + PUCHAR pUserArea); + +#define REXXDEREGISTERSUBCOM RexxDeregisterSubcom +#define REXXREGISTERSUBCOMDLL RexxRegisterSubcomDll +#define REXXREGISTERSUBCOMEXE RexxRegisterSubcomExe +#define REXXQUERYSUBCOM RexxQuerySubcom + +#endif /* INCL_RXSUBCOM */ + +#if defined (INCL_RXSHV) + +#define RXSHV_SET 0x0000 +#define RXSHV_FETCH 0x0001 +#define RXSHV_DROPV 0x0002 +#define RXSHV_SYSET 0x0003 +#define RXSHV_SYFET 0x0004 +#define RXSHV_SYDRO 0x0005 +#define RXSHV_NEXTV 0x0006 +#define RXSHV_PRIV 0x0007 +#define RXSHV_EXIT 0x0008 + +#define RXSHV_NOAVL 144 + +#define RXSHV_OK 0x0000 +#define RXSHV_NEWV 0x0001 +#define RXSHV_LVAR 0x0002 +#define RXSHV_TRUNC 0x0004 +#define RXSHV_BADN 0x0008 +#define RXSHV_MEMFL 0x0010 +#define RXSHV_BADF 0x0080 + +typedef struct _SHVBLOCK +{ + struct _SHVBLOCK *shvnext; + RXSTRING shvname; + RXSTRING shvvalue; + ULONG shvnamelen; + ULONG shvvaluelen; + UCHAR shvcode; + UCHAR shvret; +} SHVBLOCK; +typedef SHVBLOCK *PSHVBLOCK; + +ULONG RexxVariablePool (PSHVBLOCK pRequest); + +#define REXXVARIABLEPOOL RexxVariablePool + +#endif /* INCL_RXSHV */ + +#if defined (INCL_RXFUNC) + +#define RXFUNC_DYNALINK 1 +#define RXFUNC_CALLENTRY 2 + +#define RXFUNC_OK 0 +#define RXFUNC_DEFINED 10 +#define RXFUNC_NOMEM 20 +#define RXFUNC_NOTREG 30 +#define RXFUNC_MODNOTFND 40 +#define RXFUNC_ENTNOTFND 50 +#define RXFUNC_NOTINIT 60 +#define RXFUNC_BADTYPE 70 + +typedef ULONG RexxFunctionHandler (PCSZ pszName, ULONG ulArgCount, + PRXSTRING prxArgList, PCSZ pszQueueName, PRXSTRING prxResult); + +ULONG RexxDeregisterFunction (PCSZ pszFuncName); +ULONG RexxQueryFunction (PCSZ pszFuncName); +ULONG RexxRegisterFunctionDll (PCSZ pszFuncName, PCSZ pszModuleName, + PCSZ pszEntryPoint); +ULONG RexxRegisterFunctionExe (PCSZ pszFuncName, + RexxFunctionHandler *pfnEntryPoint); + +#define REXXDEREGISTERFUNCTION RexxDeregisterFunction +#define REXXQUERYFUNCTION RexxQueryFunction +#define REXXREGISTERFUNCTIONDLL RexxRegisterFunctionDll +#define REXXREGISTERFUNCTIONEXE RexxRegisterFunctionExe + +#endif /* INCL_RXFUNC */ + +#if defined (INCL_RXSYSEXIT) + +#define RXEXIT_DROPPABLE 0x0000 +#define RXEXIT_NONDROP 0x0001 + +#define RXEXIT_HANDLED 0 +#define RXEXIT_NOT_HANDLED 1 +#define RXEXIT_RAISE_ERROR (-1) + +#define RXEXIT_ISREG 0x0001 +#define RXEXIT_ERROR 0x0001 +#define RXEXIT_FAILURE 0x0002 + +#define RXEXIT_BADENTRY 1001 +#define RXEXIT_NOEMEM 1002 +#define RXEXIT_BADTYPE 1003 +#define RXEXIT_NOTINIT 1004 + +#define RXEXIT_OK 0 +#define RXEXIT_DUP 10 +#define RXEXIT_MAXREG 20 +#define RXEXIT_NOTREG 30 +#define RXEXIT_NOCANDROP 40 +#define RXEXIT_LOADERR 50 +#define RXEXIT_NOPROC 127 + +#define RXENDLST 0 + +#define RXFNC 2 +#define RXFNCCAL 1 + +#define RXCMD 3 +#define RXCMDHST 1 + +#define RXMSQ 4 +#define RXMSQPLL 1 +#define RXMSQPSH 2 +#define RXMSQSIZ 3 +#define RXMSQNAM 20 + +#define RXSIO 5 +#define RXSIOSAY 1 +#define RXSIOTRC 2 +#define RXSIOTRD 3 +#define RXSIODTR 4 +#define RXSIOTLL 5 + +#define RXHLT 7 +#define RXHLTCLR 1 +#define RXHLTTST 2 + +#define RXTRC 8 +#define RXTRCTST 1 + +#define RXINI 9 +#define RXINIEXT 1 + +#define RXTER 10 +#define RXTEREXT 1 + +#define RXNOOFEXITS 11 + +typedef PUCHAR PEXIT; + +typedef struct _RXFNC_FLAGS +{ + ULONG rxfferr : 1; + ULONG rxffnfnd : 1; + ULONG rxffsub : 1; +} RXFNC_FLAGS; + +typedef struct _RXFNCCAL_PARM +{ + RXFNC_FLAGS rxfnc_flags; + PUCHAR rxfnc_name; + USHORT rxfnc_namel; + PUCHAR rxfnc_que; + USHORT rxfnc_quel; + USHORT rxfnc_argc; + PRXSTRING rxfnc_argv; + RXSTRING rxfnc_retc; +} RXFNCCAL_PARM; + +typedef struct _RXCMD_FLAGS +{ + ULONG rxfcfail : 1; + ULONG rxfcerr : 1; +} RXCMD_FLAGS; + +typedef struct _RXCMDHST_PARM +{ + RXCMD_FLAGS rxcmd_flags; + PUCHAR rxcmd_address; + USHORT rxcmd_addressl; + PUCHAR rxcmd_dll; + USHORT rxcmd_dll_len; + RXSTRING rxcmd_command; + RXSTRING rxcmd_retc; +} RXCMDHST_PARM; + +typedef struct _RXMSQPLL_PARM +{ + RXSTRING rxmsq_retc; +} RXMSQPLL_PARM; + +typedef struct _RXMSQ_FLAGS +{ + ULONG rxfmlifo : 1; +} RXMSQ_FLAGS; + +typedef struct _RXMSQPSH_PARM +{ + RXMSQ_FLAGS rxmsq_flags; + RXSTRING rxmsq_value; +} RXMSQPSH_PARM; + +typedef struct _RXMSQSIZ_PARM +{ + ULONG rxmsq_size; +} RXMSQSIZ_PARM; + +typedef struct _RXMSQNAM_PARM +{ + RXSTRING rxmsq_name; +} RXMSQNAM_PARM; + +typedef struct _RXSIOSAY_PARM +{ + RXSTRING rxsio_string; +} RXSIOSAY_PARM; + +typedef struct _RXSIOTRC_PARM +{ + RXSTRING rxsio_string; +} RXSIOTRC_PARM; + +typedef struct _RXSIOTRD_PARM +{ + RXSTRING rxsiotrd_retc; +} RXSIOTRD_PARM; + +typedef struct _RXSIODR_PARM +{ + RXSTRING rxsiodtr_retc; +} RXSIODTR_PARM; + +typedef struct _RXHLT_FLAGS +{ + ULONG rxfhhalt : 1; +} RXHLT_FLAGS; + +typedef struct _RXHLTTST_PARM +{ + RXHLT_FLAGS rxhlt_flags; +} RXHLTTST_PARM; + +typedef struct _RXTRC_FLAGS +{ + ULONG rxftrace : 1; +} RXTRC_FLAGS; + +typedef struct _RXTRCTST_PARM +{ + RXTRC_FLAGS rxtrc_flags; +} RXTRCTST_PARM; + +typedef LONG RexxExitHandler (LONG lExitNumber, LONG lSubfunction, + PEXIT pParmBlock); + +ULONG RexxDeregisterExit (PCSZ pszEnvName, PCSZ pszModuleName); +ULONG RexxQueryExit (PCSZ pszEnvName, PCSZ pszModuleName, PUSHORT pusFlag, + PUCHAR pUserWord); +ULONG RexxRegisterExitDll (PCSZ pszEnvName, PCSZ pszModuleName, + PCSZ pszEntryName, PUCHAR pUserArea, ULONG ulDropAuth); +ULONG RexxRegisterExitExe (PCSZ pszEnvName, PFN pfnEntryPoint, + PUCHAR pUserArea); + +#define REXXDEREGISTEREXIT RexxDeregisterExit +#define REXXQUERYEXIT RexxQueryExit +#define REXXREGISTEREXITDLL RexxRegisterExitDll +#define REXXREGISTEREXITEXE RexxRegisterExitExe + +#endif /* INCL_RXSYSEXIT */ + +#if defined (INCL_RXARI) + +#define RXARI_OK 0 +#define RXARI_NOT_FOUND 1 +#define RXARI_PROCESSING_ERROR 2 + +ULONG RexxResetTrace (PID pid, TID tid); +ULONG RexxSetHalt (PID pid, TID tid); +ULONG RexxSetTrace (PID pid, TID tid); + +#define REXXRESETTRACE RexxResetTrace +#define REXXSETHALT RexxSetHalt +#define REXXSETTRACE RexxSetTrace + +#endif /* INCL_RXARI */ + +#if defined (INCL_RXMACRO) + +#define RXMACRO_SEARCH_BEFORE 1 +#define RXMACRO_SEARCH_AFTER 2 + +#define RXMACRO_OK 0 +#define RXMACRO_NO_STORAGE 1 +#define RXMACRO_NOT_FOUND 2 +#define RXMACRO_EXTENSION_REQUIRED 3 +#define RXMACRO_ALREADY_EXISTS 4 +#define RXMACRO_FILE_ERROR 5 +#define RXMACRO_SIGNATURE_ERROR 6 +#define RXMACRO_SOURCE_NOT_FOUND 7 +#define RXMACRO_INVALID_POSITION 8 +#define RXMACRO_NOT_INIT 9 + +ULONG RexxAddMacro (PCSZ pszFuncName, PCSZ pszSourceFile, ULONG ulPosition); +ULONG RexxClearMacroSpace (VOID); +ULONG RexxDropMacro (PCSZ pszFuncName); +ULONG RexxLoadMacroSpace (ULONG ulFuncCout, PCSZ *apszFuncNames, + PCSZ pszMacroLibFile); +ULONG RexxQueryMacro (PCSZ pszFuncName, PUSHORT pusPosition); +ULONG RexxReorderMacro(PCSZ pszFuncName, ULONG ulPosition); +ULONG RexxSaveMacroSpace (ULONG ulFuncCount, PCSZ *apszFuncNames, + PCSZ pszMacroLibFile); + +#define REXXADDMACRO RexxAddMacro +#define REXXCLEARMACROSPACE RexxClearMacroSpace +#define REXXDROPMACRO RexxDropMacro +#define REXXSAVEMACROSPACE RexxSaveMacroSpace +#define REXXLOADMACROSPACE RexxLoadMacroSpace +#define REXXQUERYMACRO RexxQueryMacro +#define REXXREORDERMACRO RexxReorderMacro + +#endif /* INCL_RXMACRO */ + +LONG RexxStart (LONG lArgCount, PRXSTRING prxArgList, PCSZ pszProgramName, + PRXSTRING prxInstore, PCSZ pszEnvName, LONG lCallType, PRXSYSEXIT pExits, + PSHORT psReturnCode, PRXSTRING prxResult); + +#define REXXSTART RexxStart + +/* ----------------------- PRESENTATION MANAGER --------------------------- */ + +#define CTLS_WM_BIDI_FIRST 0x390 +#define CTLS_WM_BIDI_LAST 0x39f + +#if defined (INCL_NLS) +#define WM_DBCSFIRST 0x00b0 +#define WM_DBCSLAST 0x00cf +#endif /* INCL_NLS */ + +#define WC_FRAME ((PSZ)0xffff0001) +#define WC_COMBOBOX ((PSZ)0xffff0002) +#define WC_BUTTON ((PSZ)0xffff0003) +#define WC_MENU ((PSZ)0xffff0004) +#define WC_STATIC ((PSZ)0xffff0005) +#define WC_ENTRYFIELD ((PSZ)0xffff0006) +#define WC_LISTBOX ((PSZ)0xffff0007) +#define WC_SCROLLBAR ((PSZ)0xffff0008) +#define WC_TITLEBAR ((PSZ)0xffff0009) +#define WC_MLE ((PSZ)0xffff000a) +#define WC_APPSTAT ((PSZ)0xffff0010) +#define WC_KBDSTAT ((PSZ)0xffff0011) +#define WC_PECIC ((PSZ)0xffff0012) +#define WC_DBE_KKPOPUP ((PSZ)0xffff0013) +#define WC_SPINBUTTON ((PSZ)0xffff0020) +#define WC_CONTAINER ((PSZ)0xffff0025) +#define WC_SLIDER ((PSZ)0xffff0026) +#define WC_VALUESET ((PSZ)0xffff0027) +#define WC_NOTEBOOK ((PSZ)0xffff0028) +#define WC_PENFIRST ((PSZ)0xffff0029) +#define WC_PENLAST ((PSZ)0xffff002c) +#define WC_MMPMFIRST ((PSZ)0xffff0040) +#define WC_CIRCULARSLIDER ((PSZ)0xffff0041) +#define WC_MMPMLAST ((PSZ)0xffff004f) + +#define WS_VISIBLE 0x80000000 +#define WS_DISABLED 0x40000000 +#define WS_CLIPCHILDREN 0x20000000 +#define WS_CLIPSIBLINGS 0x10000000 +#define WS_PARENTCLIP 0x08000000 +#define WS_SAVEBITS 0x04000000 +#define WS_SYNCPAINT 0x02000000 +#define WS_MINIMIZED 0x01000000 +#define WS_MAXIMIZED 0x00800000 +#define WS_ANIMATE 0x00400000 +#define WS_GROUP 0x00010000 +#define WS_TABSTOP 0x00020000 +#define WS_MULTISELECT 0x00040000 + +#define CS_MOVENOTIFY 0x00000001 +#define CS_SIZEREDRAW 0x00000004 +#define CS_HITTEST 0x00000008 +#define CS_PUBLIC 0x00000010 +#define CS_FRAME 0x00000020 +#define CS_CLIPCHILDREN 0x20000000 +#define CS_CLIPSIBLINGS 0x10000000 +#define CS_PARENTCLIP 0x08000000 +#define CS_SAVEBITS 0x04000000 +#define CS_SYNCPAINT 0x02000000 + +#define MID_NONE (-1) +#define MID_ERROR (-1) + +#define DB_PATCOPY 0x0000 +#define DB_PATINVERT 0x0001 +#define DB_DESTINVERT 0x0002 +#define DB_AREAMIXMODE 0x0003 + +#define DB_ROP 0x0007 +#define DB_INTERIOR 0x0008 +#define DB_AREAATTRS 0x0010 +#define DB_STANDARD 0x0100 +#define DB_DLGBORDER 0x0200 + +#define DBM_NORMAL 0x0000 +#define DBM_INVERT 0x0001 +#define DBM_HALFTONE 0x0002 +#define DBM_STRETCH 0x0004 +#define DBM_IMAGEATTRS 0x0008 + +#define DT_LEFT 0x00000000 +#define DT_QUERYEXTENT 0x00000002 +#define DT_UNDERSCORE 0x00000010 +#define DT_STRIKEOUT 0x00000020 +#define DT_TEXTATTRS 0x00000040 +#define DT_EXTERNALLEADING 0x00000080 +#define DT_CENTER 0x00000100 +#define DT_RIGHT 0x00000200 +#define DT_TOP 0x00000000 +#define DT_VCENTER 0x00000400 +#define DT_BOTTOM 0x00000800 +#define DT_HALFTONE 0x00001000 +#define DT_MNEMONIC 0x00002000 +#define DT_WORDBREAK 0x00004000 +#define DT_ERASERECT 0x00008000 + +#define QW_NEXT 0 +#define QW_PREV 1 +#define QW_TOP 2 +#define QW_BOTTOM 3 +#define QW_OWNER 4 +#define QW_PARENT 5 +#define QW_NEXTTOP 6 +#define QW_PREVTOP 7 +#define QW_FRAMEOWNER 8 + +#define SWP_SIZE 0x0001 +#define SWP_MOVE 0x0002 +#define SWP_ZORDER 0x0004 +#define SWP_SHOW 0x0008 +#define SWP_HIDE 0x0010 +#define SWP_NOREDRAW 0x0020 +#define SWP_NOADJUST 0x0040 +#define SWP_ACTIVATE 0x0080 +#define SWP_DEACTIVATE 0x0100 +#define SWP_EXTSTATECHANGE 0x0200 +#define SWP_MINIMIZE 0x0400 +#define SWP_MAXIMIZE 0x0800 +#define SWP_RESTORE 0x1000 +#define SWP_FOCUSACTIVATE 0x2000 +#define SWP_FOCUSDEACTIVATE 0x4000 +#define SWP_NOAUTOCLOSE 0x8000 + +#define AWP_MINIMIZED 0x00010000 +#define AWP_MAXIMIZED 0x00020000 +#define AWP_RESTORED 0x00040000 +#define AWP_ACTIVATE 0x00080000 +#define AWP_DEACTIVATE 0x00100000 + +#define HWND_DESKTOP ((HWND)1) +#define HWND_OBJECT ((HWND)2) +#define HWND_TOP ((HWND)3) +#define HWND_BOTTOM ((HWND)4) +#define HWND_THREADCAPTURE ((HWND)5) + +#define EAF_DEFAULTOWNER 0x0001 +#define EAF_UNCHANGEABLE 0x0002 +#define EAF_REUSEICON 0x0004 + +#define ICON_FILE 1 +#define ICON_RESOURCE 2 +#define ICON_DATA 3 +#define ICON_CLEAR 4 + +#define SZDDEFMT_RTF "Rich Text Format" +#define SZDDEFMT_PTRPICT "Printer_Picture" + +#define STR_DLLNAME "keyremap" + +#if defined (INCL_WINERRORS) + +#define PMERR_INVALID_HWND 0x1001 +#define PMERR_INVALID_HMQ 0x1002 +#define PMERR_PARAMETER_OUT_OF_RANGE 0x1003 +#define PMERR_WINDOW_LOCK_UNDERFLOW 0x1004 +#define PMERR_WINDOW_LOCK_OVERFLOW 0x1005 +#define PMERR_BAD_WINDOW_LOCK_COUNT 0x1006 +#define PMERR_WINDOW_NOT_LOCKED 0x1007 +#define PMERR_INVALID_SELECTOR 0x1008 +#define PMERR_CALL_FROM_WRONG_THREAD 0x1009 +#define PMERR_RESOURCE_NOT_FOUND 0x100a +#define PMERR_INVALID_STRING_PARM 0x100b +#define PMERR_INVALID_HHEAP 0x100c +#define PMERR_INVALID_HEAP_POINTER 0x100d +#define PMERR_INVALID_HEAP_SIZE_PARM 0x100e +#define PMERR_INVALID_HEAP_SIZE 0x100f +#define PMERR_INVALID_HEAP_SIZE_WORD 0x1010 +#define PMERR_HEAP_OUT_OF_MEMORY 0x1011 +#define PMERR_HEAP_MAX_SIZE_REACHED 0x1012 +#define PMERR_INVALID_HATOMTBL 0x1013 +#define PMERR_INVALID_ATOM 0x1014 +#define PMERR_INVALID_ATOM_NAME 0x1015 +#define PMERR_INVALID_INTEGER_ATOM 0x1016 +#define PMERR_ATOM_NAME_NOT_FOUND 0x1017 +#define PMERR_QUEUE_TOO_LARGE 0x1018 +#define PMERR_INVALID_FLAG 0x1019 +#define PMERR_INVALID_HACCEL 0x101a +#define PMERR_INVALID_HPTR 0x101b +#define PMERR_INVALID_HENUM 0x101c +#define PMERR_INVALID_SRC_CODEPAGE 0x101d +#define PMERR_INVALID_DST_CODEPAGE 0x101e +#define PMERR_UNKNOWN_COMPONENT_ID 0x101f +#define PMERR_UNKNOWN_ERROR_CODE 0x1020 +#define PMERR_SEVERITY_LEVELS 0x1021 +#define PMERR_INVALID_RESOURCE_FORMAT 0x1034 +#define PMERR_NO_MSG_QUEUE 0x1036 +#define PMERR_CANNOT_SET_FOCUS 0x1037 +#define PMERR_QUEUE_FULL 0x1038 +#define PMERR_LIBRARY_LOAD_FAILED 0x1039 +#define PMERR_PROCEDURE_LOAD_FAILED 0x103a +#define PMERR_LIBRARY_DELETE_FAILED 0x103b +#define PMERR_PROCEDURE_DELETE_FAILED 0x103c +#define PMERR_ARRAY_TOO_LARGE 0x103d +#define PMERR_ARRAY_TOO_SMALL 0x103e +#define PMERR_DATATYPE_ENTRY_BAD_INDEX 0x103f +#define PMERR_DATATYPE_ENTRY_CTL_BAD 0x1040 +#define PMERR_DATATYPE_ENTRY_CTL_MISS 0x1041 +#define PMERR_DATATYPE_ENTRY_INVALID 0x1042 +#define PMERR_DATATYPE_ENTRY_NOT_NUM 0x1043 +#define PMERR_DATATYPE_ENTRY_NOT_OFF 0x1044 +#define PMERR_DATATYPE_INVALID 0x1045 +#define PMERR_DATATYPE_NOT_UNIQUE 0x1046 +#define PMERR_DATATYPE_TOO_LONG 0x1047 +#define PMERR_DATATYPE_TOO_SMALL 0x1048 +#define PMERR_DIRECTION_INVALID 0x1049 +#define PMERR_INVALID_HAB 0x104a +#define PMERR_INVALID_HSTRUCT 0x104d +#define PMERR_LENGTH_TOO_SMALL 0x104e +#define PMERR_MSGID_TOO_SMALL 0x104f +#define PMERR_NO_HANDLE_ALLOC 0x1050 +#define PMERR_NOT_IN_A_PM_SESSION 0x1051 +#define PMERR_MSG_QUEUE_ALREADY_EXISTS 0x1052 +#define PMERR_SEND_MSG_TIMEOUT 0x1053 +#define PMERROR_SEND_MSG_FAILED 0x1054 +#define PMERR_OLD_RESOURCE 0x1055 +#define PMERR_WPDSERVER_IS_ACTIVE 0x1056 +#define PMERR_WPDSERVER_NOT_STARTED 0x1057 +#define PMERR_SOMDD_IS_ACTIVE 0x1058 +#define PMERR_SOMDD_NOT_STARTED 0x1059 + +#define PMERR_BIDI_FIRST 0x10f0 +#define PMERR_BIDI_LAST 0x10ff + +#endif /* INCL_WINERRORS */ + +#if defined (INCL_SHLERRORS) + +#define PMERR_INVALID_PIB 0x1101 +#define PMERR_INSUFF_SPACE_TO_ADD 0x1102 +#define PMERR_INVALID_GROUP_HANDLE 0x1103 +#define PMERR_DUPLICATE_TITLE 0x1104 +#define PMERR_INVALID_TITLE 0x1105 +#define PMERR_HANDLE_NOT_IN_GROUP 0x1107 +#define PMERR_INVALID_TARGET_HANDLE 0x1106 +#define PMERR_INVALID_PATH_STATEMENT 0x1108 +#define PMERR_NO_PROGRAM_FOUND 0x1109 +#define PMERR_INVALID_BUFFER_SIZE 0x110a +#define PMERR_BUFFER_TOO_SMALL 0x110b +#define PMERR_PL_INITIALISATION_FAIL 0x110c +#define PMERR_CANT_DESTROY_SYS_GROUP 0x110d +#define PMERR_INVALID_TYPE_CHANGE 0x110e +#define PMERR_INVALID_PROGRAM_HANDLE 0x110f +#define PMERR_NOT_CURRENT_PL_VERSION 0x1110 +#define PMERR_INVALID_CIRCULAR_REF 0x1111 +#define PMERR_MEMORY_ALLOCATION_ERR 0x1112 +#define PMERR_MEMORY_DEALLOCATION_ERR 0x1113 +#define PMERR_TASK_HEADER_TOO_BIG 0x1114 +#define PMERR_INVALID_INI_FILE_HANDLE 0x1115 +#define PMERR_MEMORY_SHARE 0x1116 +#define PMERR_OPEN_QUEUE 0x1117 +#define PMERR_CREATE_QUEUE 0x1118 +#define PMERR_WRITE_QUEUE 0x1119 +#define PMERR_READ_QUEUE 0x111a +#define PMERR_CALL_NOT_EXECUTED 0x111b +#define PMERR_UNKNOWN_APIPKT 0x111c +#define PMERR_INITHREAD_EXISTS 0x111d +#define PMERR_CREATE_THREAD 0x111e +#define PMERR_NO_HK_PROFILE_INSTALLED 0x111f +#define PMERR_INVALID_DIRECTORY 0x1120 +#define PMERR_WILDCARD_IN_FILENAME 0x1121 +#define PMERR_FILENAME_BUFFER_FULL 0x1122 +#define PMERR_FILENAME_TOO_LONG 0x1123 +#define PMERR_INI_FILE_IS_SYS_OR_USER 0x1124 +#define PMERR_BROADCAST_PLMSG 0x1125 +#define PMERR_190_INIT_DONE 0x1126 +#define PMERR_HMOD_FOR_PMSHAPI 0x1127 +#define PMERR_SET_HK_PROFILE 0x1128 +#define PMERR_API_NOT_ALLOWED 0x1129 +#define PMERR_INI_STILL_OPEN 0x112a +#define PMERR_PROGDETAILS_NOT_IN_INI 0x112b +#define PMERR_PIBSTRUCT_NOT_IN_INI 0x112c +#define PMERR_INVALID_DISKPROGDETAILS 0x112d +#define PMERR_PROGDETAILS_READ_FAILURE 0x112e +#define PMERR_PROGDETAILS_WRITE_FAILURE 0x112f +#define PMERR_PROGDETAILS_QSIZE_FAILURE 0x1130 +#define PMERR_INVALID_PROGDETAILS 0x1131 +#define PMERR_SHEPROFILEHOOK_NOT_FOUND 0x1132 +#define PMERR_190PLCONVERTED 0x1133 +#define PMERR_FAILED_TO_CONVERT_INI_PL 0x1134 +#define PMERR_PMSHAPI_NOT_INITIALISED 0x1135 +#define PMERR_INVALID_SHELL_API_HOOK_ID 0x1136 +#define PMERR_DOS_ERROR 0x1200 +#define PMERR_NO_SPACE 0x1201 +#define PMERR_INVALID_SWITCH_HANDLE 0x1202 +#define PMERR_NO_HANDLE 0x1203 +#define PMERR_INVALID_PROCESS_ID 0x1204 +#define PMERR_NOT_SHELL 0x1205 +#define PMERR_INVALID_WINDOW 0x1206 +#define PMERR_INVALID_POST_MSG 0x1207 +#define PMERR_INVALID_PARAMETERS 0x1208 +#define PMERR_INVALID_PROGRAM_TYPE 0x1209 +#define PMERR_NOT_EXTENDED_FOCUS 0x120a +#define PMERR_INVALID_SESSION_ID 0x120b +#define PMERR_SMG_INVALID_ICON_FILE 0x120c +#define PMERR_SMG_ICON_NOT_CREATED 0x120d +#define PMERR_SHL_DEBUG 0x120e +#define PMERR_OPENING_INI_FILE 0x1301 +#define PMERR_INI_FILE_CORRUPT 0x1302 +#define PMERR_INVALID_PARM 0x1303 +#define PMERR_NOT_IN_IDX 0x1304 +#define PMERR_NO_ENTRIES_IN_GROUP 0x1305 +#define PMERR_INI_WRITE_FAIL 0x1306 +#define PMERR_IDX_FULL 0x1307 +#define PMERR_INI_PROTECTED 0x1308 +#define PMERR_MEMORY_ALLOC 0x1309 +#define PMERR_INI_INIT_ALREADY_DONE 0x130a +#define PMERR_INVALID_INTEGER 0x130b +#define PMERR_INVALID_ASCIIZ 0x130c +#define PMERR_CAN_NOT_CALL_SPOOLER 0x130d +#define PMERR_VALIDATION_REJECTED 0x130d /*!*/ +#define PMERR_WARNING_WINDOW_NOT_KILLED 0x1401 +#define PMERR_ERROR_INVALID_WINDOW 0x1402 +#define PMERR_ALREADY_INITIALIZED 0x1403 +#define PMERR_MSG_PROG_NO_MOU 0x1405 +#define PMERR_MSG_PROG_NON_RECOV 0x1406 +#define PMERR_WINCONV_INVALID_PATH 0x1407 +#define PMERR_PI_NOT_INITIALISED 0x1408 +#define PMERR_PL_NOT_INITIALISED 0x1409 +#define PMERR_NO_TASK_MANAGER 0x140a +#define PMERR_SAVE_NOT_IN_PROGRESS 0x140b +#define PMERR_NO_STACK_SPACE 0x140c +#define PMERR_INVALID_COLR_FIELD 0x140d +#define PMERR_INVALID_COLR_VALUE 0x140e +#define PMERR_COLR_WRITE 0x140f +#define PMERR_TARGET_FILE_EXISTS 0x1501 +#define PMERR_SOURCE_SAME_AS_TARGET 0x1502 +#define PMERR_SOURCE_FILE_NOT_FOUND 0x1503 +#define PMERR_INVALID_NEW_PATH 0x1504 +#define PMERR_TARGET_FILE_NOT_FOUND 0x1505 +#define PMERR_INVALID_DRIVE_NUMBER 0x1506 +#define PMERR_NAME_TOO_LONG 0x1507 +#define PMERR_NOT_ENOUGH_ROOM_ON_DISK 0x1508 +#define PMERR_NOT_ENOUGH_MEM 0x1509 +#define PMERR_LOG_DRV_DOES_NOT_EXIST 0x150b +#define PMERR_INVALID_DRIVE 0x150c +#define PMERR_ACCESS_DENIED 0x150d +#define PMERR_NO_FIRST_SLASH 0x150e +#define PMERR_READ_ONLY_FILE 0x150f +#define PMERR_GROUP_PROTECTED 0x151f +#define PMERR_INVALID_PROGRAM_CATEGORY 0x152f +#define PMERR_INVALID_APPL 0x1530 +#define PMERR_CANNOT_START 0x1531 +#define PMERR_STARTED_IN_BACKGROUND 0x1532 +#define PMERR_INVALID_HAPP 0x1533 +#define PMERR_CANNOT_STOP 0x1534 +#define PMERR_INVALID_FREE_MESSAGE_ID 0x1630 +#define PMERR_FUNCTION_NOT_SUPPORTED 0x1641 +#define PMERR_INVALID_ARRAY_COUNT 0x1642 +#define PMERR_INVALID_LENGTH 0x1643 +#define PMERR_INVALID_BUNDLE_TYPE 0x1644 +#define PMERR_INVALID_PARAMETER 0x1645 +#define PMERR_INVALID_NUMBER_OF_PARMS 0x1646 +#define PMERR_GREATER_THAN_64K 0x1647 +#define PMERR_INVALID_PARAMETER_TYPE 0x1648 +#define PMERR_NEGATIVE_STRCOND_DIM 0x1649 +#define PMERR_INVALID_NUMBER_OF_TYPES 0x164a +#define PMERR_INCORRECT_HSTRUCT 0x164b +#define PMERR_INVALID_ARRAY_SIZE 0x164c +#define PMERR_INVALID_CONTROL_DATATYPE 0x164d +#define PMERR_INCOMPLETE_CONTROL_SEQU 0x164e +#define PMERR_INVALID_DATATYPE 0x164f +#define PMERR_INCORRECT_DATATYPE 0x1650 +#define PMERR_NOT_SELF_DESCRIBING_DTYP 0x1651 +#define PMERR_INVALID_CTRL_SEQ_INDEX 0x1652 +#define PMERR_INVALID_TYPE_FOR_LENGTH 0x1653 +#define PMERR_INVALID_TYPE_FOR_OFFSET 0x1654 +#define PMERR_INVALID_TYPE_FOR_MPARAM 0x1655 +#define PMERR_INVALID_MESSAGE_ID 0x1656 +#define PMERR_C_LENGTH_TOO_SMALL 0x1657 +#define PMERR_APPL_STRUCTURE_TOO_SMALL 0x1658 +#define PMERR_INVALID_ERRORINFO_HANDLE 0x1659 +#define PMERR_INVALID_CHARACTER_INDEX 0x165a + +#endif /* INCL_SHLERRORS */ + +#if defined (INCL_GPIERRORS) + +#define PMERR_OK 0x0000 +#define PMERR_ALREADY_IN_AREA 0x2001 +#define PMERR_ALREADY_IN_ELEMENT 0x2002 +#define PMERR_ALREADY_IN_PATH 0x2003 +#define PMERR_ALREADY_IN_SEG 0x2004 +#define PMERR_AREA_INCOMPLETE 0x2005 +#define PMERR_BASE_ERROR 0x2006 +#define PMERR_BITBLT_LENGTH_EXCEEDED 0x2007 +#define PMERR_BITMAP_IN_USE 0x2008 +#define PMERR_BITMAP_IS_SELECTED 0x2009 +#define PMERR_BITMAP_NOT_FOUND 0x200a +#define PMERR_BITMAP_NOT_SELECTED 0x200b +#define PMERR_BOUNDS_OVERFLOW 0x200c +#define PMERR_CALLED_SEG_IS_CHAINED 0x200d +#define PMERR_CALLED_SEG_IS_CURRENT 0x200e +#define PMERR_CALLED_SEG_NOT_FOUND 0x200f +#define PMERR_CANNOT_DELETE_ALL_DATA 0x2010 +#define PMERR_CANNOT_REPLACE_ELEMENT_0 0x2011 +#define PMERR_COL_TABLE_NOT_REALIZABLE 0x2012 +#define PMERR_COL_TABLE_NOT_REALIZED 0x2013 +#define PMERR_COORDINATE_OVERFLOW 0x2014 +#define PMERR_CORR_FORMAT_MISMATCH 0x2015 +#define PMERR_DATA_TOO_LONG 0x2016 +#define PMERR_DC_IS_ASSOCIATED 0x2017 +#define PMERR_DESC_STRING_TRUNCATED 0x2018 +#define PMERR_DEVICE_DRIVER_ERROR_1 0x2019 +#define PMERR_DEVICE_DRIVER_ERROR_2 0x201a +#define PMERR_DEVICE_DRIVER_ERROR_3 0x201b +#define PMERR_DEVICE_DRIVER_ERROR_4 0x201c +#define PMERR_DEVICE_DRIVER_ERROR_5 0x201d +#define PMERR_DEVICE_DRIVER_ERROR_6 0x201e +#define PMERR_DEVICE_DRIVER_ERROR_7 0x201f +#define PMERR_DEVICE_DRIVER_ERROR_8 0x2020 +#define PMERR_DEVICE_DRIVER_ERROR_9 0x2021 +#define PMERR_DEVICE_DRIVER_ERROR_10 0x2022 +#define PMERR_DEV_FUNC_NOT_INSTALLED 0x2023 +#define PMERR_DOSOPEN_FAILURE 0x2024 +#define PMERR_DOSREAD_FAILURE 0x2025 +#define PMERR_DRIVER_NOT_FOUND 0x2026 +#define PMERR_DUP_SEG 0x2027 +#define PMERR_DYNAMIC_SEG_SEQ_ERROR 0x2028 +#define PMERR_DYNAMIC_SEG_ZERO_INV 0x2029 +#define PMERR_ELEMENT_INCOMPLETE 0x202a +#define PMERR_ESC_CODE_NOT_SUPPORTED 0x202b +#define PMERR_EXCEEDS_MAX_SEG_LENGTH 0x202c +#define PMERR_FONT_AND_MODE_MISMATCH 0x202d +#define PMERR_FONT_FILE_NOT_LOADED 0x202e +#define PMERR_FONT_NOT_LOADED 0x202f +#define PMERR_FONT_TOO_BIG 0x2030 +#define PMERR_HARDWARE_INIT_FAILURE 0x2031 +#define PMERR_HBITMAP_BUSY 0x2032 +#define PMERR_HDC_BUSY 0x2033 +#define PMERR_HRGN_BUSY 0x2034 +#define PMERR_HUGE_FONTS_NOT_SUPPORTED 0x2035 +#define PMERR_ID_HAS_NO_BITMAP 0x2036 +#define PMERR_IMAGE_INCOMPLETE 0x2037 +#define PMERR_INCOMPAT_COLOR_FORMAT 0x2038 +#define PMERR_INCOMPAT_COLOR_OPTIONS 0x2039 +#define PMERR_INCOMPATIBLE_BITMAP 0x203a +#define PMERR_INCOMPATIBLE_METAFILE 0x203b +#define PMERR_INCORRECT_DC_TYPE 0x203c +#define PMERR_INSUFFICIENT_DISK_SPACE 0x203d +#define PMERR_INSUFFICIENT_MEMORY 0x203e +#define PMERR_INV_ANGLE_PARM 0x203f +#define PMERR_INV_ARC_CONTROL 0x2040 +#define PMERR_INV_AREA_CONTROL 0x2041 +#define PMERR_INV_ARC_POINTS 0x2042 +#define PMERR_INV_ATTR_MODE 0x2043 +#define PMERR_INV_BACKGROUND_COL_ATTR 0x2044 +#define PMERR_INV_BACKGROUND_MIX_ATTR 0x2045 +#define PMERR_INV_BITBLT_MIX 0x2046 +#define PMERR_INV_BITBLT_STYLE 0x2047 +#define PMERR_INV_BITMAP_DIMENSION 0x2048 +#define PMERR_INV_BOX_CONTROL 0x2049 +#define PMERR_INV_BOX_ROUNDING_PARM 0x204a +#define PMERR_INV_CHAR_ANGLE_ATTR 0x204b +#define PMERR_INV_CHAR_DIRECTION_ATTR 0x204c +#define PMERR_INV_CHAR_MODE_ATTR 0x204d +#define PMERR_INV_CHAR_POS_OPTIONS 0x204e +#define PMERR_INV_CHAR_SET_ATTR 0x204f +#define PMERR_INV_CHAR_SHEAR_ATTR 0x2050 +#define PMERR_INV_CLIP_PATH_OPTIONS 0x2051 +#define PMERR_INV_CODEPAGE 0x2052 +#define PMERR_INV_COLOR_ATTR 0x2053 +#define PMERR_INV_COLOR_DATA 0x2054 +#define PMERR_INV_COLOR_FORMAT 0x2055 +#define PMERR_INV_COLOR_INDEX 0x2056 +#define PMERR_INV_COLOR_OPTIONS 0x2057 +#define PMERR_INV_COLOR_START_INDEX 0x2058 +#define PMERR_INV_COORD_OFFSET 0x2059 +#define PMERR_INV_COORD_SPACE 0x205a +#define PMERR_INV_COORDINATE 0x205b +#define PMERR_INV_CORRELATE_DEPTH 0x205c +#define PMERR_INV_CORRELATE_TYPE 0x205d +#define PMERR_INV_CURSOR_BITMAP 0x205e +#define PMERR_INV_DC_DATA 0x205f +#define PMERR_INV_DC_TYPE 0x2060 +#define PMERR_INV_DEVICE_NAME 0x2061 +#define PMERR_INV_DEV_MODES_OPTIONS 0x2062 +#define PMERR_INV_DRAW_CONTROL 0x2063 +#define PMERR_INV_DRAW_VALUE 0x2064 +#define PMERR_INV_DRAWING_MODE 0x2065 +#define PMERR_INV_DRIVER_DATA 0x2066 +#define PMERR_INV_DRIVER_NAME 0x2067 +#define PMERR_INV_DRAW_BORDER_OPTION 0x2068 +#define PMERR_INV_EDIT_MODE 0x2069 +#define PMERR_INV_ELEMENT_OFFSET 0x206a +#define PMERR_INV_ELEMENT_POINTER 0x206b +#define PMERR_INV_END_PATH_OPTIONS 0x206c +#define PMERR_INV_ESC_CODE 0x206d +#define PMERR_INV_ESCAPE_DATA 0x206e +#define PMERR_INV_EXTENDED_LCID 0x206f +#define PMERR_INV_FILL_PATH_OPTIONS 0x2070 +#define PMERR_INV_FIRST_CHAR 0x2071 +#define PMERR_INV_FONT_ATTRS 0x2072 +#define PMERR_INV_FONT_FILE_DATA 0x2073 +#define PMERR_INV_FOR_THIS_DC_TYPE 0x2074 +#define PMERR_INV_FORMAT_CONTROL 0x2075 +#define PMERR_INV_FORMS_CODE 0x2076 +#define PMERR_INV_FONTDEF 0x2077 +#define PMERR_INV_GEOM_LINE_WIDTH_ATTR 0x2078 +#define PMERR_INV_GETDATA_CONTROL 0x2079 +#define PMERR_INV_GRAPHICS_FIELD 0x207a +#define PMERR_INV_HBITMAP 0x207b +#define PMERR_INV_HDC 0x207c +#define PMERR_INV_HJOURNAL 0x207d +#define PMERR_INV_HMF 0x207e +#define PMERR_INV_HPS 0x207f +#define PMERR_INV_HRGN 0x2080 +#define PMERR_INV_ID 0x2081 +#define PMERR_INV_IMAGE_DATA_LENGTH 0x2082 +#define PMERR_INV_IMAGE_DIMENSION 0x2083 +#define PMERR_INV_IMAGE_FORMAT 0x2084 +#define PMERR_INV_IN_AREA 0x2085 +#define PMERR_INV_IN_CALLED_SEG 0x2086 +#define PMERR_INV_IN_CURRENT_EDIT_MODE 0x2087 +#define PMERR_INV_IN_DRAW_MODE 0x2088 +#define PMERR_INV_IN_ELEMENT 0x2089 +#define PMERR_INV_IN_IMAGE 0x208a +#define PMERR_INV_IN_PATH 0x208b +#define PMERR_INV_IN_RETAIN_MODE 0x208c +#define PMERR_INV_IN_SEG 0x208d +#define PMERR_INV_IN_VECTOR_SYMBOL 0x208e +#define PMERR_INV_INFO_TABLE 0x208f +#define PMERR_INV_JOURNAL_OPTION 0x2090 +#define PMERR_INV_KERNING_FLAGS 0x2091 +#define PMERR_INV_LENGTH_OR_COUNT 0x2092 +#define PMERR_INV_LINE_END_ATTR 0x2093 +#define PMERR_INV_LINE_JOIN_ATTR 0x2094 +#define PMERR_INV_LINE_TYPE_ATTR 0x2095 +#define PMERR_INV_LINE_WIDTH_ATTR 0x2096 +#define PMERR_INV_LOGICAL_ADDRESS 0x2097 +#define PMERR_INV_MARKER_BOX_ATTR 0x2098 +#define PMERR_INV_MARKER_SET_ATTR 0x2099 +#define PMERR_INV_MARKER_SYMBOL_ATTR 0x209a +#define PMERR_INV_MATRIX_ELEMENT 0x209b +#define PMERR_INV_MAX_HITS 0x209c +#define PMERR_INV_METAFILE 0x209d +#define PMERR_INV_METAFILE_LENGTH 0x209e +#define PMERR_INV_METAFILE_OFFSET 0x209f +#define PMERR_INV_MICROPS_DRAW_CONTROL 0x20a0 +#define PMERR_INV_MICROPS_FUNCTION 0x20a1 +#define PMERR_INV_MICROPS_ORDER 0x20a2 +#define PMERR_INV_MIX_ATTR 0x20a3 +#define PMERR_INV_MODE_FOR_OPEN_DYN 0x20a4 +#define PMERR_INV_MODE_FOR_REOPEN_SEG 0x20a5 +#define PMERR_INV_MODIFY_PATH_MODE 0x20a6 +#define PMERR_INV_MULTIPLIER 0x20a7 +#define PMERR_INV_NESTED_FIGURES 0x20a8 +#define PMERR_INV_OR_INCOMPAT_OPTIONS 0x20a9 +#define PMERR_INV_ORDER_LENGTH 0x20aa +#define PMERR_INV_ORDERING_PARM 0x20ab +#define PMERR_INV_OUTSIDE_DRAW_MODE 0x20ac +#define PMERR_INV_PAGE_VIEWPORT 0x20ad +#define PMERR_INV_PATH_ID 0x20ae +#define PMERR_INV_PATH_MODE 0x20af +#define PMERR_INV_PATTERN_ATTR 0x20b0 +#define PMERR_INV_PATTERN_REF_PT_ATTR 0x20b1 +#define PMERR_INV_PATTERN_SET_ATTR 0x20b2 +#define PMERR_INV_PATTERN_SET_FONT 0x20b3 +#define PMERR_INV_PICK_APERTURE_OPTION 0x20b4 +#define PMERR_INV_PICK_APERTURE_POSN 0x20b5 +#define PMERR_INV_PICK_APERTURE_SIZE 0x20b6 +#define PMERR_INV_PICK_NUMBER 0x20b7 +#define PMERR_INV_PLAY_METAFILE_OPTION 0x20b8 +#define PMERR_INV_PRIMITIVE_TYPE 0x20b9 +#define PMERR_INV_PS_SIZE 0x20ba +#define PMERR_INV_PUTDATA_FORMAT 0x20bb +#define PMERR_INV_QUERY_ELEMENT_NO 0x20bc +#define PMERR_INV_RECT 0x20bd +#define PMERR_INV_REGION_CONTROL 0x20be +#define PMERR_INV_REGION_MIX_MODE 0x20bf +#define PMERR_INV_REPLACE_MODE_FUNC 0x20c0 +#define PMERR_INV_RESERVED_FIELD 0x20c1 +#define PMERR_INV_RESET_OPTIONS 0x20c2 +#define PMERR_INV_RGBCOLOR 0x20c3 +#define PMERR_INV_SCAN_START 0x20c4 +#define PMERR_INV_SEG_ATTR 0x20c5 +#define PMERR_INV_SEG_ATTR_VALUE 0x20c6 +#define PMERR_INV_SEG_CH_LENGTH 0x20c7 +#define PMERR_INV_SEG_NAME 0x20c8 +#define PMERR_INV_SEG_OFFSET 0x20c9 +#define PMERR_INV_SETID 0x20ca +#define PMERR_INV_SETID_TYPE 0x20cb +#define PMERR_INV_SET_VIEWPORT_OPTION 0x20cc +#define PMERR_INV_SHARPNESS_PARM 0x20cd +#define PMERR_INV_SOURCE_OFFSET 0x20ce +#define PMERR_INV_STOP_DRAW_VALUE 0x20cf +#define PMERR_INV_TRANSFORM_TYPE 0x20d0 +#define PMERR_INV_USAGE_PARM 0x20d1 +#define PMERR_INV_VIEWING_LIMITS 0x20d2 +#define PMERR_JFILE_BUSY 0x20d3 +#define PMERR_JNL_FUNC_DATA_TOO_LONG 0x20d4 +#define PMERR_KERNING_NOT_SUPPORTED 0x20d5 +#define PMERR_LABEL_NOT_FOUND 0x20d6 +#define PMERR_MATRIX_OVERFLOW 0x20d7 +#define PMERR_METAFILE_INTERNAL_ERROR 0x20d8 +#define PMERR_METAFILE_IN_USE 0x20d9 +#define PMERR_METAFILE_LIMIT_EXCEEDED 0x20da +#define PMERR_NAME_STACK_FULL 0x20db +#define PMERR_NOT_CREATED_BY_DEVOPENDC 0x20dc +#define PMERR_NOT_IN_AREA 0x20dd +#define PMERR_NOT_IN_DRAW_MODE 0x20de +#define PMERR_NOT_IN_ELEMENT 0x20df +#define PMERR_NOT_IN_IMAGE 0x20e0 +#define PMERR_NOT_IN_PATH 0x20e1 +#define PMERR_NOT_IN_RETAIN_MODE 0x20e2 +#define PMERR_NOT_IN_SEG 0x20e3 +#define PMERR_NO_BITMAP_SELECTED 0x20e4 +#define PMERR_NO_CURRENT_ELEMENT 0x20e5 +#define PMERR_NO_CURRENT_SEG 0x20e6 +#define PMERR_NO_METAFILE_RECORD_HANDLE 0x20e7 +#define PMERR_ORDER_TOO_BIG 0x20e8 +#define PMERR_OTHER_SET_ID_REFS 0x20e9 +#define PMERR_OVERRAN_SEG 0x20ea +#define PMERR_OWN_SET_ID_REFS 0x20eb +#define PMERR_PATH_INCOMPLETE 0x20ec +#define PMERR_PATH_LIMIT_EXCEEDED 0x20ed +#define PMERR_PATH_UNKNOWN 0x20ee +#define PMERR_PEL_IS_CLIPPED 0x20ef +#define PMERR_PEL_NOT_AVAILABLE 0x20f0 +#define PMERR_PRIMITIVE_STACK_EMPTY 0x20f1 +#define PMERR_PROLOG_ERROR 0x20f2 +#define PMERR_PROLOG_SEG_ATTR_NOT_SET 0x20f3 +#define PMERR_PS_BUSY 0x20f4 +#define PMERR_PS_IS_ASSOCIATED 0x20f5 +#define PMERR_RAM_JNL_FILE_TOO_SMALL 0x20f6 +#define PMERR_REALIZE_NOT_SUPPORTED 0x20f7 +#define PMERR_REGION_IS_CLIP_REGION 0x20f8 +#define PMERR_RESOURCE_DEPLETION 0x20f9 +#define PMERR_SEG_AND_REFSEG_ARE_SAME 0x20fa +#define PMERR_SEG_CALL_RECURSIVE 0x20fb +#define PMERR_SEG_CALL_STACK_EMPTY 0x20fc +#define PMERR_SEG_CALL_STACK_FULL 0x20fd +#define PMERR_SEG_IS_CURRENT 0x20fe +#define PMERR_SEG_NOT_CHAINED 0x20ff +#define PMERR_SEG_NOT_FOUND 0x2100 +#define PMERR_SEG_STORE_LIMIT_EXCEEDED 0x2101 +#define PMERR_SETID_IN_USE 0x2102 +#define PMERR_SETID_NOT_FOUND 0x2103 +#define PMERR_STARTDOC_NOT_ISSUED 0x2104 +#define PMERR_STOP_DRAW_OCCURRED 0x2105 +#define PMERR_TOO_MANY_METAFILES_IN_USE 0x2106 +#define PMERR_TRUNCATED_ORDER 0x2107 +#define PMERR_UNCHAINED_SEG_ZERO_INV 0x2108 +#define PMERR_UNSUPPORTED_ATTR 0x2109 +#define PMERR_UNSUPPORTED_ATTR_VALUE 0x210a +#define PMERR_ENDDOC_NOT_ISSUED 0x210b +#define PMERR_PS_NOT_ASSOCIATED 0x210c +#define PMERR_INV_FLOOD_FILL_OPTIONS 0x210d +#define PMERR_INV_FACENAME 0x210e +#define PMERR_PALETTE_SELECTED 0x210f +#define PMERR_NO_PALETTE_SELECTED 0x2110 +#define PMERR_INV_HPAL 0x2111 +#define PMERR_PALETTE_BUSY 0x2112 +#define PMERR_START_POINT_CLIPPED 0x2113 +#define PMERR_NO_FILL 0x2114 +#define PMERR_INV_FACENAMEDESC 0x2115 +#define PMERR_INV_BITMAP_DATA 0x2116 +#define PMERR_INV_CHAR_ALIGN_ATTR 0x2117 +#define PMERR_INV_HFONT 0x2118 +#define PMERR_HFONT_IS_SELECTED 0x2119 +#define PMERR_DRVR_NOT_SUPPORTED 0x2120 +#define PMERR_INV_INKPS_FUNCTION 0x2121 + +#endif /* INCL_GPIERRORS */ + +#if defined (INCL_WPERRORS) + +#define WPERR_PROTECTED_CLASS 0x1700 +#define WPERR_INVALID_CLASS 0x1701 +#define WPERR_INVALID_SUPERCLASS 0x1702 +#define WPERR_NO_MEMORY 0x1703 +#define WPERR_SEMAPHORE_ERROR 0x1704 +#define WPERR_BUFFER_TOO_SMALL 0x1705 +#define WPERR_CLSLOADMOD_FAILED 0x1706 +#define WPERR_CLSPROCADDR_FAILED 0x1707 +#define WPERR_OBJWORD_LOCATION 0x1708 +#define WPERR_INVALID_OBJECT 0x1709 +#define WPERR_MEMORY_CLEANUP 0x170a +#define WPERR_INVALID_MODULE 0x170b +#define WPERR_INVALID_OLDCLASS 0x170c +#define WPERR_INVALID_NEWCLASS 0x170d +#define WPERR_NOT_IMMEDIATE_CHILD 0x170e +#define WPERR_NOT_WORKPLACE_CLASS 0x170f +#define WPERR_CANT_REPLACE_METACLS 0x1710 +#define WPERR_INI_FILE_WRITE 0x1711 +#define WPERR_INVALID_FOLDER 0x1712 +#define WPERR_BUFFER_OVERFLOW 0x1713 +#define WPERR_OBJECT_NOT_FOUND 0x1714 +#define WPERR_INVALID_HFIND 0x1715 +#define WPERR_INVALID_COUNT 0x1716 +#define WPERR_INVALID_BUFFER 0x1717 +#define WPERR_ALREADY_EXISTS 0x1718 +#define WPERR_INVALID_FLAGS 0x1719 +#define WPERR_INVALID_OBJECTID 0x1720 +#define WPERR_INVALID_TARGET_OBJECT 0x1721 + +#endif /* INCL_WPERRORS */ + +#if defined (INCL_SPLERRORS) + +#define PMERR_SPL_DRIVER_ERROR 0x4001 +#define PMERR_SPL_DEVICE_ERROR 0x4002 +#define PMERR_SPL_DEVICE_NOT_INSTALLED 0x4003 +#define PMERR_SPL_QUEUE_ERROR 0x4004 +#define PMERR_SPL_INV_HSPL 0x4005 +#define PMERR_SPL_NO_DISK_SPACE 0x4006 +#define PMERR_SPL_NO_MEMORY 0x4007 +#define PMERR_SPL_PRINT_ABORT 0x4008 +#define PMERR_SPL_SPOOLER_NOT_INSTALLED 0x4009 +#define PMERR_SPL_INV_FORMS_CODE 0x400a +#define PMERR_SPL_INV_PRIORITY 0x400b +#define PMERR_SPL_NO_FREE_JOB_ID 0x400c +#define PMERR_SPL_NO_DATA 0x400d +#define PMERR_SPL_INV_TOKEN 0x400e +#define PMERR_SPL_INV_DATATYPE 0x400f +#define PMERR_SPL_PROCESSOR_ERROR 0x4010 +#define PMERR_SPL_INV_JOB_ID 0x4011 +#define PMERR_SPL_JOB_NOT_PRINTING 0x4012 +#define PMERR_SPL_JOB_PRINTING 0x4013 +#define PMERR_SPL_QUEUE_ALREADY_EXISTS 0x4014 +#define PMERR_SPL_INV_QUEUE_NAME 0x4015 +#define PMERR_SPL_QUEUE_NOT_EMPTY 0x4016 +#define PMERR_SPL_DEVICE_ALREADY_EXISTS 0x4017 +#define PMERR_SPL_DEVICE_LIMIT_REACHED 0x4018 +#define PMERR_SPL_STATUS_STRING_TRUNC 0x4019 +#define PMERR_SPL_INV_LENGTH_OR_COUNT 0x401a +#define PMERR_SPL_FILE_NOT_FOUND 0x401b +#define PMERR_SPL_CANNOT_OPEN_FILE 0x401c +#define PMERR_SPL_DRIVER_NOT_INSTALLED 0x401d +#define PMERR_SPL_INV_PROCESSOR_DATTYPE 0x401e +#define PMERR_SPL_INV_DRIVER_DATATYPE 0x401f +#define PMERR_SPL_PROCESSOR_NOT_INST 0x4020 +#define PMERR_SPL_NO_SUCH_LOG_ADDRESS 0x4021 +#define PMERR_SPL_PRINTER_NOT_FOUND 0x4022 +#define PMERR_SPL_DD_NOT_FOUND 0x4023 +#define PMERR_SPL_QUEUE_NOT_FOUND 0x4024 +#define PMERR_SPL_MANY_QUEUES_ASSOC 0x4025 +#define PMERR_SPL_NO_QUEUES_ASSOCIATED 0x4026 +#define PMERR_SPL_INI_FILE_ERROR 0x4027 +#define PMERR_SPL_NO_DEFAULT_QUEUE 0x4028 +#define PMERR_SPL_NO_CURRENT_FORMS_CODE 0x4029 +#define PMERR_SPL_NOT_AUTHORISED 0x402a +#define PMERR_SPL_TEMP_NETWORK_ERROR 0x402b +#define PMERR_SPL_HARD_NETWORK_ERROR 0x402c +#define PMERR_DEL_NOT_ALLOWED 0x402d +#define PMERR_CANNOT_DEL_QP_REF 0x402e +#define PMERR_CANNOT_DEL_QNAME_REF 0x402f +#define PMERR_CANNOT_DEL_PRINTER_DD_REF 0x4030 +#define PMERR_CANNOT_DEL_PRN_NAME_REF 0x4031 +#define PMERR_CANNOT_DEL_PRN_ADDR_REF 0x4032 +#define PMERR_SPOOLER_QP_NOT_DEFINED 0x4033 +#define PMERR_PRN_NAME_NOT_DEFINED 0x4034 +#define PMERR_PRN_ADDR_NOT_DEFINED 0x4035 +#define PMERR_PRINTER_DD_NOT_DEFINED 0x4036 +#define PMERR_PRINTER_QUEUE_NOT_DEFINED 0x4037 +#define PMERR_PRN_ADDR_IN_USE 0x4038 +#define PMERR_SPL_TOO_MANY_OPEN_FILES 0x4039 +#define PMERR_SPL_CP_NOT_REQD 0x403a +#define PMERR_SPL_PORT_SHUTDOWN 0x403b +#define PMERR_SPL_NOT_HANDLED 0x403c +#define PMERR_SPL_CNV_NOT_INIT 0x403d +#define PMERR_SPL_INIT_IN_PROGRESS 0x403e +#define PMERR_SPL_TYPE_NOT_AVAIL 0x403f +#define PMERR_UNABLE_TO_CLOSE_DEVICE 0x4040 +#define PMERR_SPL_SESSION_TERM 0x4041 +#define PMERR_SPL_NOT_REGISTERED 0x4042 + +#endif /* INCL_SPLERRORS */ + +#if defined (INCL_PICERRORS) + +#define PMERR_INV_TYPE 0x5001 +#define PMERR_INV_CONV 0x5002 +#define PMERR_INV_SEGLEN 0x5003 +#define PMERR_DUP_SEGNAME 0x5004 +#define PMERR_INV_XFORM 0x5005 +#define PMERR_INV_VIEWLIM 0x5006 +#define PMERR_INV_3DCOORD 0x5007 +#define PMERR_SMB_OVFLOW 0x5008 +#define PMERR_SEG_OVFLOW 0x5009 +#define PMERR_PIC_DUP_FILENAME 0x5010 + +#endif /* INCL_PICERRORS */ + +#if defined (INCL_WINERRORS) + +#define WINDBG_HWND_NOT_DESTROYED 0x1022 +#define WINDBG_HPTR_NOT_DESTROYED 0x1023 +#define WINDBG_HACCEL_NOT_DESTROYED 0x1024 +#define WINDBG_HENUM_NOT_DESTROYED 0x1025 +#define WINDBG_VISRGN_SEM_BUSY 0x1026 +#define WINDBG_USER_SEM_BUSY 0x1027 +#define WINDBG_DC_CACHE_BUSY 0x1028 +#define WINDBG_HOOK_STILL_INSTALLED 0x1029 +#define WINDBG_WINDOW_STILL_LOCKED 0x102a +#define WINDBG_UPDATEPS_ASSERTION_FAIL 0x102b +#define WINDBG_SENDMSG_WITHIN_USER_SEM 0x102c +#define WINDBG_USER_SEM_NOT_ENTERED 0x102d +#define WINDBG_PROC_NOT_EXPORTED 0x102e +#define WINDBG_BAD_SENDMSG_HWND 0x102f +#define WINDBG_ABNORMAL_EXIT 0x1030 +#define WINDBG_INTERNAL_REVISION 0x1031 +#define WINDBG_INITSYSTEM_FAILED 0x1032 +#define WINDBG_HATOMTBL_NOT_DESTROYED 0x1033 +#define WINDBG_WINDOW_UNLOCK_WAIT 0x1035 + +#endif /* INCL_WINERRORS */ + + +#define WRECT RECTL +#define PWRECT PRECTL + +#define WPOINT POINTL +#define PWPOINT PPOINTL + + +typedef LHANDLE HACCEL; + +typedef LHANDLE HRGN; +typedef HRGN *PHRGN; + +typedef VOID *MRESULT; +typedef MRESULT *PMRESULT; + +typedef VOID *MPARAM; +typedef MPARAM *PMPARAM; + +typedef LHANDLE HPOINTER; + +typedef HMODULE HLIB; +typedef HLIB *PHLIB; + +typedef LONG COLOR; +typedef COLOR *PCOLOR; + +typedef LHANDLE HAB; +typedef HAB *PHAB; + +typedef LHANDLE HPS; +typedef HPS *PHPS; + +typedef LHANDLE HDC; +typedef HDC *PHDC; + +typedef LHANDLE HWND; +typedef HWND *PHWND; + +typedef LHANDLE HMQ; + +typedef LHANDLE HPAL; +typedef HPAL *PHPAL; + +typedef LHANDLE HBITMAP; +typedef HBITMAP *PHBITMAP; + +typedef ULONG ERRORID; +typedef ERRORID *PERRORID; + +typedef MRESULT FNWP (HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2); +typedef FNWP *PFNWP; + +#define ERRORIDERROR(errid) (LOUSHORT (errid)) +#define ERRORIDSEV(errid) (HIUSHORT (errid)) +#define MAKEERRORID(sev,error) (ERRORID)(MAKEULONG ((error), (sev))) + +typedef struct _POINTL +{ + LONG x; + LONG y; +} POINTL; +typedef POINTL *PPOINTL; + +typedef struct _POINTS +{ + SHORT x; + SHORT y; +} POINTS; +typedef POINTS *PPOINTS; + +typedef struct _RECTL +{ + LONG xLeft; + LONG yBottom; + LONG xRight; + LONG yTop; +} RECTL; +typedef RECTL *PRECTL; + +#if defined (INCL_WINMESSAGEMGR) || !defined (INCL_NOCOMMON) + +#define WM_NULL 0x0000 +#define WM_CREATE 0x0001 +#define WM_DESTROY 0x0002 +#define WM_ENABLE 0x0004 +#define WM_SHOW 0x0005 +#define WM_MOVE 0x0006 +#define WM_SIZE 0x0007 +#define WM_ADJUSTWINDOWPOS 0x0008 +#define WM_CALCVALIDRECTS 0x0009 +#define WM_SETWINDOWPARAMS 0x000a +#define WM_QUERYWINDOWPARAMS 0x000b +#define WM_HITTEST 0x000c +#define WM_ACTIVATE 0x000d +#define WM_SETFOCUS 0x000f +#define WM_SETSELECTION 0x0010 +#define WM_PPAINT 0x0011 +#define WM_PSETFOCUS 0x0012 +#define WM_PSYSCOLORCHANGE 0x0013 +#define WM_PSIZE 0x0014 +#define WM_PACTIVATE 0x0015 +#define WM_PCONTROL 0x0016 +#define WM_COMMAND 0x0020 +#define WM_SYSCOMMAND 0x0021 +#define WM_HELP 0x0022 +#define WM_PAINT 0x0023 +#define WM_TIMER 0x0024 +#define WM_SEM1 0x0025 +#define WM_SEM2 0x0026 +#define WM_SEM3 0x0027 +#define WM_SEM4 0x0028 +#define WM_CLOSE 0x0029 +#define WM_QUIT 0x002a +#define WM_SYSCOLORCHANGE 0x002b +#define WM_SYSVALUECHANGED 0x002d +#define WM_APPTERMINATENOTIFY 0x002e +#define WM_PRESPARAMCHANGED 0x002f +#define WM_CONTROL 0x0030 +#define WM_VSCROLL 0x0031 +#define WM_HSCROLL 0x0032 +#define WM_INITMENU 0x0033 +#define WM_MENUSELECT 0x0034 +#define WM_MENUEND 0x0035 +#define WM_DRAWITEM 0x0036 +#define WM_MEASUREITEM 0x0037 +#define WM_CONTROLPOINTER 0x0038 +#define WM_QUERYDLGCODE 0x003a +#define WM_INITDLG 0x003b +#define WM_SUBSTITUTESTRING 0x003c +#define WM_MATCHMNEMONIC 0x003d +#define WM_SAVEAPPLICATION 0x003e + +#define WM_HELPBASE 0x0f00 +#define WM_HELPTOP 0x0fff + +#define WM_USER 0x1000 + +#define CMDSRC_OTHER 0 +#define CMDSRC_PUSHBUTTON 1 +#define CMDSRC_MENU 2 +#define CMDSRC_ACCELERATOR 3 +#define CMDSRC_FONTDLG 4 +#define CMDSRC_FILEDLG 5 +#define CMDSRC_PRINTDLG 6 +#define CMDSRC_COLORDLG 7 + +#define PM_NOREMOVE 0x0000 +#define PM_REMOVE 0x0001 + +#define RUM_IN 1 +#define RUM_OUT 2 +#define RUM_INOUT 3 + +#define SMD_DELAYED 0x0001 +#define SMD_IMMEDIATE 0x0002 + +#define SSM_SYNCHRONOUS 0x0001 +#define SSM_ASYNCHRONOUS 0x0002 +#define SSM_MIXED 0x0003 + +#define WLI_NOBUTTONUP 0x0002 + +#if defined (INCL_WINTYPES) + +#define DTYP_USER 16384 + +#define DTYP_CTL_ARRAY 1 +#define DTYP_CTL_PARRAY (-1) +#define DTYP_CTL_OFFSET 2 +#define DTYP_CTL_LENGTH 3 + +#define DTYP_ACCEL 28 +#define DTYP_ACCELTABLE 29 +#define DTYP_ARCPARAMS 38 +#define DTYP_AREABUNDLE 139 +#define DTYP_ATOM 90 +#define DTYP_BITMAPINFO 60 +#define DTYP_BITMAPINFOHEADER 61 +#define DTYP_BITMAPINFO2 170 +#define DTYP_BITMAPINFOHEADER2 171 +#define DTYP_BIT16 20 +#define DTYP_BIT32 21 +#define DTYP_BIT8 19 +#define DTYP_BOOL 18 +#define DTYP_BTNCDATA 35 +#define DTYP_BYTE 13 +#define DTYP_CATCHBUF 141 +#define DTYP_CHAR 15 +#define DTYP_CHARBUNDLE 135 +#define DTYP_CLASSINFO 95 +#define DTYP_COUNT2 93 +#define DTYP_COUNT2B 70 +#define DTYP_COUNT2CH 82 +#define DTYP_COUNT4 152 +#define DTYP_COUNT4B 42 +#define DTYP_CPID 57 +#define DTYP_CREATESTRUCT 98 +#define DTYP_CURSORINFO 34 +#define DTYP_DEVOPENSTRUC 124 +#define DTYP_DLGTEMPLATE 96 +#define DTYP_DLGTITEM 97 +#define DTYP_ENTRYFDATA 127 +#define DTYP_ERRORID 45 +#define DTYP_FATTRS 75 +#define DTYP_FFDESCS 142 +#define DTYP_FIXED 99 +#define DTYP_FONTMETRICS 74 +#define DTYP_FRAMECDATA 144 +#define DTYP_GRADIENTL 48 +#define DTYP_HAB 10 +#define DTYP_HACCEL 30 +#define DTYP_HAPP 146 +#define DTYP_HATOMTBL 91 +#define DTYP_HBITMAP 62 +#define DTYP_HCINFO 46 +#define DTYP_HDC 132 +#define DTYP_HENUM 117 +#define DTYP_HHEAP 109 +#define DTYP_HINI 53 +#define DTYP_HLIB 147 +#define DTYP_HMF 85 +#define DTYP_HMQ 86 +#define DTYP_HPOINTER 106 +#define DTYP_HPROGRAM 131 +#define DTYP_HPS 12 +#define DTYP_HRGN 116 +#define DTYP_HSEM 140 +#define DTYP_HSPL 32 +#define DTYP_HSWITCH 66 +#define DTYP_HVPS 58 +#define DTYP_HWND 11 +#define DTYP_IDENTITY 133 +#define DTYP_IDENTITY4 169 +#define DTYP_IMAGEBUNDLE 136 +#define DTYP_INDEX2 81 +#define DTYP_IPT 155 +#define DTYP_KERNINGPAIRS 118 +#define DTYP_LENGTH2 68 +#define DTYP_LENGTH4 69 +#define DTYP_LINEBUNDLE 137 +#define DTYP_LONG 25 +#define DTYP_MARKERBUNDLE 138 +#define DTYP_MATRIXLF 113 +#define DTYP_MLECTLDATA 161 +#define DTYP_MLEMARGSTRUCT 157 +#define DTYP_MLEOVERFLOW 158 +#define DTYP_OFFSET2B 112 +#define DTYP_OWNERITEM 154 +#define DTYP_PID 92 +#define DTYP_PIX 156 +#define DTYP_POINTERINFO 105 +#define DTYP_POINTL 77 +#define DTYP_PROGCATEGORY 129 +#define DTYP_PROGRAMENTRY 128 +#define DTYP_PROGTYPE 130 +#define DTYP_PROPERTY2 88 +#define DTYP_PROPERTY4 89 +#define DTYP_QMSG 87 +#define DTYP_RECTL 121 +#define DTYP_RESID 125 +#define DTYP_RGB 111 +#define DTYP_RGNRECT 115 +#define DTYP_SBCDATA 159 +#define DTYP_SEGOFF 126 +#define DTYP_SHORT 23 +#define DTYP_SIZEF 101 +#define DTYP_SIZEL 102 +#define DTYP_STRL 17 +#define DTYP_STR16 40 +#define DTYP_STR32 37 +#define DTYP_STR64 47 +#define DTYP_STR8 33 +#define DTYP_SWBLOCK 63 +#define DTYP_SWCNTRL 64 +#define DTYP_SWENTRY 65 +#define DTYP_SWP 31 +#define DTYP_TID 104 +#define DTYP_TIME 107 +#define DTYP_TRACKINFO 73 +#define DTYP_UCHAR 22 +#define DTYP_ULONG 26 +#define DTYP_USERBUTTON 36 +#define DTYP_USHORT 24 +#define DTYP_WIDTH4 108 +#define DTYP_WNDPARAMS 83 +#define DTYP_WNDPROC 84 +#define DTYP_WPOINT 59 +#define DTYP_WRECT 55 +#define DTYP_XYWINSIZE 52 + +#define DTYP_PACCEL (-28) +#define DTYP_PACCELTABLE (-29) +#define DTYP_PARCPARAMS (-38) +#define DTYP_PAREABUNDLE (-139) +#define DTYP_PATOM (-90) +#define DTYP_PBITMAPINFO (-60) +#define DTYP_PBITMAPINFOHEADER (-61) +#define DTYP_PBITMAPINFO2 (-170) +#define DTYP_PBITMAPINFOHEADER2 (-171) +#define DTYP_PBIT16 (-20) +#define DTYP_PBIT32 (-21) +#define DTYP_PBIT8 (-19) +#define DTYP_PBOOL (-18) +#define DTYP_PBTNCDATA (-35) +#define DTYP_PBYTE (-13) +#define DTYP_PCATCHBUF (-141) +#define DTYP_PCHAR (-15) +#define DTYP_PCHARBUNDLE (-135) +#define DTYP_PCLASSINFO (-95) +#define DTYP_PCOUNT2 (-93) +#define DTYP_PCOUNT2B (-70) +#define DTYP_PCOUNT2CH (-82) +#define DTYP_PCOUNT4 (-152) +#define DTYP_PCOUNT4B (-42) +#define DTYP_PCPID (-57) +#define DTYP_PCREATESTRUCT (-98) +#define DTYP_PCURSORINFO (-34) +#define DTYP_PDEVOPENSTRUC (-124) +#define DTYP_PDLGTEMPLATE (-96) +#define DTYP_PDLGTITEM (-97) +#define DTYP_PENTRYFDATA (-127) +#define DTYP_PERRORID (-45) +#define DTYP_PFATTRS (-75) +#define DTYP_PFFDESCS (-142) +#define DTYP_PFIXED (-99) +#define DTYP_PFONTMETRICS (-74) +#define DTYP_PFRAMECDATA (-144) +#define DTYP_PGRADIENTL (-48) +#define DTYP_PHAB (-10) +#define DTYP_PHACCEL (-30) +#define DTYP_PHAPP (-146) +#define DTYP_PHATOMTBL (-91) +#define DTYP_PHBITMAP (-62) +#define DTYP_PHCINFO (-46) +#define DTYP_PHDC (-132) +#define DTYP_PHENUM (-117) +#define DTYP_PHHEAP (-109) +#define DTYP_PHINI (-53) +#define DTYP_PHLIB (-147) +#define DTYP_PHMF (-85) +#define DTYP_PHMQ (-86) +#define DTYP_PHPOINTER (-106) +#define DTYP_PHPROGRAM (-131) +#define DTYP_PHPS (-12) +#define DTYP_PHRGN (-116) +#define DTYP_PHSEM (-140) +#define DTYP_PHSPL (-32) +#define DTYP_PHSWITCH (-66) +#define DTYP_PHVPS (-58) +#define DTYP_PHWND (-11) +#define DTYP_PIDENTITY (-133) +#define DTYP_PIDENTITY4 (-169) +#define DTYP_PIMAGEBUNDLE (-136) +#define DTYP_PINDEX2 (-81) +#define DTYP_PIPT (-155) +#define DTYP_PKERNINGPAIRS (-118) +#define DTYP_PLENGTH2 (-68) +#define DTYP_PLENGTH4 (-69) +#define DTYP_PLINEBUNDLE (-137) +#define DTYP_PLONG (-25) +#define DTYP_PMARKERBUNDLE (-138) +#define DTYP_PMATRIXLF (-113) +#define DTYP_PMLECTLDATA (-161) +#define DTYP_PMLEMARGSTRUCT (-157) +#define DTYP_PMLEOVERFLOW (-158) +#define DTYP_POFFSET2B (-112) +#define DTYP_POWNERITEM (-154) +#define DTYP_PPID (-92) +#define DTYP_PPIX (-156) +#define DTYP_PPOINTERINFO (-105) +#define DTYP_PPOINTL (-77) +#define DTYP_PPROGCATEGORY (-129) +#define DTYP_PPROGRAMENTRY (-128) +#define DTYP_PPROGTYPE (-130) +#define DTYP_PPROPERTY2 (-88) +#define DTYP_PPROPERTY4 (-89) +#define DTYP_PQMSG (-87) +#define DTYP_PRECTL (-121) +#define DTYP_PRESID (-125) +#define DTYP_PRGB (-111) +#define DTYP_PRGNRECT (-115) +#define DTYP_PSBCDATA (-159) +#define DTYP_PSEGOFF (-126) +#define DTYP_PSHORT (-23) +#define DTYP_PSIZEF (-101) +#define DTYP_PSIZEL (-102) +#define DTYP_PSTRL (-17) +#define DTYP_PSTR16 (-40) +#define DTYP_PSTR32 (-37) +#define DTYP_PSTR64 (-47) +#define DTYP_PSTR8 (-33) +#define DTYP_PSWBLOCK (-63) +#define DTYP_PSWCNTRL (-64) +#define DTYP_PSWENTRY (-65) +#define DTYP_PSWP (-31) +#define DTYP_PTID (-104) +#define DTYP_PTIME (-107) +#define DTYP_PTRACKINFO (-73) +#define DTYP_PUCHAR (-22) +#define DTYP_PULONG (-26) +#define DTYP_PUSERBUTTON (-36) +#define DTYP_PUSHORT (-24) +#define DTYP_PWIDTH4 (-108) +#define DTYP_PWNDPARAMS (-83) +#define DTYP_PWNDPROC (-84) +#define DTYP_PWPOINT (-59) +#define DTYP_PWRECT (-55) +#define DTYP_PXYWINSIZE (-52) + +#endif /* INCL_WINTYPES */ + +typedef struct _QMSG +{ + HWND hwnd; + ULONG msg; + MPARAM mp1; + MPARAM mp2; + ULONG time; + POINTL ptl; + ULONG reserved; +} QMSG; +typedef QMSG *PQMSG; + +typedef struct _COMMANDMSG +{ + USHORT cmd; + USHORT unused; + USHORT source; + USHORT fMouse; +} CMDMSG; +typedef CMDMSG *PCMDMSG; + +typedef struct _MQINFO +{ + ULONG cb; + PID pid; + TID tid; + ULONG cmsgs; + PVOID pReserved; +} MQINFO; +typedef MQINFO *PMQINFO; + +#define COMMANDMSG(pmsg) ((PCMDMSG)((PBYTE)pmsg + sizeof (ULONG))) + + +BOOL WinCancelShutdown (HMQ hmq, BOOL fCancelAlways); +HMQ WinCreateMsgQueue (HAB hab, LONG cmsg); +BOOL WinDestroyMsgQueue (HMQ hmq); +MRESULT WinDispatchMsg (HAB hab, PQMSG pqmsg); +BOOL WinGetMsg (HAB hab, PQMSG pqmsg, HWND hwndFilter, ULONG msgFilterFirst, + ULONG msgFilterLast); +BOOL WinLockInput (HMQ hmq, ULONG fLock); +BOOL WinPeekMsg (HAB hab, PQMSG pqmsg, HWND hwndFilter, ULONG msgFilterFirst, + ULONG msgFilterLast, ULONG fl); +BOOL WinPostMsg (HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2); +HMQ WinQueueFromID (HAB hab, PID pid, TID tid); +BOOL WinQueryQueueInfo (HMQ hmq, PMQINFO pmqi, ULONG cbCopy); +HMQ WinQuerySendMsg (HAB hab, HMQ hmqSender, HMQ hmqReceiver, PQMSG pqmsg); +BOOL WinRegisterUserDatatype (HAB hab, LONG datatype, LONG count, PLONG types); +BOOL WinRegisterUserMsg (HAB hab, ULONG msgid, LONG datatype1, LONG dir1, + LONG datatype2, LONG dir2, LONG datatyper); +BOOL WinReplyMsg (HAB hab, HMQ hmqSender, HMQ hmqReceiver, MRESULT mresult); +MRESULT WinSendMsg (HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2); +BOOL WinSetMsgMode (HAB hab, PCSZ classname, LONG control); +BOOL WinSetSynchroMode (HAB hab, LONG mode); +BOOL WinThreadAssocQueue (HAB hab, HMQ hmq); +BOOL WinWakeThread (HMQ hmq); + +#endif /* INCL_WINMESSAGEMGR || !INCL_NOCOMMON */ + +typedef struct _SWP +{ + ULONG fl; + LONG cy; + LONG cx; + LONG y; + LONG x; + HWND hwndInsertBehind; + HWND hwnd; + ULONG ulReserved1; + ULONG ulReserved2; +} SWP; +typedef SWP *PSWP; + +typedef struct _ICONINFO +{ + ULONG cb; + ULONG fFormat; + PSZ pszFileName; + HMODULE hmod; + ULONG resid; + ULONG cbIconData; + PVOID pIconData; +} ICONINFO; +typedef ICONINFO *PICONINFO; + + +#define MPVOID ((MPARAM)0) + +#define MPFROMP(x) ((MPARAM)((ULONG)(x))) +#define MPFROMHWND(x) ((MPARAM)(HWND)(x)) +#define MPFROMCHAR(x) ((MPARAM)(ULONG)(USHORT)(x)) +#define MPFROMSHORT(x) ((MPARAM)(ULONG)(USHORT)(x)) +#define MPFROM2SHORT(x1,x2) ((MPARAM)MAKELONG (x1, x2)) +#define MPFROMSH2CH(s,c1,c2) ((MPARAM)MAKELONG (s, MAKESHORT (c1, c2))) +#define MPFROMLONG(x) ((MPARAM)(ULONG)(x)) + +#define PVOIDFROMMP(mp) ((PVOID)(mp)) +#define HWNDFROMMP(mp) ((HWND)(mp)) +#define CHAR1FROMMP(mp) ((UCHAR)(ULONG)(mp)) +#define CHAR2FROMMP(mp) ((UCHAR)((ULONG)mp >> 8)) +#define CHAR3FROMMP(mp) ((UCHAR)((ULONG)mp >> 16)) +#define CHAR4FROMMP(mp) ((UCHAR)((ULONG)mp >> 24)) +#define SHORT1FROMMP(mp) ((USHORT)(ULONG)(mp)) +#define SHORT2FROMMP(mp) ((USHORT)((ULONG)mp >> 16)) +#define LONGFROMMP(mp) ((ULONG)(mp)) + +#define MRFROMP(x) ((MRESULT)(PVOID)(x)) +#define MRFROMSHORT(x) ((MRESULT)(ULONG)(USHORT)(x)) +#define MRFROM2SHORT(x1,x2) ((MRESULT)MAKELONG (x1, x2)) +#define MRFROMLONG(x) ((MRESULT)(ULONG)(x)) + +#define PVOIDFROMMR(mr) ((VOID *)(mr)) +#define SHORT1FROMMR(mr) ((USHORT)((ULONG)mr)) +#define SHORT2FROMMR(mr) ((USHORT)((ULONG)mr >> 16)) +#define LONGFROMMR(mr) ((ULONG)(mr)) + + +HWND WinCreateWindow (HWND hwndParent, PCSZ pszClass, PCSZ pszName, + ULONG flStyle, LONG x, LONG y, LONG cx, LONG cy, HWND hwndOwner, + HWND hwndInsertBehind, ULONG id, PVOID pCtlData, PVOID pPresParams); +BOOL WinDrawBitmap (HPS hpsDst, HBITMAP hbm, __const__ RECTL *pwrcSrc, + __const__ POINTL *pptlDst, LONG clrFore, LONG clrBack, ULONG fl); +BOOL WinDrawBorder (HPS hps, __const__ RECTL *prcl, LONG cx, LONG cy, + LONG clrFore, LONG clrBack, ULONG flCmd); +LONG WinDrawText (HPS hps, LONG cchText, PCCH lpchText, PRECTL prcl, + LONG clrFore, LONG clrBack, ULONG flCmd); +BOOL WinEnableWindow (HWND hwnd, BOOL fEnable); +BOOL WinEnableWindowUpdate (HWND hwnd, BOOL fEnable); +BOOL WinInvalidateRect (HWND hwnd, __const__ RECTL *prcl, + BOOL fIncludeChildren); +BOOL WinInvalidateRegion (HWND hwnd, HRGN hrgn, BOOL fIncludeChildren); +BOOL WinInvertRect (HPS hps, __const__ RECTL *prcl); +BOOL WinIsChild (HWND hwnd, HWND hwndParent); +BOOL WinIsWindow (HAB hab, HWND hwnd); +BOOL WinIsWindowEnabled (HWND hwnd); +BOOL WinIsWindowVisible (HWND hwnd); +LONG WinLoadMessage (HAB hab, HMODULE hmod, ULONG id, LONG cchMax, + PSZ pchBuffer); +LONG WinLoadString (HAB hab, HMODULE hmod, ULONG id, LONG cchMax, + PSZ pchBuffer); +LONG WinMultWindowFromIDs (HWND hwndParent, PHWND prghwnd, ULONG idFirst, + ULONG idLast); +HWND WinQueryDesktopWindow (HAB hab, HDC hdc); +HWND WinQueryObjectWindow (HWND hwndDesktop); +HPOINTER WinQueryPointer (HWND hwndDesktop); +HWND WinQueryWindow (HWND hwnd, LONG cmd); +BOOL WinQueryWindowPos (HWND hwnd, PSWP pswp); +BOOL WinQueryWindowProcess (HWND hwnd, PPID ppid, PTID ptid); +LONG WinQueryWindowText (HWND hwnd, LONG cchBufferMax, PCH pchBuffer); +LONG WinQueryWindowTextLength (HWND hwnd); +BOOL WinSetMultWindowPos (HAB hab, __const__ SWP *pswp, ULONG cswp); +BOOL WinSetOwner (HWND hwnd, HWND hwndNewOwner); +BOOL WinSetParent (HWND hwnd, HWND hwndNewParent, BOOL fRedraw); +BOOL WinSetWindowPos (HWND hwnd, HWND hwndInsertBehind, LONG x, LONG y, + LONG cx, LONG cy, ULONG fl); +BOOL WinSetWindowText (HWND hwnd, PCSZ pszText); +BOOL WinUpdateWindow (HWND hwnd); +HWND WinWindowFromID (HWND hwndParent, ULONG id); + + +#if defined (INCL_WINFRAMEMGR) || !defined (INCL_NOCOMMON) + +#define FCF_TITLEBAR 0x00000001 +#define FCF_SYSMENU 0x00000002 +#define FCF_MENU 0x00000004 +#define FCF_SIZEBORDER 0x00000008 +#define FCF_MINBUTTON 0x00000010 +#define FCF_MAXBUTTON 0x00000020 +#define FCF_MINMAX (FCF_MINBUTTON|FCF_MAXBUTTON) +#define FCF_VERTSCROLL 0x00000040 +#define FCF_HORZSCROLL 0x00000080 +#define FCF_DLGBORDER 0x00000100 +#define FCF_BORDER 0x00000200 +#define FCF_SHELLPOSITION 0x00000400 +#define FCF_TASKLIST 0x00000800 +#define FCF_NOBYTEALIGN 0x00001000 +#define FCF_NOMOVEWITHOWNER 0x00002000 +#define FCF_ICON 0x00004000 +#define FCF_ACCELTABLE 0x00008000 +#define FCF_SYSMODAL 0x00010000 +#define FCF_SCREENALIGN 0x00020000 +#define FCF_MOUSEALIGN 0x00040000 +#define FCF_PALETTE_NORMAL 0x00080000 +#define FCF_PALETTE_HELP 0x00100000 +#define FCF_PALETTE_POPUPODD 0x00200000 +#define FCF_PALETTE_POPUPEVEN 0x00400000 +#define FCF_HIDEBUTTON 0x01000000 +#define FCF_HIDEMAX 0x01000020 +#define FCF_AUTOICON 0x40000000 +#if defined (INCL_NLS) +#define FCF_DBE_APPSTAT 0x80000000 +#endif /* INCL_NLS */ + +#define FCF_STANDARD 0x0000cc3f + +#define FF_FLASHWINDOW 0x0001 +#define FF_ACTIVE 0x0002 +#define FF_FLASHHILITE 0x0004 +#define FF_OWNERHIDDEN 0x0008 +#define FF_DLGDISMISSED 0x0010 +#define FF_OWNERDISABLED 0x0020 +#define FF_SELECTED 0x0040 +#define FF_NOACTIVATESWP 0x0080 +#define FF_DIALOGBOX 0x0100 + +#define FS_ICON 0x00000001 +#define FS_ACCELTABLE 0x00000002 +#define FS_SHELLPOSITION 0x00000004 +#define FS_TASKLIST 0x00000008 +#define FS_NOBYTEALIGN 0x00000010 +#define FS_NOMOVEWITHOWNER 0x00000020 +#define FS_SYSMODAL 0x00000040 +#define FS_DLGBORDER 0x00000080 +#define FS_BORDER 0x00000100 +#define FS_SCREENALIGN 0x00000200 +#define FS_MOUSEALIGN 0x00000400 +#define FS_SIZEBORDER 0x00000800 +#define FS_AUTOICON 0x00001000 +#if defined (INCL_NLS) +#define FS_DBE_APPSTAT 0x00008000 +#endif /* INCL_NLS */ + +#define FS_STANDARD 0x0000000f + +typedef struct _FRAMECDATA +{ + USHORT cb; + ULONG flCreateFlags; + USHORT hmodResources; + USHORT idResources; +} FRAMECDATA; +typedef FRAMECDATA *PFRAMECDATA; + +HWND WinCreateStdWindow (HWND hwndParent, ULONG flStyle, + PULONG pflCreateFlags, PCSZ pszClientClass, PCSZ pszTitle, + ULONG styleClient, HMODULE hmod, ULONG idResources, PHWND phwndClient); + +#endif /* INCL_WINFRAMEMGR || !INCL_NOCOMMON */ + +#if defined (INCL_WINFRAMEMGR) + +#define WM_FLASHWINDOW 0x0040 +#define WM_FORMATFRAME 0x0041 +#define WM_UPDATEFRAME 0x0042 +#define WM_FOCUSCHANGE 0x0043 +#define WM_SETBORDERSIZE 0x0044 +#define WM_TRACKFRAME 0x0045 +#define WM_MINMAXFRAME 0x0046 +#define WM_SETICON 0x0047 +#define WM_QUERYICON 0x0048 +#define WM_SETACCELTABLE 0x0049 +#define WM_QUERYACCELTABLE 0x004a +#define WM_TRANSLATEACCEL 0x004b +#define WM_QUERYTRACKINFO 0x004c +#define WM_QUERYBORDERSIZE 0x004d +#define WM_NEXTMENU 0x004e +#define WM_ERASEBACKGROUND 0x004f +#define WM_QUERYFRAMEINFO 0x0050 +#define WM_QUERYFOCUSCHAIN 0x0051 +#define WM_OWNERPOSCHANGE 0x0052 +#define WM_CALCFRAMERECT 0x0053 +#define WM_WINDOWPOSCHANGED 0x0055 +#define WM_ADJUSTFRAMEPOS 0x0056 +#define WM_QUERYFRAMECTLCOUNT 0x0059 +#define WM_QUERYHELPINFO 0x005b +#define WM_SETHELPINFO 0x005c +#define WM_ERROR 0x005d +#define WM_REALIZEPALETTE 0x005e + +#define FI_FRAME 0x00000001 +#define FI_OWNERHIDE 0x00000002 +#define FI_ACTIVATEOK 0x00000004 +#define FI_NOMOVEWITHOWNER 0x00000008 + +#define FID_SYSMENU 0x8002 +#define FID_TITLEBAR 0x8003 +#define FID_MINMAX 0x8004 +#define FID_MENU 0x8005 +#define FID_VERTSCROLL 0x8006 +#define FID_HORZSCROLL 0x8007 +#define FID_CLIENT 0x8008 +#define FID_DBE_APPSTAT 0x8010 +#define FID_DBE_KBDSTAT 0x8011 +#define FID_DBE_PECIC 0x8012 +#define FID_DBE_KKPOPUP 0x8013 + +#define SC_SIZE 0x8000 +#define SC_MOVE 0x8001 +#define SC_MINIMIZE 0x8002 +#define SC_MAXIMIZE 0x8003 +#define SC_CLOSE 0x8004 +#define SC_NEXT 0x8005 +#define SC_APPMENU 0x8006 +#define SC_SYSMENU 0x8007 +#define SC_RESTORE 0x8008 +#define SC_NEXTFRAME 0x8009 +#define SC_NEXTWINDOW 0x8010 +#define SC_TASKMANAGER 0x8011 +#define SC_HELPKEYS 0x8012 +#define SC_HELPINDEX 0x8013 +#define SC_HELPEXTENDED 0x8014 +#define SC_SWITCHPANELIDS 0x8015 +#define SC_DBE_FIRST 0x8018 +#define SC_DBE_LAST 0x801f +#define SC_BEGINDRAG 0x8020 +#define SC_ENDDRAG 0x8021 +#define SC_SELECT 0x8022 +#define SC_OPEN 0x8023 +#define SC_CONTEXTMENU 0x8024 +#define SC_CONTEXTHELP 0x8025 +#define SC_TEXTEDIT 0x8026 +#define SC_BEGINSELECT 0x8027 +#define SC_ENDSELECT 0x8028 +#define SC_WINDOW 0x8029 +#define SC_HIDE 0x802a + +typedef LHANDLE HSAVEWP; + +BOOL WinCalcFrameRect (HWND hwndFrame, PRECTL prcl, BOOL fClient); +BOOL WinCreateFrameControls (HWND hwndFrame, PFRAMECDATA pfcdata, + PCSZ pszTitle); +BOOL WinFlashWindow (HWND hwndFrame, BOOL fFlash); +BOOL WinGetMaxPosition (HWND hwnd, PSWP pswp); +BOOL WinGetMinPosition (HWND hwnd, PSWP pswp, __const__ POINTL *pptl); +BOOL WinSaveWindowPos (HSAVEWP hsvwp, PSWP pswp, ULONG cswp); + +#endif /* INCL_WINFRAMEMGR */ + + +#if defined (INCL_WINWINDOWMGR) || !defined (INCL_NOCOMMON) + +#define PSF_LOCKWINDOWUPDATE 0x0001 +#define PSF_CLIPUPWARDS 0x0002 +#define PSF_CLIPDOWNWARDS 0x0004 +#define PSF_CLIPSIBLINGS 0x0008 +#define PSF_CLIPCHILDREN 0x0010 +#define PSF_PARENTCLIP 0x0020 + +#define QV_OS2 0x0000 +#define QV_CMS 0x0001 +#define QV_TSO 0x0002 +#define QV_TSOBATCH 0x0003 +#define QV_OS400 0x0004 + +#define SW_SCROLLCHILDREN 0x0001 +#define SW_INVALIDATERGN 0x0002 + + +typedef struct _QVERSDATA +{ + USHORT environment; + USHORT version; +} QVERSDATA; +typedef QVERSDATA *PQVERSDATA; + + +HPS WinBeginPaint (HWND hwnd, HPS hps, PRECTL prclPaint); +MRESULT WinDefWindowProc (HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2); +BOOL WinDestroyWindow (HWND hwnd); +BOOL WinEndPaint (HPS hps); +BOOL WinFillRect (HPS hps, __const__ RECTL *prcl, LONG lColor); +HPS WinGetClipPS (HWND hwnd, HWND hwndClip, ULONG fl); +HPS WinGetPS (HWND hwnd); +HAB WinInitialize (ULONG fsOptions); +BOOL WinIsWindowShowing (HWND hwnd); +HDC WinOpenWindowDC (HWND hwnd); +HAB WinQueryAnchorBlock (HWND hwnd); +ULONG WinQueryVersion (HAB hab); +BOOL WinQueryWindowRect (HWND hwnd, PRECTL prclDest); +BOOL WinRegisterClass (HAB hab, PCSZ pszClassName, PFNWP pfnWndProc, + ULONG flStyle, ULONG cbWindowData); +BOOL WinReleasePS (HPS hps); +LONG WinScrollWindow (HWND hwnd, LONG dx, LONG dy, __const__ RECTL *prclScroll, + __const__ RECTL *prclClip, HRGN hrgnUpdate, PRECTL prclUpdate, + ULONG rgfsw); +BOOL WinSetActiveWindow (HWND hwndDesktop, HWND hwnd); +BOOL WinShowWindow (HWND hwnd, BOOL fShow); +BOOL WinTerminate (HAB hab); + +#endif /* INCL_WINWINDOWMGR || !INCL_NOCOMMON */ + +#if defined (INCL_WINWINDOWMGR) + +#define WM_QUERYCONVERTPOS 0x00b0 + +#define QCP_CONVERT 0x0001 +#define QCP_NOCONVERT 0x0000 + +#define QWS_USER 0 +#define QWS_ID (-1) +#define QWS_MIN (-1) + +#define QWL_USER 0 +#define QWL_STYLE (-2) +#define QWP_PFNWP (-3) +#define QWL_HMQ (-4) +#define QWL_RESERVED (-5) +#define QWL_PENDATA (-7) +#define QWL_BD_ATTR (-9) +#define QWL_BD_STAT (-10) +#define QWL_KBDLAYER (-11) +#define QWL_MIN (-11) + +#define QWL_HHEAP 0x0004 +#define QWL_HWNDFOCUSSAVE 0x0018 +#define QWL_DEFBUTTON 0x0040 +#define QWL_PSSCBLK 0x0048 +#define QWL_PFEPBLK 0x004c +#define QWL_PSTATBLK 0x0050 + +#define QWS_FLAGS 0x0008 +#define QWS_RESULT 0x000a +#define QWS_XRESTORE 0x000c +#define QWS_YRESTORE 0x000e +#define QWS_CXRESTORE 0x0010 +#define QWS_CYRESTORE 0x0012 +#define QWS_XMINIMIZE 0x0014 +#define QWS_YMINIMIZE 0x0016 + + +typedef struct _CLASSINFO +{ + ULONG flClassStyle; + PFNWP pfnWindowProc; + ULONG cbWindowData; +} CLASSINFO; +typedef CLASSINFO *PCLASSINFO; + +typedef struct _CREATESTRUCT +{ + PVOID pPresParams; + PVOID pCtlData; + ULONG id; + HWND hwndInsertBehind; + HWND hwndOwner; + LONG cy; + LONG cx; + LONG y; + LONG x; + ULONG flStyle; + PSZ pszText; + PSZ pszClass; + HWND hwndParent; +} CREATESTRUCT; +typedef CREATESTRUCT *PCREATESTRUCT; + +typedef LHANDLE HENUM; + + +HENUM WinBeginEnumWindows (HWND hwnd); +BOOL WinEndEnumWindows (HENUM henum); +LONG WinExcludeUpdateRegion (HPS hps, HWND hwnd); +HWND WinGetNextWindow (HENUM henum); +HPS WinGetScreenPS (HWND hwndDesktop); +BOOL WinIsThreadActive (HAB hab); +BOOL WinLockVisRegions (HWND hwndDesktop, BOOL fLock); +BOOL WinLockWindowUpdate (HWND hwndDesktop, HWND hwndLockUpdate); +BOOL WinMapWindowPoints (HWND hwndFrom, HWND hwndTo, PPOINTL prgptl, + LONG cwpt); +HWND WinQueryActiveWindow (HWND hwndDesktop); +BOOL WinQueryClassInfo (HAB hab, PCSZ pszClassName, PCLASSINFO pClassInfo); +LONG WinQueryClassName (HWND hwnd, LONG cchMax, PCH pch); +BOOL WinQueryUpdateRect (HWND hwnd, PRECTL prcl); +LONG WinQueryUpdateRegion (HWND hwnd, HRGN hrgn); +HWND WinQuerySysModalWindow (HWND hwndDesktop); +HDC WinQueryWindowDC (HWND hwnd); +PVOID WinQueryWindowPtr (HWND hwnd, LONG index); +ULONG WinQueryWindowULong (HWND hwnd, LONG index); +USHORT WinQueryWindowUShort (HWND hwnd, LONG index); +BOOL WinSetSysModalWindow (HWND hwndDesktop, HWND hwnd); +BOOL WinSetWindowBits (HWND hwnd, LONG index, ULONG flData, ULONG flMask); +BOOL WinSetWindowPtr (HWND hwnd, LONG index, PVOID p); +BOOL WinSetWindowULong (HWND hwnd, LONG index, ULONG ul); +BOOL WinSetWindowUShort (HWND hwnd, LONG index, USHORT us); +PFNWP WinSubclassWindow (HWND hwnd, PFNWP pfnwp); +BOOL WinValidateRect (HWND hwnd, __const__ RECTL *prcl, BOOL fIncludeChildren); +BOOL WinValidateRegion (HWND hwnd, HRGN hrgn, BOOL fIncludeChildren); +HWND WinWindowFromDC (HDC hdc); +HWND WinWindowFromPoint (HWND hwnd, __const__ POINTL *pptl, BOOL fChildren); + +#endif /* INCL_WINWINDOWMGR */ + + +#if defined (INCL_WINACCELERATORS) + +#define AF_CHAR 0x0001 +#define AF_VIRTUALKEY 0x0002 +#define AF_SCANCODE 0x0004 +#define AF_SHIFT 0x0008 +#define AF_CONTROL 0x0010 +#define AF_ALT 0x0020 +#define AF_LONEKEY 0x0040 +#define AF_SYSCOMMAND 0x0100 +#define AF_HELP 0x0200 + +typedef struct _ACCEL +{ + USHORT fs; + USHORT key; + USHORT cmd; +} ACCEL; +typedef ACCEL *PACCEL; + +typedef struct _ACCELTABLE +{ + USHORT cAccel; + USHORT codepage; + ACCEL aaccel[1]; +} ACCELTABLE; +typedef ACCELTABLE *PACCELTABLE; + +ULONG WinCopyAccelTable (HACCEL haccel, PACCELTABLE pAccelTable, + ULONG cbCopyMax); +HACCEL WinCreateAccelTable (HAB hab, PACCELTABLE pAccelTable); +BOOL WinDestroyAccelTable (HACCEL haccel); +HACCEL WinLoadAccelTable (HAB hab, HMODULE hmod, ULONG idAccelTable); +HACCEL WinQueryAccelTable (HAB hab, HWND hwndFrame); +BOOL WinSetAccelTable (HAB hab, HACCEL haccel, HWND hwndFrame); +BOOL WinTranslateAccel (HAB hab, HWND hwnd, HACCEL haccel, PQMSG pqmsg); + +#endif /* INCL_WINACCELERATORS */ + + +#if defined (INCL_WINATOM) + +typedef LHANDLE HATOMTBL; +typedef ULONG ATOM; + +#define MAKEINTATOM(x) ((PCH)MAKEULONG (x, 0xffff)) + +ATOM WinAddAtom (HATOMTBL hAtomTbl, PCSZ pszAtomName); +HATOMTBL WinCreateAtomTable (ULONG cbInitial, ULONG cBuckets); +ATOM WinDeleteAtom (HATOMTBL hAtomTbl, ATOM atom); +HATOMTBL WinDestroyAtomTable (HATOMTBL hAtomTbl); +ATOM WinFindAtom (HATOMTBL hAtomTbl, PCSZ pszAtomName); +ULONG WinQueryAtomLength (HATOMTBL hAtomTbl, ATOM atom); +ULONG WinQueryAtomName (HATOMTBL hAtomTbl, ATOM atom, PSZ pchBuffer, + ULONG cchBufferMax); +ULONG WinQueryAtomUsage (HATOMTBL hAtomTbl, ATOM atom); +HATOMTBL WinQuerySystemAtomTable (VOID); + +#endif /* INCL_WINATOM */ + + +#if defined (INCL_WINBUTTONS) + +#define BDS_HILITED 0x0100 +#define BDS_DISABLED 0x0200 +#define BDS_DEFAULT 0x0400 + +#define BM_CLICK 0x0120 +#define BM_QUERYCHECKINDEX 0x0121 +#define BM_QUERYHILITE 0x0122 +#define BM_SETHILITE 0x0123 +#define BM_QUERYCHECK 0x0124 +#define BM_SETCHECK 0x0125 +#define BM_SETDEFAULT 0x0126 + +#define BN_CLICKED 1 +#define BN_DBLCLICKED 2 +#define BN_PAINT 3 + +#define BS_PUSHBUTTON 0 +#define BS_CHECKBOX 1 +#define BS_AUTOCHECKBOX 2 +#define BS_RADIOBUTTON 3 +#define BS_AUTORADIOBUTTON 4 +#define BS_3STATE 5 +#define BS_AUTO3STATE 6 +#define BS_USERBUTTON 7 + +#define BS_PRIMARYSTYLES 0x000f +#define BS_TEXT 0x0010 +#define BS_MINIICON 0x0020 +#define BS_BITMAP 0x0040 +#define BS_ICON 0x0080 +#define BS_HELP 0x0100 +#define BS_SYSCOMMAND 0x0200 +#define BS_DEFAULT 0x0400 +#define BS_NOPOINTERFOCUS 0x0800 +#define BS_NOBORDER 0x1000 +#define BS_NOCURSORSELECT 0x2000 +#define BS_AUTOSIZE 0x4000 + +typedef struct _BTNCDATA +{ + USHORT cb; + USHORT fsCheckState; + USHORT fsHiliteState; + LHANDLE hImage; +} BTNCDATA; +typedef BTNCDATA *PBTNCDATA; + +typedef struct _USERBUTTON +{ + HWND hwnd; + HPS hps; + ULONG fsState; + ULONG fsStateOld; +} USERBUTTON; +typedef USERBUTTON *PUSERBUTTON; + + +#endif /* INCL_WINBUTTONS */ + + +#if defined (INCL_WINCLIPBOARD) || defined (INCL_WINDDE) + +#define WM_RENDERFMT 0x0060 +#define WM_RENDERALLFMTS 0x0061 +#define WM_DESTROYCLIPBOARD 0x0062 +#define WM_PAINTCLIPBOARD 0x0063 +#define WM_SIZECLIPBOARD 0x0064 +#define WM_HSCROLLCLIPBOARD 0x0065 +#define WM_VSCROLLCLIPBOARD 0x0066 +#define WM_DRAWCLIPBOARD 0x0067 + +#define CF_TEXT 1 +#define CF_BITMAP 2 +#define CF_DSPTEXT 3 +#define CF_DSPBITMAP 4 +#define CF_METAFILE 5 +#define CF_DSPMETAFILE 6 +#define CF_PALETTE 9 +#define CF_MMPMFIRST 10 +#define CF_MMPMLAST 19 + +#define SZFMT_TEXT "#1" +#define SZFMT_BITMAP "#2" +#define SZFMT_DSPTEXT "#3" +#define SZFMT_DSPBITMAP "#4" +#define SZFMT_METAFILE "#5" +#define SZFMT_DSPMETAFILE "#6" +#define SZFMT_PALETTE "#9" +#define SZFMT_SYLK "Sylk" +#define SZFMT_DIF "Dif" +#define SZFMT_TIFF "Tiff" +#define SZFMT_OEMTEXT "OemText" +#define SZFMT_DIB "Dib" +#define SZFMT_OWNERDISPLAY "OwnerDisplay" +#define SZFMT_LINK "Link" +#define SZFMT_METAFILEPICT "MetaFilePict" +#define SZFMT_DSPMETAFILEPICT "DspMetaFilePict" +#define SZFMT_CPTEXT "Codepage Text" + +typedef struct _CPTEXT +{ + USHORT idCountry; + USHORT usCodepage; + USHORT usLangID; + USHORT usSubLangID; + BYTE abText[1]; +} CPTEXT; +typedef CPTEXT *PCPTEXT; + +typedef struct _MFP +{ + POINTL sizeBounds; + POINTL sizeMM; + ULONG cbLength; + USHORT mapMode; + USHORT reserved; + BYTE abData[1]; +} MFP; +typedef MFP *PMFP; + +#endif /* INCL_WINCLIPBOARD || INCL_WINDDE */ + +#if defined (INCL_WINCLIPBOARD) + +#define CFI_OWNERFREE 0x0001 +#define CFI_OWNERDISPLAY 0x0002 +#define CFI_HANDLE 0x0200 +#define CFI_POINTER 0x0400 + +BOOL WinCloseClipbrd (HAB hab); +BOOL WinEmptyClipbrd (HAB hab); +ULONG WinEnumClipbrdFmts (HAB hab, ULONG fmt); +BOOL WinOpenClipbrd (HAB hab); +ULONG WinQueryClipbrdData (HAB hab, ULONG fmt); +BOOL WinQueryClipbrdFmtInfo (HAB hab, ULONG fmt, PULONG prgfFmtInfo); +HWND WinQueryClipbrdOwner (HAB hab); +HWND WinQueryClipbrdViewer (HAB hab); +BOOL WinSetClipbrdData (HAB hab, ULONG ulData, ULONG fmt, ULONG rgfFmtInfo); +BOOL WinSetClipbrdOwner (HAB hab, HWND hwnd); +BOOL WinSetClipbrdViewer (HAB hab, HWND hwndNewClipViewer); + +#endif /* INCL_WINCLIPBOARD */ + + +#if defined (INCL_WINDDE) + +#define WM_DDE_FIRST 0x00a0 +#define WM_DDE_INITIATE 0x00a0 +#define WM_DDE_REQUEST 0x00a1 +#define WM_DDE_ACK 0x00a2 +#define WM_DDE_DATA 0x00a3 +#define WM_DDE_ADVISE 0x00a4 +#define WM_DDE_UNADVISE 0x00a5 +#define WM_DDE_POKE 0x00a6 +#define WM_DDE_EXECUTE 0x00a7 +#define WM_DDE_TERMINATE 0x00a8 +#define WM_DDE_INITIATEACK 0x00a9 +#define WM_DDE_LAST 0x00af + +#define DDE_FACK 0x0001 +#define DDE_FBUSY 0x0002 +#define DDE_FNODATA 0x0004 +#define DDE_FACKREQ 0x0008 +#define DDE_FRESPONSE 0x0010 +#define DDE_NOTPROCESSED 0x0020 +#define DDE_FRESERVED 0x00c0 +#define DDE_FAPPSTATUS 0xff00 + +#define DDECTXT_CASESENSITIVE 0x0001 + +#define DDEFMT_TEXT 0x0001 + +#define DDEPM_RETRY 0x0001 +#define DDEPM_NOFREE 0x0002 + +#define SZDDESYS_TOPIC "System" +#define SZDDESYS_ITEM_TOPICS "Topics" +#define SZDDESYS_ITEM_SYSITEMS "SysItems" +#define SZDDESYS_ITEM_RTNMSG "ReturnMessage" +#define SZDDESYS_ITEM_STATUS "Status" +#define SZDDESYS_ITEM_FORMATS "Formats" +#define SZDDESYS_ITEM_SECURITY "Security" +#define SZDDESYS_ITEM_ITEMFORMATS "ItemFormats" +#define SZDDESYS_ITEM_HELP "Help" +#define SZDDESYS_ITEM_PROTOCOLS "Protocols" +#define SZDDESYS_ITEM_RESTART "Restart" + +typedef struct _CONVCONTEXT +{ + ULONG cb; + ULONG fsContext; + ULONG idCountry; + ULONG usCodepage; + ULONG usLangID; + ULONG usSubLangID; +} CONVCONTEXT; +typedef CONVCONTEXT *PCONVCONTEXT; + +typedef struct _DDEINIT +{ + ULONG cb; + PSZ pszAppName; + PSZ pszTopic; + ULONG offConvContext; +} DDEINIT; +typedef DDEINIT *PDDEINIT; + +typedef struct _DDESTRUCT +{ + ULONG cbData; + USHORT fsStatus; + USHORT usFormat; + USHORT offszItemName; + USHORT offabData; +} DDESTRUCT; +typedef DDESTRUCT *PDDESTRUCT; + +#define DDES_PSZITEMNAME(pddes) \ + (((PSZ)pddes) + ((PDDESTRUCT)pddes)->offszItemName) + +#define DDES_PABDATA(pddes) \ + (((PBYTE)pddes) + ((PDDESTRUCT)pddes)->offabData) + +#define DDEI_PCONVCONTEXT(pddei) \ + ((PCONVCONTEXT)((PBYTE)pddei + pddei->offConvContext)) + +BOOL WinDdeInitiate (HWND hwndClient, PCSZ pszAppName, PCSZ pszTopicName, + __const__ CONVCONTEXT *pcctxt); +BOOL WinDdePostMsg (HWND hwndTo, HWND hwndFrom, ULONG wm, + __const__ DDESTRUCT *pddest, ULONG flOptions); +MRESULT WinDdeRespond (HWND hwndClient, HWND hwndServer, PCSZ pszAppName, + PCSZ pszTopicName, __const__ CONVCONTEXT *pcctxt); + +#endif /* INCL_WINDDE */ + + +#if defined (INCL_WINCOUNTRY) + +#define WCS_ERROR 0 +#define WCS_EQ 1 +#define WCS_LT 2 +#define WCS_GT 3 + +ULONG WinCompareStrings (HAB hab, ULONG idcp, ULONG idcc, PCSZ psz1, + PCSZ psz2, ULONG reserved); +UCHAR WinCpTranslateChar (HAB hab, ULONG cpSrc, UCHAR chSrc, ULONG cpDst); +BOOL WinCpTranslateString (HAB hab, ULONG cpSrc, PCSZ pszSrc, ULONG cpDst, + ULONG cchDestMax, PSZ pchDest); +PSZ WinNextChar (HAB hab, ULONG idcp, ULONG idcc, PCSZ psz); +PSZ WinPrevChar (HAB hab, ULONG idcp, ULONG idcc, PCSZ pszStart, + PCSZ psz); +ULONG WinQueryCp (HMQ hmq); +ULONG WinQueryCpList (HAB hab, ULONG ccpMax, PULONG prgcp); +BOOL WinSetCp (HMQ hmq, ULONG idCodePage); +ULONG WinUpper (HAB hab, ULONG idcp, ULONG idcc, PSZ psz); +ULONG WinUpperChar (HAB hab, ULONG idcp, ULONG idcc, ULONG c); + +#endif /* INCL_WINCOUNTRY */ + + +#if defined (INCL_WINCURSORS) || !defined (INCL_NOCOMMON) + +#define CURSOR_SOLID 0x0000 +#define CURSOR_HALFTONE 0x0001 +#define CURSOR_FRAME 0x0002 +#define CURSOR_FLASH 0x0004 +#define CURSOR_BIDI_FIRST 0x0100 +#define CURSOR_BIDI_LAST 0x0200 +#define CURSOR_SETPOS 0x8000 + +BOOL WinCreateCursor (HWND hwnd, LONG x, LONG y, LONG cx, LONG cy, + ULONG fs, PRECTL prclClip); +BOOL WinDestroyCursor (HWND hwnd); +BOOL WinShowCursor (HWND hwnd, BOOL fShow); + +#endif /* INCL_WINCURSORS || !INCL_NOCOMMON */ + +#if defined (INCL_WINCURSORS) + +typedef struct _CURSORINFO +{ + HWND hwnd; + LONG x; + LONG y; + LONG cx; + LONG cy; + ULONG fs; + RECTL rclClip; +} CURSORINFO; +typedef CURSORINFO *PCURSORINFO; + +BOOL WinQueryCursorInfo (HWND hwndDesktop, PCURSORINFO pCursorInfo); + +#endif /* INCL_WINCURSORS */ + + +#if defined (INCL_WINDESKTOP) + +#define SDT_DESTROY 0x0001 +#define SDT_NOBKGND 0x0002 +#define SDT_TILE 0x0004 +#define SDT_SCALE 0x0008 +#define SDT_PATTERN 0x0010 +#define SDT_CENTER 0x0020 +#define SDT_RETAIN 0x0040 +#define SDT_LOADFILE 0x0080 + +typedef struct _DESKTOP +{ + ULONG cbSize; + HBITMAP hbm; + LONG x; + LONG y; + ULONG fl; + LONG lTileCount; + CHAR szFile[260]; +} DESKTOP; +typedef DESKTOP *PDESKTOP; + +BOOL WinQueryDesktopBkgnd (HWND hwndDesktop, PDESKTOP pdsk); +HBITMAP WinSetDesktopBkgnd (HWND hwndDesktop, __const__ DESKTOP *pdskNew); + +#endif /* INCL_WINDESKTOP */ + + +#if defined (INCL_WINDIALOGS) || !defined (INCL_NOCOMMON) + +#define DID_OK 1 +#define DID_CANCEL 2 +#define DID_ERROR 0xffff + +#define MB_OK 0x0000 +#define MB_OKCANCEL 0x0001 +#define MB_RETRYCANCEL 0x0002 +#define MB_ABORTRETRYIGNORE 0x0003 +#define MB_YESNO 0x0004 +#define MB_YESNOCANCEL 0x0005 +#define MB_CANCEL 0x0006 +#define MB_ENTER 0x0007 +#define MB_ENTERCANCEL 0x0008 + +#define MB_NOICON 0x0000 +#define MB_CUANOTIFICATION 0x0000 +#define MB_ICONQUESTION 0x0010 +#define MB_ICONEXCLAMATION 0x0020 +#define MB_CUAWARNING 0x0020 +#define MB_ICONASTERISK 0x0030 +#define MB_ICONHAND 0x0040 +#define MB_CUACRITICAL 0x0040 +#define MB_QUERY MB_ICONQUESTION +#define MB_WARNING MB_CUAWARNING +#define MB_INFORMATION MB_ICONASTERISK +#define MB_CRITICAL MB_CUACRITICAL +#define MB_ERROR MB_CRITICAL +#define MB_CUSTOMICON 0x0080 + +#define MB_DEFBUTTON1 0x0000 +#define MB_DEFBUTTON2 0x0100 +#define MB_DEFBUTTON3 0x0200 + +#define MB_APPLMODAL 0x0000 +#define MB_SYSTEMMODAL 0x1000 +#define MB_HELP 0x2000 +#define MB_MOVEABLE 0x4000 +#define MB_NONMODAL 0x8000 + +#define MBID_OK 1 +#define MBID_CANCEL 2 +#define MBID_ABORT 3 +#define MBID_RETRY 4 +#define MBID_IGNORE 5 +#define MBID_YES 6 +#define MBID_NO 7 +#define MBID_HELP 8 +#define MBID_ENTER 9 +#define MBID_ERROR 0xffff + +#define WA_WARNING 0 +#define WA_NOTE 1 +#define WA_ERROR 2 +#define WA_CDEFALARMS 3 + +#if 0 /* Multimedia */ +#define WA_WINDOWOPEN 3 +#define WA_WINDOWCLOSE 4 +#define WA_BEGINDRAG 5 +#define WA_ENDDRAG 6 +#define WA_STARTUP 7 +#define WA_SHUTDOWN 8 +#define WA_SHRED 9 +#define WA_CWINALARMS 13 +#endif /* 0 */ + +#define MAX_MBDTEXT 70 + +typedef struct _MB2D +{ + CHAR achText[MAX_MBDTEXT+1]; + CHAR _pad[1]; + ULONG idButton; + LONG flStyle; +} MB2D; +typedef MB2D *PMB2D; + +typedef struct _MB2INFO +{ + ULONG cb; + HPOINTER hIcon; + ULONG cButtons; + ULONG flStyle; + HWND hwndNotify; + MB2D mb2d[1]; +} MB2INFO; + +typedef MB2INFO *PMB2INFO; + + +#define WinCheckButton(hwndDlg,id,usCheckState) \ + ((ULONG)WinSendDlgItemMsg (hwndDlg, id, BM_SETCHECK, \ + MPFROMSHORT (usCheckState), (MPARAM)NULL)) + +#define WinEnableControl(hwndDlg,id,fEnable) \ + WinEnableWindow (WinWindowFromID (hwndDlg, id), fEnable) + +#define WinIsControlEnabled(hwndDlg,id) \ + ((BOOL)WinIsWindowEnabled (WinWindowFromID (hwndDlg, id))) + +#define WinQueryButtonCheckstate(hwndDlg,id) \ + ((ULONG)WinSendDlgItemMsg (hwndDlg, id, BM_QUERYCHECK, \ + (MPARAM)NULL, (MPARAM)NULL)) + + +BOOL WinAlarm (HWND hwndDesktop, ULONG rgfType); +MRESULT WinDefDlgProc (HWND hwndDlg, ULONG msg, MPARAM mp1, MPARAM mp2); +BOOL WinDismissDlg (HWND hwndDlg, ULONG usResult); +ULONG WinDlgBox (HWND hwndParent, HWND hwndOwner, PFNWP pfnDlgProc, + HMODULE hmod, ULONG idDlg, PVOID pCreateParams); +BOOL WinGetDlgMsg (HWND hwndDlg, PQMSG pqmsg); +HWND WinLoadDlg (HWND hwndParent, HWND hwndOwner, PFNWP pfnDlgProc, + HMODULE hmod, ULONG idDlg, PVOID pCreateParams); +ULONG WinMessageBox (HWND hwndParent, HWND hwndOwner, PCSZ pszText, + PCSZ pszCaption, ULONG idWindow, ULONG flStyle); +ULONG WinMessageBox2 (HWND hwndParent, HWND hwndOwner, PCSZ pszText, + PCSZ pszCaption, ULONG idWindow, PMB2INFO pmb2info); +BOOL WinQueryDlgItemShort (HWND hwndDlg, ULONG idItem, PSHORT pResult, + BOOL fSigned); +ULONG WinQueryDlgItemText (HWND hwndDlg, ULONG idItem, LONG cchBufferMax, + PSZ pchBuffer); +LONG WinQueryDlgItemTextLength (HWND hwndDlg, ULONG idItem); +BOOL WinSetDlgItemShort (HWND hwndDlg, ULONG idItem, USHORT usValue, + BOOL fSigned); +BOOL WinSetDlgItemText (HWND hwndDlg, ULONG idItem, PCSZ pszText); + +#endif /* INCL_WINDIALOGS || !defined (INCL_NOCOMMON) */ + + +#if defined (INCL_WINDIALOGS) + +#define DLGC_ENTRYFIELD 0x0001 +#define DLGC_BUTTON 0x0002 +#define DLGC_RADIOBUTTON 0x0004 +#define DLGC_STATIC 0x0008 +#define DLGC_DEFAULT 0x0010 +#define DLGC_PUSHBUTTON 0x0020 +#define DLGC_CHECKBOX 0x0040 +#define DLGC_SCROLLBAR 0x0080 +#define DLGC_MENU 0x0100 +#define DLGC_TABONCLICK 0x0200 +#define DLGC_MLE 0x0400 + +#define EDI_FIRSTTABITEM 0 +#define EDI_LASTTABITEM 1 +#define EDI_NEXTTABITEM 2 +#define EDI_PREVTABITEM 3 +#define EDI_FIRSTGROUPITEM 4 +#define EDI_LASTGROUPITEM 5 +#define EDI_NEXTGROUPITEM 6 +#define EDI_PREVGROUPITEM 7 + +typedef struct _DLGTITEM +{ + USHORT fsItemStatus; + USHORT cChildren; + USHORT cchClassName; + USHORT offClassName; + USHORT cchText; + USHORT offText; + ULONG flStyle; + SHORT x; + SHORT y; + SHORT cx; + SHORT cy; + USHORT id; + USHORT offPresParams; + USHORT offCtlData; +} DLGTITEM; +typedef DLGTITEM *PDLGTITEM; + +typedef struct _DLGTEMPLATE +{ + USHORT cbTemplate; + USHORT type; + USHORT codepage; + USHORT offadlgti; + USHORT fsTemplateStatus; + USHORT iItemFocus; + USHORT coffPresParams; + DLGTITEM adlgti[1]; +} DLGTEMPLATE; +typedef DLGTEMPLATE *PDLGTEMPLATE; + + +HWND WinCreateDlg (HWND hwndParent, HWND hwndOwner, PFNWP pfnDlgProc, + PDLGTEMPLATE pdlgt, PVOID pCreateParams); +HWND WinEnumDlgItem (HWND hwndDlg, HWND hwnd, ULONG code); +BOOL WinMapDlgPoints (HWND hwndDlg, PPOINTL prgwptl, ULONG cwpt, + BOOL fCalcWindowCoords); +ULONG WinProcessDlg (HWND hwndDlg); +MRESULT WinSendDlgItemMsg (HWND hwndDlg, ULONG idItem, ULONG msg, + MPARAM mp1, MPARAM mp2); +LONG WinSubstituteStrings (HWND hwnd, PCSZ pszSrc, LONG cchDstMax, + PSZ pszDst); + +#endif /* INCL_WINDIALOGS */ + + +#if defined (INCL_WINENTRYFIELDS) + +#define CBID_LIST 0x029a +#define CBID_EDIT 0x029b + +#define CBM_SHOWLIST 0x0170 +#define CBM_HILITE 0x0171 +#define CBM_ISLISTSHOWING 0x0172 + +#define CBN_EFCHANGE 1 +#define CBN_EFSCROLL 2 +#define CBN_MEMERROR 3 +#define CBN_LBSELECT 4 +#define CBN_LBSCROLL 5 +#define CBN_SHOWLIST 6 +#define CBN_ENTER 7 + +#define CBS_SIMPLE 0x0001 +#define CBS_DROPDOWN 0x0002 +#define CBS_DROPDOWNLIST 0x0004 +#define CBS_COMPATIBLE 0x0008 + +#define EM_QUERYCHANGED 0x0140 +#define EM_QUERYSEL 0x0141 +#define EM_SETSEL 0x0142 +#define EM_SETTEXTLIMIT 0x0143 +#define EM_CUT 0x0144 +#define EM_COPY 0x0145 +#define EM_CLEAR 0x0146 +#define EM_PASTE 0x0147 +#define EM_QUERYFIRSTCHAR 0x0148 +#define EM_SETFIRSTCHAR 0x0149 +#define EM_QUERYREADONLY 0x014a +#define EM_SETREADONLY 0x014b +#define EM_SETINSERTMODE 0x014c + +#define EN_SETFOCUS 0x0001 +#define EN_KILLFOCUS 0x0002 +#define EN_CHANGE 0x0004 +#define EN_SCROLL 0x0008 +#define EN_MEMERROR 0x0010 +#define EN_OVERFLOW 0x0020 +#define EN_INSERTMODETOGGLE 0x0040 + +#define ES_LEFT 0x0000 +#define ES_CENTER 0x0001 +#define ES_RIGHT 0x0002 +#define ES_AUTOSCROLL 0x0004 +#define ES_MARGIN 0x0008 +#define ES_AUTOTAB 0x0010 +#define ES_READONLY 0x0020 +#define ES_COMMAND 0x0040 +#define ES_UNREADABLE 0x0080 +#define ES_AUTOSIZE 0x0200 + +#if defined (INCL_NLS) +#define ES_ANY 0x0000 +#define ES_SBCS 0x1000 +#define ES_DBCS 0x2000 +#define ES_MIXED 0x3000 +#endif /* INCL_NLS */ + +typedef struct _COMBOCDATA +{ + ULONG cbSize; + ULONG reserved; + PVOID pHWXCtlData; +} COMBOCDATA; +typedef COMBOCDATA *PCOMBOCDATA; + +typedef struct _ENTRYFDATA +{ + USHORT cb; + USHORT cchEditLimit; + USHORT ichMinSel; + USHORT ichMaxSel; + PVOID pHWXCtlData; +} ENTRYFDATA; +typedef ENTRYFDATA *PENTRYFDATA; + +#endif /* INCL_WINENTRYFIELDS */ + + +#if defined (INCL_WINERRORS) + +typedef struct _ERRINFO +{ + ULONG cbFixedErrInfo; + ERRORID idError; + ULONG cDetailLevel; + ULONG offaoffszMsg; + ULONG offBinaryData; +} ERRINFO; +typedef ERRINFO *PERRINFO; + +ERRORID WinGetLastError (HAB hab); +BOOL WinFreeErrorInfo (PERRINFO perrinfo); +PERRINFO WinGetErrorInfo (HAB hab); + +#endif /* INCL_WINERRORS */ + + +#if defined (INCL_WINFRAMECTLS) + +#define TBM_SETHILITE 0x01e3 +#define TBM_QUERYHILITE 0x01e4 + +#endif /* INCL_WINFRAMECTLS */ + + +#if defined (INCL_WINHOOKS) + +#define HK_SENDMSG 0 +#define HK_INPUT 1 +#define HK_MSGFILTER 2 +#define HK_JOURNALRECORD 3 +#define HK_JOURNALPLAYBACK 4 +#define HK_HELP 5 +#define HK_LOADER 6 +#define HK_REGISTERUSERMSG 7 +#define HK_MSGCONTROL 8 +#define HK_PLIST_ENTRY 9 +#define HK_PLIST_EXIT 10 +#define HK_FINDWORD 11 +#define HK_CODEPAGECHANGED 12 +#define HK_WINDOWDC 15 +#define HK_DESTROYWINDOW 16 +#define HK_CHECKMSGFILTER 20 +#define HK_MSGINPUT 21 +#define HK_ALARM 22 +#define HK_LOCKUP 23 +#define HK_FLUSHBUF 24 + +#define HLPM_FRAME (-1) +#define HLPM_WINDOW (-2) +#define HLPM_MENU (-3) + +#define HMQ_CURRENT ((HMQ)1) + +#define LHK_DELETEPROC 1 +#define LHK_DELETELIB 2 +#define LHK_LOADPROC 3 +#define LHK_LOADLIB 4 + +#define MCHK_MSGINTEREST 1 +#define MCHK_CLASSMSGINTEREST 2 +#define MCHK_SYNCHRONISATION 3 +#define MCHK_MSGMODE 4 + +#define MSGF_DIALOGBOX 1 +#define MSGF_MESSAGEBOX 2 +#define MSGF_DDEPOSTMSG 3 +#define MSGF_TRACK 8 + +#define PM_MODEL_1X 0 +#define PM_MODEL_2X 1 + +#define RUMHK_DATATYPE 1 +#define RUMHK_MSG 2 + + +typedef struct _SMHSTRUCT +{ + MPARAM mp2; + MPARAM mp1; + ULONG msg; + HWND hwnd; + ULONG model; +} SMHSTRUCT; +typedef SMHSTRUCT *PSMHSTRUCT; + + +BOOL WinCallMsgFilter (HAB hab, PQMSG pqmsg, ULONG msgf); +BOOL WinReleaseHook (HAB hab, HMQ hmq, LONG iHook, PFN pfnHook, HMODULE hmod); +BOOL WinSetHook (HAB hab, HMQ hmq, LONG iHook, PFN pfnHook, HMODULE hmod); + +#endif /* INCL_WINHOOKS */ + + +#if defined (INCL_WININPUT) || !defined (INCL_NOCOMMON) + +#define FC_NOSETFOCUS 0x0001 +#define FC_NOBRINGTOTOP 0x0001 /*!*/ +#define FC_NOLOSEFOCUS 0x0002 +#define FC_NOBRINGTOPFIRSTWINDOW 0x0002 /*!*/ +#define FC_NOSETACTIVE 0x0004 +#define FC_NOLOSEACTIVE 0x0008 +#define FC_NOSETSELECTION 0x0010 +#define FC_NOLOSESELECTION 0x0020 + +#define QFC_NEXTINCHAIN 0x0001 +#define QFC_ACTIVE 0x0002 +#define QFC_FRAME 0x0003 +#define QFC_SELECTACTIVE 0x0004 +#define QFC_PARTOFCHAIN 0x0005 + +BOOL WinFocusChange (HWND hwndDesktop, HWND hwndSetFocus, ULONG flFocusChange); +BOOL WinLockupSystem (HAB hab); +BOOL WinSetFocus (HWND hwndDesktop, HWND hwndSetFocus); +BOOL WinUnlockSystem (HAB hab, PCSZ pszPassword); + +#endif /* INCL_WININPUT || !INCL_NOCOMMON */ + + +#if defined (INCL_WININPUT) + +#define WM_MOUSEFIRST 0x0070 +#define WM_MOUSEMOVE 0x0070 +#define WM_BUTTONCLICKFIRST 0x0071 +#define WM_BUTTON1DOWN 0x0071 +#define WM_BUTTON1UP 0x0072 +#define WM_BUTTON1DBLCLK 0x0073 +#define WM_BUTTON2DOWN 0x0074 +#define WM_BUTTON2UP 0x0075 +#define WM_BUTTON2DBLCLK 0x0076 +#define WM_BUTTON3DOWN 0x0077 +#define WM_BUTTON3UP 0x0078 +#define WM_BUTTON3DBLCLK 0x0079 +#define WM_BUTTONCLICKLAST 0x0079 +#define WM_MOUSELAST 0x0079 +#define WM_CHAR 0x007a +#define WM_VIOCHAR 0x007b +#define WM_JOURNALNOTIFY 0x007c +#define WM_MOUSEMAP 0x007d +#define WM_VRNDISABLED 0x007e +#define WM_VRNENABLED 0x007f + +#define WM_EXTMOUSEFIRST 0x0410 +#define WM_CHORD 0x0410 +#define WM_BUTTON1MOTIONSTART 0x0411 +#define WM_BUTTON1MOTIONEND 0x0412 +#define WM_BUTTON1CLICK 0x0413 +#define WM_BUTTON2MOTIONSTART 0x0414 +#define WM_BUTTON2MOTIONEND 0x0415 +#define WM_BUTTON2CLICK 0x0416 +#define WM_BUTTON3MOTIONSTART 0x0417 +#define WM_BUTTON3MOTIONEND 0x0418 +#define WM_BUTTON3CLICK 0x0419 +#define WM_EXTMOUSELAST 0x0419 + +#define WM_MOUSETRANSLATEFIRST 0x0420 +#define WM_BEGINDRAG 0x0420 +#define WM_ENDDRAG 0x0421 +#define WM_SINGLESELECT 0x0422 +#define WM_OPEN 0x0423 +#define WM_CONTEXTMENU 0x0424 +#define WM_CONTEXTHELP 0x0425 +#define WM_TEXTEDIT 0x0426 +#define WM_BEGINSELECT 0x0427 +#define WM_ENDSELECT 0x0428 +#define WM_MOUSETRANSLATELAST 0x0428 +#define WM_PICKUP 0x0429 + +#define WM_PENFIRST 0x0481 +#define WM_PENLAST 0x049f + +#define WM_MMPMFIRST 0x0500 +#define WM_MMPMLAST 0x05ff + +#define WM_BIDI_FIRST 0x0bd0 +#define WM_BIDI_LAST 0x0bff + +#define INP_NONE 0x0000 +#define INP_KBD 0x0001 +#define INP_MULT 0x0002 +#define INP_RES2 0x0004 +#define INP_SHIFT 0x0008 +#define INP_CTRL 0x0010 +#define INP_ALT 0x0020 +#define INP_RES3 0x0040 +#define INP_RES4 0x0080 +#define INP_IGNORE 0xffff + +#define JRN_QUEUESTATUS 0x0001 +#define JRN_PHYSKEYSTATE 0x0002 + +#define KC_NONE 0x0000 +#define KC_CHAR 0x0001 +#define KC_VIRTUALKEY 0x0002 +#define KC_SCANCODE 0x0004 +#define KC_SHIFT 0x0008 +#define KC_CTRL 0x0010 +#define KC_ALT 0x0020 +#define KC_KEYUP 0x0040 +#define KC_PREVDOWN 0x0080 +#define KC_LONEKEY 0x0100 +#define KC_DEADKEY 0x0200 +#define KC_COMPOSITE 0x0400 +#define KC_INVALIDCOMP 0x0800 +#define KC_TOGGLE 0x1000 +#define KC_INVALIDCHAR 0x2000 +#define KC_DBCSRSRVD1 0x4000 +#define KC_DBCSRSRVD2 0x8000 + +#define VK_BUTTON1 0x0001 +#define VK_BUTTON2 0x0002 +#define VK_BUTTON3 0x0003 +#define VK_BREAK 0x0004 +#define VK_BACKSPACE 0x0005 +#define VK_TAB 0x0006 +#define VK_BACKTAB 0x0007 +#define VK_NEWLINE 0x0008 +#define VK_SHIFT 0x0009 +#define VK_CTRL 0x000a +#define VK_ALT 0x000b +#define VK_ALTGRAF 0x000c +#define VK_PAUSE 0x000d +#define VK_CAPSLOCK 0x000e +#define VK_ESC 0x000f +#define VK_SPACE 0x0010 +#define VK_PAGEUP 0x0011 +#define VK_PAGEDOWN 0x0012 +#define VK_END 0x0013 +#define VK_HOME 0x0014 +#define VK_LEFT 0x0015 +#define VK_UP 0x0016 +#define VK_RIGHT 0x0017 +#define VK_DOWN 0x0018 +#define VK_PRINTSCRN 0x0019 +#define VK_INSERT 0x001a +#define VK_DELETE 0x001b +#define VK_SCRLLOCK 0x001c +#define VK_NUMLOCK 0x001d +#define VK_ENTER 0x001e +#define VK_SYSRQ 0x001f +#define VK_F1 0x0020 +#define VK_F2 0x0021 +#define VK_F3 0x0022 +#define VK_F4 0x0023 +#define VK_F5 0x0024 +#define VK_F6 0x0025 +#define VK_F7 0x0026 +#define VK_F8 0x0027 +#define VK_F9 0x0028 +#define VK_F10 0x0029 +#define VK_F11 0x002a +#define VK_F12 0x002b +#define VK_F13 0x002c +#define VK_F14 0x002d +#define VK_F15 0x002e +#define VK_F16 0x002f +#define VK_F17 0x0030 +#define VK_F18 0x0031 +#define VK_F19 0x0032 +#define VK_F20 0x0033 +#define VK_F21 0x0034 +#define VK_F22 0x0035 +#define VK_F23 0x0036 +#define VK_F24 0x0037 +#define VK_ENDDRAG 0x0038 +#define VK_CLEAR 0x0039 +#define VK_EREOF 0x003a +#define VK_PA1 0x003b +#define VK_ATTN 0x003c +#define VK_CRSEL 0x003d +#define VK_EXSEL 0x003e +#define VK_COPY 0x003f +#define VK_BLK1 0x0040 +#define VK_BLK2 0x0041 + +#define VK_MENU VK_F10 + +#if defined (INCL_NLS) +#define VK_DBCSFIRST 0x0080 +#define VK_DBCSLAST 0x00ff +#define VK_BIDI_FIRST 0x00e0 +#define VK_BIDI_LAST 0x00ff +#endif /* INCL_NLS */ + +#define VK_USERFIRST 0x0100 +#define VK_USERLAST 0x01ff + +typedef struct _CHARMSG +{ + USHORT fs; + UCHAR cRepeat; + UCHAR scancode; + USHORT chr; + USHORT vkey; +} CHRMSG; +typedef CHRMSG *PCHRMSG; + +typedef struct _MOUSEMSG +{ + SHORT x; + SHORT y; + USHORT codeHitTest; + USHORT fsInp; +} MSEMSG; +typedef MSEMSG *PMSEMSG; + +#define CHARMSG(pmsg) ((PCHRMSG)((PBYTE)pmsg + sizeof (ULONG))) +#define MOUSEMSG(pmsg) ((PMSEMSG)((PBYTE)pmsg + sizeof (ULONG))) + +BOOL WinCheckInput (HAB hab); +BOOL WinEnablePhysInput (HWND hwndDesktop, BOOL fEnable); +LONG WinGetKeyState (HWND hwndDesktop, LONG vkey); +LONG WinGetPhysKeyState (HWND hwndDesktop, LONG sc); +BOOL WinIsPhysInputEnabled (HWND hwndDesktop); +HWND WinQueryCapture (HWND hwndDesktop); +HWND WinQueryFocus (HWND hwndDesktop); +ULONG WinQueryVisibleRegion (HWND hwnd, HRGN hrgn); +BOOL WinSetCapture (HWND hwndDesktop, HWND hwnd); +BOOL WinSetKeyboardStateTable (HWND hwndDesktop, PBYTE pKeyStateTable, + BOOL fSet); +BOOL WinSetVisibleRegionNotify (HWND hwnd, BOOL fEnable); + +#endif /* INCL_WININPUT */ + + +#if defined (INCL_WINLISTBOXES) + +#define LS_MULTIPLESEL 0x0001 +#define LS_OWNERDRAW 0x0002 +#define LS_NOADJUSTPOS 0x0004 +#define LS_HORZSCROLL 0x0008 +#define LS_EXTENDEDSEL 0x0010 + +#define LN_SELECT 1 +#define LN_SETFOCUS 2 +#define LN_KILLFOCUS 3 +#define LN_SCROLL 4 +#define LN_ENTER 5 + +#define LM_QUERYITEMCOUNT 0x0160 +#define LM_INSERTITEM 0x0161 +#define LM_SETTOPINDEX 0x0162 +#define LM_DELETEITEM 0x0163 +#define LM_SELECTITEM 0x0164 +#define LM_QUERYSELECTION 0x0165 +#define LM_SETITEMTEXT 0x0166 +#define LM_QUERYITEMTEXTLENGTH 0x0167 +#define LM_QUERYITEMTEXT 0x0168 +#define LM_SETITEMHANDLE 0x0169 +#define LM_QUERYITEMHANDLE 0x016a +#define LM_SEARCHSTRING 0x016b +#define LM_SETITEMHEIGHT 0x016c +#define LM_QUERYTOPINDEX 0x016d +#define LM_DELETEALL 0x016e +#define LM_INSERTMULTITEMS 0x016f +#define LM_SETITEMWIDTH 0x0660 /* ? */ + +#define LIT_CURSOR (-4) +#define LIT_ERROR (-3) +#define LIT_MEMERROR (-2) +#define LIT_NONE (-1) +#define LIT_FIRST (-1) + +#define LIT_END (-1) +#define LIT_SORTASCENDING (-2) +#define LIT_SORTDESCENDING (-3) + +#define LSS_SUBSTRING 0x0001 +#define LSS_PREFIX 0x0002 +#define LSS_CASESENSITIVE 0x0004 + + +typedef struct _LBOXINFO +{ + LONG lItemIndex; + ULONG ulItemCount; + ULONG reserved; + ULONG reserved2; +} LBOXINFO; +typedef LBOXINFO *PLBOXINFO; + + +#define WinDeleteLboxItem(hwndLbox,index) \ + ((LONG)WinSendMsg (hwndLbox, LM_DELETEITEM, MPFROMLONG (index), \ + (MPARAM)NULL)) + +#define WinInsertLboxItem(hwndLbox,index,psz) \ + ((LONG)WinSendMsg (hwndLbox, LM_INSERTITEM, MPFROMLONG(index), \ + MPFROMP (psz))) + +#define WinQueryLboxCount(hwndLbox) \ + ((LONG)WinSendMsg (hwndLbox, LM_QUERYITEMCOUNT, (MPARAM)NULL, \ + (MPARAM)NULL)) + +#define WinQueryLboxItemText(hwndLbox,index,psz,cchMax) \ + ((LONG)WinSendMsg (hwndLbox, LM_QUERYITEMTEXT, \ + MPFROM2SHORT((index), (cchMax)), MPFROMP (psz))) + +#define WinQueryLboxItemTextLength(hwndLbox,index) \ + ((SHORT)WinSendMsg (hwndLbox, LM_QUERYITEMTEXTLENGTH, \ + MPFROMSHORT (index), (MPARAM)NULL)) + +#define WinQueryLboxSelectedItem(hwndLbox) \ + ((LONG)WinSendMsg (hwndLbox, LM_QUERYSELECTION, MPFROMLONG (LIT_FIRST), \ + (MPARAM)NULL)) + +#define WinSetLboxItemText(hwndLbox,index,psz) \ + ((BOOL)WinSendMsg (hwndLbox, LM_SETITEMTEXT, \ + MPFROMLONG (index), MPFROMP (psz))) + +#endif /* INCL_WINLISTBOXES */ + + +#if defined (INCL_WINLOAD) + +BOOL WinDeleteLibrary (HAB hab, HLIB libhandle); +BOOL WinDeleteProcedure (HAB hab, PFNWP wndproc); +HLIB WinLoadLibrary (HAB hab, PCSZ libname); +PFNWP WinLoadProcedure (HAB hab, HLIB libhandle, PSZ procname); + +#endif /* INCL_WINLOAD */ + + +#if defined (INCL_WINMENUS) + +#define MIA_NODISMISS 0x0020 +#define MIA_FRAMED 0x1000 +#define MIA_CHECKED 0x2000 +#define MIA_DISABLED 0x4000 +#define MIA_HILITED 0x8000 + +#define MIS_TEXT 0x0001 +#define MIS_BITMAP 0x0002 +#define MIS_SEPARATOR 0x0004 +#define MIS_OWNERDRAW 0x0008 +#define MIS_SUBMENU 0x0010 +#define MIS_MULTMENU 0x0020 +#define MIS_SYSCOMMAND 0x0040 +#define MIS_HELP 0x0080 +#define MIS_STATIC 0x0100 +#define MIS_BUTTONSEPARATOR 0x0200 +#define MIS_BREAK 0x0400 +#define MIS_BREAKSEPARATOR 0x0800 +#define MIS_GROUP 0x1000 +#define MIS_SINGLE 0x2000 + +#define MIT_END (-1) +#define MIT_NONE (-1) +#define MIT_MEMERROR (-1) +#define MIT_ERROR (-1) +#define MIT_FIRST (-2) +#define MIT_LAST (-3) + +#define MM_INSERTITEM 0x0180 +#define MM_DELETEITEM 0x0181 +#define MM_QUERYITEM 0x0182 +#define MM_SETITEM 0x0183 +#define MM_QUERYITEMCOUNT 0x0184 +#define MM_STARTMENUMODE 0x0185 +#define MM_ENDMENUMODE 0x0186 +#define MM_REMOVEITEM 0x0188 +#define MM_SELECTITEM 0x0189 +#define MM_QUERYSELITEMID 0x018a +#define MM_QUERYITEMTEXT 0x018b +#define MM_QUERYITEMTEXTLENGTH 0x018c +#define MM_SETITEMHANDLE 0x018d +#define MM_SETITEMTEXT 0x018e +#define MM_ITEMPOSITIONFROMID 0x018f +#define MM_ITEMIDFROMPOSITION 0x0190 +#define MM_QUERYITEMATTR 0x0191 +#define MM_SETITEMATTR 0x0192 +#define MM_ISITEMVALID 0x0193 +#define MM_QUERYITEMRECT 0x0194 + +#define MM_QUERYDEFAULTITEMID 0x0431 +#define MM_SETDEFAULTITEMID 0x0432 + +#define MS_ACTIONBAR 0x0001 +#define MS_TITLEBUTTON 0x0002 +#define MS_VERTICALFLIP 0x0004 +#define MS_CONDITIONALCASCADE 0x0040 + +#define PU_POSITIONONITEM 0x0001 +#define PU_HCONSTRAIN 0x0002 +#define PU_VCONSTRAIN 0x0004 +#define PU_NONE 0x0000 +#define PU_MOUSEBUTTON1DOWN 0x0008 +#define PU_MOUSEBUTTON2DOWN 0x0010 +#define PU_MOUSEBUTTON3DOWN 0x0018 +#define PU_SELECTITEM 0x0020 +#define PU_MOUSEBUTTON1 0x0040 +#define PU_MOUSEBUTTON2 0x0080 +#define PU_MOUSEBUTTON3 0x0100 +#define PU_KEYBOARD 0x0200 + +typedef struct _MENUITEM +{ + SHORT iPosition; + USHORT afStyle; + USHORT afAttribute; + USHORT id; + HWND hwndSubMenu; + ULONG hItem; +} MENUITEM; +typedef MENUITEM *PMENUITEM; + +typedef struct _mti /* Note 1 */ +{ + USHORT afStyle; + USHORT pad; + USHORT idItem; + CHAR c[2]; +} MTI; + +typedef struct _mt /* Note 1 */ +{ + ULONG len; + USHORT codepage; + USHORT reserved; + USHORT cMti; + MTI rgMti[1]; +} MT; +typedef MT *LPMT; + +typedef struct _OWNERITEM +{ + HWND hwnd; + HPS hps; + ULONG fsState; + ULONG fsAttribute; + ULONG fsStateOld; + ULONG fsAttributeOld; + RECTL rclItem; + LONG idItem; + ULONG hItem; +} OWNERITEM; +typedef OWNERITEM *POWNERITEM; + + +#define WinCheckMenuItem(hwndMenu,id,fcheck) \ + ((BOOL)WinSendMsg (hwndMenu, MM_SETITEMATTR, \ + MPFROM2SHORT (id, TRUE), \ + MPFROM2SHORT (MIA_CHECKED, \ + ((USHORT)(fcheck) ? MIA_CHECKED : 0)))) + +#define WinEnableMenuItem(hwndMenu,id,fEnable) \ + ((BOOL)WinSendMsg (hwndMenu, MM_SETITEMATTR, MPFROM2SHORT (id, TRUE), \ + MPFROM2SHORT (MIA_DISABLED, \ + ((USHORT)(fEnable) ? 0 : MIA_DISABLED)))) + +#define WinIsMenuItemChecked(hwndMenu,id) \ + ((BOOL)WinSendMsg (hwndMenu, MM_QUERYITEMATTR, \ + MPFROM2SHORT (id, TRUE), \ + MPFROMLONG (MIA_CHECKED))) + +#define WinIsMenuItemEnabled(hwndMenu,id) \ + (!(BOOL)WinSendMsg (hwndMenu, MM_QUERYITEMATTR, \ + MPFROM2SHORT (id, TRUE), \ + MPFROMLONG (MIA_DISABLED))) + +#define WinIsMenuItemValid(hwndMenu,id) \ + ((BOOL)WinSendMsg (hwndMenu, MM_ISITEMVALID, \ + MPFROM2SHORT (id, TRUE), MPFROMLONG (FALSE))) + +#define WinSetMenuItemText(hwndMenu,id,psz) \ + ((BOOL)WinSendMsg (hwndMenu, MM_SETITEMTEXT, \ + MPFROMLONG (id), MPFROMP (psz))) + + +HWND WinCreateMenu (HWND hwndParent, CPVOID lpmt); +HWND WinLoadMenu (HWND hwndFrame, HMODULE hmod, ULONG idMenu); +BOOL WinPopupMenu (HWND hwndParent, HWND hwndOwner, HWND hwndMenu, + LONG x, LONG y, LONG idItem, ULONG fs); + +#endif /* INCL_WINMENUS */ + + +#if defined (INCL_WINMESSAGEMGR) + +#define BMSG_POST 0x0000 +#define BMSG_SEND 0x0001 +#define BMSG_POSTQUEUE 0x0002 +#define BMSG_DESCENDANTS 0x0004 +#define BMSG_FRAMEONLY 0x0008 + +#define CVR_ALIGNLEFT 0x0001 +#define CVR_ALIGNBOTTOM 0x0002 +#define CVR_ALIGNRIGHT 0x0004 +#define CVR_ALIGNTOP 0x0008 +#define CVR_REDRAW 0x0010 + +#define HT_NORMAL 0 +#define HT_TRANSPARENT (-1) +#define HT_DISCARD (-2) +#define HT_ERROR (-3) + +#define QS_KEY 0x0001 +#define QS_MOUSEBUTTON 0x0002 +#define QS_MOUSEMOVE 0x0004 +#define QS_MOUSE 0x0006 +#define QS_TIMER 0x0008 +#define QS_PAINT 0x0010 +#define QS_POSTMSG 0x0020 +#define QS_SEM1 0x0040 +#define QS_SEM2 0x0080 +#define QS_SEM3 0x0100 +#define QS_SEM4 0x0200 +#define QS_SENDMSG 0x0400 +#define QS_MSGINPUT 0x0800 + +#define SMIM_ALL 0x0eff +#define SMI_NOINTEREST 0x0001 +#define SMI_INTEREST 0x0002 +#define SMI_RESET 0x0004 +#define SMI_AUTODISPATCH 0x0008 + +#define WPM_TEXT 0x0001 +#define WPM_CTLDATA 0x0002 +#define WPM_PRESPARAMS 0x0004 +#define WPM_CCHTEXT 0x0008 +#define WPM_CBCTLDATA 0x0010 +#define WPM_CBPRESPARAMS 0x0020 + + +typedef struct _WNDPARAMS +{ + ULONG fsStatus; + ULONG cchText; + PSZ pszText; + ULONG cbPresParams; + PVOID pPresParams; + ULONG cbCtlData; + PVOID pCtlData; +} WNDPARAMS; +typedef WNDPARAMS *PWNDPARAMS; + +BOOL WinBroadcastMsg (HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2, ULONG rgf); +BOOL WinInSendMsg (HAB hab); +BOOL WinPostQueueMsg (HMQ hmq, ULONG msg, MPARAM mp1, MPARAM mp2); +BOOL WinQueryMsgPos (HAB hab, PPOINTL pptl); +ULONG WinQueryMsgTime (HAB hab); +ULONG WinQueryQueueStatus (HWND hwndDesktop); +ULONG WinRequestMutexSem (HMTX hmtx, ULONG ulTimeout); +BOOL WinSetClassMsgInterest (HAB hab, PCSZ pszClassName, ULONG msg_class, + LONG control); +BOOL WinSetMsgInterest (HWND hwnd, ULONG msg_class, LONG control); +ULONG WinWaitEventSem (HEV hev, ULONG ulTimeout); +BOOL WinWaitMsg (HAB hab, ULONG msgFirst, ULONG msgLast); +ULONG WinWaitMuxWaitSem (HMUX hmux, ULONG ulTimeout, PULONG pulUser); + +#endif /* INCL_WINMESSAGEMGR */ + + +#if defined (INCL_WINPALETTE) + +LONG WinRealizePalette (HWND hwnd, HPS hps, PULONG pcclr); + +#endif /* INCL_WINPALETTE */ + + +#if defined (INCL_WINPOINTERS) + +#define DP_NORMAL 0x0000 +#define DP_HALFTONED 0x0001 +#define DP_INVERTED 0x0002 +#define DP_MINI 0x0004 + +#define SBMP_OLD_SYSMENU 1 +#define SBMP_OLD_SBUPARROW 2 +#define SBMP_OLD_SBDNARROW 3 +#define SBMP_OLD_SBRGARROW 4 +#define SBMP_OLD_SBLFARROW 5 +#define SBMP_MENUCHECK 6 +#define SBMP_OLD_CHECKBOXES 7 +#define SBMP_BTNCORNERS 8 +#define SBMP_OLD_MINBUTTON 9 +#define SBMP_OLD_MAXBUTTON 10 +#define SBMP_OLD_RESTOREBUTTON 11 +#define SBMP_OLD_CHILDSYSMENU 12 +#define SBMP_DRIVE 15 +#define SBMP_FILE 16 +#define SBMP_FOLDER 17 +#define SBMP_TREEPLUS 18 +#define SBMP_TREEMINUS 19 +#define SBMP_PROGRAM 22 +#define SBMP_MENUATTACHED 23 +#define SBMP_SIZEBOX 24 +#define SBMP_SYSMENU 25 +#define SBMP_MINBUTTON 26 +#define SBMP_MAXBUTTON 27 +#define SBMP_RESTOREBUTTON 28 +#define SBMP_CHILDSYSMENU 29 +#define SBMP_SYSMENUDEP 30 +#define SBMP_MINBUTTONDEP 31 +#define SBMP_MAXBUTTONDEP 32 +#define SBMP_RESTOREBUTTONDEP 33 +#define SBMP_CHILDSYSMENUDEP 34 +#define SBMP_SBUPARROW 35 +#define SBMP_SBDNARROW 36 +#define SBMP_SBLFARROW 37 +#define SBMP_SBRGARROW 38 +#define SBMP_SBUPARROWDEP 39 +#define SBMP_SBDNARROWDEP 40 +#define SBMP_SBLFARROWDEP 41 +#define SBMP_SBRGARROWDEP 42 +#define SBMP_SBUPARROWDIS 43 +#define SBMP_SBDNARROWDIS 44 +#define SBMP_SBLFARROWDIS 45 +#define SBMP_SBRGARROWDIS 46 +#define SBMP_COMBODOWN 47 +#define SBMP_CHECKBOXES 48 +#define SBMP_HIDE 50 +#define SBMP_HIDEDEP 51 +#define SBMP_CLOSE 52 +#define SBMP_CLOSEDEP 53 + +#define SPTR_ARROW 1 +#define SPTR_TEXT 2 +#define SPTR_WAIT 3 +#define SPTR_SIZE 4 +#define SPTR_MOVE 5 +#define SPTR_SIZENWSE 6 +#define SPTR_SIZENESW 7 +#define SPTR_SIZEWE 8 +#define SPTR_SIZENS 9 +#define SPTR_APPICON 10 +#define SPTR_ICONINFORMATION 11 +#define SPTR_ICONQUESTION 12 +#define SPTR_ICONERROR 13 +#define SPTR_ICONWARNING 14 +#define SPTR_ILLEGAL 18 +#define SPTR_FILE 19 +#define SPTR_FOLDER 20 +#define SPTR_MULTFILE 21 +#define SPTR_PROGRAM 22 +#define SPTR_DISPLAY_PTRS 22 + +#define SPTR_PENFIRST 23 +#define SPTR_PENLAST 39 +#define SPTR_CPTR 39 + +#define SPTR_HANDICON SPTR_ICONERROR +#define SPTR_QUESICON SPTR_ICONQUESTION +#define SPTR_BANGICON SPTR_ICONWARNING +#define SPTR_NOTEICON SPTR_ICONINFORMATION + +typedef struct _POINTERINFO +{ + ULONG fPointer; + LONG xHotspot; + LONG yHotspot; + HBITMAP hbmPointer; + HBITMAP hbmColor; + HBITMAP hbmMiniPointer; + HBITMAP hbmMiniColor; +} POINTERINFO; +typedef POINTERINFO *PPOINTERINFO; + + +HPOINTER WinCreatePointer (HWND hwndDesktop, HBITMAP hbmPointer, BOOL fPointer, + LONG xHotspot, LONG yHotspot); +HPOINTER WinCreatePointerIndirect (HWND hwndDesktop, + __const__ POINTERINFO *pptri); +BOOL WinDestroyPointer (HPOINTER hptr); +BOOL WinDrawPointer (HPS hps, LONG x, LONG y, HPOINTER hptr, ULONG fs); +HBITMAP WinGetSysBitmap (HWND hwndDesktop, ULONG ibm); +HPOINTER WinLoadPointer (HWND hwndDesktop, HMODULE hmod, ULONG idres); +BOOL WinLockPointerUpdate (HWND hwndDesktop, HPOINTER hptrNew, + ULONG ulTimeInterval); +BOOL WinQueryPointerPos (HWND hwndDesktop, PPOINTL pptl); +BOOL WinQueryPointerInfo (HPOINTER hptr, PPOINTERINFO pPointerInfo); +HPOINTER WinQuerySysPointer (HWND hwndDesktop, LONG lId, BOOL fCopy); +BOOL WinQuerySysPointerData (HWND hwndDesktop, ULONG ulId, + PICONINFO pIconInfo); +BOOL WinSetPointer (HWND hwndDesktop, HPOINTER hptrNew); +BOOL WinSetPointerOwner (HPOINTER hptr, PID pid, BOOL fDestroy); +BOOL WinSetPointerPos (HWND hwndDesktop, LONG x, LONG y); +BOOL WinSetSysPointerData (HWND hwndDesktop, ULONG ulId, + __const__ ICONINFO *pIconInfo); +BOOL WinShowPointer (HWND hwndDesktop, BOOL fShow); + +#endif /* INCL_WINPOINTERS */ + + +#if defined (INCL_WINRECTANGLES) + +BOOL WinCopyRect (HAB hab, PRECTL prclDst, __const__ RECTL *prclSrc); +BOOL WinEqualRect (HAB hab, __const__ RECTL *prcl1, __const__ RECTL *prcl2); +BOOL WinInflateRect (HAB hab, PRECTL prcl, LONG cx, LONG cy); +BOOL WinIntersectRect (HAB hab, PRECTL prclDst, __const__ RECTL *prclSrc1, + __const__ RECTL *prclSrc2); +BOOL WinIsRectEmpty (HAB hab, __const__ RECTL *prcl); +BOOL WinMakePoints (HAB hab, PPOINTL pwpt, ULONG cwpt); +BOOL WinMakeRect (HAB hab, PRECTL pwrc); +BOOL WinOffsetRect (HAB hab, PRECTL prcl, LONG cx, LONG cy); +BOOL WinPtInRect (HAB hab, __const__ RECTL *prcl, __const__ POINTL *pptl); +BOOL WinSetRect (HAB hab, PRECTL prcl, LONG xLeft, LONG yBottom, LONG xRight, + LONG yTop); +BOOL WinSetRectEmpty (HAB hab, PRECTL prcl); +BOOL WinSubtractRect (HAB hab, PRECTL prclDst, __const__ RECTL *prclSrc1, + __const__ RECTL *prclSrc2); +BOOL WinUnionRect (HAB hab, PRECTL prclDst, __const__ RECTL *prclSrc1, + __const__ RECTL *prclSrc2); + +#endif /* INCL_WINRECTANGLES */ + + +#if defined (INCL_WINSCROLLBARS) + +#define SB_LINEUP 1 +#define SB_LINEDOWN 2 +#define SB_LINELEFT 1 +#define SB_LINERIGHT 2 +#define SB_PAGEUP 3 +#define SB_PAGEDOWN 4 +#define SB_PAGELEFT 3 +#define SB_PAGERIGHT 4 +#define SB_SLIDERTRACK 5 +#define SB_SLIDERPOSITION 6 +#define SB_ENDSCROLL 7 + +#define SBM_SETSCROLLBAR 0x01a0 +#define SBM_SETPOS 0x01a1 +#define SBM_QUERYPOS 0x01a2 +#define SBM_QUERYRANGE 0x01a3 +#define SBM_SETTHUMBSIZE 0x01a6 + +#define SBS_HORZ 0 +#define SBS_VERT 1 +#define SBS_THUMBSIZE 2 +#define SBS_AUTOTRACK 4 +#define SBS_AUTOSIZE 0x2000 + +typedef struct _SBCDATA +{ + USHORT cb; + USHORT sHilite; + SHORT posFirst; + SHORT posLast; + SHORT posThumb; + SHORT cVisible; + SHORT cTotal; +} SBCDATA; +typedef SBCDATA *PSBCDATA; + +#endif /* INCL_WINSCROLLBARS */ + + +#if defined (INCL_WINSTATICS) + +#define SM_SETHANDLE 0x0100 +#define SM_QUERYHANDLE 0x0101 + +#define SS_TEXT 0x0001 +#define SS_GROUPBOX 0x0002 +#define SS_ICON 0x0003 +#define SS_BITMAP 0x0004 +#define SS_FGNDRECT 0x0005 +#define SS_HALFTONERECT 0x0006 +#define SS_BKGNDRECT 0x0007 +#define SS_FGNDFRAME 0x0008 +#define SS_HALFTONEFRAME 0x0009 +#define SS_BKGNDFRAME 0x000a +#define SS_SYSICON 0x000b +#define SS_AUTOSIZE 0x0040 + +#define WM_MSGBOXINIT 0x010e +#define WM_MSGBOXDISMISS 0x010f + +#endif /* INCL_WINSTATICS */ + + +#if defined (INCL_WINSYS) + +#define CCF_GLOBAL 0x0000 +#define CCF_APPLICATION 0x0001 +#define CCF_COUNTCOLORS 0x0010 +#define CCF_ALLCOLORS 0x0020 + +#define CCI_FOREGROUND 1 +#define CCI_FOREGROUNDREADONLY 2 +#define CCI_BACKGROUND 3 +#define CCI_BACKGROUNDDIALOG 4 +#define CCI_DISABLEDFOREGROUND 5 +#define CCI_DISABLEDFOREGROUNDREADONLY 6 +#define CCI_DISABLEDBACKGROUND 7 +#define CCI_DISABLEDBACKGROUNDDIALOG 8 +#define CCI_HIGHLIGHTFOREGROUND 9 +#define CCI_HIGHLIGHTBACKGROUND 10 +#define CCI_HIGHLIGHTBACKGROUNDDIALOG 11 +#define CCI_INACTIVEFOREGROUND 12 +#define CCI_INACTIVEFOREGROUNDDIALOG 13 +#define CCI_INACTIVEBACKGROUND 14 +#define CCI_INACTIVEBACKGROUNDTEXT 15 +#define CCI_ACTIVEFOREGROUND 16 +#define CCI_ACTIVEFOREGROUNDDIALOG 17 +#define CCI_ACTIVEBACKGROUND 18 +#define CCI_ACTIVEBACKGROUNDTEXT 19 +#define CCI_PAGEBACKGROUND 20 +#define CCI_PAGEFOREGROUND 21 +#define CCI_FIELDBACKGROUND 22 +#define CCI_BORDER 23 +#define CCI_BORDERLIGHT 24 +#define CCI_BORDERDARK 25 +#define CCI_BORDER2 26 +#define CCI_BORDER2LIGHT 27 +#define CCI_BORDER2DARK 28 +#define CCI_BORDERDEFAULT 29 +#define CCI_BUTTONBACKGROUND 30 +#define CCI_BUTTONFOREGROUND 31 +#define CCI_BUTTONBORDERLIGHT 32 +#define CCI_BUTTONBORDERDARK 33 +#define CCI_ARROW 34 +#define CCI_DISABLEDARROW 35 +#define CCI_ARROWBORDERLIGHT 36 +#define CCI_ARROWBORDERDARK 37 +#define CCI_CHECKLIGHT 38 +#define CCI_CHECKMIDDLE 39 +#define CCI_CHECKDARK 40 +#define CCI_ICONFOREGROUND 41 +#define CCI_ICONBACKGROUND 42 +#define CCI_ICONBACKGROUNDDESKTOP 43 +#define CCI_ICONHILITEFOREGROUND 44 +#define CCI_ICONHILITEBACKGROUND 45 +#define CCI_MAJORTABFOREGROUND 46 +#define CCI_MAJORTABBACKGROUND 47 +#define CCI_MINORTABFOREGROUND 48 +#define CCI_MINORTABBACKGROUND 49 +#define CCI_MAXINDEX 49 + +#define CCT_STATIC 1 +#define CCT_STATICTEXT 2 +#define CCT_GROUPBOX 3 +#define CCT_PUSHBUTTON 4 +#define CCT_CHECKBOX 5 +#define CCT_RADIOBUTTON 6 +#define CCT_ENTRYFIELD 7 +#define CCT_LISTBOX 8 +#define CCT_COMBOBOX 9 +#define CCT_SCROLLBAR 10 +#define CCT_FRAME 11 +#define CCT_MENU 12 +#define CCT_TITLEBAR 13 +#define CCT_SPINBUTTON 14 +#define CCT_SLIDER 15 +#define CCT_CIRCULARSLIDER 16 +#define CCT_VALUESET 17 +#define CCT_MLE 18 +#define CCT_CONTAINER 19 +#define CCT_NOTEBOOK 20 +#define CCT_MAXTYPE 20 + +#define CCV_NOTFOUND (-1) +#define CCV_IGNORE (-2) +#define CCV_DEFAULT (-3) + +#define PP_FOREGROUNDCOLOR 1 +#define PP_FOREGROUNDCOLORINDEX 2 +#define PP_BACKGROUNDCOLOR 3 +#define PP_BACKGROUNDCOLORINDEX 4 +#define PP_HILITEFOREGROUNDCOLOR 5 +#define PP_HILITEFOREGROUNDCOLORINDEX 6 +#define PP_HILITEBACKGROUNDCOLOR 7 +#define PP_HILITEBACKGROUNDCOLORINDEX 8 +#define PP_DISABLEDFOREGROUNDCOLOR 9 +#define PP_DISABLEDFOREGROUNDCOLORINDEX 10 +#define PP_DISABLEDBACKGROUNDCOLOR 11 +#define PP_DISABLEDBACKGROUNDCOLORINDEX 12 +#define PP_BORDERCOLOR 13 +#define PP_BORDERCOLORINDEX 14 +#define PP_FONTNAMESIZE 15 +#define PP_FONTHANDLE 16 +#define PP_RESERVED 17 +#define PP_ACTIVECOLOR 18 +#define PP_ACTIVECOLORINDEX 19 +#define PP_INACTIVECOLOR 20 +#define PP_INACTIVECOLORINDEX 21 +#define PP_ACTIVETEXTFGNDCOLOR 22 +#define PP_ACTIVETEXTFGNDCOLORINDEX 23 +#define PP_ACTIVETEXTBGNDCOLOR 24 +#define PP_ACTIVETEXTBGNDCOLORINDEX 25 +#define PP_INACTIVETEXTFGNDCOLOR 26 +#define PP_INACTIVETEXTFGNDCOLORINDEX 27 +#define PP_INACTIVETEXTBGNDCOLOR 28 +#define PP_INACTIVETEXTBGNDCOLORINDEX 29 +#define PP_SHADOW 30 +#define PP_MENUFOREGROUNDCOLOR 31 +#define PP_MENUFOREGROUNDCOLORINDEX 32 +#define PP_MENUBACKGROUNDCOLOR 33 +#define PP_MENUBACKGROUNDCOLORINDEX 34 +#define PP_MENUHILITEFGNDCOLOR 35 +#define PP_MENUHILITEFGNDCOLORINDEX 36 +#define PP_MENUHILITEBGNDCOLOR 37 +#define PP_MENUHILITEBGNDCOLORINDEX 38 +#define PP_MENUDISABLEDFGNDCOLOR 39 +#define PP_MENUDISABLEDFGNDCOLORINDEX 40 +#define PP_MENUDISABLEDBGNDCOLOR 41 +#define PP_MENUDISABLEDBGNDCOLORINDEX 42 +#define PP_SHADOWTEXTCOLOR 43 +#define PP_SHADOWTEXTCOLORINDEX 44 +#define PP_SHADOWHILITEFGNDCOLOR 45 +#define PP_SHADOWHILITEFGNDCOLORINDEX 46 +#define PP_SHADOWHILITEBGNDCOLOR 47 +#define PP_SHADOWHILITEBGNDCOLORINDEX 48 +#define PP_ICONTEXTBACKGROUNDCOLOR 49 +#define PP_ICONTEXTBACKGROUNDCOLORINDEX 50 +#define PP_BORDERLIGHTCOLOR 51 +#define PP_BORDERDARKCOLOR 52 +#define PP_BORDER2COLOR 53 +#define PP_BORDER2LIGHTCOLOR 54 +#define PP_BORDER2DARKCOLOR 55 +#define PP_BORDERDEFAULTCOLOR 56 +#define PP_FIELDBACKGROUNDCOLOR 57 +#define PP_BUTTONBACKGROUNDCOLOR 58 +#define PP_BUTTONBORDERLIGHTCOLOR 59 +#define PP_BUTTONBORDERDARKCOLOR 60 +#define PP_ARROWCOLOR 61 +#define PP_ARROWBORDERLIGHTCOLOR 62 +#define PP_ARROWBORDERDARKCOLOR 63 +#define PP_ARROWDISABLEDCOLOR 64 +#define PP_CHECKLIGHTCOLOR 65 +#define PP_CHECKMIDDLECOLOR 66 +#define PP_CHECKDARKCOLOR 67 +#define PP_PAGEFOREGROUNDCOLOR 68 +#define PP_PAGEBACKGROUNDCOLOR 69 +#define PP_MAJORTABFOREGROUNDCOLOR 70 +#define PP_MAJORTABBACKGROUNDCOLOR 71 +#define PP_MINORTABFOREGROUNDCOLOR 72 +#define PP_MINORTABBACKGROUNDCOLOR 73 + +#define PP_BIDI_FIRST 0x0100 +#define PP_BIDI_LAST 0x012f +#define PP_USER 0x8000 + +#define QPF_NOINHERIT 0x0001 +#define QPF_ID1COLORINDEX 0x0002 +#define QPF_ID2COLORINDEX 0x0004 +#define QPF_PURERGBCOLOR 0x0008 +#define QPF_VALIDFLAGS 0x000f + +#define SV_SWAPBUTTON 0 +#define SV_DBLCLKTIME 1 +#define SV_CXDBLCLK 2 +#define SV_CYDBLCLK 3 +#define SV_CXSIZEBORDER 4 +#define SV_CYSIZEBORDER 5 +#define SV_ALARM 6 +#define SV_CURSORRATE 9 +#define SV_FIRSTSCROLLRATE 10 +#define SV_SCROLLRATE 11 +#define SV_NUMBEREDLISTS 12 +#define SV_WARNINGFREQ 13 +#define SV_NOTEFREQ 14 +#define SV_ERRORFREQ 15 +#define SV_WARNINGDURATION 16 +#define SV_NOTEDURATION 17 +#define SV_ERRORDURATION 18 +#define SV_CXSCREEN 20 +#define SV_CYSCREEN 21 +#define SV_CXVSCROLL 22 +#define SV_CYHSCROLL 23 +#define SV_CYVSCROLLARROW 24 +#define SV_CXHSCROLLARROW 25 +#define SV_CXBORDER 26 +#define SV_CYBORDER 27 +#define SV_CXDLGFRAME 28 +#define SV_CYDLGFRAME 29 +#define SV_CYTITLEBAR 30 +#define SV_CYVSLIDER 31 +#define SV_CXHSLIDER 32 +#define SV_CXMINMAXBUTTON 33 +#define SV_CYMINMAXBUTTON 34 +#define SV_CYMENU 35 +#define SV_CXFULLSCREEN 36 +#define SV_CYFULLSCREEN 37 +#define SV_CXICON 38 +#define SV_CYICON 39 +#define SV_CXPOINTER 40 +#define SV_CYPOINTER 41 +#define SV_DEBUG 42 +#define SV_CMOUSEBUTTONS 43 +#define SV_CPOINTERBUTTONS 43 +#define SV_POINTERLEVEL 44 +#define SV_CURSORLEVEL 45 +#define SV_TRACKRECTLEVEL 46 +#define SV_CTIMERS 47 +#define SV_MOUSEPRESENT 48 +#define SV_CXBYTEALIGN 49 +#define SV_CXALIGN 49 +#define SV_CYBYTEALIGN 50 +#define SV_CYALIGN 50 +#define SV_DESKTOPWORKAREAYTOP 51 +#define SV_DESKTOPWORKAREAYBOTTOM 52 +#define SV_DESKTOPWORKAREAXRIGHT 53 +#define SV_DESKTOPWORKAREAXLEFT 54 +#define SV_NOTRESERVED 56 +#define SV_EXTRAKEYBEEP 57 +#define SV_SETLIGHTS 58 +#define SV_INSERTMODE 59 +#define SV_MENUROLLDOWNDELAY 64 +#define SV_MENUROLLUPDELAY 65 +#define SV_ALTMNEMONIC 66 +#define SV_TASKLISTMOUSEACCESS 67 +#define SV_CXICONTEXTWIDTH 68 +#define SV_CICONTEXTLINES 69 +#define SV_CHORDTIME 70 +#define SV_CXCHORD 71 +#define SV_CYCHORD 72 +#define SV_CXMOTIONSTART 73 +#define SV_CYMOTIONSTART 74 +#define SV_BEGINDRAG 75 +#define SV_ENDDRAG 76 +#define SV_SINGLESELECT 77 +#define SV_OPEN 78 +#define SV_CONTEXTMENU 79 +#define SV_CONTEXTHELP 80 +#define SV_TEXTEDIT 81 +#define SV_BEGINSELECT 82 +#define SV_ENDSELECT 83 +#define SV_BEGINDRAGKB 84 +#define SV_ENDDRAGKB 85 +#define SV_SELECTKB 86 +#define SV_OPENKB 87 +#define SV_CONTEXTMENUKB 88 +#define SV_CONTEXTHELPKB 89 +#define SV_TEXTEDITKB 90 +#define SV_BEGINSELECTKB 91 +#define SV_ENDSELECTKB 92 +#define SV_ANIMATION 93 +#define SV_ANIMATIONSPEED 94 +#define SV_MONOICONS 95 +#define SV_KBDALTERED 96 +#define SV_PRINTSCREEN 97 +#define SV_LOCKSTARTINPUT 98 +#define SV_DYNAMICDRAG 99 +#define SV_CSYSVALUES 100 + +#define SYSCLR_SHADOWHILITEBGND (-50) +#define SYSCLR_SHADOWHILITEFGND (-49) +#define SYSCLR_SHADOWTEXT (-48) +#define SYSCLR_ENTRYFIELD (-47) +#define SYSCLR_MENUDISABLEDTEXT (-46) +#define SYSCLR_MENUHILITE (-45) +#define SYSCLR_MENUHILITEBGND (-44) +#define SYSCLR_PAGEBACKGROUND (-43) +#define SYSCLR_FIELDBACKGROUND (-42) +#define SYSCLR_BUTTONLIGHT (-41) +#define SYSCLR_BUTTONMIDDLE (-40) +#define SYSCLR_BUTTONDARK (-39) +#define SYSCLR_BUTTONDEFAULT (-38) +#define SYSCLR_TITLEBOTTOM (-37) +#define SYSCLR_SHADOW (-36) +#define SYSCLR_ICONTEXT (-35) +#define SYSCLR_DIALOGBACKGROUND (-34) +#define SYSCLR_HILITEFOREGROUND (-33) +#define SYSCLR_HILITEBACKGROUND (-32) +#define SYSCLR_INACTIVETITLETEXTBGND (-31) +#define SYSCLR_ACTIVETITLETEXTBGND (-30) +#define SYSCLR_INACTIVETITLETEXT (-29) +#define SYSCLR_ACTIVETITLETEXT (-28) +#define SYSCLR_OUTPUTTEXT (-27) +#define SYSCLR_WINDOWSTATICTEXT (-26) +#define SYSCLR_SCROLLBAR (-25) +#define SYSCLR_BACKGROUND (-24) +#define SYSCLR_ACTIVETITLE (-23) +#define SYSCLR_INACTIVETITLE (-22) +#define SYSCLR_MENU (-21) +#define SYSCLR_WINDOW (-20) +#define SYSCLR_WINDOWFRAME (-19) +#define SYSCLR_MENUTEXT (-18) +#define SYSCLR_WINDOWTEXT (-17) +#define SYSCLR_TITLETEXT (-16) +#define SYSCLR_ACTIVEBORDER (-15) +#define SYSCLR_INACTIVEBORDER (-14) +#define SYSCLR_APPWORKSPACE (-13) +#define SYSCLR_HELPBACKGROUND (-12) +#define SYSCLR_HELPTEXT (-11) +#define SYSCLR_HELPHILITE (-10) + +#define SYSCLR_CSYSCOLORS 41 + +#define WM_CTLCOLORCHANGE 0x0129 +#define WM_QUERYCTLTYPE 0x0130 /*0x012a?*/ + + +typedef struct _CTLCOLOR +{ + LONG clrIndex; + LONG clrValue; +} CTLCOLOR; +typedef CTLCOLOR *PCTLCOLOR; + +typedef struct _PARAM +{ + ULONG id; + ULONG cb; + BYTE ab[1]; +} PARAM; +typedef PARAM *NPPARAM; +typedef PARAM *PPARAM; + +typedef struct _PRESPARAMS +{ + ULONG cb; + PARAM aparam[1]; +} PRESPARAMS; +typedef PRESPARAMS *NPPRESPARAMS; +typedef PRESPARAMS *PPRESPARAMS; + + +LONG WinQueryControlColors (HWND hwnd, LONG clrType, ULONG flCtlColor, + ULONG cCtlColor, PCTLCOLOR pCtlColor); +ULONG WinQueryPresParam (HWND hwnd, ULONG id1, ULONG id2, PULONG pulId, + ULONG cbBuf, PVOID pbBuf, ULONG fs); +LONG WinQuerySysColor (HWND hwndDesktop, LONG clr, LONG lReserved); +LONG WinQuerySysValue (HWND hwndDesktop, LONG iSysValue); +BOOL WinRemovePresParam (HWND hwnd, ULONG id); +LONG WinSetControlColors (HWND hwnd, LONG clrType, ULONG flCtlColor, + ULONG cCtlColor, PCTLCOLOR pCtlColor); +BOOL WinSetPresParam (HWND hwnd, ULONG id, ULONG cbParam, PVOID pbParam); +BOOL WinSetSysColors (HWND hwndDesktop, ULONG flOptions, ULONG flFormat, + LONG clrFirst, ULONG cclr, __const__ LONG *pclr); +BOOL WinSetSysValue (HWND hwndDesktop, LONG iSysValue, LONG lValue); + +#endif /* INCL_WINSYS */ + + +#if defined (INCL_WINTHUNKAPI) + +PFN WinQueryClassThunkProc (PCSZ pszClassname); +LONG WinQueryWindowModel (HWND hwnd); +PFN WinQueryWindowThunkProc (HWND hwnd); +BOOL WinSetClassThunkProc (PCSZ pszClassname, PFN pfnThunkProc); +BOOL WinSetWindowThunkProc (HWND hwnd, PFN pfnThunkProc); + +#endif /* INCL_WINTHUNKAPI */ + + +#if defined (INCL_WINTIMER) + +#define TID_CURSOR 0xffff +#define TID_SCROLL 0xfffe +#define TID_FLASHWINDOW 0xfffd +#define TID_USERMAX 0x7fff + +ULONG WinGetCurrentTime (HAB hab); +ULONG WinStartTimer (HAB hab, HWND hwnd, ULONG idTimer, ULONG dtTimeout); +BOOL WinStopTimer (HAB hab, HWND hwnd, ULONG idTimer); + +#endif /* INCL_WINTIMER */ + +#if defined (INCL_WINTRACKRECT) + +#define TF_LEFT 0x0001 +#define TF_TOP 0x0002 +#define TF_RIGHT 0x0004 +#define TF_BOTTOM 0x0008 +#define TF_SETPOINTERPOS 0x0010 +#define TF_GRID 0x0020 +#define TF_STANDARD 0x0040 +#define TF_ALLINBOUNDARY 0x0080 +#define TF_VALIDATETRACKRECT 0x0100 +#define TF_PARTINBOUNDARY 0x0200 + +#define TF_MOVE 0x000f + +typedef struct _TRACKINFO +{ + LONG cxBorder; + LONG cyBorder; + LONG cxGrid; + LONG cyGrid; + LONG cxKeyboard; + LONG cyKeyboard; + RECTL rclTrack; + RECTL rclBoundary; + POINTL ptlMinTrackSize; + POINTL ptlMaxTrackSize; + ULONG fs; +} TRACKINFO; +typedef TRACKINFO *PTRACKINFO; + +BOOL WinShowTrackRect (HWND hwnd, BOOL fShow); +BOOL WinTrackRect (HWND hwnd, HPS hps, PTRACKINFO pti); + +#endif /* INCL_WINTRACKRECT */ + +/* -------------------- MULTIPLE LINE ENTRIES ----------------------------- */ + +#if defined (INCL_WINMLE) + +#define MLS_WORDWRAP 0x0001 +#define MLS_BORDER 0x0002 +#define MLS_VSCROLL 0x0004 +#define MLS_HSCROLL 0x0008 +#define MLS_READONLY 0x0010 +#define MLS_IGNORETAB 0x0020 +#define MLS_DISABLEUNDO 0x0040 + +#define MLFFMTRECT_FORMATRECT 0x0007 +#define MLFFMTRECT_LIMITHORZ 0x0001 +#define MLFFMTRECT_LIMITVERT 0x0002 +#define MLFFMTRECT_MATCHWINDOW 0x0004 + +#define MLFIE_CFTEXT 0 +#define MLFIE_NOTRANS 1 +#define MLFIE_WINFMT 2 +#define MLFIE_RTF 3 + +#define MLFEFR_RESIZE 0x0001 +#define MLFEFR_TABSTOP 0x0002 +#define MLFEFR_FONT 0x0004 +#define MLFEFR_TEXT 0x0008 +#define MLFEFR_WORDWRAP 0x0010 +#define MLFETL_TEXTBYTES 0x0020 + +#define MLFMARGIN_LEFT 0x0001 +#define MLFMARGIN_BOTTOM 0x0002 +#define MLFMARGIN_RIGHT 0x0003 +#define MLFMARGIN_TOP 0x0004 + +#define MLFQS_MINMAXSEL 0 +#define MLFQS_MINSEL 1 +#define MLFQS_MAXSEL 2 +#define MLFQS_ANCHORSEL 3 +#define MLFQS_CURSORSEL 4 + +#define MLFCLPBD_TOOMUCHTEXT 0x0001 +#define MLFCLPBD_ERROR 0x0002 + +#define MLFSEARCH_CASESENSITIVE 0x0001 +#define MLFSEARCH_SELECTMATCH 0x0002 +#define MLFSEARCH_CHANGEALL 0x0004 + +#define MLM_SETTEXTLIMIT 0x01b0 +#define MLM_QUERYTEXTLIMIT 0x01b1 +#define MLM_SETFORMATRECT 0x01b2 +#define MLM_QUERYFORMATRECT 0x01b3 +#define MLM_SETWRAP 0x01b4 +#define MLM_QUERYWRAP 0x01b5 +#define MLM_SETTABSTOP 0x01b6 +#define MLM_QUERYTABSTOP 0x01b7 +#define MLM_SETREADONLY 0x01b8 +#define MLM_QUERYREADONLY 0x01b9 + +#define MLM_QUERYCHANGED 0x01ba +#define MLM_SETCHANGED 0x01bb +#define MLM_QUERYLINECOUNT 0x01bc +#define MLM_CHARFROMLINE 0x01bd +#define MLM_LINEFROMCHAR 0x01be +#define MLM_QUERYLINELENGTH 0x01bf +#define MLM_QUERYTEXTLENGTH 0x01c0 + +#define MLM_FORMAT 0x01c1 +#define MLM_SETIMPORTEXPORT 0x01c2 +#define MLM_IMPORT 0x01c3 +#define MLM_EXPORT 0x01c4 +#define MLM_DELETE 0x01c6 +#define MLM_QUERYFORMATLINELENGTH 0x01c7 +#define MLM_QUERYFORMATTEXTLENGTH 0x01c8 +#define MLM_INSERT 0x01c9 + +#define MLM_SETSEL 0x01ca +#define MLM_QUERYSEL 0x01cb +#define MLM_QUERYSELTEXT 0x01cc + +#define MLM_QUERYUNDO 0x01cd +#define MLM_UNDO 0x01ce +#define MLM_RESETUNDO 0x01cf + +#define MLM_QUERYFONT 0x01d0 +#define MLM_SETFONT 0x01d1 +#define MLM_SETTEXTCOLOR 0x01d2 +#define MLM_QUERYTEXTCOLOR 0x01d3 +#define MLM_SETBACKCOLOR 0x01d4 +#define MLM_QUERYBACKCOLOR 0x01d5 + +#define MLM_QUERYFIRSTCHAR 0x01d6 +#define MLM_SETFIRSTCHAR 0x01d7 + +#define MLM_CUT 0x01d8 +#define MLM_COPY 0x01d9 +#define MLM_PASTE 0x01da +#define MLM_CLEAR 0x01db + +#define MLM_ENABLEREFRESH 0x01dc +#define MLM_DISABLEREFRESH 0x01dd + +#define MLM_SEARCH 0x01de +#define MLM_QUERYIMPORTEXPORT 0x01df + +#define MLN_OVERFLOW 0x0001 +#define MLN_PIXHORZOVERFLOW 0x0002 +#define MLN_PIXVERTOVERFLOW 0x0003 +#define MLN_TEXTOVERFLOW 0x0004 +#define MLN_VSCROLL 0x0005 +#define MLN_HSCROLL 0x0006 +#define MLN_CHANGE 0x0007 +#define MLN_SETFOCUS 0x0008 +#define MLN_KILLFOCUS 0x0009 +#define MLN_MARGIN 0x000a +#define MLN_SEARCHPAUSE 0x000b +#define MLN_MEMERROR 0x000c +#define MLN_UNDOOVERFLOW 0x000d +#define MLN_CLPBDFAIL 0x000f + + +typedef LONG IPT; +typedef IPT *PIPT; +typedef LONG PIX; +typedef ULONG LINE; + + +typedef struct _FORMATRECT /* Note 1 */ +{ + LONG cxFormat; + LONG cyFormat; +} MLEFORMATRECT; +typedef MLEFORMATRECT *PFORMATRECT; + +typedef struct _MLECTLDATA +{ + USHORT cbCtlData; + USHORT afIEFormat; + ULONG cchText; + IPT iptAnchor; + IPT iptCursor; + LONG cxFormat; + LONG cyFormat; + ULONG afFormatFlags; + PVOID pHWXCtlData; +} MLECTLDATA; +typedef MLECTLDATA *PMLECTLDATA; + +typedef struct _MLEOVERFLOW +{ + ULONG afErrInd; + LONG nBytesOver; + LONG pixHorzOver; + LONG pixVertOver; +} MLEOVERFLOW; +typedef MLEOVERFLOW *POVERFLOW; + +typedef struct _MLEMARGSTRUCT +{ + USHORT afMargins; + USHORT usMouMsg; + IPT iptNear; +} MLEMARGSTRUCT; +typedef MLEMARGSTRUCT *PMARGSTRUCT; + +typedef struct _SEARCH /* Note 1 */ +{ + USHORT cb; + USHORT _pad; + PCHAR pchFind; + PCHAR pchReplace; + SHORT cchFind; + SHORT cchReplace; + IPT iptStart; + IPT iptStop; + USHORT cchFound; +} MLE_SEARCHDATA; +typedef MLE_SEARCHDATA *PMLE_SEARCHDATA; + +#endif /* INCL_WINMLE */ + +/* --------------- GRAPHICS PROGRAMMING INTERFACE ------------------------- */ + +#define GPI_ERROR 0 +#define GPI_OK 1 +#define GPI_ALTERROR (-1) + +#define HRGN_ERROR ((HRGN)(-1)) + +#define CLR_ERROR (-255) +#define CLR_NOINDEX (-254) +#define CLR_FALSE (-5) +#define CLR_TRUE (-4) +#define CLR_DEFAULT (-3) +#define CLR_WHITE (-2) +#define CLR_BLACK (-1) +#define CLR_BACKGROUND 0 +#define CLR_BLUE 1 +#define CLR_RED 2 +#define CLR_PINK 3 +#define CLR_GREEN 4 +#define CLR_CYAN 5 +#define CLR_YELLOW 6 +#define CLR_NEUTRAL 7 +#define CLR_DARKGRAY 8 +#define CLR_DARKBLUE 9 +#define CLR_DARKRED 10 +#define CLR_DARKPINK 11 +#define CLR_DARKGREEN 12 +#define CLR_DARKCYAN 13 +#define CLR_BROWN 14 +#define CLR_PALEGRAY 15 + +#define RGB_ERROR (-255) +#define RGB_BLACK 0x00000000 +#define RGB_BLUE 0x000000ff +#define RGB_GREEN 0x0000ff00 +#define RGB_CYAN 0x0000ffff +#define RGB_RED 0x00ff0000 +#define RGB_PINK 0x00ff00ff +#define RGB_YELLOW 0x00ffff00 +#define RGB_WHITE 0x00ffffff + +#define PRIM_LINE 1 +#define PRIM_CHAR 2 +#define PRIM_MARKER 3 +#define PRIM_AREA 4 +#define PRIM_IMAGE 5 + +#define AM_ERROR (-1) +#define AM_PRESERVE 0 +#define AM_NOPRESERVE 1 + +#define FM_ERROR (-1) +#define FM_DEFAULT 0 +#define FM_OR 1 +#define FM_OVERPAINT 2 +#define FM_LEAVEALONE 5 + +#define FM_XOR 4 +#define FM_AND 6 +#define FM_SUBTRACT 7 +#define FM_MASKSRCNOT 8 +#define FM_ZERO 9 +#define FM_NOTMERGESRC 10 +#define FM_NOTXORSRC 11 +#define FM_INVERT 12 +#define FM_MERGESRCNOT 13 +#define FM_NOTCOPYSRC 14 +#define FM_MERGENOTSRC 15 +#define FM_NOTMASKSRC 16 +#define FM_ONE 17 + +#define BM_ERROR (-1) +#define BM_DEFAULT 0 +#define BM_OR 1 +#define BM_OVERPAINT 2 +#define BM_LEAVEALONE 5 + +#define BM_XOR 4 +#define BM_AND 6 +#define BM_SUBTRACT 7 +#define BM_MASKSRCNOT 8 +#define BM_ZERO 9 +#define BM_NOTMERGESRC 10 +#define BM_NOTXORSRC 11 +#define BM_INVERT 12 +#define BM_MERGESRCNOT 13 +#define BM_NOTCOPYSRC 14 +#define BM_MERGENOTSRC 15 +#define BM_NOTMASKSRC 16 +#define BM_ONE 17 +#define BM_SRCTRANSPARENT 18 +#define BM_DESTTRANSPARENT 19 + +#define LINETYPE_ERROR (-1) +#define LINETYPE_DEFAULT 0 +#define LINETYPE_DOT 1 +#define LINETYPE_SHORTDASH 2 +#define LINETYPE_DASHDOT 3 +#define LINETYPE_DOUBLEDOT 4 +#define LINETYPE_LONGDASH 5 +#define LINETYPE_DASHDOUBLEDOT 6 +#define LINETYPE_SOLID 7 +#define LINETYPE_INVISIBLE 8 +#define LINETYPE_ALTERNATE 9 + +#define LINEWIDTH_ERROR (-1) +#define LINEWIDTH_DEFAULT 0L +#define LINEWIDTH_NORMAL 0x00010000 +#define LINEWIDTH_THICK 0x00020000 + +#define LINEWIDTHGEOM_ERROR (-1) + +#define LINEEND_ERROR (-1) +#define LINEEND_DEFAULT 0 +#define LINEEND_FLAT 1 +#define LINEEND_SQUARE 2 +#define LINEEND_ROUND 3 + +#define LINEJOIN_ERROR (-1) +#define LINEJOIN_DEFAULT 0 +#define LINEJOIN_BEVEL 1 +#define LINEJOIN_ROUND 2 +#define LINEJOIN_MITRE 3 + +#define CHDIRN_ERROR (-1) +#define CHDIRN_DEFAULT 0 +#define CHDIRN_LEFTRIGHT 1 +#define CHDIRN_TOPBOTTOM 2 +#define CHDIRN_RIGHTLEFT 3 +#define CHDIRN_BOTTOMTOP 4 + +#define TA_NORMAL_HORIZ 0x0001 +#define TA_LEFT 0x0002 +#define TA_CENTER 0x0003 +#define TA_RIGHT 0x0004 +#define TA_STANDARD_HORIZ 0x0005 +#define TA_NORMAL_VERT 0x0100 +#define TA_TOP 0x0200 +#define TA_HALF 0x0300 +#define TA_BASE 0x0400 +#define TA_BOTTOM 0x0500 +#define TA_STANDARD_VERT 0x0600 + +#define CM_ERROR (-1) +#define CM_DEFAULT 0 +#define CM_MODE1 1 +#define CM_MODE2 2 +#define CM_MODE3 3 + +#define MARKSYM_ERROR (-1) +#define MARKSYM_DEFAULT 0 +#define MARKSYM_CROSS 1 +#define MARKSYM_PLUS 2 +#define MARKSYM_DIAMOND 3 +#define MARKSYM_SQUARE 4 +#define MARKSYM_SIXPOINTSTAR 5 +#define MARKSYM_EIGHTPOINTSTAR 6 +#define MARKSYM_SOLIDDIAMOND 7 +#define MARKSYM_SOLIDSQUARE 8 +#define MARKSYM_DOT 9 +#define MARKSYM_SMALLCIRCLE 10 +#define MARKSYM_BLANK 64 + +#define TXTBOX_TOPLEFT 0 +#define TXTBOX_BOTTOMLEFT 1 +#define TXTBOX_TOPRIGHT 2 +#define TXTBOX_BOTTOMRIGHT 3 +#define TXTBOX_CONCAT 4 +#define TXTBOX_COUNT 5 + +#define PVIS_ERROR 0 +#define PVIS_INVISIBLE 1 +#define PVIS_VISIBLE 2 + +#define RVIS_ERROR 0 +#define RVIS_INVISIBLE 1 +#define RVIS_PARTIAL 2 +#define RVIS_VISIBLE 3 + +#define FONT_DEFAULT 1 +#define FONT_MATCH 2 + +#define LCIDT_FONT 6 +#define LCIDT_BITMAP 7 + +#define LCID_ALL (-1) + +#define CHS_OPAQUE 0x0001 +#define CHS_VECTOR 0x0002 +#define CHS_LEAVEPOS 0x0008 +#define CHS_CLIP 0x0010 +#define CHS_UNDERSCORE 0x0200 +#define CHS_STRIKEOUT 0x0400 + +#define FWEIGHT_DONT_CARE 0 +#define FWEIGHT_ULTRA_LIGHT 1 +#define FWEIGHT_EXTRA_LIGHT 2 +#define FWEIGHT_LIGHT 3 +#define FWEIGHT_SEMI_LIGHT 4 +#define FWEIGHT_NORMAL 5 +#define FWEIGHT_SEMI_BOLD 6 +#define FWEIGHT_BOLD 7 +#define FWEIGHT_EXTRA_BOLD 8 +#define FWEIGHT_ULTRA_BOLD 9 + +#define FWIDTH_DONT_CARE 0 +#define FWIDTH_ULTRA_CONDENSED 1 +#define FWIDTH_EXTRA_CONDENSED 2 +#define FWIDTH_CONDENSED 3 +#define FWIDTH_SEMI_CONDENSED 4 +#define FWIDTH_NORMAL 5 +#define FWIDTH_SEMI_EXPANDED 6 +#define FWIDTH_EXPANDED 7 +#define FWIDTH_EXTRA_EXPANDED 8 +#define FWIDTH_ULTRA_EXPANDED 9 + +#define FTYPE_ITALIC 0x0001 +#define FTYPE_ITALIC_DONT_CARE 0x0002 +#define FTYPE_OBLIQUE 0x0004 +#define FTYPE_OBLIQUE_DONT_CARE 0x0008 +#define FTYPE_ROUNDED 0x0010 +#define FTYPE_ROUNDED_DONT_CARE 0x0020 + +#define QFA_PUBLIC 1 +#define QFA_PRIVATE 2 +#define QFA_ERROR GPI_ALTERROR + +#define QF_PUBLIC 0x0001 +#define QF_PRIVATE 0x0002 +#define QF_NO_GENERIC 0x0004 +#define QF_NO_DEVICE 0x0008 + +#define QCD_LCT_FORMAT 0 +#define QCD_LCT_LOINDEX 1 +#define QCD_LCT_HIINDEX 2 +#define QCD_LCT_OPTIONS 3 + +#define QLCT_ERROR (-1) +#define QLCT_RGB (-2) + +#define QLCT_NOTLOADED (-1) + +#define PAL_ERROR (-1) + +#define PC_RESERVED 0x01 +#define PC_EXPLICIT 0x02 +#define PC_NOCOLLAPSE 0x04 + +#define SCP_ALTERNATE 0 +#define SCP_WINDING 2 +#define SCP_AND 4 +#define SCP_RESET 0 +#define SCP_INCL 0 +#define SCP_EXCL 8 + +#define MPATH_STROKE 6 + +#define FPATH_ALTERNATE 0 +#define FPATH_WINDING 2 +#define FPATH_INCL 0 +#define FPATH_EXCL 8 + +#define CVTC_WORLD 1 +#define CVTC_MODEL 2 +#define CVTC_DEFAULTPAGE 3 +#define CVTC_PAGE 4 +#define CVTC_DEVICE 5 + +#define TRANSFORM_REPLACE 0 +#define TRANSFORM_ADD 1 +#define TRANSFORM_PREEMPT 2 + +#define SEGEM_ERROR 0 +#define SEGEM_INSERT 1 +#define SEGEM_REPLACE 2 + +#define POLYGON_NOBOUNDARY 0x0000 +#define POLYGON_BOUNDARY 0x0001 + +#define POLYGON_ALTERNATE 0x0000 +#define POLYGON_WINDING 0x0002 + +#define POLYGON_INCL 0x0000 +#define POLYGON_EXCL 0x0008 + +#define POLYGON_FILL 0x0000 +#define POLYGON_NOFILL 0x0010 + +#define LCOL_RESET 0x0001 +#define LCOL_REALIZABLE 0x0002 +#define LCOL_PURECOLOR 0x0004 +#define LCOL_OVERRIDE_DEFAULT_COLORS 0x0008 +#define LCOL_REALIZED 0x0010 + +#define LCOLF_DEFAULT 0 +#define LCOLF_INDRGB 1 +#define LCOLF_CONSECRGB 2 +#define LCOLF_RGB 3 +#define LCOLF_PALETTE 4 + +#define LCOLOPT_REALIZED 0x0001 +#define LCOLOPT_INDEX 0x0002 + +#define BA_NOBOUNDARY 0 +#define BA_BOUNDARY 0x0001 + +#define BA_ALTERNATE 0 +#define BA_WINDING 0x0002 + +#define BA_INCL 0 +#define BA_EXCL 8 + +#define DRO_FILL 1 +#define DRO_OUTLINE 2 +#define DRO_OUTLINEFILL 3 + +#define PATSYM_ERROR (-1) +#define PATSYM_DEFAULT 0 +#define PATSYM_DENSE1 1 +#define PATSYM_DENSE2 2 +#define PATSYM_DENSE3 3 +#define PATSYM_DENSE4 4 +#define PATSYM_DENSE5 5 +#define PATSYM_DENSE6 6 +#define PATSYM_DENSE7 7 +#define PATSYM_DENSE8 8 +#define PATSYM_VERT 9 +#define PATSYM_HORIZ 10 +#define PATSYM_DIAG1 11 +#define PATSYM_DIAG2 12 +#define PATSYM_DIAG3 13 +#define PATSYM_DIAG4 14 +#define PATSYM_NOSHADE 15 +#define PATSYM_SOLID 16 +#define PATSYM_HALFTONE 17 +#define PATSYM_HATCH 18 +#define PATSYM_DIAGHATCH 19 +#define PATSYM_BLANK 64 + +#define LCID_ERROR (-1) +#define LCID_DEFAULT 0 + +#define CRGN_OR 1 +#define CRGN_COPY 2 +#define CRGN_XOR 4 +#define CRGN_AND 6 +#define CRGN_DIFF 7 + +#define RGN_ERROR 0 +#define RGN_NULL 1 +#define RGN_RECT 2 +#define RGN_COMPLEX 3 + +#define PRGN_ERROR 0 +#define PRGN_OUTSIDE 1 +#define PRGN_INSIDE 2 + +#define RRGN_ERROR 0 +#define RRGN_OUTSIDE 1 +#define RRGN_PARTIAL 2 +#define RRGN_INSIDE 3 + +#define EQRGN_ERROR 0 +#define EQRGN_NOTEQUAL 1 +#define EQRGN_EQUAL 2 + +#define RECTDIR_LFRT_TOPBOT 1 +#define RECTDIR_RTLF_TOPBOT 2 +#define RECTDIR_LFRT_BOTTOP 3 +#define RECTDIR_RTLF_BOTTOP 4 + +#define PMF_SEGBASE 0 +#define PMF_LOADTYPE 1 +#define PMF_RESOLVE 2 +#define PMF_LCIDS 3 +#define PMF_RESET 4 +#define PMF_SUPPRESS 5 +#define PMF_COLORTABLES 6 +#define PMF_COLORREALIZABLE 7 +#define PMF_DEFAULTS 8 +#define PMF_DELETEOBJECTS 9 + +#define RS_DEFAULT 0 +#define RS_NODISCARD 1 +#define LC_DEFAULT 0 +#define LC_NOLOAD 1 +#define LC_LOADDISC 3 +#define LT_DEFAULT 0 +#define LT_NOMODIFY 1 +#define LT_ORIGINALVIEW 4 +#define RES_DEFAULT 0 +#define RES_NORESET 1 +#define RES_RESET 2 +#define SUP_DEFAULT 0 +#define SUP_NOSUPPRESS 1 +#define SUP_SUPPRESS 2 +#define CTAB_DEFAULT 0 +#define CTAB_NOMODIFY 1 +#define CTAB_REPLACE 3 +#define CTAB_REPLACEPALETTE 4 +#define CREA_DEFAULT 0 +#define CREA_REALIZE 1 +#define CREA_NOREALIZE 2 +#define CREA_DOREALIZE 3 + +#define DDEF_DEFAULT 0 +#define DDEF_IGNORE 1 +#define DDEF_LOADDISC 3 +#define DOBJ_DEFAULT 0 +#define DOBJ_NODELETE 1 +#define DOBJ_DELETE 2 +#define RSP_DEFAULT 0 +#define RSP_NODISCARD 1 + +#define LBB_COLOR 0x0001 +#define LBB_BACK_COLOR 0x0002 +#define LBB_MIX_MODE 0x0004 +#define LBB_BACK_MIX_MODE 0x0008 +#define LBB_WIDTH 0x0010 +#define LBB_GEOM_WIDTH 0x0020 +#define LBB_TYPE 0x0040 +#define LBB_END 0x0080 +#define LBB_JOIN 0x0100 + +#define CBB_COLOR 0x0001 +#define CBB_BACK_COLOR 0x0002 +#define CBB_MIX_MODE 0x0004 +#define CBB_BACK_MIX_MODE 0x0008 +#define CBB_SET 0x0010 +#define CBB_MODE 0x0020 +#define CBB_BOX 0x0040 +#define CBB_ANGLE 0x0080 +#define CBB_SHEAR 0x0100 +#define CBB_DIRECTION 0x0200 +#define CBB_TEXT_ALIGN 0x0400 +#define CBB_EXTRA 0x0800 +#define CBB_BREAK_EXTRA 0x1000 + +#define MBB_COLOR 0x0001 +#define MBB_BACK_COLOR 0x0002 +#define MBB_MIX_MODE 0x0004 +#define MBB_BACK_MIX_MODE 0x0008 +#define MBB_SET 0x0010 +#define MBB_SYMBOL 0x0020 +#define MBB_BOX 0x0040 + +#define ABB_COLOR 0x0001 +#define ABB_BACK_COLOR 0x0002 +#define ABB_MIX_MODE 0x0004 +#define ABB_BACK_MIX_MODE 0x0008 +#define ABB_SET 0x0010 +#define ABB_SYMBOL 0x0020 +#define ABB_REF_POINT 0x0040 + +#define IBB_COLOR 0x0001 +#define IBB_BACK_COLOR 0x0002 +#define IBB_MIX_MODE 0x0004 +#define IBB_BACK_MIX_MODE 0x0008 + + +typedef PVOID PBUNDLE; + +typedef LONG FIXED; +typedef FIXED *PFIXED; + +typedef LHANDLE HMF; +typedef HMF *PHMF; + + +typedef struct _SIZEL +{ + LONG cx; + LONG cy; +} SIZEL; +typedef SIZEL *PSIZEL; + +typedef struct _RGNRECT +{ + ULONG ircStart; + ULONG crc; + ULONG crcReturned; + ULONG ulDirection; +} RGNRECT; +typedef RGNRECT *PRGNRECT; + +typedef struct _MATRIXLF +{ + FIXED fxM11; + FIXED fxM12; + LONG lM13; + FIXED fxM21; + FIXED fxM22; + LONG lM23; + LONG lM31; + LONG lM32; + LONG lM33; +} MATRIXLF; +typedef MATRIXLF *PMATRIXLF; + +typedef struct _ARCPARAMS +{ + LONG lP; + LONG lQ; + LONG lR; + LONG lS; +} ARCPARAMS; +typedef ARCPARAMS *PARCPARAMS; + +typedef struct _SIZEF +{ + FIXED cx; + FIXED cy; +} SIZEF; +typedef SIZEF *PSIZEF; + +typedef struct _POLYGON +{ + ULONG ulPoints; + PPOINTL aPointl; +} POLYGON; +typedef POLYGON *PPOLYGON; + +typedef struct _POLYSET +{ + ULONG ulPolys; + POLYGON aPolygon[1]; +} POLYSET; +typedef POLYSET *PPOLYSET; + +typedef struct _GRADIENTL +{ + LONG x; + LONG y; +} GRADIENTL; +typedef GRADIENTL *PGRADIENTL; + +typedef struct _KERNINGPAIRS +{ + SHORT sFirstChar; + SHORT sSecondChar; + LONG lKerningAmount; +} KERNINGPAIRS; +typedef KERNINGPAIRS *PKERNINGPAIRS; + +typedef struct _FACENAMEDESC +{ + USHORT usSize; + USHORT usWeightClass; + USHORT usWidthClass; + USHORT usReserved; + ULONG flOptions; +} FACENAMEDESC; +typedef FACENAMEDESC *PFACENAMEDESC; + +typedef CHAR FFDESCS[2][FACESIZE]; +typedef FFDESCS *PFFDESCS; + +typedef struct _FFDESCS2 +{ + ULONG cbLength; + ULONG cbFacenameOffset; + BYTE abFamilyName[1]; +} FFDESCS2; +typedef FFDESCS2 *PFFDESCS2; + + +typedef struct _LINEBUNDLE +{ + LONG lColor; + LONG lBackColor; + USHORT usMixMode; + USHORT usBackMixMode; + FIXED fxWidth; + LONG lGeomWidth; + USHORT usType; + USHORT usEnd; + USHORT usJoin; + USHORT usReserved; +} LINEBUNDLE; +typedef LINEBUNDLE *PLINEBUNDLE; + +typedef struct _CHARBUNDLE +{ + LONG lColor; + LONG lBackColor; + USHORT usMixMode; + USHORT usBackMixMode; + USHORT usSet; + USHORT usPrecision; + SIZEF sizfxCell; + POINTL ptlAngle; + POINTL ptlShear; + USHORT usDirection; + USHORT usTextAlign; + FIXED fxExtra; + FIXED fxBreakExtra; +} CHARBUNDLE; +typedef CHARBUNDLE *PCHARBUNDLE; + +typedef struct _MARKERBUNDLE +{ + LONG lColor; + LONG lBackColor; + USHORT usMixMode; + USHORT usBackMixMode; + USHORT usSet; + USHORT usSymbol; + SIZEF sizfxCell; +} MARKERBUNDLE; +typedef MARKERBUNDLE *PMARKERBUNDLE; + +typedef struct _AREABUNDLE +{ + LONG lColor; + LONG lBackColor; + USHORT usMixMode; + USHORT usBackMixMode; + USHORT usSet; + USHORT usSymbol; + POINTL ptlRefPoint; +} AREABUNDLE; +typedef AREABUNDLE *PAREABUNDLE; + +typedef struct _IMAGEBUNDLE +{ + LONG lColor; + LONG lBackColor; + USHORT usMixMode; + USHORT usBackMixMode; +} IMAGEBUNDLE; +typedef IMAGEBUNDLE *PIMAGEBUNDLE; + + +#define MAKEFIXED(i,f) MAKELONG(f,i) +#define FIXEDFRAC(fx) (LOUSHORT(fx)) +#define FIXEDINT(fx) ((SHORT)HIUSHORT(fx)) + + +LONG GpiAnimatePalette (HPAL hpal, ULONG ulFormat, ULONG ulStart, + ULONG ulCount, __const__ ULONG *aulTable); +BOOL GpiBeginArea (HPS hps, ULONG flOptions); +BOOL GpiBeginElement (HPS hps, LONG lType, PCSZ pszDesc); +BOOL GpiBeginPath (HPS hps, LONG lPath); +LONG GpiBox (HPS hps, LONG lControl, __const__ POINTL *pptlPoint, LONG lHRound, + LONG lVRound); +LONG GpiCallSegmentMatrix (HPS hps, LONG lSegment, LONG lCount, + __const__ MATRIXLF *pmatlfArray, LONG lOptions); +LONG GpiCharString (HPS hps, LONG lCount, PCCH pchString); +LONG GpiCharStringAt (HPS hps, __const__ POINTL *pptlPoint, LONG lCount, + PCCH pchString); +LONG GpiCharStringPos (HPS hps, __const__ RECTL *prclRect, ULONG flOptions, + LONG lCount, PCCH pchString, __const__ LONG *alAdx); +LONG GpiCharStringPosAt (HPS hps, __const__ POINTL *pptlStart, + __const__ RECTL *prclRect, ULONG flOptions, LONG lCount, PCCH pchString, + __const__ LONG *alAdx); +BOOL GpiCloseFigure (HPS hps); +LONG GpiCombineRegion (HPS hps, HRGN hrgnDest, HRGN hrgnSrc1, HRGN hrgnSrc2, + LONG lMode); +BOOL GpiComment (HPS hps, LONG lLength, __const__ BYTE *pbData); +BOOL GpiConvert (HPS hps, LONG lSrc, LONG lTarg, LONG lCount, + PPOINTL aptlPoints); +BOOL GpiConvertWithMatrix (HPS hps, LONG lCountp, PPOINTL aptlPoints, + LONG lCount, __const__ MATRIXLF *pmatlfArray); +HMF GpiCopyMetaFile (HMF hmf); +BOOL GpiCreateLogColorTable (HPS hps, ULONG flOptions, LONG lFormat, + LONG lStart, LONG lCount, __const__ LONG *alTable); +LONG GpiCreateLogFont (HPS hps, __const__ STR8 *pName, LONG lLcid, + __const__ FATTRS *pfatAttrs); +HPAL GpiCreatePalette (HAB hab, ULONG flOptions, ULONG ulFormat, + ULONG ulCount, __const__ ULONG *aulTable); +HRGN GpiCreateRegion (HPS hps, LONG lCount, __const__ RECTL *arclRectangles); +BOOL GpiDeleteElement (HPS hps); +BOOL GpiDeleteElementRange (HPS hps, LONG lFirstElement, LONG lLastElement); +BOOL GpiDeleteElementsBetweenLabels (HPS hps, LONG lFirstLabel, + LONG lLastLabel); +BOOL GpiDeleteMetaFile (HMF hmf); +BOOL GpiDeletePalette (HPAL hpal); +BOOL GpiDeleteSetId (HPS hps, LONG lLcid); +BOOL GpiDestroyRegion (HPS hps, HRGN hrgn); +LONG GpiElement (HPS hps, LONG lType, PCSZ pszDesc, LONG lLength, + __const__ BYTE *pbData); +LONG GpiEndArea (HPS hps); +BOOL GpiEndElement (HPS hps); +BOOL GpiEndPath (HPS hps); +LONG GpiEqualRegion (HPS hps, HRGN hrgnSrc1, HRGN hrgnSrc2); +LONG GpiExcludeClipRectangle (HPS hps, __const__ RECTL *prclRectangle); +LONG GpiFillPath (HPS hps, LONG lPath, LONG lOptions); +LONG GpiFrameRegion (HPS hps, HRGN hrgn, __const__ SIZEL *thickness); +LONG GpiFullArc (HPS hps, LONG lControl, FIXED fxMultiplier); +LONG GpiImage (HPS hps, LONG lFormat, __const__ SIZEL *psizlImageSize, + LONG lLength, __const__ BYTE *pbData); +LONG GpiIntersectClipRectangle (HPS hps, __const__ RECTL *prclRectangle); +BOOL GpiLabel (HPS hps, LONG lLabel); +LONG GpiLine (HPS hps, __const__ POINTL *pptlEndPoint); +BOOL GpiLoadFonts (HAB hab, PCSZ pszFilename); +HMF GpiLoadMetaFile (HAB hab, PCSZ pszFilename); +BOOL GpiLoadPublicFonts (HAB hab, PCSZ pszFileName); +LONG GpiMarker (HPS hps, __const__ POINTL *pptlPoint); +BOOL GpiModifyPath (HPS hps, LONG lPath, LONG lMode); +BOOL GpiMove (HPS hps, __const__ POINTL *pptlPoint); +LONG GpiOffsetClipRegion (HPS hps, __const__ POINTL *pptlPoint); +BOOL GpiOffsetElementPointer (HPS hps, LONG loffset); +BOOL GpiOffsetRegion (HPS hps, HRGN Hrgn, __const__ POINTL *pptlOffset); +LONG GpiOutlinePath (HPS hps, LONG lPath, LONG lOptions); +LONG GpiPaintRegion (HPS hps, HRGN hrgn); +LONG GpiPartialArc (HPS hps, __const__ POINTL *pptlCenter, FIXED fxMultiplier, + FIXED fxStartAngle, FIXED fxSweepAngle); +HRGN GpiPathToRegion (HPS GpiH, LONG lPath, LONG lOptions); +LONG GpiPlayMetaFile (HPS hps, HMF hmf, LONG lCount1, + __const__ LONG *alOptarray, PLONG plSegCount, LONG lCount2, PSZ pszDesc); +LONG GpiPointArc (HPS hps, __const__ POINTL *pptl2); +LONG GpiPolyFillet (HPS hps, LONG lCount, __const__ POINTL *aptlPoints); +LONG GpiPolyFilletSharp (HPS hps, LONG lCount, __const__ POINTL *aptlPoints, + __const__ FIXED *afxPoints); +LONG GpiPolygons (HPS hps, ULONG ulCount, __const__ POLYGON *paplgn, + ULONG flOptions, ULONG flModel); +LONG GpiPolyLine (HPS hps, LONG lCount, __const__ POINTL *aptlPoints); +LONG GpiPolyLineDisjoint (HPS hps, LONG lCount, __const__ POINTL *aptlPoints); +LONG GpiPolyMarker (HPS hps, LONG lCount, __const__ POINTL *aptlPoints); +LONG GpiPolySpline (HPS hps, LONG lCount, __const__ POINTL *aptlPoints); +BOOL GpiPop (HPS hps, LONG lCount); +LONG GpiPtInRegion (HPS hps, HRGN hrgn, __const__ POINTL *pptlPoint); +LONG GpiPtVisible (HPS hps, __const__ POINTL *pptlPoint); +BOOL GpiQueryArcParams (HPS hps, PARCPARAMS parcpArcParams); +LONG GpiQueryAttrMode (HPS hps); +LONG GpiQueryAttrs (HPS hps, LONG lPrimType, ULONG flAttrMask, + PBUNDLE ppbunAttrs); +LONG GpiQueryBackColor (HPS hps); +LONG GpiQueryBackMix (HPS hps); +BOOL GpiQueryCharAngle (HPS hps, PGRADIENTL pgradlAngle); +BOOL GpiQueryCharBox (HPS hps, PSIZEF psizfxSize); +BOOL GpiQueryCharBreakExtra (HPS hps, PFIXED BreakExtra); +LONG GpiQueryCharDirection (HPS hps); +BOOL GpiQueryCharExtra (HPS hps, PFIXED Extra); +LONG GpiQueryCharMode (HPS hps); +LONG GpiQueryCharSet (HPS hps); +BOOL GpiQueryCharShear (HPS hps, PPOINTL pptlShear); +BOOL GpiQueryCharStringPos (HPS hps, ULONG flOptions, LONG lCount, + PCCH pchString, PLONG alXincrements, PPOINTL aptlPositions); +BOOL GpiQueryCharStringPosAt (HPS hps, PPOINTL pptlStart, ULONG flOptions, + LONG lCount, PCCH pchString, PLONG alXincrements, PPOINTL aptlPositions); +LONG GpiQueryClipBox (HPS hps, PRECTL prclBound); +HRGN GpiQueryClipRegion (HPS hps); +LONG GpiQueryColor (HPS hps); +BOOL GpiQueryColorData (HPS hps, LONG lCount, PLONG alArray); +LONG GpiQueryColorIndex (HPS hps, ULONG flOptions, LONG lRgbColor); +ULONG GpiQueryCp (HPS hps); +BOOL GpiQueryCurrentPosition (HPS hps, PPOINTL pptlPoint); +BOOL GpiQueryDefArcParams (HPS hps, PARCPARAMS parcpArcParams); +BOOL GpiQueryDefAttrs (HPS hps, LONG lPrimType, ULONG flAttrMask, + PBUNDLE ppbunAttrs); +BOOL GpiQueryDefCharBox (HPS hps, PSIZEL psizlSize); +BOOL GpiQueryDefTag (HPS hps, PLONG plTag); +BOOL GpiQueryDefViewingLimits (HPS hps, PRECTL prclLimits); +BOOL GpiQueryDefaultViewMatrix (HPS hps, LONG lCount, PMATRIXLF pmatlfArray); +LONG GpiQueryEditMode (HPS hps); +LONG GpiQueryElement (HPS hps, LONG lOff, LONG lMaxLength, PBYTE pbData); +LONG GpiQueryElementPointer (HPS hps); +LONG GpiQueryElementType (HPS hps, PLONG plType, LONG lLength, PSZ pszData); +ULONG GpiQueryFaceString (HPS PS, PCSZ FamilyName, PFACENAMEDESC attrs, + LONG length, PSZ CompoundFaceName); +ULONG GpiQueryFontAction (HAB anchor, ULONG options); +LONG GpiQueryFontFileDescriptions (HAB hab, PCSZ pszFilename, PLONG plCount, + PFFDESCS affdescsNames); +BOOL GpiQueryFontMetrics (HPS hps, LONG lMetricsLength, + PFONTMETRICS pfmMetrics); +LONG GpiQueryFonts (HPS hps, ULONG flOptions, PCSZ pszFacename, + PLONG plReqFonts, LONG lMetricsLength, PFONTMETRICS afmMetrics); +LONG GpiQueryFullFontFileDescs (HAB hab, PCSZ pszFilename, PLONG plCount, + PVOID pNames, PLONG plNamesBuffLength); +BOOL GpiQueryGraphicsField (HPS hps, PRECTL prclField); +LONG GpiQueryKerningPairs (HPS hps, LONG lCount, PKERNINGPAIRS akrnprData); +LONG GpiQueryLineEnd (HPS hps); +LONG GpiQueryLineJoin (HPS hps); +LONG GpiQueryLineType (HPS hps); +FIXED GpiQueryLineWidth (HPS hps); +LONG GpiQueryLineWidthGeom (HPS hps); +LONG GpiQueryLogColorTable (HPS hps, ULONG flOptions, LONG lStart, LONG lCount, + PLONG alArray); +BOOL GpiQueryLogicalFont (HPS PS, LONG lcid, PSTR8 name, PFATTRS attrs, + LONG length); +LONG GpiQueryMarker (HPS hps); +BOOL GpiQueryMarkerBox (HPS hps, PSIZEF psizfxSize); +LONG GpiQueryMarkerSet (HPS hps); +BOOL GpiQueryMetaFileBits (HMF hmf, LONG lOffset, LONG lLength, PBYTE pbData); +LONG GpiQueryMetaFileLength (HMF hmf); +LONG GpiQueryMix (HPS hps); +BOOL GpiQueryModelTransformMatrix (HPS hps, LONG lCount, + PMATRIXLF pmatlfArray); +LONG GpiQueryNearestColor (HPS hps, ULONG flOptions, LONG lRgbIn); +LONG GpiQueryNumberSetIds (HPS hps); +BOOL GpiQueryPageViewport (HPS hps, PRECTL prclViewport); +HPAL GpiQueryPalette (HPS hps); +LONG GpiQueryPaletteInfo (HPAL hpal, HPS hps, ULONG flOptions, + ULONG ulStart, ULONG ulCount, PULONG aulArray); +LONG GpiQueryPattern (HPS hps); +BOOL GpiQueryPatternRefPoint (HPS hps, PPOINTL pptlRefPoint); +LONG GpiQueryPatternSet (HPS hps); +LONG GpiQueryRealColors (HPS hps, ULONG flOptions, LONG lStart, LONG lCount, + PLONG alColors); +LONG GpiQueryRegionBox (HPS hps, HRGN hrgn, PRECTL prclBound); +BOOL GpiQueryRegionRects (HPS hps, HRGN hrgn, PRECTL prclBound, + PRGNRECT prgnrcControl, PRECTL prclRect); +LONG GpiQueryRGBColor (HPS hps, ULONG flOptions, LONG lColorIndex); +BOOL GpiQuerySegmentTransformMatrix (HPS hps, LONG lSegid, LONG lCount, + PMATRIXLF pmatlfArray); +BOOL GpiQuerySetIds (HPS hps, LONG lCount, PLONG alTypes, PSTR8 aNames, + PLONG allcids); +BOOL GpiQueryTextAlignment (HPS hps, PLONG plHoriz, PLONG plVert); +BOOL GpiQueryTextBox (HPS hps, LONG lCount1, PCH pchString, LONG lCount2, + PPOINTL aptlPoints); +BOOL GpiQueryViewingLimits (HPS hps, PRECTL prclLimits); +BOOL GpiQueryViewingTransformMatrix (HPS hps, LONG lCount, + PMATRIXLF pmatlfArray); +BOOL GpiQueryWidthTable (HPS hps, LONG lFirstChar, LONG lCount, PLONG alData); +LONG GpiRectInRegion (HPS hps, HRGN hrgn, __const__ RECTL *prclRect); +LONG GpiRectVisible (HPS hps, __const__ RECTL *prclRectangle); +BOOL GpiRotate (HPS hps, PMATRIXLF pmatlfArray, LONG lOptions, FIXED fxAngle, + __const__ POINTL *pptlCenter); +BOOL GpiSaveMetaFile (HMF hmf, PCSZ pszFilename); +BOOL GpiScale (HPS hps, PMATRIXLF pmfatlfArray, LONG lOptions, + __const__ FIXED *afxScale, __const__ POINTL *pptlCenter); +HPAL GpiSelectPalette (HPS hps, HPAL hpal); +BOOL GpiSetArcParams (HPS hps, __const__ ARCPARAMS *parcpArcParams); +BOOL GpiSetAttrMode (HPS hps, LONG lMode); +BOOL GpiSetAttrs (HPS hps, LONG lPrimType, ULONG flAttrMask, ULONG flDefMask, + __const__ VOID *ppbunAttrs); +BOOL GpiSetBackColor (HPS hps, LONG lColor); +BOOL GpiSetBackMix (HPS hps, LONG lMixMode); +BOOL GpiSetCharAngle (HPS hps, __const__ GRADIENTL *pgradlAngle); +BOOL GpiSetCharBox (HPS hps, __const__ SIZEF *psizfxBox); +BOOL GpiSetCharBreakExtra (HPS hps, FIXED BreakExtra); +BOOL GpiSetCharDirection (HPS hps, LONG lDirection); +BOOL GpiSetCharExtra (HPS hps, FIXED Extra); +BOOL GpiSetCharMode (HPS hps, LONG lMode); +BOOL GpiSetCharSet (HPS hps, LONG llcid); +BOOL GpiSetCharShear (HPS hps, __const__ POINTL *pptlAngle); +BOOL GpiSetClipPath (HPS hps, LONG lPath, LONG lOptions); +LONG GpiSetClipRegion (HPS hps, HRGN hrgn, PHRGN phrgnOld); +BOOL GpiSetColor (HPS hps, LONG lColor); +BOOL GpiSetCp (HPS hps, ULONG ulCodePage); +BOOL GpiSetCurrentPosition (HPS hps, __const__ POINTL *pptlPoint); +BOOL GpiSetDefArcParams (HPS hps, __const__ ARCPARAMS *parcpArcParams); +BOOL GpiSetDefAttrs (HPS hps, LONG lPrimType, ULONG flAttrMask, + __const__ VOID *ppbunAttrs); +BOOL GpiSetDefaultViewMatrix (HPS hps, LONG lCount, + __const__ MATRIXLF *pmatlfarray, LONG lOptions); +BOOL GpiSetDefTag (HPS hps, LONG lTag); +BOOL GpiSetDefViewingLimits (HPS hps, __const__ RECTL *prclLimits); +BOOL GpiSetEditMode (HPS hps, LONG lMode); +BOOL GpiSetElementPointer (HPS hps, LONG lElement); +BOOL GpiSetElementPointerAtLabel (HPS hps, LONG lLabel); +BOOL GpiSetGraphicsField (HPS hps, __const__ RECTL *prclField); +BOOL GpiSetLineEnd (HPS hps, LONG lLineEnd); +BOOL GpiSetLineJoin (HPS hps, LONG lLineJoin); +BOOL GpiSetLineType (HPS hps, LONG lLineType); +BOOL GpiSetLineWidth (HPS hps, FIXED fxLineWidth); +BOOL GpiSetLineWidthGeom (HPS hps, LONG lLineWidth); +BOOL GpiSetMarker (HPS hps, LONG lSymbol); +BOOL GpiSetMarkerBox (HPS hps, __const__ SIZEF *psizfxSize); +BOOL GpiSetMarkerSet (HPS hps, LONG lSet); +BOOL GpiSetMetaFileBits (HMF hmf, LONG lOffset, LONG lLength, + __const__ BYTE *pbBuffer); +BOOL GpiSetMix (HPS hps, LONG lMixMode); +BOOL GpiSetModelTransformMatrix (HPS hps, LONG lCount, + __const__ MATRIXLF *pmatlfArray, LONG lOptions); +BOOL GpiSetPageViewport (HPS hps, __const__ RECTL *prclViewport); +BOOL GpiSetPaletteEntries (HPAL hpal, ULONG ulFormat, ULONG ulStart, + ULONG ulCount, __const__ ULONG *aulTable); +BOOL GpiSetPattern (HPS hps, LONG lPatternSymbol); +BOOL GpiSetPatternRefPoint (HPS hps, __const__ POINTL *pptlRefPoint); +BOOL GpiSetPatternSet (HPS hps, LONG lSet); +BOOL GpiSetRegion (HPS hps, HRGN hrgn, LONG lcount, + __const__ RECTL *arclRectangles); +BOOL GpiSetSegmentTransformMatrix (HPS hps, LONG lSegid, LONG lCount, + __const__ MATRIXLF *pmatlfarray, LONG lOptions); +BOOL GpiSetTextAlignment (HPS hps, LONG lHoriz, LONG lVert); +BOOL GpiSetViewingLimits (HPS hps, __const__ RECTL *prclLimits); +BOOL GpiSetViewingTransformMatrix (HPS hps, LONG lCount, + __const__ MATRIXLF *pmatlfArray, LONG lOptions); +LONG GpiStrokePath (HPS hps, LONG lPath, ULONG flOptions); +BOOL GpiTranslate (HPS hps, PMATRIXLF pmatlfArray, LONG lOptions, + __const__ POINTL *pptlTranslation); +BOOL GpiUnloadFonts (HAB hab, PCSZ pszFilename); +BOOL GpiUnloadPublicFonts (HAB hab, PCSZ pszFilename); + + +#if defined (INCL_GPIBITMAPS) || !defined (INCL_NOCOMMON) + +#define ROP_SRCCOPY 0x00cc +#define ROP_SRCPAINT 0x00ee +#define ROP_SRCAND 0x0088 +#define ROP_SRCINVERT 0x0066 +#define ROP_SRCERASE 0x0044 +#define ROP_NOTSRCCOPY 0x0033 +#define ROP_NOTSRCERASE 0x0011 +#define ROP_MERGECOPY 0x00c0 +#define ROP_MERGEPAINT 0x00bb +#define ROP_PATCOPY 0x00f0 +#define ROP_PATPAINT 0x00fb +#define ROP_PATINVERT 0x005a +#define ROP_DSTINVERT 0x0055 +#define ROP_ZERO 0x0000 +#define ROP_ONE 0x00ff + +#define BBO_OR 0 +#define BBO_AND 1 +#define BBO_IGNORE 2 +#define BBO_PAL_COLORS 4 +#define BBO_NO_COLOR_INFO 8 + +#define FF_BOUNDARY 0 +#define FF_SURFACE 1 + +#define HBM_ERROR ((HBITMAP)(-1)) + + +LONG GpiBitBlt (HPS hpsTarget, HPS hpsSource, LONG lCount, + __const__ POINTL *aptlPoints, LONG lRop, ULONG flOptions); +BOOL GpiDeleteBitmap (HBITMAP hbm); +HBITMAP GpiLoadBitmap (HPS hps, HMODULE Resource, ULONG idBitmap, + LONG lWidth, LONG lHeight); +HBITMAP GpiSetBitmap (HPS hps, HBITMAP hbm); +LONG GpiWCBitBlt (HPS hpsTarget, HBITMAP hbmSource, LONG lCount, + __const__ POINTL *aptlPoints, LONG lRop, ULONG flOptions); + +#endif /* INCL_GPIBITMAPS */ + + +#if defined (INCL_GPIBITMAPS) + +#define BFT_ICON 0x4349 +#define BFT_BMAP 0x4d42 +#define BFT_POINTER 0x5450 +#define BFT_COLORICON 0x4943 +#define BFT_COLORPOINTER 0x5043 +#define BFT_BITMAPARRAY 0x4142 + +#define CBD_BITS 0 +#define CBD_COMPRESSION 1 +#define CBD_DECOMPRESSION 2 + +#define CBD_COLOR_CONVERSION 0x0001 + +#define CBM_INIT 0x0004 + +#define BCA_UNCOMP 0 +#define BCA_RLE8 1 +#define BCA_RLE4 2 +#define BCA_HUFFMAN1D 3 +#define BCA_RLE24 4 + +#define BMB_ERROR (-1) + +#define BRU_METRIC 0 + +#define BRA_BOTTOMUP 0 + +#define BRH_NOTHALFTONED 0 +#define BRH_ERRORDIFFUSION 1 +#define BRH_PANDA 2 +#define BRH_SUPERCIRCLE 3 + +#define BCE_PALETTE (-1) +#define BCE_RGB 0 + + +typedef struct _RGB +{ + BYTE bBlue; + BYTE bGreen; + BYTE bRed; +} RGB; + +typedef struct _RGB2 +{ + BYTE bBlue; + BYTE bGreen; + BYTE bRed; + BYTE fcOptions; +} RGB2; +typedef RGB2 *PRGB2; + +typedef struct _BITMAPINFOHEADER +{ + ULONG cbFix; + USHORT cx; + USHORT cy; + USHORT cPlanes; + USHORT cBitCount; +} BITMAPINFOHEADER; +typedef BITMAPINFOHEADER *PBITMAPINFOHEADER; + +typedef struct _BITMAPINFO +{ + ULONG cbFix; + USHORT cx; + USHORT cy; + USHORT cPlanes; + USHORT cBitCount; + RGB argbColor[1]; +} BITMAPINFO; +typedef BITMAPINFO *PBITMAPINFO; + +typedef struct _BITMAPINFO2 +{ + ULONG cbFix; + ULONG cx; + ULONG cy; + USHORT cPlanes; + USHORT cBitCount; + ULONG ulCompression; + ULONG cbImage; + ULONG cxResolution; + ULONG cyResolution; + ULONG cclrUsed; + ULONG cclrImportant; + USHORT usUnits; + USHORT usReserved; + USHORT usRecording; + USHORT usRendering; + ULONG cSize1; + ULONG cSize2; + ULONG ulColorEncoding; + ULONG ulIdentifier; + RGB2 argbColor[1]; +} BITMAPINFO2; +typedef BITMAPINFO2 *PBITMAPINFO2; + +typedef struct _BITMAPINFOHEADER2 +{ + ULONG cbFix; + ULONG cx; + ULONG cy; + USHORT cPlanes; + USHORT cBitCount; + ULONG ulCompression; + ULONG cbImage; + ULONG cxResolution; + ULONG cyResolution; + ULONG cclrUsed; + ULONG cclrImportant; + USHORT usUnits; + USHORT usReserved; + USHORT usRecording; + USHORT usRendering; + ULONG cSize1; + ULONG cSize2; + ULONG ulColorEncoding; + ULONG ulIdentifier; +} BITMAPINFOHEADER2; +typedef BITMAPINFOHEADER2 *PBITMAPINFOHEADER2; + +typedef struct _BITMAPFILEHEADER +{ + USHORT usType; + ULONG cbSize; + SHORT xHotspot; + SHORT yHotspot; + ULONG offBits; + BITMAPINFOHEADER bmp; +} BITMAPFILEHEADER; +typedef BITMAPFILEHEADER *PBITMAPFILEHEADER; + +typedef struct _BITMAPARRAYFILEHEADER +{ + USHORT usType; + ULONG cbSize; + ULONG offNext; + USHORT cxDisplay; + USHORT cyDisplay; + BITMAPFILEHEADER bfh; +} BITMAPARRAYFILEHEADER; +typedef BITMAPARRAYFILEHEADER *PBITMAPARRAYFILEHEADER; + +typedef struct _BITMAPFILEHEADER2 +{ + USHORT usType; + ULONG cbSize; + SHORT xHotspot; + SHORT yHotspot; + ULONG offBits; + BITMAPINFOHEADER2 bmp2; +} BITMAPFILEHEADER2; +typedef BITMAPFILEHEADER2 *PBITMAPFILEHEADER2; + +typedef struct _BITMAPARRAYFILEHEADER2 +{ + USHORT usType; + ULONG cbSize; + ULONG offNext; + USHORT cxDisplay; + USHORT cyDisplay; + BITMAPFILEHEADER2 bfh2; +} BITMAPARRAYFILEHEADER2; +typedef BITMAPARRAYFILEHEADER2 *PBITMAPARRAYFILEHEADER2; + + +HBITMAP GpiCreateBitmap (HPS hps, __const__ BITMAPINFOHEADER2 *pbmpNew, + ULONG flOptions, __const__ BYTE *pbInitData, + __const__ BITMAPINFO2 *pbmiInfoTable); +LONG GpiDrawBits (HPS hps, __const__ VOID *pBits, + __const__ BITMAPINFO2 *pbmiInfoTable, LONG lCount, + __const__ POINTL *aptlPoints, LONG lRop, ULONG flOptions); +LONG GpiFloodFill (HPS hps, LONG lOptions, LONG lColor); +LONG GpiQueryBitmapBits (HPS hps, LONG lScanStart, LONG lScans, PBYTE pbBuffer, + PBITMAPINFO2 pbmiInfoTable); +BOOL GpiQueryBitmapDimension (HBITMAP hbm, PSIZEL psizlBitmapDimension); +HBITMAP GpiQueryBitmapHandle (HPS hps, LONG lLcid); +BOOL GpiQueryBitmapInfoHeader (HBITMAP hbm, PBITMAPINFOHEADER2 pbmpData); +BOOL GpiQueryBitmapParameters (HBITMAP hbm, PBITMAPINFOHEADER pbmpData); +BOOL GpiQueryDeviceBitmapFormats (HPS hps, LONG lCount, PLONG alArray); +LONG GpiSetBitmapBits (HPS hps, LONG lScanStart, LONG lScans, + __const__ BYTE *pbBuffer, __const__ BITMAPINFO2 *pbmiInfoTable); +LONG GpiQueryPel (HPS hps, PPOINTL pptlPoint); +BOOL GpiSetBitmapDimension (HBITMAP hbm, + __const__ SIZEL *psizlBitmapDimension); +BOOL GpiSetBitmapId (HPS hps, HBITMAP hbm, LONG lLcid); +LONG GpiSetPel (HPS hps, __const__ POINTL *pptlPoint); + + +#endif /* INCL_GPIBITMAPS */ + + +#if defined (INCL_GPICONTROL) || !defined (INCL_NOCOMMON) + +#define GPIA_NOASSOC 0x0000 +#define GPIA_ASSOC 0x4000 + +#define GPIF_DEFAULT 0x0000 +#define GPIF_SHORT 0x0100 +#define GPIF_LONG 0x0200 + +#define GPIM_AREAEXCL 0x8000 + +#define GPIT_NORMAL 0x0000 +#define GPIT_MICRO 0x1000 +#define GPIT_INK 0x2000 + +#define HDC_ERROR ((HDC)(-1)) + +#define PU_ARBITRARY 0x0004 +#define PU_PELS 0x0008 +#define PU_LOMETRIC 0x000c +#define PU_HIMETRIC 0x0010 +#define PU_LOENGLISH 0x0014 +#define PU_HIENGLISH 0x0018 +#define PU_TWIPS 0x001c + + +BOOL GpiAssociate (HPS hps, HDC hdc); +HPS GpiCreatePS (HAB hab, HDC hdc, PSIZEL psizlSize, ULONG flOptions); +BOOL GpiDestroyPS (HPS hps); +BOOL GpiErase (HPS hps); +HDC GpiQueryDevice (HPS hps); +BOOL GpiRestorePS (HPS hps, LONG lPSid); +LONG GpiSavePS (HPS hps); + +#endif /* INCL_GPICONTROL */ + + +#if defined (INCL_GPICONTROL) + +#define DCTL_ERASE 1 +#define DCTL_DISPLAY 2 +#define DCTL_BOUNDARY 3 +#define DCTL_DYNAMIC 4 +#define DCTL_CORRELATE 5 + +#define DCTL_ERROR (-1) +#define DCTL_OFF 0 +#define DCTL_ON 1 + +#define DM_ERROR 0 +#define DM_DRAW 1 +#define DM_RETAIN 2 +#define DM_DRAWANDRETAIN 3 + +#define GPIE_SEGMENT 0 +#define GPIE_ELEMENT 1 +#define GPIE_DATA 2 + +#define GRES_ATTRS 0x0001 +#define GRES_SEGMENTS 0x0002 +#define GRES_ALL 0x0004 + +#define PS_UNITS 0x00fc +#define PS_FORMAT 0x0f00 +#define PS_TYPE 0x1000 +#define PS_MODE 0x2000 +#define PS_ASSOCIATE 0x4000 +#define PS_NORESET 0x8000 + +#define SDW_ERROR (-1) +#define SDW_OFF 0 +#define SDW_ON 1 + + +LONG GpiErrorSegmentData (HPS hps, PLONG plSegment, PLONG plContext); +LONG GpiQueryDrawControl (HPS hps, LONG lControl); +LONG GpiQueryDrawingMode (HPS hps); +ULONG GpiQueryPS (HPS hps, PSIZEL psizlSize); +BOOL GpiResetPS (HPS hps, ULONG flOptions); +LONG GpiQueryStopDraw (HPS hps); +BOOL GpiSetDrawControl (HPS hps, LONG lControl, LONG lValue); +BOOL GpiSetDrawingMode (HPS hps, LONG lMode); +BOOL GpiSetPS (HPS hps, __const__ SIZEL *psizlsize, ULONG flOptions); +BOOL GpiSetStopDraw (HPS hps, LONG lValue); + +#endif /* INCL_GPICONTROL */ + + +#if defined (INCL_GPICORRELATION) + +#define GPI_HITS 2 + +#define PICKAP_DEFAULT 0 +#define PICKAP_REC 2 + +#define PICKSEL_VISIBLE 0 +#define PICKSEL_ALL 1 + + +LONG GpiCorrelateChain (HPS hps, LONG lType, __const__ POINTL *pptlPick, + LONG lMaxHits, LONG lMaxDepth, PLONG pl2); +LONG GpiCorrelateFrom (HPS hps, LONG lFirstSegment, LONG lLastSegment, + LONG lType, __const__ POINTL *pptlPick, LONG lMaxHits, LONG lMaxDepth, + PLONG plSegTag); +LONG GpiCorrelateSegment (HPS hps, LONG lSegment, LONG lType, + __const__ POINTL *pptlPick, LONG lMaxHits, LONG lMaxDepth, PLONG alSegTag); +BOOL GpiQueryBoundaryData (HPS hps, PRECTL prclBoundary); +BOOL GpiQueryPickAperturePosition (HPS hps, PPOINTL pptlPoint); +BOOL GpiQueryPickApertureSize (HPS hps, PSIZEL psizlSize); +BOOL GpiQueryTag (HPS hps, PLONG plTag); +BOOL GpiResetBoundaryData (HPS hps); +BOOL GpiSetPickAperturePosition (HPS hps, __const__ POINTL *pptlPick); +BOOL GpiSetPickApertureSize (HPS hps, LONG lOptions, + __const__ SIZEL *psizlSize); +BOOL GpiSetTag (HPS hps, LONG lTag); + +#endif /* INCL_GPICORRELATION */ + + +#if defined (INCL_GPIINK) + +#define PPE_KEEPPATH 0 +#define PPE_ERASEPATH 1 + +#define PPS_INKMOVE 0 +#define PPS_INKDOWN 1 +#define PPS_INKUP 2 + + +BOOL GpiBeginInkPath (HPS hps, LONG lPath, ULONG flOptions); +BOOL GpiEndInkPath (HPS hps, ULONG flOptions); +LONG GpiStrokeInkPath (HPS hps, LONG lPath, LONG lCount, + __const__ POINTL *aptlPoints, ULONG flOptions); + +#endif /* INCL_GPIINK */ + + +#if defined (INCL_GPISEGMENTS) + +#define DFORM_NOCONV 0 + +#define DFORM_S370SHORT 1 +#define DFORM_PCSHORT 2 +#define DFORM_PCLONG 4 + +#define ATTR_ERROR (-1) +#define ATTR_DETECTABLE 1 +#define ATTR_VISIBLE 2 +#define ATTR_CHAINED 6 +#define ATTR_DYNAMIC 8 +#define ATTR_FASTCHAIN 9 +#define ATTR_PROP_DETECTABLE 10 +#define ATTR_PROP_VISIBLE 11 + +#define ATTR_OFF 0 +#define ATTR_ON 1 + +#define LOWER_PRI (-1) +#define HIGHER_PRI 1 + + +BOOL GpiCloseSegment (HPS hps); +BOOL GpiDeleteSegment (HPS hps, LONG lSegid); +BOOL GpiDeleteSegments (HPS hps, LONG lFirstSegment, LONG lLastSegment); +BOOL GpiDrawChain (HPS hps); +BOOL GpiDrawDynamics (HPS hps); +BOOL GpiDrawFrom (HPS hps, LONG lFirstSegment, LONG lLastSegment); +BOOL GpiDrawSegment (HPS hps, LONG lSegment); +LONG GpiGetData (HPS hps, LONG lSegid, PLONG plOffset, LONG lFormat, + LONG lLength, PBYTE pbData); +BOOL GpiOpenSegment (HPS hps, LONG lSegment); +LONG GpiPutData (HPS hps, LONG lFormat, PLONG plCount, __const__ BYTE *pbData); +LONG GpiQueryInitialSegmentAttrs (HPS hps, LONG lAttribute); +LONG GpiQuerySegmentAttrs (HPS hps, LONG lSegid, LONG lAttribute); +LONG GpiQuerySegmentNames (HPS hps, LONG lFirstSegid, LONG lLastSegid, + LONG lMax, PLONG alSegids); +LONG GpiQuerySegmentPriority (HPS hps, LONG lRefSegid, LONG lOrder); +BOOL GpiRemoveDynamics (HPS hps, LONG lFirstSegid, LONG lLastSegid); +BOOL GpiSetInitialSegmentAttrs (HPS hps, LONG lAttribute, LONG lValue); +BOOL GpiSetSegmentAttrs (HPS hps, LONG lSegid, LONG lAttribute, LONG lValue); +BOOL GpiSetSegmentPriority (HPS hps, LONG lSegid, LONG lRefSegid, LONG lOrder); + +#endif /* INCL_GPISEGMENTS */ + + +/* ---------------------- DEVICE CONTEXTS --------------------------------- */ + +#define DEV_ERROR 0 +#define DEV_OK 1 +#define DEV_BAD_PARAMETERS 2 +#define DEV_WARNING 3 +#define DEV_PROP_BUF_TOO_SMALL 4 +#define DEV_ITEM_BUF_TOO_SMALL 5 +#define DEV_INV_INP_JOBPROPERTIES 6 + +#define ADDRESS 0 +#define DRIVER_NAME 1 +#define DRIVER_DATA 2 +#define DATA_TYPE 3 +#define COMMENT 4 +#define PROC_NAME 5 +#define PROC_PARAMS 6 +#define SPL_PARAMS 7 +#define NETWORK_PARAMS 8 + +#define OD_SCREEN 0 +#define OD_QUEUED 2 +#define OD_DIRECT 5 +#define OD_INFO 6 +#define OD_METAFILE 7 +#define OD_MEMORY 8 +#define OD_METAFILE_NOQUERY 9 + +#define CAPS_FAMILY 0 +#define CAPS_IO_CAPS 1 +#define CAPS_TECHNOLOGY 2 +#define CAPS_DRIVER_VERSION 3 +#define CAPS_WIDTH 4 +#define CAPS_HEIGHT 5 +#define CAPS_WIDTH_IN_CHARS 6 +#define CAPS_HEIGHT_IN_CHARS 7 +#define CAPS_HORIZONTAL_RESOLUTION 8 +#define CAPS_VERTICAL_RESOLUTION 9 +#define CAPS_CHAR_WIDTH 10 +#define CAPS_CHAR_HEIGHT 11 +#define CAPS_SMALL_CHAR_WIDTH 12 +#define CAPS_SMALL_CHAR_HEIGHT 13 +#define CAPS_COLORS 14 +#define CAPS_COLOR_PLANES 15 +#define CAPS_COLOR_BITCOUNT 16 +#define CAPS_COLOR_TABLE_SUPPORT 17 +#define CAPS_MOUSE_BUTTONS 18 +#define CAPS_FOREGROUND_MIX_SUPPORT 19 +#define CAPS_BACKGROUND_MIX_SUPPORT 20 +#define CAPS_DEVICE_WINDOWING 31 +#define CAPS_ADDITIONAL_GRAPHICS 32 +#define CAPS_VIO_LOADABLE_FONTS 21 +#define CAPS_WINDOW_BYTE_ALIGNMENT 22 +#define CAPS_BITMAP_FORMATS 23 +#define CAPS_RASTER_CAPS 24 +#define CAPS_MARKER_HEIGHT 25 +#define CAPS_MARKER_WIDTH 26 +#define CAPS_DEVICE_FONTS 27 +#define CAPS_GRAPHICS_SUBSET 28 +#define CAPS_GRAPHICS_VERSION 29 +#define CAPS_GRAPHICS_VECTOR_SUBSET 30 +#define CAPS_PHYS_COLORS 33 +#define CAPS_COLOR_INDEX 34 +#define CAPS_GRAPHICS_CHAR_WIDTH 35 +#define CAPS_GRAPHICS_CHAR_HEIGHT 36 +#define CAPS_HORIZONTAL_FONT_RES 37 +#define CAPS_VERTICAL_FONT_RES 38 +#define CAPS_DEVICE_FONT_SIM 39 +#define CAPS_LINEWIDTH_THICK 40 +#define CAPS_DEVICE_POLYSET_POINTS 41 + +#define CAPS_IO_DUMMY 1 +#define CAPS_IO_SUPPORTS_OP 2 +#define CAPS_IO_SUPPORTS_IP 3 +#define CAPS_IO_SUPPORTS_IO 4 + +#define CAPS_TECH_UNKNOWN 0 +#define CAPS_TECH_VECTOR_PLOTTER 1 +#define CAPS_TECH_RASTER_DISPLAY 2 +#define CAPS_TECH_RASTER_PRINTER 3 +#define CAPS_TECH_RASTER_CAMERA 4 +#define CAPS_TECH_POSTSCRIPT 5 + +#define CAPS_COLTABL_RGB_8 0x0001 +#define CAPS_COLTABL_RGB_8_PLUS 0x0002 +#define CAPS_COLTABL_TRUE_MIX 0x0004 +#define CAPS_COLTABL_REALIZE 0x0008 + +#define CAPS_FM_OR 0x0001 +#define CAPS_FM_OVERPAINT 0x0002 +#define CAPS_FM_XOR 0x0008 +#define CAPS_FM_LEAVEALONE 0x0010 +#define CAPS_FM_AND 0x0020 +#define CAPS_FM_GENERAL_BOOLEAN 0x0040 + +#define CAPS_BM_OR 0x0001 +#define CAPS_BM_OVERPAINT 0x0002 +#define CAPS_BM_XOR 0x0008 +#define CAPS_BM_LEAVEALONE 0x0010 +#define CAPS_BM_AND 0x0020 +#define CAPS_BM_GENERAL_BOOLEAN 0x0040 +#define CAPS_BM_SRCTRANSPARENT 0x0080 +#define CAPS_BM_DESTTRANSPARENT 0x0100 + +#define CAPS_DEV_WINDOWING_SUPPORT 0x0001 + +#define CAPS_DEV_FONT_SIM_BOLD 0x0001 +#define CAPS_DEV_FONT_SIM_ITALIC 0x0002 +#define CAPS_DEV_FONT_SIM_UNDERSCORE 0x0004 +#define CAPS_DEV_FONT_SIM_STRIKEOUT 0x0008 + +#define CAPS_VDD_DDB_TRANSFER 0x0001 +#define CAPS_GRAPHICS_KERNING_SUPPORT 0x0002 +#define CAPS_FONT_OUTLINE_DEFAULT 0x0004 +#define CAPS_FONT_IMAGE_DEFAULT 0x0008 +#define CAPS_SCALED_DEFAULT_MARKERS 0x0040 +#define CAPS_COLOR_CURSOR_SUPPORT 0x0080 +#define CAPS_PALETTE_MANAGER 0x0100 +#define CAPS_COSMETIC_WIDELINE_SUPPORT 0x0200 +#define CAPS_DIRECT_FILL 0x0400 +#define CAPS_REBUILD_FILLS 0x0800 +#define CAPS_CLIP_FILLS 0x1000 +#define CAPS_ENHANCED_FONTMETRICS 0x2000 +#define CAPS_TRANSFORM_SUPPORT 0x4000 +#define CAPS_EXTERNAL_16_BITCOUNT 0x8000 + +#define CAPS_BYTE_ALIGN_REQUIRED 0 +#define CAPS_BYTE_ALIGN_RECOMMENDED 1 +#define CAPS_BYTE_ALIGN_NOT_REQUIRED 2 + +#define CAPS_RASTER_BITBLT 0x0001 +#define CAPS_RASTER_BANDING 0x0002 +#define CAPS_RASTER_BITBLT_SCALING 0x0004 +#define CAPS_RASTER_SET_PEL 0x0010 +#define CAPS_RASTER_FONTS 0x0020 +#define CAPS_RASTER_FLOOD_FILL 0x0040 + +#define DEVESC_ERROR (-1) +#define DEVESC_NOTIMPLEMENTED 0 + +#define DEVESC_QUERYESCSUPPORT 0 +#define DEVESC_GETSCALINGFACTOR 1 +#define DEVESC_QUERYVIOCELLSIZES 2 +#define DEVESC_GETCP 8000 +#define DEVESC_STARTDOC 8150 +#define DEVESC_ENDDOC 8151 +#define DEVESC_NEXTBAND 8152 +#define DEVESC_ABORTDOC 8153 +#define DEVESC_GETJOBID 8160 +#define DEVESC_QUERY_RASTER 8161 +#define DEVESC_QUERYSIZE 8162 +#define DEVESC_QUERYJOBPROPERTIES 8163 +#define DEVESC_SETJOBPROPERTIES 8164 +#define DEVESC_DEFAULTJOBPROPERTIES 8165 +#define DEVESC_CHANGEOUTPUTPORT 8166 +#define DEVESC_NEWFRAME 16300 +#define DEVESC_DRAFTMODE 16301 +#define DEVESC_FLUSHOUTPUT 16302 +#define DEVESC_RAWDATA 16303 +#define DEVESC_SETMODE 16304 +#define DEVESC_SEP 16305 +#define DEVESC_MACRO 16307 +#define DEVESC_BEGIN_BITBLT 16309 +#define DEVESC_END_BITBLT 16310 +#define DEVESC_SEND_COMPDATA 16311 +#define DEVESC_DBE_FIRST 24450 +#define DEVESC_DBE_LAST 24455 +#define DEVESC_CHAR_EXTRA 16998 +#define DEVESC_BREAK_EXTRA 16999 +#define DEVESC_STD_JOURNAL 32600 +#define DEVESC_STARTDOC_WPROP 49150 +#define DEVESC_NEWFRAME_WPROP 49151 + +#define DPDM_ERROR (-1) +#define DPDM_NONE 0 + +#define DPDM_POSTJOBPROP 0 +#define DPDM_CHANGEPROP 1 +#define DPDM_QUERYJOBPROP 2 + +#define DQHC_ERROR (-1) + +#define HCAPS_CURRENT 1 +#define HCAPS_SELECTABLE 2 + + +typedef PSZ *PDEVOPENDATA; + + +typedef struct _DRIVDATA +{ + LONG cb; + LONG lVersion; + CHAR szDeviceName[32]; + CHAR abGeneralData[1]; +} DRIVDATA; +typedef DRIVDATA *PDRIVDATA; + +typedef struct _DEVOPENSTRUC +{ + PSZ pszLogAddress; + PSZ pszDriverName; + PDRIVDATA pdriv; + PSZ pszDataType; + PSZ pszComment; + PSZ pszQueueProcName; + PSZ pszQueueProcParams; + PSZ pszSpoolerParams; + PSZ pszNetworkParams; +} DEVOPENSTRUC; +typedef DEVOPENSTRUC *PDEVOPENSTRUC; + +typedef struct _ESCMODE +{ + ULONG mode; + BYTE modedata[1]; +} ESCMODE; +typedef ESCMODE *PESCMODE; + +typedef struct _VIOSIZECOUNT +{ + LONG maxcount; + LONG count; +} VIOSIZECOUNT; +typedef VIOSIZECOUNT *PVIOSIZECOUNT; + +typedef struct _VIOFONTCELLSIZE +{ + LONG cx; + LONG cy; +} VIOFONTCELLSIZE; +typedef VIOFONTCELLSIZE *PVIOFONTCELLSIZE; + +typedef struct _SFACTORS +{ + LONG x; + LONG y; +} SFACTORS; +typedef SFACTORS *PSFACTORS; + +typedef struct _BANDRECT +{ + LONG xleft; + LONG ybottom; + LONG xright; + LONG ytop; +} BANDRECT; +typedef BANDRECT *PBANDRECT; + +typedef struct _HCINFO +{ + CHAR szFormname[32]; + LONG cx; + LONG cy; + LONG xLeftClip; + LONG yBottomClip; + LONG xRightClip; + LONG yTopClip; + LONG xPels; + LONG yPels; + LONG flAttributes; +} HCINFO; +typedef HCINFO *PHCINFO; + +HMF DevCloseDC (HDC hdc); +LONG DevEscape (HDC hdc, LONG lCode, LONG lInCount, PBYTE pbInData, + PLONG plOutCount, PBYTE pbOutData); +HDC DevOpenDC (HAB hab, LONG lType, PCSZ pszToken, LONG lCount, + PDEVOPENDATA pdopData, HDC hdcComp); +LONG DevPostDeviceModes (HAB hab, PDRIVDATA pdrivDriverData , + PCSZ pszDriverName, PCSZ pszDeviceName, PCSZ pszName, ULONG flOptions); +BOOL DevQueryCaps (HDC hdc, LONG lStart, LONG lCount, PLONG alArray); +BOOL DevQueryDeviceNames (HAB hab, PCSZ pszDriverName, PLONG pldn, + PSTR32 aDeviceName, PSTR64 aDeviceDesc, PLONG pldt, PSTR16 aDataType); +LONG DevQueryHardcopyCaps (HDC hdc, LONG lStartForm, LONG lForms, + PHCINFO phciHcInfo); + +/* ------------------ PRESENTATION MANAGER SHELL -------------------------- */ + +#define MAXNAMEL 60 + +#define HINI_PROFILE (HINI)0 +#define HINI_USERPROFILE (HINI)(-1) +#define HINI_SYSTEMPROFILE (HINI)(-2) +#define HINI_USER HINI_USERPROFILE +#define HINI_SYSTEM HINI_SYSTEMPROFILE + +typedef LHANDLE HSWITCH; +typedef HSWITCH *PHSWITCH; + +typedef LHANDLE HPROGRAM; +typedef HPROGRAM *PHPROGRAM; + +typedef LHANDLE HINI; +typedef HINI *PHINI; + +typedef LHANDLE HAPP; + + +typedef struct _PRFPROFILE +{ + ULONG cchUserName; + PSZ pszUserName; + ULONG cchSysName; + PSZ pszSysName; +} PRFPROFILE; +typedef PRFPROFILE *PPRFPROFILE; + + +#if defined (INCL_WINPROGRAMLIST) + +#define MAXPATHL 128 +#define SGH_ROOT (HPROGRAM)(-1L) + +#define PROG_DEFAULT 0 +#define PROG_FULLSCREEN 1 +#define PROG_WINDOWABLEVIO 2 +#define PROG_PM 3 +#define PROG_GROUP 5 +#define PROG_REAL 4 +#define PROG_VDM 4 +#define PROG_WINDOWEDVDM 7 +#define PROG_DLL 6 +#define PROG_PDD 8 +#define PROG_VDD 9 +#define PROG_WINDOW_REAL 10 +#define PROG_WINDOW_PROT 11 +#define PROG_WINDOW_AUTO 12 +#define PROG_SEAMLESSVDM 13 +#define PROG_SEAMLESSCOMMON 14 +#define PROG_30_STDSEAMLESSCOMMON 14 +#define PROG_31_STDSEAMLESSVDM 15 +#define PROG_31_STDSEAMLESSCOMMON 16 +#define PROG_31_ENHSEAMLESSVDM 17 +#define PROG_31_ENHSEAMLESSCOMMON 18 +#define PROG_31_ENH 19 +#define PROG_31_STD 20 +#define PROG_DOS_GAME 21 +#define PROG_WIN_GAME 22 +#define PROG_DOS_MODE 23 +#define PROG_RESERVED 255 + +#define SAF_VALIDFLAGS 0x001f + +#define SAF_INSTALLEDCMDLINE 0x0001 +#define SAF_STARTCHILDAPP 0x0002 +#define SAF_MAXIMIZED 0x0004 +#define SAF_MINIMIZED 0x0008 +#define SAF_BACKGROUND 0x0010 + +#define SHE_VISIBLE 0x00 +#define SHE_INVISIBLE 0x01 +#define SHE_RESERVED 0xff + +#define SHE_UNPROTECTED 0x00 +#define SHE_PROTECTED 0x02 + + +typedef ULONG PROGCATEGORY; +typedef PROGCATEGORY *PPROGCATEGORY; + +typedef struct _HPROGARRAY +{ + HPROGRAM ahprog[1]; +} HPROGARRAY; +typedef HPROGARRAY *PHPROGARRAY; + +typedef struct _PROGTYPE +{ + PROGCATEGORY progc; + ULONG fbVisible; +} PROGTYPE; +typedef PROGTYPE *PPROGTYPE; + +typedef struct _PROGTITLE +{ + HPROGRAM hprog; + PROGTYPE progt; + PSZ pszTitle; +} PROGTITLE; +typedef PROGTITLE *PPROGTITLE; + +typedef struct _PROGDETAILS +{ + ULONG Length; + PROGTYPE progt; + PSZ pszTitle; + PSZ pszExecutable; + PSZ pszParameters; + PSZ pszStartupDir; + PSZ pszIcon; + PSZ pszEnvironment; + SWP swpInitial; +} PROGDETAILS; +typedef PROGDETAILS *PPROGDETAILS; + + +HPROGRAM PrfAddProgram (HINI hini, PPROGDETAILS pDetails, HPROGRAM hprogGroup); +BOOL PrfChangeProgram (HINI hini, HPROGRAM hprog, PPROGDETAILS pDetails); +HPROGRAM PrfCreateGroup (HINI hini, PCSZ pszTitle, UCHAR chVisibility); +BOOL PrfDestroyGroup (HINI hini, HPROGRAM hprogGroup); +PROGCATEGORY PrfQueryProgramCategory (HINI hini, PCSZ pszExe); +ULONG PrfQueryProgramHandle (HINI hini, PCSZ pszExe, + PHPROGARRAY phprogArray, ULONG cchBufferMax, PULONG pulCount); +ULONG PrfQueryProgramTitles (HINI hini, HPROGRAM hprogGroup, + PPROGTITLE pTitles, ULONG ulBufferLength, PULONG pulCount); +ULONG PrfQueryDefinition (HINI hini, HPROGRAM hprog, PPROGDETAILS pDetails, + ULONG ulBufferLength); +BOOL PrfRemoveProgram (HINI hini, HPROGRAM hprog); + +HAPP WinStartApp (HWND hwndNotify, PPROGDETAILS pDetails, + PCSZ pszParams, PVOID Reserved, ULONG fbOptions); +BOOL WinTerminateApp (HAPP happ); + +#endif /* INCL_WINPROGRAMLIST */ + + +#if defined (INCL_WINSWITCHLIST) || !defined (INCL_NOCOMMON) + +#define SWL_INVISIBLE 0x01 +#define SWL_GRAYED 0x02 +#define SWL_VISIBLE 0x04 + +#define SWL_NOTJUMPABLE 0x01 +#define SWL_JUMPABLE 0x02 + +typedef struct _SWCNTRL +{ + HWND hwnd; + HWND hwndIcon; + HPROGRAM hprog; + PID idProcess; + ULONG idSession; + ULONG uchVisibility; + ULONG fbJump; + CHAR szSwtitle[MAXNAMEL+4]; + ULONG bProgType; +} SWCNTRL; +typedef SWCNTRL *PSWCNTRL; + +HSWITCH WinAddSwitchEntry (__const__ SWCNTRL *pswctl); +ULONG WinRemoveSwitchEntry (HSWITCH hsw); + +#endif /* INCL_WINSWITCHLIST || !INCL_NOCOMMON */ + +#if defined (INCL_WINSWITCHLIST) + +typedef struct _SWENTRY +{ + HSWITCH hswitch; + SWCNTRL swctl; +} SWENTRY; +typedef SWENTRY *PSWENTRY; + +typedef struct _SWBLOCK +{ + ULONG cswentry; + SWENTRY aswentry[1]; +} SWBLOCK; +typedef SWBLOCK *PSWBLOCK; + + +ULONG WinChangeSwitchEntry (HSWITCH hsw, __const__ SWCNTRL *pswctl); +HSWITCH WinCreateSwitchEntry (HAB hab, __const__ SWCNTRL *pswctl); +ULONG WinQuerySessionTitle (HAB hab, ULONG usSession, PSZ pszTitle, + ULONG usTitlelen); +ULONG WinQuerySwitchEntry (HSWITCH hsw, PSWCNTRL pswctl); +HSWITCH WinQuerySwitchHandle (HWND hwnd, PID pid); +ULONG WinQuerySwitchList (HAB hab, PSWBLOCK pswblk, ULONG usDataLength); +ULONG WinQueryTaskSizePos (HAB hab, ULONG usScreenGroup, PSWP pswp); +ULONG WinQueryTaskTitle (ULONG usSession, PSZ pszTitle, ULONG usTitlelen); +ULONG WinSwitchToProgram (HSWITCH hsw); + +#endif /* INCL_WINSWITCHLIST */ + + +#if defined (INCL_WINSHELLDATA) + +#define PL_ALTERED 0x008e + +BOOL PrfCloseProfile (HINI hini); +HINI PrfOpenProfile (HAB hab, PCSZ pszFileName); +BOOL PrfQueryProfile (HAB hab, PPRFPROFILE pPrfProfile); +BOOL PrfQueryProfileData (HINI hini, PCSZ pszApp, PCSZ pszKey, PVOID pBuffer, + PULONG pulBufferLength); +LONG PrfQueryProfileInt (HINI hini, PCSZ pszApp, PCSZ pszKey, LONG sDefault); +BOOL PrfQueryProfileSize (HINI hini, PCSZ pszApp, PCSZ pszKey, + PULONG pulReqLen); +ULONG PrfQueryProfileString (HINI hini, PCSZ pszApp, PCSZ pszKey, + PCSZ pszDefault, PVOID pBuffer, ULONG ulBufferLength); +BOOL PrfReset (HAB hab, __const__ PRFPROFILE *pPrfProfile); +BOOL PrfWriteProfileData (HINI hini, PCSZ pszApp, PCSZ pszKey, + CPVOID pData, ULONG ulDataLength); +BOOL PrfWriteProfileString (HINI hini, PCSZ pszApp, PCSZ pszKey, + PCSZ pszData); + +#endif /* INCL_WINSHELLDATA */ + +/* ------------------ STANDARD DIALOGS: FILE ------------------------------ */ + +#if defined (INCL_WINSTDFILE) + +#define FDM_FILTER (WM_USER+40) +#define FDM_VALIDATE (WM_USER+41) +#define FDM_ERROR (WM_USER+42) + +#define DID_FILE_DIALOG 256 +#define DID_FILENAME_TXT 257 +#define DID_FILENAME_ED 258 +#define DID_DRIVE_TXT 259 +#define DID_DRIVE_CB 260 +#define DID_FILTER_TXT 261 +#define DID_FILTER_CB 262 +#define DID_DIRECTORY_TXT 263 +#define DID_DIRECTORY_LB 264 +#define DID_FILES_TXT 265 +#define DID_FILES_LB 266 +#define DID_HELP_PB 267 +#define DID_APPLY_PB 268 +#define DID_READ_ONLY 269 +#define DID_DIRECTORY_SELECTED 270 +#define DID_OK_PB DID_OK +#define DID_CANCEL_PB DID_CANCEL + +#define FDS_CENTER 0x00000001 +#define FDS_CUSTOM 0x00000002 +#define FDS_FILTERUNION 0x00000004 +#define FDS_HELPBUTTON 0x00000008 +#define FDS_APPLYBUTTON 0x00000010 +#define FDS_PRELOAD_VOLINFO 0x00000020 +#define FDS_MODELESS 0x00000040 +#define FDS_INCLUDE_EAS 0x00000080 +#define FDS_OPEN_DIALOG 0x00000100 +#define FDS_SAVEAS_DIALOG 0x00000200 +#define FDS_MULTIPLESEL 0x00000400 +#define FDS_ENABLEFILELB 0x00000800 +#define FDS_NATIONAL_LANGUAGE 0x80000000 + +#define FDS_EFSELECTION 0 +#define FDS_LBSELECTION 1 + +#define FDS_SUCCESSFUL 0 +#define FDS_ERR_DEALLOCATE_MEMORY 1 +#define FDS_ERR_FILTER_TRUNC 2 +#define FDS_ERR_INVALID_DIALOG 3 +#define FDS_ERR_INVALID_DRIVE 4 +#define FDS_ERR_INVALID_FILTER 5 +#define FDS_ERR_INVALID_PATHFILE 6 +#define FDS_ERR_OUT_OF_MEMORY 7 +#define FDS_ERR_PATH_TOO_LONG 8 +#define FDS_ERR_TOO_MANY_FILE_TYPES 9 +#define FDS_ERR_INVALID_VERSION 10 +#define FDS_ERR_INVALID_CUSTOM_HANDLE 11 +#define FDS_ERR_DIALOG_LOAD_ERROR 12 +#define FDS_ERR_DRIVE_ERROR 13 + +#define IDS_FILE_ALL_FILES_SELECTOR 1000 +#define IDS_FILE_BACK_CUR_PATH 1001 +#define IDS_FILE_BACK_PREV_PATH 1002 +#define IDS_FILE_BACK_SLASH 1003 +#define IDS_FILE_BASE_FILTER 1004 +#define IDS_FILE_BLANK 1005 +#define IDS_FILE_COLON 1006 +#define IDS_FILE_DOT 1007 +#define IDS_FILE_DRIVE_LETTERS 1008 +#define IDS_FILE_FWD_CUR_PATH 1009 +#define IDS_FILE_FWD_PREV_PATH 1010 +#define IDS_FILE_FORWARD_SLASH 1011 +#define IDS_FILE_PARENT_DIR 1012 +#define IDS_FILE_Q_MARK 1013 +#define IDS_FILE_SPLAT 1014 +#define IDS_FILE_SPLAT_DOT 1015 +#define IDS_FILE_SAVEAS_TITLE 1016 +#define IDS_FILE_SAVEAS_FILTER_TXT 1017 +#define IDS_FILE_SAVEAS_FILENM_TXT 1018 +#define IDS_FILE_DUMMY_FILE_NAME 1019 +#define IDS_FILE_DUMMY_FILE_EXT 1020 +#define IDS_FILE_DUMMY_DRIVE 1021 +#define IDS_FILE_DUMMY_ROOT_DIR 1022 +#define IDS_FILE_PATH_PTR 1023 +#define IDS_FILE_VOLUME_PREFIX 1024 +#define IDS_FILE_VOLUME_SUFFIX 1025 +#define IDS_FILE_PATH_PTR2 1026 +#define IDS_FILE_INVALID_CHARS 1027 +#define IDS_FILE_ETC_BACK_SLASH 1028 +#define IDS_FILE_OPEN_PARENTHESIS 1029 +#define IDS_FILE_CLOSE_PARENTHESIS 1030 +#define IDS_FILE_SEMICOLON 1031 +#define IDS_FILE_BAD_DRIVE_NAME 1100 +#define IDS_FILE_BAD_DRIVE_OR_PATH_NAME 1101 +#define IDS_FILE_BAD_FILE_NAME 1102 +#define IDS_FILE_BAD_FQF 1103 +#define IDS_FILE_BAD_NETWORK_NAME 1104 +#define IDS_FILE_BAD_SUB_DIR_NAME 1105 +#define IDS_FILE_DRIVE_NOT_AVAILABLE 1106 +#define IDS_FILE_FQFNAME_TOO_LONG 1107 +#define IDS_FILE_OPEN_DIALOG_NOTE 1108 +#define IDS_FILE_PATH_TOO_LONG 1109 +#define IDS_FILE_SAVEAS_DIALOG_NOTE 1110 +#define IDS_FILE_DRIVE_DISK_CHANGE 1120 +#define IDS_FILE_DRIVE_NOT_READY 1122 +#define IDS_FILE_DRIVE_LOCKED 1123 +#define IDS_FILE_DRIVE_NO_SECTOR 1124 +#define IDS_FILE_DRIVE_SOME_ERROR 1125 +#define IDS_FILE_DRIVE_INVALID 1126 +#define IDS_FILE_INSERT_DISK_NOTE 1127 +#define IDS_FILE_OK_WHEN_READY 1128 + +typedef PSZ APSZ[1]; +typedef APSZ *PAPSZ; + +typedef struct _FILEDLG +{ + ULONG cbSize; + ULONG fl; + ULONG ulUser; + LONG lReturn; + LONG lSRC; + PSZ pszTitle; + PSZ pszOKButton; + PFNWP pfnDlgProc; + PSZ pszIType; + PAPSZ papszITypeList; + PSZ pszIDrive; + PAPSZ papszIDriveList; + HMODULE hMod; + CHAR szFullFile[CCHMAXPATH]; + PAPSZ papszFQFilename; + ULONG ulFQFCount; + USHORT usDlgId; + SHORT x; + SHORT y; + SHORT sEAType; +} FILEDLG; +typedef FILEDLG *PFILEDLG; + + +MRESULT WinDefFileDlgProc (HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2); +HWND WinFileDlg (HWND hwndP, HWND hwndO, PFILEDLG pfild); +BOOL WinFreeFileDlgList (PAPSZ papszFQFilename); + +#endif /* INCL_WINSTDFILE */ + +/* ------------------ STANDARD DIALOGS: FONT ------------------------------ */ + +#if defined (INCL_WINSTDFONT) + +#define FNTM_FACENAMECHANGED (WM_USER+50) +#define FNTM_POINTSIZECHANGED (WM_USER+51) +#define FNTM_STYLECHANGED (WM_USER+52) +#define FNTM_COLORCHANGED (WM_USER+53) +#define FNTM_UPDATEPREVIEW (WM_USER+54) +#define FNTM_FILTERLIST (WM_USER+55) + +#define FNTS_CENTER 0x00000001 +#define FNTS_CUSTOM 0x00000002 +#define FNTS_OWNERDRAWPREVIEW 0x00000004 +#define FNTS_HELPBUTTON 0x00000008 +#define FNTS_APPLYBUTTON 0x00000010 +#define FNTS_RESETBUTTON 0x00000020 +#define FNTS_MODELESS 0x00000040 +#define FNTS_INITFROMFATTRS 0x00000080 +#define FNTS_BITMAPONLY 0x00000100 +#define FNTS_VECTORONLY 0x00000200 +#define FNTS_FIXEDWIDTHONLY 0x00000400 +#define FNTS_PROPORTIONALONLY 0x00000800 +#define FNTS_NOSYNTHESIZEDFONTS 0x00001000 +#define FNTS_NATIONAL_LANGUAGE 0x80000000 + +#define FNTF_NOVIEWSCREENFONTS 0x0001 +#define FNTF_NOVIEWPRINTERFONTS 0x0002 +#define FNTF_SCREENFONTSELECTED 0x0004 +#define FNTF_PRINTERFONTSELECTED 0x0008 + +#define CLRC_FOREGROUND 1 +#define CLRC_BACKGROUND 2 + +#define FNTI_BITMAPFONT 0x0001 +#define FNTI_VECTORFONT 0x0002 +#define FNTI_FIXEDWIDTHFONT 0x0004 +#define FNTI_PROPORTIONALFONT 0x0008 +#define FNTI_SYNTHESIZED 0x0010 +#define FNTI_DEFAULTLIST 0x0020 +#define FNTI_FAMILYNAME 0x0100 +#define FNTI_STYLENAME 0x0200 +#define FNTI_POINTSIZE 0x0400 + +#define FNTS_SUCCESSFUL 0 +#define FNTS_ERR_INVALID_DIALOG 3 +#define FNTS_ERR_ALLOC_SHARED_MEM 4 +#define FNTS_ERR_INVALID_PARM 5 +#define FNTS_ERR_OUT_OF_MEMORY 7 +#define FNTS_ERR_INVALID_VERSION 10 +#define FNTS_ERR_DIALOG_LOAD_ERROR 12 + +#define DID_FONT_DIALOG 300 +#define DID_NAME 301 +#define DID_STYLE 302 +#define DID_DISPLAY_FILTER 303 +#define DID_PRINTER_FILTER 304 +#define DID_SIZE 305 +#define DID_SAMPLE 306 +#define DID_OUTLINE 307 +#define DID_UNDERSCORE 308 +#define DID_STRIKEOUT 309 +#define DID_HELP_BUTTON 310 +#define DID_APPLY_BUTTON 311 +#define DID_RESET_BUTTON 312 +#define DID_OK_BUTTON DID_OK +#define DID_CANCEL_BUTTON DID_CANCEL +#define DID_NAME_PREFIX 313 +#define DID_STYLE_PREFIX 314 +#define DID_SIZE_PREFIX 315 +#define DID_SAMPLE_GROUPBOX 316 +#define DID_EMPHASIS_GROUPBOX 317 +#define DID_FONT_ISO_SUPPORT 318 +#define DID_FONT_ISO_UNTESTED 319 + +#define IDS_FONT_SAMPLE 350 +#define IDS_FONT_BLANK 351 +#define IDS_FONT_KEY_0 352 +#define IDS_FONT_KEY_9 353 +#define IDS_FONT_KEY_SEP 354 +#define IDS_FONT_DISP_ONLY 355 +#define IDS_FONT_PRINTER_ONLY 356 +#define IDS_FONT_COMBINED 357 +#define IDS_FONT_WEIGHT1 358 +#define IDS_FONT_WEIGHT2 359 +#define IDS_FONT_WEIGHT3 360 +#define IDS_FONT_WEIGHT4 361 +#define IDS_FONT_WEIGHT5 362 +#define IDS_FONT_WEIGHT6 363 +#define IDS_FONT_WEIGHT7 364 +#define IDS_FONT_WEIGHT8 365 +#define IDS_FONT_WEIGHT9 366 +#define IDS_FONT_WIDTH1 367 +#define IDS_FONT_WIDTH2 368 +#define IDS_FONT_WIDTH3 369 +#define IDS_FONT_WIDTH4 370 +#define IDS_FONT_WIDTH5 371 +#define IDS_FONT_WIDTH6 372 +#define IDS_FONT_WIDTH7 373 +#define IDS_FONT_WIDTH8 374 +#define IDS_FONT_WIDTH9 375 +#define IDS_FONT_OPTION0 376 +#define IDS_FONT_OPTION1 377 +#define IDS_FONT_OPTION2 378 +#define IDS_FONT_OPTION3 379 +#define IDS_FONT_POINT_SIZE_LIST 380 + +typedef struct _FONTDLG +{ + ULONG cbSize; + HPS hpsScreen; + HPS hpsPrinter; + PSZ pszTitle; + PSZ pszPreview; + PSZ pszPtSizeList; + PFNWP pfnDlgProc; + PSZ pszFamilyname; + FIXED fxPointSize; + ULONG fl; + ULONG flFlags; + ULONG flType; + ULONG flTypeMask; + ULONG flStyle; + ULONG flStyleMask; + LONG clrFore; + LONG clrBack; + ULONG ulUser; + LONG lReturn; + LONG lSRC; + LONG lEmHeight; + LONG lXHeight; + LONG lExternalLeading; + HMODULE hMod; + FATTRS fAttrs; + SHORT sNominalPointSize; + USHORT usWeight; + USHORT usWidth; + SHORT x; + SHORT y; + USHORT usDlgId; + USHORT usFamilyBufLen; + USHORT usReserved; +} FONTDLG; +typedef FONTDLG *PFONTDLG; + +typedef struct _STYLECHANGE +{ + USHORT usWeight; + USHORT usWeightOld; + USHORT usWidth; + USHORT usWidthOld; + ULONG flType; + ULONG flTypeOld; + ULONG flTypeMask; + ULONG flTypeMaskOld; + ULONG flStyle; + ULONG flStyleOld; + ULONG flStyleMask; + ULONG flStyleMaskOld; +} STYLECHANGE; +typedef STYLECHANGE *PSTYLECHANGE; + +HWND WinFontDlg (HWND hwndP, HWND hwndO, PFONTDLG pfntd); +MRESULT WinDefFontDlgProc (HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2); + +#endif /* INCL_WINSTDFONT */ + +/* -------------------------- SPIN BUTTON --------------------------------- */ + +#if defined (INCL_WINSTDSPIN) + +#define SPBS_ALLCHARACTERS 0x0000 +#define SPBS_NUMERICONLY 0x0001 +#define SPBS_READONLY 0x0002 +#define SPBS_SERVANT 0x0000 +#define SPBS_MASTER 0x0010 +#define SPBS_JUSTDEFAULT 0x0000 +#define SPBS_JUSTRIGHT 0x0004 +#define SPBS_JUSTLEFT 0x0008 +#define SPBS_JUSTCENTER 0x000c +#define SPBS_NOBORDER 0x0020 +#define SPBS_PADWITHZEROS 0x0080 +#define SPBS_FASTSPIN 0x0100 + +#define SPBM_OVERRIDESETLIMITS 0x0200 +#define SPBM_QUERYLIMITS 0x0201 +#define SPBM_SETTEXTLIMIT 0x0202 +#define SPBM_SPINUP 0x0203 +#define SPBM_SPINDOWN 0x0204 +#define SPBM_QUERYVALUE 0x0205 +#define SPBM_SETARRAY 0x0206 +#define SPBM_SETLIMITS 0x0207 +#define SPBM_SETCURRENTVALUE 0x0208 +#define SPBM_SETMASTER 0x0209 + +#define SPBN_UPARROW 0x020a +#define SPBN_DOWNARROW 0x020b +#define SPBN_ENDSPIN 0x020c +#define SPBN_CHANGE 0x020d +#define SPBN_SETFOCUS 0x020e +#define SPBN_KILLFOCUS 0x020f + +#define SPBQ_UPDATEIFVALID 0 +#define SPBQ_ALWAYSUPDATE 1 +#define SPBQ_DONOTUPDATE 3 + +#endif /* INCL_WINSTDSPIN */ + +/* ----------------------------- SLIDER ----------------------------------- */ + +#if defined (INCL_WINSTDSLIDER) + +#define SLM_ADDDETENT 0x0369 +#define SLM_QUERYDETENTPOS 0x036a +#define SLM_QUERYSCALETEXT 0x036b +#define SLM_QUERYSLIDERINFO 0x036c +#define SLM_QUERYTICKPOS 0x036d +#define SLM_QUERYTICKSIZE 0x036e +#define SLM_REMOVEDETENT 0x036f +#define SLM_SETSCALETEXT 0x0370 +#define SLM_SETSLIDERINFO 0x0371 +#define SLM_SETTICKSIZE 0x0372 + +#define SLN_CHANGE 1 +#define SLN_SLIDERTRACK 2 +#define SLN_SETFOCUS 3 +#define SLN_KILLFOCUS 4 + +#define SLS_HORIZONTAL 0x0000 +#define SLS_VERTICAL 0x0001 +#define SLS_CENTER 0x0000 +#define SLS_BOTTOM 0x0002 +#define SLS_TOP 0x0004 +#define SLS_LEFT 0x0002 +#define SLS_RIGHT 0x0004 +#define SLS_SNAPTOINCREMENT 0x0008 +#define SLS_BUTTONSBOTTOM 0x0010 +#define SLS_BUTTONSTOP 0x0020 +#define SLS_BUTTONSLEFT 0x0010 +#define SLS_BUTTONSRIGHT 0x0020 +#define SLS_OWNERDRAW 0x0040 +#define SLS_READONLY 0x0080 +#define SLS_RIBBONSTRIP 0x0100 +#define SLS_HOMEBOTTOM 0x0000 +#define SLS_HOMETOP 0x0200 +#define SLS_HOMELEFT 0x0000 +#define SLS_HOMERIGHT 0x0200 +#define SLS_PRIMARYSCALE1 0x0000 +#define SLS_PRIMARYSCALE2 0x0400 + +#define SMA_SCALE1 0x0001 +#define SMA_SCALE2 0x0002 +#define SMA_SHAFTDIMENSIONS 0x0000 +#define SMA_SHAFTPOSITION 0x0001 +#define SMA_SLIDERARMDIMENSIONS 0x0002 +#define SMA_SLIDERARMPOSITION 0x0003 +#define SMA_RANGEVALUE 0x0000 +#define SMA_INCREMENTVALUE 0x0001 +#define SMA_SETALLTICKS 0xffff + +#define SDA_RIBBONSTRIP 1 +#define SDA_SLIDERSHAFT 2 +#define SDA_BACKGROUND 3 +#define SDA_SLIDERARM 4 + +#define PMERR_UPDATE_IN_PROGRESS 0x1f06 +#define SLDERR_INVALID_PARAMETERS (-1) + + +typedef struct _SLDCDATA +{ + ULONG cbSize; + USHORT usScale1Increments; + USHORT usScale1Spacing; + USHORT usScale2Increments; + USHORT usScale2Spacing; +} SLDCDATA; +typedef SLDCDATA *PSLDCDATA; + +#endif /* INCL_WINSTDSLIDER */ + +/* ------------------------- CIRCULAR SLIDER ------------------------------ */ + +#if defined (INCL_WINCIRCULARSLIDER) + +#define CSM_QUERYRANGE 0x053d +#define CSM_SETRANGE 0x053e +#define CSM_QUERYVALUE 0x053f +#define CSM_SETVALUE 0x0540 +#define CSM_QUERYRADIUS 0x0541 +#define CSM_SETINCREMENT 0x0542 +#define CSM_QUERYINCREMENT 0x0543 +#define CSM_SETBITMAPDATA 0x0544 +#define CSN_SETFOCUS 0x0548 +#define CSN_CHANGED 0x0549 +#define CSN_TRACKING 0x054a +#define CSN_QUERYBACKGROUNDCOLOR 0x054b + +#define CSS_NOBUTTON 0x0001 +#define CSS_NOTEXT 0x0002 +#define CSS_NONUMBER 0x0004 +#define CSS_POINTSELECT 0x0008 +#define CSS_360 0x0010 +#define CSS_MIDPOINT 0x0020 +#define CSS_PROPORTIONALTICKS 0x0040 +#define CSS_NOTICKS 0x0080 +#define CSS_CIRCULARVALUE 0x0100 + +typedef struct _CSBITMAPDATA +{ + HBITMAP hbmLeftUp; + HBITMAP hbmLeftDown; + HBITMAP hbmRightUp; + HBITMAP hbmRightDown; +} CSBITMAPDATA; +typedef CSBITMAPDATA *PCSBITMAPDATA; + +#endif /* INCL_WINCIRCULARSLIDER */ + +/* ---------------------------- NOTEBOOK ---------------------------------- */ + +#if defined (INCL_WINSTDBOOK) + +#define BFA_PAGEDATA 0x0001 +#define BFA_PAGEFROMHWND 0x0002 +#define BFA_PAGEFROMDLGTEMPLATE 0x0004 +#define BFA_PAGEFROMDLGRES 0x0008 +#define BFA_STATUSLINE 0x0010 +#define BFA_MAJORTABBITMAP 0x0020 +#define BFA_MINORTABBITMAP 0x0040 +#define BFA_MAJORTABTEXT 0x0080 +#define BFA_MINORTABTEXT 0x0100 +#define BFA_BIDIINFO 0x0200 + +#define BKM_CALCPAGERECT 0x0353 +#define BKM_DELETEPAGE 0x0354 +#define BKM_INSERTPAGE 0x0355 +#define BKM_INVALIDATETABS 0x0356 +#define BKM_TURNTOPAGE 0x0357 +#define BKM_QUERYPAGECOUNT 0x0358 +#define BKM_QUERYPAGEID 0x0359 +#define BKM_QUERYPAGEDATA 0x035a +#define BKM_QUERYPAGEWINDOWHWND 0x035b +#define BKM_QUERYTABBITMAP 0x035c +#define BKM_QUERYTABTEXT 0x035d +#define BKM_SETDIMENSIONS 0x035e +#define BKM_SETPAGEDATA 0x035f +#define BKM_SETPAGEWINDOWHWND 0x0360 +#define BKM_SETSTATUSLINETEXT 0x0361 +#define BKM_SETTABBITMAP 0x0362 +#define BKM_SETTABTEXT 0x0363 +#define BKM_SETNOTEBOOKCOLORS 0x0364 +#define BKM_QUERYPAGESTYLE 0x0365 +#define BKM_QUERYSTATUSLINETEXT 0x0366 +#define BKM_SETPAGEINFO 0x0367 +#define BKM_QUERYPAGEINFO 0x0368 +#define BKM_SETTABCOLOR 0x0374 +#define BKM_SETNOTEBOOKBUTTONS 0x0375 + +#define BKN_PAGESELECTED 0x0082 +#define BKN_NEWPAGESIZE 0x0083 +#define BKN_HELP 0x0084 +#define BKN_PAGEDELETED 0x0085 +#define BKN_PAGESELECTEDPENDING 0x0086 + +#define BKA_ALL 0x0001 +#define BKA_SINGLE 0x0002 +#define BKA_TAB 0x0004 + +#define BKA_LAST 0x0002 +#define BKA_FIRST 0x0004 +#define BKA_NEXT 0x0008 +#define BKA_PREV 0x0010 +#define BKA_TOP 0x0020 + +#define BKA_MAJORTAB 0x0001 +#define BKA_MINORTAB 0x0002 +#define BKA_PAGEBUTTON 0x0100 + +#define BKA_STATUSTEXTON 0x0001 +#define BKA_MAJOR 0x0040 +#define BKA_MINOR 0x0080 +#define BKA_AUTOPAGESIZE 0x0100 +#define BKA_END 0x0200 + +#define BKA_TEXT 0x0400 +#define BKA_BITMAP 0x0800 + +#define BKA_AUTOCOLOR (-1) +#define BKA_MAXBUTTONID 7999 + +#define BKS_BACKPAGESBR 0x0001 +#define BKS_BACKPAGESBL 0x0002 +#define BKS_BACKPAGESTR 0x0004 +#define BKS_BACKPAGESTL 0x0008 + +#define BKS_MAJORTABRIGHT 0x0010 +#define BKS_MAJORTABLEFT 0x0020 +#define BKS_MAJORTABTOP 0x0040 +#define BKS_MAJORTABBOTTOM 0x0080 + +#define BKS_SQUARETABS 0x0000 +#define BKS_ROUNDEDTABS 0x0100 +#define BKS_POLYGONTABS 0x0200 + +#define BKS_SOLIDBIND 0x0000 +#define BKS_SPIRALBIND 0x0400 + +#define BKS_STATUSTEXTLEFT 0x0000 +#define BKS_STATUSTEXTRIGHT 0x1000 +#define BKS_STATUSTEXTCENTER 0x2000 + +#define BKS_TABTEXTLEFT 0x0000 +#define BKS_TABTEXTRIGHT 0x4000 +#define BKS_TABTEXTCENTER 0x8000 + +#define BKS_BUTTONAREA 0x0200 +#define BKS_TABBEDDIALOG 0x0800 + +#define BKA_BACKGROUNDPAGECOLORINDEX 0x0001 +#define BKA_BACKGROUNDPAGECOLOR 0x0002 +#define BKA_BACKGROUNDMAJORCOLORINDEX 0x0003 +#define BKA_BACKGROUNDMAJORCOLOR 0x0004 +#define BKA_BACKGROUNDMINORCOLORINDEX 0x0005 +#define BKA_BACKGROUNDMINORCOLOR 0x0006 +#define BKA_FOREGROUNDMAJORCOLORINDEX 0x0007 +#define BKA_FOREGROUNDMAJORCOLOR 0x0008 +#define BKA_FOREGROUNDMINORCOLORINDEX 0x0009 +#define BKA_FOREGROUNDMINORCOLOR 0x000a + +#define BOOKERR_INVALID_PARAMETERS (-1) + + +typedef struct _BOOKTEXT +{ + PSZ pString; + ULONG textLen; +} BOOKTEXT; +typedef BOOKTEXT *PBOOKTEXT; + +typedef struct _NOTEBOOKBUTTON +{ + PSZ pszText; + ULONG idButton; + LHANDLE hImage; + LONG flStyle; +} NOTEBOOKBUTTON; +typedef NOTEBOOKBUTTON *PNOTEBOOKBUTTON; + +typedef struct _DELETENOTIFY +{ + HWND hwndBook; + HWND hwndPage; + ULONG ulAppPageData; + HBITMAP hbmTab; +} DELETENOTIFY; +typedef DELETENOTIFY *PDELETENOTIFY; + +typedef struct _PAGESELECTNOTIFY +{ + HWND hwndBook; + ULONG ulPageIdCur; + ULONG ulPageIdNew; +} PAGESELECTNOTIFY; +typedef PAGESELECTNOTIFY *PPAGESELECTNOTIFY; + +typedef struct _BOOKPAGEINFO +{ + ULONG cb; + ULONG fl; + BOOL bLoadDlg; + ULONG ulPageData; + HWND hwndPage; + PFN pfnPageDlgProc; + ULONG idPageDlg; + HMODULE hmodPageDlg; + PVOID pPageDlgCreateParams; + PDLGTEMPLATE pdlgtPage; + ULONG cbStatusLine; + PSZ pszStatusLine; + HBITMAP hbmMajorTab; + HBITMAP hbmMinorTab; + ULONG cbMajorTab; + PSZ pszMajorTab; + ULONG cbMinorTab; + PSZ pszMinorTab; + PVOID pBidiInfo; +} BOOKPAGEINFO; +typedef BOOKPAGEINFO *PBOOKPAGEINFO; + +#endif /* INCL_WINSTDBOOK */ + +/* -------------------------- DRAG AND DROP ------------------------------- */ + +#if defined (INCL_WINSTDDRAG) + +#define PMERR_NOT_DRAGGING 0x1f00 +#define PMERR_ALREADY_DRAGGING 0x1f01 + +#define WM_DRAGFIRST 0x0310 +#define WM_DRAGLAST 0x032f + +#define DM_DROP 0x032f +#define DM_DRAGOVER 0x032e +#define DM_DRAGLEAVE 0x032d +#define DM_DROPHELP 0x032c +#define DM_ENDCONVERSATION 0x032b +#define DM_PRINT 0x032a +#define DM_RENDER 0x0329 +#define DM_RENDERCOMPLETE 0x0328 +#define DM_RENDERPREPARE 0x0327 +#define DM_DRAGFILECOMPLETE 0x0326 +#define DM_EMPHASIZETARGET 0x0325 +#define DM_DRAGERROR 0x0324 +#define DM_FILERENDERED 0x0323 +#define DM_RENDERFILE 0x0322 +#define DM_DRAGOVERNOTIFY 0x0321 +#define DM_PRINTOBJECT 0x0320 +#define DM_DISCARDOBJECT 0x031f +#define DM_DROPNOTIFY 0x031e + +#define MSGF_DRAG 0x0010 + +#define DC_OPEN 0x0001 +#define DC_REF 0x0002 +#define DC_GROUP 0x0004 +#define DC_CONTAINER 0x0008 +#define DC_PREPARE 0x0010 +#define DC_REMOVEABLEMEDIA 0x0020 + +#define DF_MOVE 0x0001 +#define DF_SOURCE 0x0002 +#define DF_SUCCESSFUL 0x0004 + +#define DFF_MOVE 1 +#define DFF_COPY 2 +#define DFF_DELETE 3 + +#define DGS_DRAGINPROGRESS 0x0001 +#define DGS_LAZYDRAGINPROGRESS 0x0002 + +#define DME_IGNOREABORT 1 +#define DME_IGNORECONTINUE 2 +#define DME_REPLACE 3 +#define DME_RETRY 4 + +#define DMFL_TARGETSUCCESSFUL 0x0001 +#define DMFL_TARGETFAIL 0x0002 +#define DMFL_NATIVERENDER 0x0004 +#define DMFL_RENDERRETRY 0x0008 +#define DMFL_RENDEROK 0x0010 +#define DMFL_RENDERFAIL 0x0020 + +#define DO_DEFAULT 0xbffe +#define DO_UNKNOWN 0xbfff +#define DO_COPYABLE 0x0001 +#define DO_MOVEABLE 0x0002 +#define DO_LINKABLE 0x0004 +#define DO_CREATEABLE 0x0008 +#define DO_CREATEPROGRAMOBJECTABLE 0x0010 + +#define DO_COPY 0x0010 +#define DO_MOVE 0x0020 +#define DO_LINK 0x0018 +#define DO_CREATE 0x0040 +#define DO_CREATEPROGRAMOBJECT 0x0080 + +#define DOR_NODROP 0x0000 +#define DOR_DROP 0x0001 +#define DOR_NODROPOP 0x0002 +#define DOR_NEVERDROP 0x0003 + +#define DRG_ICON 0x0001 +#define DRG_BITMAP 0x0002 +#define DRG_POLYGON 0x0004 +#define DRG_STRETCH 0x0008 +#define DRG_TRANSPARENT 0x0010 +#define DRG_CLOSED 0x0020 +#define DRG_MINIBITMAP 0x0040 + +#define DRR_SOURCE 1 +#define DRR_TARGET 2 +#define DRR_ABORT 3 + +#define DRT_ASM "Assembler Code" +#define DRT_BASIC "BASIC Code" +#define DRT_BINDATA "Binary Data" +#define DRT_BITMAP "Bitmap" +#define DRT_C "C Code" +#define DRT_COBOL "COBOL Code" +#define DRT_DLL "Dynamic Link Library" +#define DRT_DOSCMD "DOS Command File" +#define DRT_EXE "Executable" +#define DRT_FORTRAN "FORTRAN Code" +#define DRT_ICON "Icon" +#define DRT_LIB "Library" +#define DRT_METAFILE "Metafile" +#define DRT_OS2CMD "OS/2 Command File" +#define DRT_PASCAL "Pascal Code" +#define DRT_RESOURCE "Resource File" +#define DRT_TEXT "Plain Text" +#define DRT_UNKNOWN "Unknown" + +typedef LHANDLE HSTR; + +typedef struct _DRAGIMAGE +{ + USHORT cb; + USHORT cptl; + LHANDLE hImage; + SIZEL sizlStretch; + ULONG fl; + SHORT cxOffset; + SHORT cyOffset; +} DRAGIMAGE; +typedef DRAGIMAGE *PDRAGIMAGE; + +typedef struct _DRAGINFO +{ + ULONG cbDraginfo; + USHORT cbDragitem; + USHORT usOperation; + HWND hwndSource; + SHORT xDrop; + SHORT yDrop; + USHORT cditem; + USHORT usReserved; +} DRAGINFO; +typedef DRAGINFO *PDRAGINFO; + +typedef struct _DRAGITEM +{ + HWND hwndItem; + ULONG ulItemID; + HSTR hstrType; + HSTR hstrRMF; + HSTR hstrContainerName; + HSTR hstrSourceName; + HSTR hstrTargetName; + SHORT cxOffset; + SHORT cyOffset; + USHORT fsControl; + USHORT fsSupportedOps; +} DRAGITEM; +typedef DRAGITEM *PDRAGITEM; + +typedef struct _DRAGTRANSFER +{ + ULONG cb; + HWND hwndClient; + PDRAGITEM pditem; + HSTR hstrSelectedRMF; + HSTR hstrRenderToName; + ULONG ulTargetInfo; + USHORT usOperation; + USHORT fsReply; +} DRAGTRANSFER; +typedef DRAGTRANSFER *PDRAGTRANSFER; + +typedef struct _RENDERFILE +{ + HWND hwndDragFiles; + HSTR hstrSource; + HSTR hstrTarget; + USHORT fMove; + USHORT usRsvd; +} RENDERFILE; +typedef RENDERFILE *PRENDERFILE; + + +BOOL DrgAcceptDroppedFiles (HWND hwnd, PCSZ pszPath, PCSZ pszTypes, + ULONG ulDefaultOp, ULONG ulReserved); +BOOL DrgAccessDraginfo (PDRAGINFO pdinfo); +HSTR DrgAddStrHandle (PCSZ psz); +PDRAGINFO DrgAllocDraginfo (ULONG cDitem); +PDRAGTRANSFER DrgAllocDragtransfer (ULONG cdxfer); +BOOL DrgCancelLazyDrag (VOID); +BOOL DrgDeleteDraginfoStrHandles (PDRAGINFO pdinfo); +BOOL DrgDeleteStrHandle (HSTR hstr); +HWND DrgDrag (HWND hwndSource, PDRAGINFO pdinfo, PDRAGIMAGE pdimg, + ULONG cdimg, LONG vkTerminate, PVOID pReserved); +BOOL DrgDragFiles (HWND hwnd, PSZ *apszFiles, PSZ *apszTypes, PSZ *apszTargets, + ULONG cFiles, HPOINTER hptrDrag, ULONG vkTerm, BOOL fSourceRender, + ULONG ulReserved); +BOOL DrgFreeDraginfo (PDRAGINFO pdinfo); +BOOL DrgFreeDragtransfer (PDRAGTRANSFER pdxfer); +HPS DrgGetPS (HWND hwnd); +BOOL DrgLazyDrag (HWND hwndSource, PDRAGINFO pDraginfo, PDRAGIMAGE pdimg, + ULONG cdimg, PVOID pReserved); +BOOL DrgLazyDrop (HWND hwndTarget, ULONG ulOperation, PPOINTL pptlDrop); +BOOL DrgPostTransferMsg (HWND hwnd, ULONG msg, PDRAGTRANSFER pdxfer, ULONG fl, + ULONG ulReserved, BOOL fRetry); +BOOL DrgPushDraginfo (PDRAGINFO pdinfo, HWND hwndDest); +PDRAGINFO DrgQueryDraginfoPtr (PDRAGINFO pReserved); +PDRAGINFO DrgQueryDraginfoPtrFromHwnd (HWND hwndSource); +PDRAGINFO DrgQueryDraginfoPtrFromDragitem (__const__ DRAGITEM *pDragitem); +BOOL DrgQueryDragitem (PDRAGINFO pdinfo, ULONG cbBuffer, PDRAGITEM pditem, + ULONG iItem); +ULONG DrgQueryDragitemCount (PDRAGINFO pdinfo); +PDRAGITEM DrgQueryDragitemPtr (PDRAGINFO pdinfo, ULONG ulIndex); +ULONG DrgQueryDragStatus (VOID); +BOOL DrgQueryNativeRMF (PDRAGITEM pditem, ULONG cbBuffer, PCHAR pBuffer); +ULONG DrgQueryNativeRMFLen (PDRAGITEM pditem); +ULONG DrgQueryStrName (HSTR hstr, ULONG cbBuffer, PSZ pBuffer); +ULONG DrgQueryStrNameLen (HSTR hstr); +BOOL DrgQueryTrueType (PDRAGITEM pditem, ULONG cbBuffer, PSZ pBuffer); +ULONG DrgQueryTrueTypeLen (PDRAGITEM pditem); +PDRAGINFO DrgReallocDraginfo (PDRAGINFO pDraginfoOld, ULONG cditem); +BOOL DrgReleasePS (HPS hps); +MRESULT DrgSendTransferMsg (HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2); +BOOL DrgSetDragImage (PDRAGINFO pdinfo, PDRAGIMAGE pdimg, ULONG cdimg, + PVOID pReserved); +BOOL DrgSetDragitem (PDRAGINFO pdinfo, PDRAGITEM pditem, ULONG cbBuffer, + ULONG iItem); +BOOL DrgSetDragPointer (PDRAGINFO pdinfo, HPOINTER hptr); +BOOL DrgVerifyNativeRMF (PDRAGITEM pditem, PCSZ pszRMF); +BOOL DrgVerifyRMF (PDRAGITEM pditem, PCSZ pszMech, PCSZ pszFmt); +BOOL DrgVerifyTrueType (PDRAGITEM pditem, PCSZ pszType); +BOOL DrgVerifyType (PDRAGITEM pditem, PCSZ pszType); +BOOL DrgVerifyTypeSet (PDRAGITEM pditem, PCSZ pszType, ULONG cbMatch, + PSZ pszMatch); + +#endif /* INCL_WINSTDDRAG */ + +/* -------------------------- VALUE SET ----------------------------------- */ + +#if defined (INCL_WINSTDVALSET) + +#define VDA_ITEM 0x0001 +#define VDA_ITEMBACKGROUND 0x0002 +#define VDA_SURROUNDING 0x0003 +#define VDA_BACKGROUND 0x0004 + +#define VIA_BITMAP 0x0001 +#define VIA_ICON 0x0002 +#define VIA_TEXT 0x0004 +#define VIA_RGB 0x0008 +#define VIA_COLORINDEX 0x0010 +#define VIA_OWNERDRAW 0x0020 +#define VIA_DISABLED 0x0040 +#define VIA_DRAGGABLE 0x0080 +#define VIA_DROPONABLE 0x0100 + +#define VM_QUERYITEM 0x0375 +#define VM_QUERYITEMATTR 0x0376 +#define VM_QUERYMETRICS 0x0377 +#define VM_QUERYSELECTEDITEM 0x0378 +#define VM_SELECTITEM 0x0379 +#define VM_SETITEM 0x037a +#define VM_SETITEMATTR 0x037b +#define VM_SETMETRICS 0x037c + +#define VMA_ITEMSIZE 0x0001 +#define VMA_ITEMSPACING 0x0002 + +#define VN_SELECT 0x0078 +#define VN_ENTER 0x0079 +#define VN_DRAGLEAVE 0x007a +#define VN_DRAGOVER 0x007b +#define VN_DROP 0x007c +#define VN_DROPHELP 0x007d +#define VN_INITDRAG 0x007e +#define VN_SETFOCUS 0x007f +#define VN_KILLFOCUS 0x0080 +#define VN_HELP 0x0081 + +#define VS_BITMAP 0x0001 +#define VS_ICON 0x0002 +#define VS_TEXT 0x0004 +#define VS_RGB 0x0008 +#define VS_COLORINDEX 0x0010 +#define VS_BORDER 0x0020 +#define VS_ITEMBORDER 0x0040 +#define VS_SCALEBITMAPS 0x0080 +#define VS_RIGHTTOLEFT 0x0100 +#define VS_OWNERDRAW 0x0200 + +#define VSERR_INVALID_PARAMETERS (-1) + + +typedef struct _VSCDATA +{ + ULONG cbSize; + USHORT usRowCount; + USHORT usColumnCount; +} VSCDATA; +typedef VSCDATA *PVSCDATA; + +typedef struct _VSDRAGINIT +{ + HWND hwnd; + LONG x; + LONG y; + LONG cx; + LONG cy; + USHORT usRow; + USHORT usColumn; +} VSDRAGINIT; +typedef VSDRAGINIT *PVSDRAGINIT; + +typedef struct _VSDRAGINFO +{ + PDRAGINFO pDragInfo; + USHORT usRow; + USHORT usColumn; +} VSDRAGINFO; +typedef VSDRAGINFO *PVSDRAGINFO; + +typedef struct _VSTEXT +{ + PSZ pszItemText; + ULONG ulBufLen; +} VSTEXT; +typedef VSTEXT *PVSTEXT; + +#endif /* INCL_WINSTDVALSET */ + +/* ---------------------------- CONTAINER --------------------------------- */ + +#if defined (INCL_WINSTDCNR) + +#define CA_CONTAINERTITLE 0x00000200 +#define CA_TITLESEPARATOR 0x00000400 +#define CA_TITLELEFT 0x00000800 +#define CA_TITLERIGHT 0x00001000 +#define CA_TITLECENTER 0x00002000 +#define CA_OWNERDRAW 0x00004000 +#define CA_DETAILSVIEWTITLES 0x00008000 +#define CA_ORDEREDTARGETEMPH 0x00010000 +#define CA_DRAWBITMAP 0x00020000 +#define CA_DRAWICON 0x00040000 +#define CA_TITLEREADONLY 0x00080000 +#define CA_OWNERPAINTBACKGROUND 0x00100000 +#define CA_MIXEDTARGETEMPH 0x00200000 +#define CA_TREELINE 0x00400000 + +#define CCS_EXTENDSEL 0x0001 +#define CCS_MULTIPLESEL 0x0002 +#define CCS_SINGLESEL 0x0004 +#define CCS_AUTOPOSITION 0x0008 +#define CCS_VERIFYPOINTERS 0x0010 +#define CCS_READONLY 0x0020 +#define CCS_MINIRECORDCORE 0x0040 +#define CCS_MINIICONS 0x0800 +#define CCS_NOCONTROLPTR 0x1000 + +#define CFA_LEFT 0x00000001 +#define CFA_RIGHT 0x00000002 +#define CFA_CENTER 0x00000004 +#define CFA_TOP 0x00000008 +#define CFA_VCENTER 0x00000010 +#define CFA_BOTTOM 0x00000020 +#define CFA_INVISIBLE 0x00000040 +#define CFA_BITMAPORICON 0x00000100 +#define CFA_SEPARATOR 0x00000200 +#define CFA_HORZSEPARATOR 0x00000400 +#define CFA_STRING 0x00000800 +#define CFA_OWNER 0x00001000 +#define CFA_DATE 0x00002000 +#define CFA_TIME 0x00004000 +#define CFA_FIREADONLY 0x00008000 +#define CFA_FITITLEREADONLY 0x00010000 +#define CFA_ULONG 0x00020000 +#define CFA_RANGE 0x00040000 +#define CFA_NEWCOMP 0x00080000 +#define CFA_OBJECT 0x00100000 +#define CFA_LIST 0x00200000 +#define CFA_CLASS 0x00400000 +#define CFA_IGNORE 0x80000000 + +#define CID_LEFTCOLTITLEWND 0x7ff0 +#define CID_RIGHTCOLTITLEWND 0x7ff1 +#define CID_BLANKBOX 0x7ff2 +#define CID_HSCROLL 0x7ff3 +#define CID_RIGHTHSCROLL 0x7ff4 +#define CID_CNRTITLEWND 0x7ff5 +#define CID_LEFTDVWND 0x7ff7 +#define CID_RIGHTDVWND 0x7ff8 +#define CID_VSCROLL 0x7ff9 +#define CID_MLE 0x7ffa + +#define CM_ALLOCDETAILFIELDINFO 0x0330 +#define CM_ALLOCRECORD 0x0331 +#define CM_ARRANGE 0x0332 +#define CM_ERASERECORD 0x0333 +#define CM_FILTER 0x0334 +#define CM_FREEDETAILFIELDINFO 0x0335 +#define CM_FREERECORD 0x0336 +#define CM_HORZSCROLLSPLITWINDOW 0x0337 +#define CM_INSERTDETAILFIELDINFO 0x0338 +#define CM_INSERTRECORD 0x0339 +#define CM_INVALIDATEDETAILFIELDINFO 0x033a +#define CM_INVALIDATERECORD 0x033b +#define CM_PAINTBACKGROUND 0x033c +#define CM_QUERYCNRINFO 0x033d +#define CM_QUERYDETAILFIELDINFO 0x033e +#define CM_QUERYDRAGIMAGE 0x033f +#define CM_QUERYRECORD 0x0340 +#define CM_QUERYRECORDEMPHASIS 0x0341 +#define CM_QUERYRECORDFROMRECT 0x0342 +#define CM_QUERYRECORDRECT 0x0343 +#define CM_QUERYVIEWPORTRECT 0x0344 +#define CM_REMOVEDETAILFIELDINFO 0x0345 +#define CM_REMOVERECORD 0x0346 +#define CM_SCROLLWINDOW 0x0347 +#define CM_SEARCHSTRING 0x0348 +#define CM_SETCNRINFO 0x0349 +#define CM_SETRECORDEMPHASIS 0x034a +#define CM_SORTRECORD 0x034b +#define CM_OPENEDIT 0x034c +#define CM_CLOSEEDIT 0x034d +#define CM_COLLAPSETREE 0x034e +#define CM_EXPANDTREE 0x034f +#define CM_QUERYRECORDINFO 0x0350 +#define CM_INSERTRECORDARRAY 0x0351 +#define CM_MOVETREE 0x0352 +#define CM_SETTEXTVISIBILITY 0x0353 +#define CM_SETGRIDINFO 0x0354 +#define CM_QUERYGRIDINFO 0x0355 +#define CM_SNAPTOGRID 0x0356 + +#define CMA_TOP 0x0001 +#define CMA_BOTTOM 0x0002 +#define CMA_LEFT 0x0004 +#define CMA_RIGHT 0x0008 +#define CMA_PERIMETER 0x0010 +#define CMA_USER 0x0020 + +#define CMA_FIRST 0x0010 +#define CMA_LAST 0x0020 +#define CMA_END 0x0040 +#define CMA_PREV 0x0080 +#define CMA_NEXT 0x0100 + +#define CMA_HORIZONTAL 0x0200 +#define CMA_VERTICAL 0x0400 +#define CMA_ICON 0x0800 +#define CMA_TEXT 0x1000 +#define CMA_PARTIAL 0x2000 +#define CMA_COMPLETE 0x4000 + +#define CMA_PARENT 0x0001 +#define CMA_FIRSTCHILD 0x0002 +#define CMA_LASTCHILD 0x0004 + +#define CMA_CNRTITLE 0x0001 +#define CMA_DELTA 0x0002 +#define CMA_FLWINDOWATTR 0x0004 +#define CMA_LINESPACING 0x0008 +#define CMA_PFIELDINFOLAST 0x0010 + +#define CMA_PSORTRECORD 0x0020 +#define CMA_PTLORIGIN 0x0040 +#define CMA_SLBITMAPORICON 0x0080 +#define CMA_XVERTSPLITBAR 0x0100 +#define CMA_PFIELDINFOOBJECT 0x0200 + +#define CMA_TREEICON 0x0400 +#define CMA_TREEBITMAP 0x0800 +#define CMA_CXTREEINDENT 0x1000 +#define CMA_CXTREELINE 0x2000 +#define CMA_SLTREEBITMAPORICON 0x4000 + +#define CMA_ITEMORDER 0x0001 +#define CMA_WINDOW 0x0002 +#define CMA_WORKSPACE 0x0004 +#define CMA_ZORDER 0x0008 + +#define CMA_DELTATOP 0x0001 +#define CMA_DELTABOT 0x0002 +#define CMA_DELTAHOME 0x0004 +#define CMA_DELTAEND 0x0008 + +#define CMA_NOREPOSITION 0x0001 +#define CMA_REPOSITION 0x0002 +#define CMA_TEXTCHANGED 0x0004 +#define CMA_ERASE 0x0008 +#define CMA_NOTEXTCHANGED 0x0010 +#define CMA_FILTER 0x1000 + +#define CMA_FREE 0x0001 +#define CMA_INVALIDATE 0x0002 + +#define CMA_ARRANGESTANDARD 0x0000 +#define CMA_ARRANGEGRID 0x0001 +#define CMA_ARRANGESELECTED 0x0002 + +#define CMA_AVAIL 0x0001 +#define CMA_UNAVAIL 0x0002 + +#define CN_DRAGAFTER 0x0065 +#define CN_DRAGLEAVE 0x0066 +#define CN_DRAGOVER 0x0067 +#define CN_DROP 0x0068 +#define CN_DROPHELP 0x0069 +#define CN_ENTER 0x006a +#define CN_INITDRAG 0x006b +#define CN_EMPHASIS 0x006c +#define CN_KILLFOCUS 0x006d +#define CN_SCROLL 0x006e +#define CN_QUERYDELTA 0x006f +#define CN_SETFOCUS 0x0070 +#define CN_REALLOCPSZ 0x0071 +#define CN_BEGINEDIT 0x0072 +#define CN_ENDEDIT 0x0073 +#define CN_COLLAPSETREE 0x0074 +#define CN_EXPANDTREE 0x0075 +#define CN_HELP 0x0076 +#define CN_CONTEXTMENU 0x0077 +#define CN_VERIFYEDIT 0x0086 +#define CN_PICKUP 0x0087 +#define CN_DROPNOTIFY 0x0088 +#define CN_GRIDRESIZED 0x0089 + +#define CRA_SELECTED 0x00000001 +#define CRA_TARGET 0x00000002 +#define CRA_CURSORED 0x00000004 +#define CRA_INUSE 0x00000008 +#define CRA_FILTERED 0x00000010 +#define CRA_DROPONABLE 0x00000020 +#define CRA_RECORDREADONLY 0x00000040 +#define CRA_EXPANDED 0x00000080 +#define CRA_COLLAPSED 0x00000100 +#define CRA_PICKED 0x00000200 +#define CRA_LOCKED 0x00000400 +#define CRA_DISABLED 0x00001000 +#define CRA_SOURCE 0x00004000 +#define CRA_IGNORE 0x00008000 +#define CRA_OWNERFREE 0x00010000 +#define CRA_OWNERDRAW 0x00020000 + +#define CV_TEXT 0x00000001 +#define CV_NAME 0x00000002 +#define CV_ICON 0x00000004 +#define CV_DETAIL 0x00000008 +#define CV_FLOW 0x00000010 +#define CV_MINI 0x00000020 +#define CV_TREE 0x00000040 +#define CV_GRID 0x00000080 +#define CV_EXACTLENGTH 0x10000000 + +#define PMERR_NOFILTERED_ITEMS 0x1f02 +#define PMERR_COMPARISON_FAILED 0x1f03 +#define PMERR_RECORD_CURRENTLY_INSERTED 0x1f04 +#define PMERR_FI_CURRENTLY_INSERTED 0x1f05 + + +typedef struct _TREEITEMDESC +{ + HBITMAP hbmExpanded; + HBITMAP hbmCollapsed; + HPOINTER hptrExpanded; + HPOINTER hptrCollapsed; +} TREEITEMDESC; +typedef TREEITEMDESC *PTREEITEMDESC; + +typedef struct _FIELDINFO +{ + ULONG cb; + ULONG flData; + ULONG flTitle; + PVOID pTitleData; + ULONG offStruct; + PVOID pUserData; + struct _FIELDINFO *pNextFieldInfo; + ULONG cxWidth; +} FIELDINFO; +typedef FIELDINFO *PFIELDINFO; + +typedef struct _RECORDCORE +{ + ULONG cb; + ULONG flRecordAttr; + POINTL ptlIcon; + struct _RECORDCORE *preccNextRecord; + PSZ pszIcon; + HPOINTER hptrIcon; + HPOINTER hptrMiniIcon; + HBITMAP hbmBitmap; + HBITMAP hbmMiniBitmap; + PTREEITEMDESC pTreeItemDesc; + PSZ pszText; + PSZ pszName; + PSZ pszTree; +} RECORDCORE; +typedef RECORDCORE *PRECORDCORE; + +typedef struct _MINIRECORDCORE +{ + ULONG cb; + ULONG flRecordAttr; + POINTL ptlIcon; + struct _MINIRECORDCORE *preccNextRecord; + PSZ pszIcon; + HPOINTER hptrIcon; +} MINIRECORDCORE; +typedef MINIRECORDCORE *PMINIRECORDCORE; + +typedef struct _TREEMOVE +{ + PRECORDCORE preccMove; + PRECORDCORE preccNewParent; + PRECORDCORE pRecordOrder; + BOOL flMoveSiblings; +} TREEMOVE; +typedef TREEMOVE *PTREEMOVE; + +typedef struct _CNRINFO +{ + ULONG cb; + PVOID pSortRecord; + PFIELDINFO pFieldInfoLast; + PFIELDINFO pFieldInfoObject; + PSZ pszCnrTitle; + ULONG flWindowAttr; + POINTL ptlOrigin; + ULONG cDelta; + ULONG cRecords; + SIZEL slBitmapOrIcon; + SIZEL slTreeBitmapOrIcon; + HBITMAP hbmExpanded; + HBITMAP hbmCollapsed; + HPOINTER hptrExpanded; + HPOINTER hptrCollapsed; + LONG cyLineSpacing; + LONG cxTreeIndent; + LONG cxTreeLine; + ULONG cFields; + LONG xVertSplitbar; +} CNRINFO; +typedef CNRINFO *PCNRINFO; + +typedef struct _GRIDSQUARE +{ + ULONG ulNumber; + ULONG ulState; + RECTL rctlSquare; +} GRIDSQUARE; +typedef GRIDSQUARE *PGRIDSQUARE; + +typedef struct _GRIDINFO +{ + ULONG cb; + SHORT cxGrid; + SHORT cyGrid; + SHORT sGridRows; + SHORT sGridCols; + LONG cGridSquares; + PGRIDSQUARE pGrid; +} GRIDINFO; +typedef GRIDINFO *PGRIDINFO; + +typedef struct _CDATE +{ + UCHAR day; + UCHAR month; + USHORT year; +} CDATE; +typedef CDATE *PCDATE; + +typedef struct _CTIME +{ + UCHAR hours; + UCHAR minutes; + UCHAR seconds; + UCHAR ucReserved; +} CTIME; +typedef CTIME *PCTIME; + +typedef struct _CNRDRAGINIT +{ + HWND hwndCnr; + PRECORDCORE pRecord; + LONG x; + LONG y; + LONG cx; + LONG cy; +} CNRDRAGINIT; +typedef CNRDRAGINIT *PCNRDRAGINIT; + +typedef struct _FIELDINFOINSERT +{ + ULONG cb; + PFIELDINFO pFieldInfoOrder; + ULONG fInvalidateFieldInfo; + ULONG cFieldInfoInsert; +} FIELDINFOINSERT; +typedef FIELDINFOINSERT *PFIELDINFOINSERT; + +typedef struct _RECORDINSERT +{ + ULONG cb; + PRECORDCORE pRecordOrder; + PRECORDCORE pRecordParent; + ULONG fInvalidateRecord; + ULONG zOrder; + ULONG cRecordsInsert; +} RECORDINSERT; +typedef RECORDINSERT *PRECORDINSERT; + +typedef struct _QUERYRECFROMRECT +{ + ULONG cb; + RECTL rect; + ULONG fsSearch; +} QUERYRECFROMRECT; +typedef QUERYRECFROMRECT *PQUERYRECFROMRECT; + +typedef struct _QUERYRECORDRECT +{ + ULONG cb; + PRECORDCORE pRecord; + ULONG fRightSplitWindow; + ULONG fsExtent; +} QUERYRECORDRECT; +typedef QUERYRECORDRECT *PQUERYRECORDRECT; + +typedef struct _SEARCHSTRING +{ + ULONG cb; + PSZ pszSearch; + ULONG fsPrefix; + ULONG fsCaseSensitive; + ULONG usView; +} SEARCHSTRING; +typedef SEARCHSTRING *PSEARCHSTRING; + +typedef struct _CNRDRAGINFO +{ + PDRAGINFO pDragInfo; + PRECORDCORE pRecord; +} CNRDRAGINFO; +typedef CNRDRAGINFO *PCNRDRAGINFO; + +typedef struct _CNRLAZYDRAGINFO +{ + PDRAGINFO pDragInfo; + PRECORDCORE pRecord; + HWND hwndTarget; +} CNRLAZYDRAGINFO; +typedef CNRLAZYDRAGINFO *PCNRLAZYDRAGINFO; + +typedef struct _NOTIFYRECORDEMPHASIS +{ + HWND hwndCnr; + PRECORDCORE pRecord; + ULONG fEmphasisMask; +} NOTIFYRECORDEMPHASIS; +typedef NOTIFYRECORDEMPHASIS *PNOTIFYRECORDEMPHASIS; + +typedef struct _NOTIFYRECORDENTER +{ + HWND hwndCnr; + ULONG fKey; + PRECORDCORE pRecord; +} NOTIFYRECORDENTER; +typedef NOTIFYRECORDENTER *PNOTIFYRECORDENTER; + +typedef struct _NOTIFYDELTA +{ + HWND hwndCnr; + ULONG fDelta; +} NOTIFYDELTA; +typedef NOTIFYDELTA *PNOTIFYDELTA; + +typedef struct _NOTIFYSCROLL +{ + HWND hwndCnr; + LONG lScrollInc; + ULONG fScroll; +} NOTIFYSCROLL; +typedef NOTIFYSCROLL *PNOTIFYSCROLL; + +typedef struct _CNREDITDATA +{ + ULONG cb; + HWND hwndCnr; + PRECORDCORE pRecord; + PFIELDINFO pFieldInfo; + PSZ *ppszText; + ULONG cbText; + ULONG id; +} CNREDITDATA; +typedef CNREDITDATA *PCNREDITDATA; + +typedef struct _OWNERBACKGROUND +{ + HWND hwnd; + HPS hps; + RECTL rclBackground; + LONG idWindow; +} OWNERBACKGROUND; +typedef OWNERBACKGROUND *POWNERBACKGROUND; + +typedef struct _CNRDRAWITEMINFO +{ + PRECORDCORE pRecord; + PFIELDINFO pFieldInfo; +} CNRDRAWITEMINFO; +typedef CNRDRAWITEMINFO *PCNRDRAWITEMINFO; + +#endif /* INCL_WINSTDCNR */ + +/* ------------------------- WORKPLACE SHELL ------------------------------ */ + +#if defined (INCL_WPCLASS) || !defined (INCL_NOCOMMON) + +#define CCHMAXCLASS 3 + +#define QC_First 0 +#define QC_Next 1 +#define QC_Last 2 +#define QC_FIRST QC_First +#define QC_NEXT QC_Next +#define QC_LAST QC_Last + +#define CO_FAILIFEXISTS 0 +#define CO_REPLACEIFEXISTS 1 +#define CO_UPDATEIFEXISTS 2 + +#if !defined (LOCATION_DESKTOP) +#define LOCATION_DESKTOP ((PSZ)0xffff0001) +#endif + +typedef struct _OBJCLASS +{ + struct _OBJCLASS *pNext; + PSZ pszClassName; + PSZ pszModName; +} OBJCLASS; +typedef OBJCLASS *POBJCLASS; + +HOBJECT WinCopyObject (HOBJECT hObjectofObject, HOBJECT hObjectofDest, + ULONG ulReserved); +HOBJECT WinCreateObject (PCSZ pszClassName, PCSZ pszTitle, PCSZ pszSetupString, + PCSZ pszLocation, ULONG ulFlags); +HOBJECT WinCreateShadow (HOBJECT hObjectofObject, HOBJECT hObjectofDest, + ULONG ulReserved); +BOOL WinDeregisterObjectClass (PCSZ pszClassName); +BOOL WinDestroyObject (HOBJECT hObject); +BOOL WinEnumObjectClasses (POBJCLASS pObjClass, PULONG pulSize); +BOOL WinIsSOMDDReady (VOID); +BOOL WinIsWPDServerReady (VOID); +HOBJECT WinMoveObject (HOBJECT hObjectofObject, HOBJECT hObjectofDest, + ULONG ulReserved); +BOOL WinOpenObject (HOBJECT hObject, ULONG ulView, BOOL fFlag); +BOOL WinQueryActiveDesktopPathname (PSZ pszPathName, ULONG ulSize); +HOBJECT WinQueryObject (PCSZ pszObjectID); +BOOL WinQueryObjectPath (HOBJECT hobject, PSZ pszPathName, ULONG ulSize); +BOOL WinRegisterObjectClass (PCSZ pszClassName, PCSZ pszModName); +BOOL WinReplaceObjectClass (PCSZ pszOldClassName, PCSZ pszNewClassName, + BOOL fReplace); +ULONG WinRestartSOMDD (BOOL fState); +ULONG WinRestartWPDServer (BOOL fState); +BOOL WinSaveObject (HOBJECT hObject, BOOL fAsync); +BOOL WinSetObjectData (HOBJECT hObject, PCSZ pszSetupString); + +#endif /* INCL_WPCLASS || !INCL_NOCOMMON */ + +#if !defined (INCL_NOCOMMON) + +BOOL WinFreeFileIcon (HPOINTER hptr); +HPOINTER WinLoadFileIcon (PCSZ pszFileName, BOOL fPrivate); +BOOL WinRestoreWindowPos (PCSZ pszAppName, PCSZ pszKeyName, HWND hwnd); +#if defined (INCL_WINPOINTERS) +BOOL WinSetFileIcon (PCSZ pszFileName, __const__ ICONINFO *pIconInfo); +#endif +BOOL WinShutdownSystem (HAB hab, HMQ hmq); +BOOL WinStoreWindowPos (PCSZ pszAppName, PCSZ pszKeyName, HWND hwnd); + +#endif /* !INCL_NOCOMMON */ + +/* ---------------------------- SPOOLER ----------------------------------- */ + +#if defined (INCL_SPL) + +#define SPL_ERROR 0 +#define SPL_OK 1 + +#define SPL_INI_SPOOLER "PM_SPOOLER" +#define SPL_INI_QUEUE "PM_SPOOLER_QUEUE" +#define SPL_INI_PRINTER "PM_SPOOLER_PRINTER" +#define SPL_INI_PRINTERDESCR "PM_SPOOLER_PRINTER_DESCR" +#define SPL_INI_QUEUEDESCR "PM_SPOOLER_QUEUE_DESCR" +#define SPL_INI_QUEUEDD "PM_SPOOLER_QUEUE_DD" +#define SPL_INI_QUEUEDDDATA "PM_SPOOLER_QUEUE_DDDATA" + +#define SPLC_ABORT 1 +#define SPLC_PAUSE 2 +#define SPLC_CONTINUE 3 + +#define SPLDATA_PRINTERJAM 0x0001 +#define SPLDATA_FORMCHGREQD 0x0002 +#define SPLDATA_CARTCHGREQD 0x0004 +#define SPLDATA_PENCHGREQD 0x0008 +#define SPLDATA_DATAERROR 0x0010 +#define SPLDATA_UNEXPECTERROR 0x0020 +#define SPLDATA_OTHER 0x8000 + +#define SPLINFO_QPERROR 0x0001 +#define SPLINFO_DDERROR 0x0002 +#define SPLINFO_SPLERROR 0x0004 +#define SPLINFO_OTHERERROR 0x0080 +#define SPLINFO_INFORMATION 0x0100 +#define SPLINFO_WARNING 0x0200 +#define SPLINFO_ERROR 0x0400 +#define SPLINFO_SEVERE 0x0800 +#define SPLINFO_USERINTREQD 0x1000 + +#define SPLPORT_VERSION_REGULAR 0 +#define SPLPORT_VERSION_VIRTUAL 1 + +#define SSQL_ERROR (-1) + +#define QP_RAWDATA_BYPASS 0x0001 +#define QP_PRINT_SEPARATOR_PAGE 0x0002 + +#define QPDAT_ADDRESS 0 +#define QPDAT_DRIVER_NAME 1 +#define QPDAT_DRIVER_DATA 2 +#define QPDAT_DATA_TYPE 3 +#define QPDAT_COMMENT 4 +#define QPDAT_PROC_PARAMS 5 +#define QPDAT_SPL_PARAMS 6 +#define QPDAT_NET_PARAMS 7 +#define QPDAT_DOC_NAME 8 +#define QPDAT_QUEUE_NAME 9 +#define QPDAT_TOKEN 10 +#define QPDAT_JOBID 11 + +typedef LHANDLE HSPL; +typedef LHANDLE HSTD; +typedef HSTD *PHSTD; +typedef PSZ *PQMOPENDATA; +typedef unsigned long SPLERR; + +typedef struct _SQPOPENDATA +{ + PSZ pszLogAddress; + PSZ pszDriverName; + PDRIVDATA pdriv; + PSZ pszDataType; + PSZ pszComment; + PSZ pszProcParams; + PSZ pszSpoolParams; + PSZ pszNetworkParams; + PSZ pszDocName; + PSZ pszQueueName; + PSZ pszToken; + USHORT idJobId; +} SQPOPENDATA; +typedef SQPOPENDATA *PSQPOPENDATA; + + +BOOL SplStdClose (HDC hdc); +BOOL SplStdDelete (HSTD hMetaFile); +BOOL SplStdGetBits (HSTD hMetaFile, LONG offData, LONG cbData, PCH pchData); +BOOL SplStdOpen (HDC hdc); +LONG SplStdQueryLength (HSTD hMetaFile); +BOOL SplStdStart (HDC hdc); +HSTD SplStdStop (HDC hdc); + +SPLERR SplControlDevice (PSZ pszComputerName, PSZ pszPortName, + ULONG ulControl); +SPLERR SplCopyJob (PCSZ pszSrcComputerName, PCSZ pszSrcQueueName, + ULONG ulSrcJob, PCSZ pszTrgComputerName, PCSZ pszTrgQueueName, + PULONG pulTrgJob); +SPLERR SplCreateDevice (PSZ pszComputerName, ULONG ulLevel, PVOID pBuf, + ULONG cbBuf); +SPLERR SplCreatePort (PCSZ pszComputerName, PCSZ pszPortName, + PCSZ pszPortDriver, ULONG ulVersion, PVOID pBuf, ULONG cbBuf); +SPLERR SplCreateQueue (PSZ pszComputerName, ULONG ulLevel, PVOID pBuf, + ULONG cbBuf); +SPLERR SplDeleteDevice (PSZ pszComputerName, PSZ pszPrintDeviceName); +SPLERR SplDeleteJob (PSZ pszComputerName, PSZ pszQueueName, ULONG ulJob); +SPLERR SplDeletePort (PCSZ pszComputerName, PCSZ pszPortName); +SPLERR SplDeleteQueue (PSZ pszComputerName, PSZ pszQueueName); +SPLERR SplEnumDevice (PSZ pszComputerName, ULONG ulLevel, PVOID pBuf, + ULONG cbBuf, PULONG pcReturned, PULONG pcTotal, PULONG pcbNeeded, + PVOID pReserved); +SPLERR SplEnumDriver (PSZ pszComputerName, ULONG ulLevel, PVOID pBuf, + ULONG cbBuf, PULONG pcReturned, PULONG pcTotal, PULONG pcbNeeded, + PVOID pReserved); +SPLERR SplEnumJob (PSZ pszComputerName, PSZ pszQueueName, ULONG ulLevel, + PVOID pBuf, ULONG cbBuf, PULONG pcReturned, PULONG pcTotal, + PULONG pcbNeeded, PVOID pReserved); +SPLERR SplEnumPort (PCSZ pszComputerName, ULONG ulLevel, PVOID pBuf, + ULONG cbBuf, PULONG pcReturned, PULONG pcTotal, PULONG pcbNeeded, + PVOID pReserved); +SPLERR SplEnumPrinter (PSZ pszComputerName, ULONG uLevel, ULONG flType, + PVOID pBuf, ULONG cbbuf, PULONG pcReturned, PULONG pcTotal, + PULONG pcbNeeded, PVOID pReserved); +SPLERR SplEnumQueue (PSZ pszComputerName, ULONG ulLevel, PVOID pBuf, + ULONG cbBuf, PULONG pcReturned, PULONG pcTotal, PULONG pcbNeeded, + PVOID pReserved); +SPLERR SplEnumQueueProcessor (PSZ pszComputerName, ULONG ulLevel, PVOID pBuf, + ULONG cbBuf, PULONG pcReturned, PULONG pcTotal, PULONG pcbNeeded, + PVOID pReserved); +SPLERR SplHoldJob (PCSZ pszComputerName, PCSZ pszQueueName, ULONG ulJob); +SPLERR SplHoldQueue (PSZ pszComputerName, PSZ pszQueueName); +SPLERR SplPurgeQueue (PSZ pszComputerName, PSZ pszQueueName); +SPLERR SplQueryDevice (PSZ pszComputerName, PSZ pszPrintDeviceName, + ULONG ulLevel, PVOID pBuf, ULONG cbBuf, PULONG pcbNeeded); +SPLERR SplQueryDriver (PCSZ pszComputerName, PCSZ pszDriverName, + PCSZ pszPrinterName, ULONG ulLevel, PVOID pBuf, ULONG cbBuf, + PULONG pcbNeeded); +SPLERR SplQueryJob (PSZ pszComputerName, PSZ pszQueueName, ULONG ulJob, + ULONG ulLevel, PVOID pBuf, ULONG cbBuf, PULONG pcbNeeded); +SPLERR SplQueryPort (PCSZ pszComputerName, PCSZ pszPortName, ULONG ulLevel, + PVOID pBuf, ULONG cbBuf, PULONG pcbNeeded); +SPLERR SplQueryQueue (PSZ pszComputerName, PSZ pszQueueName, ULONG ulLevel, + PVOID pBuf, ULONG cbBuf, PULONG pcbNeeded); +SPLERR SplReleaseJob (PCSZ pszComputerName, PCSZ pszQueueName, ULONG ulJob); +SPLERR SplReleaseQueue (PSZ pszComputerName, PSZ pszQueueName); +SPLERR SplSetDevice (PSZ pszComputerName, PSZ pszPrintDeviceName, + ULONG ulLevel, PVOID pBuf, ULONG cbBuf, ULONG ulParmNum); +SPLERR SplSetDriver (PCSZ pszComputerName, PCSZ pszDriverName, + PCSZ pszPrinterName, ULONG ulLevel, PVOID pBuf, ULONG cbBuf, + ULONG ulParmNum); +SPLERR SplSetJob (PSZ pszComputerName, PSZ pszQueueName, ULONG ulJob, + ULONG ulLevel, PVOID pBuf, ULONG cbBuf, ULONG ulParmNum); +SPLERR SplSetPort (PCSZ pszComputerName, PCSZ pszPortName, ULONG ulLevel, + PVOID pBuf, ULONG cbBuf, ULONG ulParmNum); +SPLERR SplSetQueue (PSZ pszComputerName, PSZ pszQueueName, ULONG ulLevel, + PVOID pBuf, ULONG cbBuf, ULONG ulParmNum); + +ULONG SplMessageBox (PSZ pszLogAddr, ULONG fErrInfo, ULONG fErrData, + PSZ pszText, PSZ pszCaption, ULONG idWindow, ULONG fStyle); +BOOL SplQmAbort (HSPL hspl); +BOOL SplQmAbortDoc (HSPL hspl); +BOOL SplQmClose (HSPL hspl); +BOOL SplQmEndDoc (HSPL hspl); +ULONG SplQmGetJobID (HSPL hspl, ULONG ulLevel, PVOID pBuf, ULONG cbBuf, + PULONG pcbNeeded); +BOOL SplQmNewPage (HSPL hspl, ULONG ulPageNumber); +HSPL SplQmOpen (PSZ pszToken, LONG lCount, PQMOPENDATA pqmdopData); +BOOL SplQmStartDoc (HSPL hspl, PSZ pszDocName); +BOOL SplQmWrite (HSPL hspl, LONG lCount, PVOID pData); + +#if defined (INCL_SPLDOSPRINT) + +#define CNLEN 15 +#define DTLEN 9 +#define PDLEN 8 +#define QNLEN 12 +#define UNLEN 20 + +#define DRIV_DEVICENAME_SIZE 31 +#define DRIV_NAME_SIZE 8 +#define FORMNAME_SIZE 31 +#define MAXCOMMENTSZ 48 +#define PRINTERNAME_SIZE 32 +#define QP_DATATYPE_SIZE 15 + +#define PRD_STATUS_MASK 0x0003 +#define PRD_DEVSTATUS 0x0ffc + +#define PRD_ACTIVE 0 +#define PRD_PAUSED 1 + +#define PRD_DELETE 0 +#define PRD_PAUSE 1 +#define PRD_CONT 2 +#define PRD_RESTART 3 + +#define PRD_LOGADDR_PARMNUM 3 +#define PRD_COMMENT_PARMNUM 7 +#define PRD_DRIVERS_PARMNUM 8 +#define PRD_TIMEOUT_PARMNUM 10 + +#define PRJ_NOTIFYNAME_PARMNUM 3 +#define PRJ_DATATYPE_PARMNUM 4 +#define PRJ_PARMS_PARMNUM 5 +#define PRJ_POSITION_PARMNUM 6 +#define PRJ_JOBFILEINUSE_PARMNUM 7 +#define PRJ_COMMENT_PARMNUM 11 +#define PRJ_DOCUMENT_PARMNUM 12 +#define PRJ_STATUSCOMMENT_PARMNUM 13 +#define PRJ_PRIORITY_PARMNUM 14 +#define PRJ_PROCPARMS_PARMNUM 16 +#define PRJ_DRIVERDATA_PARMNUM 18 +#define PRJ_SPOOLFILENAME_PARMNUM 19 +#define PRJ_PAGESSPOOLED_PARMNUM 20 +#define PRJ_PAGESSENT_PARMNUM 21 +#define PRJ_PAGESPRINTED_PARMNUM 22 +#define PRJ_TIMEPRINTED_PARMNUM 23 +#define PRJ_EXTENDSTATUS_PARMNUM 24 +#define PRJ_STARTPAGE_PARMNUM 25 +#define PRJ_ENDPAGE_PARMNUM 26 +#define PRJ_MAXPARMNUM 26 + +#define PRJ_QSTATUS 0x0003 +#define PRJ_DEVSTATUS 0x0ffc + +#define PRJ_COMPLETE 0x0004 +#define PRJ_INTERV 0x0008 +#define PRJ_ERROR 0x0010 +#define PRJ_DESTOFFLINE 0x0020 +#define PRJ_DESTPAUSED 0x0040 +#define PRJ_NOTIFY 0x0080 +#define PRJ_DESTNOPAPER 0x0100 +#define PRJ_DESTFORMCHG 0x0200 +#define PRJ_DESTCRTCHG 0x0400 +#define PRJ_DESTPENCHG 0x0800 +#define PRJ_JOBFILEINUSE 0x4000 +#define PRJ_DELETED 0x8000 + +#define PRJ_QS_QUEUED 0 +#define PRJ_QS_PAUSED 1 +#define PRJ_QS_SPOOLING 2 +#define PRJ_QS_PRINTING 3 + +#define PRJ_MAX_PRIORITY 99 +#define PRJ_MIN_PRIORITY 1 +#define PRJ_NO_PRIORITY 0 + +#define PRJ4_INPRINTER 0x0001 +#define PRJ4_STACKED 0x0002 +#define PRJ4_HELDINPRINTER 0x0004 +#define PRJ4_JOBSTARTED 0x0008 + +#define PRPO_PORT_DRIVER 1 +#define PRPO_PROTOCOL_CNV 2 +#define PRPO_MODE 3 +#define PRPO_PRIORITY 4 + +#define PRPORT_AUTODETECT 1 +#define PRPORT_DISABLE_BIDI 2 +#define PRPORT_ENABLE_BIDI 3 + +#define PRQ_PRIORITY_PARMNUM 2 +#define PRQ_STARTTIME_PARMNUM 3 +#define PRQ_UNTILTIME_PARMNUM 4 +#define PRQ_SEPARATOR_PARMNUM 5 +#define PRQ_PROCESSOR_PARMNUM 6 +#define PRQ_DESTINATIONS_PARMNUM 7 +#define PRQ_PARMS_PARMNUM 8 +#define PRQ_COMMENT_PARMNUM 9 +#define PRQ_TYPE_PARMNUM 10 +#define PRQ_PRINTERS_PARMNUM 12 +#define PRQ_DRIVERNAME_PARMNUM 13 +#define PRQ_DRIVERDATA_PARMNUM 14 +#define PRQ_REMOTE_COMPUTER_PARMNUM 15 +#define PRQ_REMOTE_QUEUE_PARMNUM 16 +#define PRQ_MAXPARMNUM 16 + +#define PRQ_MAX_PRIORITY 1 +#define PRQ_DEF_PRIORITY 5 +#define PRQ_MIN_PRIORITY 9 +#define PRQ_NO_PRIORITY 0 + +#define PRQ_STATUS_MASK 3 +#define PRQ_ACTIVE 0 +#define PRQ_PAUSED 1 +#define PRQ_ERROR 2 +#define PRQ_PENDING 3 + +#define PRQ3_PAUSED 0x0001 +#define PRQ3_PENDING 0x0002 + +#define PRQ3_TYPE_RAW 0x0001 +#define PRQ3_TYPE_BYPASS 0x0002 +#define PRQ3_TYPE_APPDEFAULT 0x0004 + +#define SPL_PR_QUEUE 0x0001 +#define SPL_PR_DIRECT_DEVICE 0x0002 +#define SPL_PR_QUEUED_DEVICE 0x0004 +#define SPL_PR_LOCAL_ONLY 0x0100 + +typedef struct _DRIVPROPS +{ + PSZ pszKeyName; + ULONG cbBuf; + PVOID pBuf; +} DRIVPROPS; +typedef DRIVPROPS *PDRIVPROPS; + +typedef struct _PRINTERINFO +{ + ULONG flType; + PSZ pszComputerName; + PSZ pszPrintDestinationName; + PSZ pszDescription; + PSZ pszLocalName; +} PRINTERINFO; +typedef PRINTERINFO *PPRINTERINFO; + +typedef struct _PRJINFO +{ + USHORT uJobId; + CHAR szUserName[UNLEN+1]; + CHAR pad_1; + CHAR szNotifyName[CNLEN+1]; + CHAR szDataType[DTLEN+1]; + PSZ pszParms; + USHORT uPosition; + USHORT fsStatus; + PSZ pszStatus; + ULONG ulSubmitted; + ULONG ulSize; + PSZ pszComment; +} PRJINFO; +typedef PRJINFO *PPRJINFO; + +typedef struct _PRJINFO2 +{ + USHORT uJobId; + USHORT uPriority; + PSZ pszUserName; + USHORT uPosition; + USHORT fsStatus; + ULONG ulSubmitted; + ULONG ulSize; + PSZ pszComment; + PSZ pszDocument; +} PRJINFO2; +typedef PRJINFO2 *PPRJINFO2; + +typedef struct _PRJINFO3 +{ + USHORT uJobId; + USHORT uPriority; + PSZ pszUserName; + USHORT uPosition; + USHORT fsStatus; + ULONG ulSubmitted; + ULONG ulSize; + PSZ pszComment; + PSZ pszDocument; + PSZ pszNotifyName; + PSZ pszDataType; + PSZ pszParms; + PSZ pszStatus; + PSZ pszQueue; + PSZ pszQProcName; + PSZ pszQProcParms; + PSZ pszDriverName; + PDRIVDATA pDriverData; + PSZ pszPrinterName; +} PRJINFO3; +typedef PRJINFO3 *PPRJINFO3; + +typedef struct _PRJINFO4 +{ + USHORT uJobId; + USHORT uPriority; + PSZ pszUserName; + USHORT uPosition; + USHORT fsStatus; + ULONG ulSubmitted; + ULONG ulSize; + PSZ pszComment; + PSZ pszDocument; + PSZ pszSpoolFileName; + PSZ pszPortName; + PSZ pszStatus; + ULONG ulPagesSpooled; + ULONG ulPagesSent; + ULONG ulPagesPrinted; + ULONG ulTimePrinted; + ULONG ulExtendJobStatus; + ULONG ulStartPage; + ULONG ulEndPage; +} PRJINFO4; +typedef PRJINFO4 *PPRJINFO4; + +typedef struct _PRDINFO +{ + CHAR szName[PDLEN+1]; + CHAR szUserName[UNLEN+1]; + USHORT uJobId; + USHORT fsStatus; + PSZ pszStatus; + USHORT time; +} PRDINFO; +typedef PRDINFO *PPRDINFO; + +typedef struct _PRDINFO3 +{ + PSZ pszPrinterName; + PSZ pszUserName; + PSZ pszLogAddr; + USHORT uJobId; + USHORT fsStatus; + PSZ pszStatus; + PSZ pszComment; + PSZ pszDrivers; + USHORT time; + USHORT usTimeOut; +} PRDINFO3; +typedef PRDINFO3 *PPRDINFO3; + +typedef struct _PRQINFO +{ + CHAR szName[QNLEN+1]; + CHAR pad_1; + USHORT uPriority; + USHORT uStartTime; + USHORT uUntilTime; + PSZ pszSepFile; + PSZ pszPrProc; + PSZ pszDestinations; + PSZ pszParms; + PSZ pszComment; + USHORT fsStatus; + USHORT cJobs; +} PRQINFO; +typedef PRQINFO *PPRQINFO; + +typedef struct _PRQINFO3 +{ + PSZ pszName; + USHORT uPriority; + USHORT uStartTime; + USHORT uUntilTime; + USHORT fsType; + PSZ pszSepFile; + PSZ pszPrProc; + PSZ pszParms; + PSZ pszComment; + USHORT fsStatus; + USHORT cJobs; + PSZ pszPrinters; + PSZ pszDriverName; + PDRIVDATA pDriverData; +} PRQINFO3; +typedef PRQINFO3 *PPRQINFO3; + +typedef struct _PRQINFO6 +{ + PSZ pszName; + USHORT uPriority; + USHORT uStartTime; + USHORT uUntilTime; + USHORT fsType; + PSZ pszSepFile; + PSZ pszPrProc; + PSZ pszParms; + PSZ pszComment; + USHORT fsStatus; + USHORT cJobs; + PSZ pszPrinters; + PSZ pszDriverName; + PDRIVDATA pDriverData; + PSZ pszRemoteComputerName; + PSZ pszRemoteQueueName; +} PRQINFO6; +typedef PRQINFO6 *PPRQINFO6; + +typedef struct _PRIDINFO +{ + USHORT uJobId; + CHAR szComputerName[CNLEN+1]; + CHAR szQueueName[QNLEN+1]; + CHAR pad_1; +} PRIDINFO; +typedef PRIDINFO *PPRIDINFO; + +typedef struct _PRDRIVINFO +{ + CHAR szDrivName[DRIV_NAME_SIZE+1+DRIV_DEVICENAME_SIZE+1]; +} PRDRIVINFO; +typedef PRDRIVINFO *PPRDRIVINFO; + +typedef struct _PRDRIVINFO2 +{ + PSZ pszPrinterName; + PSZ pszDriverName; + USHORT usFlags; + USHORT cDriverProps; +} PRDRIVINFO2; +typedef PRDRIVINFO2 *PPRDRIVINFO2; + +typedef struct _PRQPROCINFO +{ + CHAR szQProcName[QNLEN+1]; +} PRQPROCINFO; +typedef PRQPROCINFO *PPRQPROCINFO; + +typedef struct _PRPORTINFO +{ + CHAR szPortName[PDLEN+1]; +} PRPORTINFO; +typedef PRPORTINFO *PPRPORTINFO; + +typedef struct _PRPORTINFO1 +{ + PSZ pszPortName; + PSZ pszPortDriverName; + PSZ pszPortDriverPathName; +} PRPORTINFO1; +typedef PRPORTINFO1 *PPRPORTINFO1; + +typedef struct _PRPORTINFO2 +{ + PSZ pszPortName; + PSZ pszPortDriver; + PSZ pszProtocolConverter; + ULONG ulReserved; + ULONG ulMode; + ULONG ulPriority; +} PRPORTINFO2; +typedef PRPORTINFO2 *PPRPORTINFO2; + +typedef struct _QMJOBINFO +{ + ULONG ulJobID; + PSZ pszComputerName; + PSZ pszQueueName; +} QMJOBINFO; +typedef QMJOBINFO *PQMJOBINFO; + +#endif /* INCL_SPLDOSPRINT */ +#endif /* INCL_SPL */ + +/* -------------------------- HELP MANAGER -------------------------------- */ + +#if defined (INCL_WINHELP) + +#define CMIC_HIDE_PANEL_ID 0x0000 +#define CMIC_SHOW_PANEL_ID 0x0001 +#define CMIC_TOGGLE_PANEL_ID 0x0002 + +#define CTRL_PREVIOUS_ID ((USHORT)0x0001) +#define CTRL_SEARCH_ID ((USHORT)0x0002) +#define CTRL_PRINT_ID ((USHORT)0x0003) +#define CTRL_INDEX_ID ((USHORT)0x0004) +#define CTRL_CONTENTS_ID ((USHORT)0x0005) +#define CTRL_BACK_ID ((USHORT)0x0006) +#define CTRL_FORWARD_ID ((USHORT)0x0007) +#define CTRL_TUTORIAL_ID ((USHORT)0x00ff) +#define CTRL_USER_ID_BASE ((USHORT)0x0101) + +#define HM_MSG_BASE 0x0220 +#define HM_DISMISS_WINDOW 0x0221 +#define HM_DISPLAY_HELP 0x0222 +#define HM_EXT_HELP 0x0223 +#define HM_GENERAL_HELP 0x0223 /*!*/ +#define HM_SET_ACTIVE_WINDOW 0x0224 +#define HM_LOAD_HELP_TABLE 0x0225 +#define HM_CREATE_HELP_TABLE 0x0226 +#define HM_SET_HELP_WINDOW_TITLE 0x0227 +#define HM_SET_SHOW_PANEL_ID 0x0228 +#define HM_REPLACE_HELP_FOR_HELP 0x0229 +#define HM_REPLACE_USING_HELP 0x0229 /*!*/ +#define HM_HELP_INDEX 0x022a +#define HM_HELP_CONTENTS 0x022b +#define HM_KEYS_HELP 0x022c +#define HM_SET_HELP_LIBRARY_NAME 0x022d +#define HM_ERROR 0x022e +#define HM_HELPSUBITEM_NOT_FOUND 0x022f +#define HM_QUERY_KEYS_HELP 0x0230 +#define HM_TUTORIAL 0x0231 +#define HM_EXT_HELP_UNDEFINED 0x0232 +#define HM_GENERAL_HELP_UNDEFINED 0x0232 /*!*/ +#define HM_ACTIONBAR_COMMAND 0x0233 +#define HM_INFORM 0x0234 +#define HM_SET_OBJCOM_WINDOW 0x0238 +#define HM_UPDATE_OBJCOM_WINDOW_CHAIN 0x0239 +#define HM_QUERY_DDF_DATA 0x023a +#define HM_INVALIDATE_DDF_DATA 0x023b +#define HM_QUERY 0x023c +#define HM_SET_COVERPAGE_SIZE 0x023d +#define HM_NOTIFY 0x0242 +#define HM_SET_USERDATA 0x0243 +#define HM_CONTROL 0x0244 + +#define HM_RESOURCEID 0 +#define HM_PANELNAME 1 + +#define HMERR_NO_FRAME_WND_IN_CHAIN 0x1001 +#define HMERR_INVALID_ASSOC_APP_WND 0x1002 +#define HMERR_INVALID_ASSOC_HELP_INST 0x1003 +#define HMERR_INVALID_DESTROY_HELP_INST 0x1004 +#define HMERR_NO_HELP_INST_IN_CHAIN 0x1005 +#define HMERR_INVALID_HELP_INSTANCE_HDL 0x1006 +#define HMERR_INVALID_QUERY_APP_WND 0x1007 +#define HMERR_HELP_INST_CALLED_INVALID 0x1008 +#define HMERR_HELPTABLE_UNDEFINE 0x1009 +#define HMERR_HELP_INSTANCE_UNDEFINE 0x100a +#define HMERR_HELPITEM_NOT_FOUND 0x100b +#define HMERR_INVALID_HELPSUBITEM_SIZE 0x100c +#define HMERR_HELPSUBITEM_NOT_FOUND 0x100d + +#define HMERR_INDEX_NOT_FOUND 0x2001 +#define HMERR_CONTENT_NOT_FOUND 0x2002 +#define HMERR_OPEN_LIB_FILE 0x2003 +#define HMERR_READ_LIB_FILE 0x2004 +#define HMERR_CLOSE_LIB_FILE 0x2005 +#define HMERR_INVALID_LIB_FILE 0x2006 +#define HMERR_NO_MEMORY 0x2007 +#define HMERR_ALLOCATE_SEGMENT 0x2008 +#define HMERR_FREE_MEMORY 0x2009 +#define HMERR_PANEL_NOT_FOUND 0x2010 +#define HMERR_DATABASE_NOT_OPEN 0x2011 +#define HMERR_LOAD_DLL 0x2013 + +#define HMPANELTYPE_NUMBER 0 +#define HMPANELTYPE_NAME 1 + +#define HMQVP_NUMBER 0x0001 +#define HMQVP_NAME 0x0002 +#define HMQVP_GROUP 0x0003 + +#define HMQW_COVERPAGE 0x0001 +#define HMQW_INDEX 0x0002 +#define HMQW_TOC 0x0003 +#define HMQW_SEARCH 0x0004 +#define HMQW_VIEWPAGES 0x0005 +#define HMQW_LIBRARY 0x0006 +#define HMQW_VIEWPORT 0x0007 +#define HMQW_OBJCOM_WINDOW 0x0008 +#define HMQW_INSTANCE 0x0009 +#define HMQW_ACTIVEVIEWPORT 0x000a +#define CONTROL_SELECTED 0x000b + +#define HMQW_GROUP_VIEWPORT 0x00f1 +#define HMQW_RES_VIEWPORT 0x00f2 +#define USERDATA 0x00f3 + +#define HWND_PARENT (HWND)NULL + +#define OPEN_COVERPAGE 0x0001 +#define OPEN_PAGE 0x0002 +#define SWAP_PAGE 0x0003 +#define OPEN_TOC 0x0004 +#define OPEN_INDEX 0x0005 +#define OPEN_HISTORY 0x0006 +#define OPEN_SEARCH_HIT_LIST 0x0007 +#define OPEN_LIBRARY 0x0008 + + +typedef USHORT HELPSUBTABLE; +typedef HELPSUBTABLE *PHELPSUBTABLE; + + +typedef struct _ACVP +{ + ULONG cb; + HAB hAB; + HMQ hmq; + ULONG ObjectID; + HWND hWndParent; + HWND hWndOwner; + HWND hWndACVP; +} ACVP; +typedef ACVP *PACVP; + +typedef struct _HELPTABLE +{ + USHORT idAppWindow; + PHELPSUBTABLE phstHelpSubTable; + USHORT idExtPanel; +} HELPTABLE; +typedef HELPTABLE *PHELPTABLE; + +typedef struct _HELPINIT +{ + ULONG cb; + ULONG ulReturnCode; + PSZ pszTutorialName; + PHELPTABLE phtHelpTable; + HMODULE hmodHelpTableModule; + HMODULE hmodAccelActionBarModule; + ULONG idAccelTable; + ULONG idActionBar; + PSZ pszHelpWindowTitle; + ULONG fShowPanelId; + PSZ pszHelpLibraryName; +} HELPINIT; +typedef HELPINIT *PHELPINIT; + +BOOL WinAssociateHelpInstance (HWND hwndHelpInstance, HWND hwndApp); +HWND WinCreateHelpInstance (HAB hab, PHELPINIT phinitHMInitStructure); +BOOL WinCreateHelpTable (HWND hwndHelpInstance, + __const__ HELPTABLE *phtHelpTable); +BOOL WinDestroyHelpInstance (HWND hwndHelpInstance); +BOOL WinLoadHelpTable (HWND hwndHelpInstance, ULONG idHelpTable, + HMODULE Module); +HWND WinQueryHelpInstance (HWND hwndApp); + +#endif /* INCL_WINHELP */ + + +#if defined (INCL_DDF) + +#define ART_RUNIN 0x0010 +#define ART_LEFT 0x0001 +#define ART_RIGHT 0x0002 +#define ART_CENTER 0x0004 + +#define CLR_UNCHANGED (-6) + +#define HMBT_NONE 1 +#define HMBT_ALL 2 +#define HMBT_FIT 3 + +#define HMERR_DDF_MEMORY 0x3001 +#define HMERR_DDF_ALIGN_TYPE 0x3002 +#define HMERR_DDF_BACKCOLOR 0x3003 +#define HMERR_DDF_FORECOLOR 0x3004 +#define HMERR_DDF_FONTSTYLE 0x3005 +#define HMERR_DDF_REFTYPE 0x3006 +#define HMERR_DDF_LIST_UNCLOSED 0x3007 +#define HMERR_DDF_LIST_UNINITIALIZED 0x3008 +#define HMERR_DDF_LIST_BREAKTYPE 0x3009 +#define HMERR_DDF_LIST_SPACING 0x300A +#define HMERR_DDF_HINSTANCE 0x300B +#define HMERR_DDF_EXCEED_MAX_LENGTH 0x300C +#define HMERR_DDF_EXCEED_MAX_INC 0x300D +#define HMERR_DDF_INVALID_DDF 0x300E +#define HMERR_DDF_FORMAT_TYPE 0x300F +#define HMERR_DDF_INVALID_PARM 0x3010 +#define HMERR_DDF_INVALID_FONT 0x3011 +#define HMERR_DDF_SEVERE 0x3012 + +#define HMLS_SINGLELINE 1 +#define HMLS_DOUBLELINE 2 + +#define REFERENCE_BY_ID 0 +#define REFERENCE_BY_RES 1 + +typedef VOID *HDDF; + +BOOL DdfBeginList (HDDF hddf, ULONG ulWidthDT, ULONG fBreakType, + ULONG fSpacing); +BOOL DdfBitmap (HDDF hddf, HBITMAP hbm, ULONG fAlign); +BOOL DdfEndList (HDDF hddf); +BOOL DdfHyperText (HDDF hddf, PCSZ pszText, PCSZ pszReference, + ULONG fReferenceType); +BOOL DdfInform (HDDF hddf, PCSZ pszText, ULONG resInformNumber); +HDDF DdfInitialize (HWND hwndHelpInstance, ULONG cbBuffer, ULONG ulIncrement); +BOOL DdfListItem (HDDF hddf, PCSZ pszTerm, PCSZ pszDescription); +BOOL DdfMetafile (HDDF hddf, HMF hmf, __const__ RECTL *prclRect); +BOOL DdfPara (HDDF hddf); +BOOL DdfSetColor (HDDF hddf, COLOR fBackColor, COLOR fForColor); +BOOL DdfSetFont (HDDF hddf, PCSZ pszFaceName, ULONG ulWidth, ULONG ulHeight); +BOOL DdfSetFontStyle (HDDF hddf, ULONG fFontStyle); +BOOL DdfSetFormat (HDDF hddf, ULONG fFormatType); +BOOL DdfSetTextAlign (HDDF hddf, ULONG fAlign); +BOOL DdfText (HDDF hddf, PCSZ pszText); + +#endif /* INCL_DDF */ + +/* ---------------------- Advanced Video ---------------------------------- */ + +#if defined (INCL_FONTFILEFORMAT) + +#define FONTDEFFONT1 0x0047 +#define FONTDEFFONT2 0x0042 +#define FONTDEFFONT3 0x0042 +#define FONTDEFCHAR1 0x0081 +#define FONTDEFCHAR2 0x0081 +#define FONTDEFCHAR3 0x00b8 +#define FONTDEFDEVFONT 0x2000 +#define FONTDEFFOCA32 0x4000 +#define SPACE_UNDEF 0x8000 + +#define FONT_SIGNATURE 0xfffffffe +#define FONT_METRICS 0x00000001 +#define FONT_DEFINITION 0x00000002 +#define FONT_KERNPAIRS 0x00000003 +#define FONT_ADDITIONALMETRICS 0x00000004 +#define FONT_ENDRECORD 0xffffffff + +#define QUERY_PUBLIC_FONTS 0x0001 +#define QUERY_PRIVATE_FONTS 0x0002 + +#define CDEF_GENERIC 0x0001 +#define CDEF_BOLD 0x0002 +#define CDEF_ITALIC 0x0004 +#define CDEF_UNDERSCORE 0x0008 +#define CDEF_STRIKEOUT 0x0010 +#define CDEF_OUTLINE 0x0020 + +typedef struct _FOCAMETRICS +{ + ULONG ulIdentity; + ULONG ulSize; + CHAR szFamilyname[32]; + CHAR szFacename[32]; + SHORT usRegistryId; + SHORT usCodePage; + SHORT yEmHeight; + SHORT yXHeight; + SHORT yMaxAscender; + SHORT yMaxDescender; + SHORT yLowerCaseAscent; + SHORT yLowerCaseDescent; + SHORT yInternalLeading; + SHORT yExternalLeading; + SHORT xAveCharWidth; + SHORT xMaxCharInc; + SHORT xEmInc; + SHORT yMaxBaselineExt; + SHORT sCharSlope; + SHORT sInlineDir; + SHORT sCharRot; + USHORT usWeightClass; + USHORT usWidthClass; + SHORT xDeviceRes; + SHORT yDeviceRes; + SHORT usFirstChar; + SHORT usLastChar; + SHORT usDefaultChar; + SHORT usBreakChar; + SHORT usNominalPointSize; + SHORT usMinimumPointSize; + SHORT usMaximumPointSize; + SHORT fsTypeFlags; + SHORT fsDefn; + SHORT fsSelectionFlags; + SHORT fsCapabilities; + SHORT ySubscriptXSize; + SHORT ySubscriptYSize; + SHORT ySubscriptXOffset; + SHORT ySubscriptYOffset; + SHORT ySuperscriptXSize; + SHORT ySuperscriptYSize; + SHORT ySuperscriptXOffset; + SHORT ySuperscriptYOffset; + SHORT yUnderscoreSize; + SHORT yUnderscorePosition; + SHORT yStrikeoutSize; + SHORT yStrikeoutPosition; + SHORT usKerningPairs; + SHORT sFamilyClass; + PSZ pszDeviceNameOffset; +} FOCAMETRICS; +typedef FOCAMETRICS *PFOCAMETRICS; + +typedef struct _FONTFILEMETRICS +{ + ULONG ulIdentity; + ULONG ulSize; + CHAR szFamilyname[32]; + CHAR szFacename[32]; + SHORT usRegistryId; + SHORT usCodePage; + SHORT yEmHeight; + SHORT yXHeight; + SHORT yMaxAscender; + SHORT yMaxDescender; + SHORT yLowerCaseAscent; + SHORT yLowerCaseDescent; + SHORT yInternalLeading; + SHORT yExternalLeading; + SHORT xAveCharWidth; + SHORT xMaxCharInc; + SHORT xEmInc; + SHORT yMaxBaselineExt; + SHORT sCharSlope; + SHORT sInlineDir; + SHORT sCharRot; + USHORT usWeightClass; + USHORT usWidthClass; + SHORT xDeviceRes; + SHORT yDeviceRes; + SHORT usFirstChar; + SHORT usLastChar; + SHORT usDefaultChar; + SHORT usBreakChar; + SHORT usNominalPointSize; + SHORT usMinimumPointSize; + SHORT usMaximumPointSize; + SHORT fsTypeFlags; + SHORT fsDefn; + SHORT fsSelectionFlags; + SHORT fsCapabilities; + SHORT ySubscriptXSize; + SHORT ySubscriptYSize; + SHORT ySubscriptXOffset; + SHORT ySubscriptYOffset; + SHORT ySuperscriptXSize; + SHORT ySuperscriptYSize; + SHORT ySuperscriptXOffset; + SHORT ySuperscriptYOffset; + SHORT yUnderscoreSize; + SHORT yUnderscorePosition; + SHORT yStrikeoutSize; + SHORT yStrikeoutPosition; + SHORT usKerningPairs; + SHORT sFamilyClass; + ULONG ulReserved; + PANOSE panose; +} FONTFILEMETRICS; +typedef FONTFILEMETRICS *PFONTFILEMETRICS; + +typedef struct _FONTDEFINITIONHEADER +{ + ULONG ulIdentity; + ULONG ulSize; + SHORT fsFontdef; + SHORT fsChardef; + SHORT usCellSize; + SHORT xCellWidth; + SHORT yCellHeight; + SHORT xCellIncrement; + SHORT xCellA; + SHORT xCellB; + SHORT xCellC; + SHORT pCellBaseOffset; +} FONTDEFINITIONHEADER; +typedef FONTDEFINITIONHEADER *PFONTDEFINITIONHEADER; + +typedef struct _FONTSIGNATURE +{ + ULONG ulIdentity; + ULONG ulSize; + CHAR achSignature[12]; +} FONTSIGNATURE; +typedef FONTSIGNATURE *PFONTSIGNATURE; + +typedef struct _ADDITIONALMETRICS +{ + ULONG ulIdentity; + ULONG ulSize; + PANOSE panose; +} ADDITIONALMETRICS; +typedef ADDITIONALMETRICS *PADDITIONALMETRICS; + +typedef struct _FOCAFONT +{ + FONTSIGNATURE fsSignature; + FOCAMETRICS fmMetrics; + FONTDEFINITIONHEADER fdDefinitions; +} FOCAFONT; +typedef FOCAFONT *PFOCAFONT; + +typedef FOCAFONT FOCAFONT32; +typedef FOCAFONT32 *PFOCAFONT32; + +#endif /* INCL_FONTFILEFORMAT */ + +/* ---------------------- Advanced Video ---------------------------------- */ + +#if defined (INCL_AVIO) + +#define FORMAT_CGA 0x0001 +#define FORMAT_4BYTE 0x0003 + +#define VQF_PUBLIC 0x0001 +#define VQF_PRIVATE 0x0002 + +typedef USHORT HVPS; +typedef HVPS *PHVPS; + +USHORT VioAssociate (HDC hdc, HVPS hvps); +USHORT VioCreateLogFont (PFATTRS pfatattrs, LONG llcid, PSTR8 pName, + HVPS hvps); +USHORT VioCreatePS (PHVPS phvps, SHORT sDepth, SHORT sWidth, SHORT sFormat, + SHORT sAttrs, HVPS hvpsReserved); +USHORT VioDeleteSetId (LONG llcid, HVPS hvps); +USHORT VioDestroyPS (HVPS hvps); +USHORT VioGetDeviceCellSize (PSHORT psHeight, PSHORT psWidth, HVPS hvps); +USHORT VioGetOrg (PSHORT psRow, PSHORT psColumn, HVPS hvps); +USHORT VioQueryFonts (PLONG plRemfonts, PFONTMETRICS afmMetrics, + LONG lMetricsLength, PLONG plFonts, PSZ pszFacename, ULONG flOptions, + HVPS hvps); +USHORT VioQuerySetIds (PLONG allcids, PSTR8 pNames, PLONG alTypes, LONG lcount, + HVPS hvps); +USHORT VioSetDeviceCellSize (SHORT sHeight, SHORT sWidth, HVPS hvps); +USHORT VioSetOrg (SHORT sRow, SHORT sColumn, HVPS hvps); +USHORT VioShowPS (SHORT sDepth, SHORT sWidth, SHORT soffCell, HVPS hvps); + +MRESULT WinDefAVioWindowProc (HWND hwnd, USHORT msg, ULONG mp1, ULONG mp2); + +#endif /* INCL_AVIO */ + +/* --------------------------- MONITORS ----------------------------------- */ + +#if defined (INCL_DOSMONITORS) + +#define MONITOR_DEFAULT 0x0000 +#define MONITOR_BEGIN 0x0001 +#define MONITOR_END 0x0002 + +typedef SHANDLE HMONITOR; +typedef HMONITOR *PHMONITOR; + +typedef struct _MONIN +{ + USHORT cb; + BYTE abReserved[18]; + BYTE abBuffer[108]; +} MONIN; +typedef MONIN *PMONIN; + +typedef struct _MONOUT +{ + USHORT cb; + UCHAR buffer[18]; + BYTE abBuf[108]; +} MONOUT; +typedef MONOUT *PMONOUT; + +USHORT DosMonOpen (PSZ pszDevName, PHMONITOR phmon); +USHORT DosMonClose (HMONITOR hmon); +USHORT DosMonReg (HMONITOR hmon, PBYTE pbInBuf, PBYTE pbOutBuf, + USHORT fPosition, USHORT usIndex); +USHORT DosMonRead (PBYTE pbInBuf, USHORT fWait, PBYTE pbDataBuf, + PUSHORT pcbData); +USHORT DosMonWrite (PBYTE pbOutBuf, PBYTE pbDataBuf, USHORT cbData); + +#endif /* INCL_DOSMONITORS */ + +/* -------------------------- SUBSYSTEMS ---------------------------------- */ + +#if defined (INCL_KBD) + +#define IO_WAIT 0 +#define IO_NOWAIT 1 + +#define KBDSTF_RIGHTSHIFT 0x0001 +#define KBDSTF_LEFTSHIFT 0x0002 +#define KBDSTF_CONTROL 0x0004 +#define KBDSTF_ALT 0x0008 +#define KBDSTF_SCROLLLOCK_ON 0x0010 +#define KBDSTF_NUMLOCK_ON 0x0020 +#define KBDSTF_CAPSLOCK_ON 0x0040 +#define KBDSTF_INSERT_ON 0x0080 +#define KBDSTF_LEFTCONTROL 0x0100 +#define KBDSTF_LEFTALT 0x0200 +#define KBDSTF_RIGHTCONTROL 0x0400 +#define KBDSTF_RIGHTALT 0x0800 +#define KBDSTF_SCROLLLOCK 0x1000 +#define KBDSTF_NUMLOCK 0x2000 +#define KBDSTF_CAPSLOCK 0x4000 +#define KBDSTF_SYSREQ 0x8000 + +#define KBDTRF_SHIFT_KEY_IN 0x01 +#define KBDTRF_EXTENDED_CODE 0x02 +#define KBDTRF_CONVERSION_REQUEST 0x20 +#define KBDTRF_FINAL_CHAR_IN 0x40 +#define KBDTRF_INTERIM_CHAR_IN 0x80 + +#define KEYBOARD_ECHO_ON 0x0001 +#define KEYBOARD_ECHO_OFF 0x0002 +#define KEYBOARD_BINARY_MODE 0x0004 +#define KEYBOARD_ASCII_MODE 0x0008 +#define KEYBOARD_MODIFY_STATE 0x0010 +#define KEYBOARD_MODIFY_INTERIM 0x0020 +#define KEYBOARD_MODIFY_TURNAROUND 0x0040 +#define KEYBOARD_2B_TURNAROUND 0x0080 +#define KEYBOARD_SHIFT_REPORT 0x0100 + +#define KR_KBDCHARIN 0x00000001 +#define KR_KBDPEEK 0x00000002 +#define KR_KBDFLUSHBUFFER 0x00000004 +#define KR_KBDGETSTATUS 0x00000008 +#define KR_KBDSETSTATUS 0x00000010 +#define KR_KBDSTRINGIN 0x00000020 +#define KR_KBDOPEN 0x00000040 +#define KR_KBDCLOSE 0x00000080 +#define KR_KBDGETFOCUS 0x00000100 +#define KR_KBDFREEFOCUS 0x00000200 +#define KR_KBDGETCP 0x00000400 +#define KR_KBDSETCP 0x00000800 +#define KR_KBDXLATE 0x00001000 +#define KR_KBDSETCUSTXT 0x00002000 + +typedef USHORT HKBD; +typedef HKBD *PHKBD; + +typedef struct _KBDKEYINFO +{ + UCHAR chChar; + UCHAR chScan; + UCHAR fbStatus; + UCHAR bNlsShift; + USHORT fsState; + ULONG time; +} KBDKEYINFO; +typedef KBDKEYINFO *PKBDKEYINFO; + +typedef struct _KBDINFO +{ + USHORT cb; + USHORT fsMask; + USHORT chTurnAround; + USHORT fsInterim; + USHORT fsState; +} KBDINFO; +typedef KBDINFO *PKBDINFO; + +typedef struct _KBDHWID +{ + USHORT cb; + USHORT idKbd; + USHORT usReserved1; + USHORT usReserved2; +} KBDHWID; +typedef KBDHWID *PKBDHWID; + +typedef struct _KBDTRANS +{ + UCHAR chChar; + UCHAR chScan; + UCHAR fbStatus; + UCHAR bNlsShift; + USHORT fsState; + ULONG time; + USHORT fsDD; + USHORT fsXlate; + USHORT fsShift; + USHORT sZero; +} KBDTRANS; +typedef KBDTRANS *PKBDTRANS; + +typedef struct _STRINGINBUF +{ + USHORT cb; + USHORT cchIn; +} STRINGINBUF; +typedef STRINGINBUF *PSTRINGINBUF; + +USHORT KbdCharIn (PKBDKEYINFO pkbci, USHORT fWait, HKBD hkbd); +USHORT KbdClose (HKBD hkbd); +USHORT KbdDeRegister (VOID); +USHORT KbdFlushBuffer (HKBD hkbd); +USHORT KbdFreeFocus (HKBD hkbd); +USHORT KbdGetCp (ULONG ulReserved, PUSHORT pidCP, HKBD hkbd); +USHORT KbdGetFocus (USHORT fWait, HKBD hkbd); +USHORT KbdGetHWID (PKBDHWID pkbdhwid, HKBD hkbd); +USHORT KbdGetStatus (PKBDINFO pkbdinfo, HKBD hkbd); +USHORT KbdOpen (PHKBD phkbd); +USHORT KbdPeek (PKBDKEYINFO pkbci, HKBD hkbd); +USHORT KbdRegister (PCSZ pszModName, PCSZ pszEntryName, ULONG ulFunMask); +USHORT KbdSetCp (USHORT usReserved, USHORT idCP, HKBD hkbd); +USHORT KbdSetCustXt (PUSHORT pusCodePage, HKBD hkbd); +USHORT KbdSetFgnd (VOID); +USHORT KbdSetHWID (PKBDHWID pkbdhwid, HKBD hkbd); +USHORT KbdSetStatus (PKBDINFO pkbdinfo, HKBD hkbd); +USHORT KbdStringIn (PCH pch, PSTRINGINBUF pchIn, USHORT fWait, HKBD hkbd); +USHORT KbdSynch (USHORT fWait); +USHORT KbdXlate (PKBDTRANS pkbdtrans, HKBD hkbd); + +#endif /* INCL_KBD */ + +#if defined (INCL_VIO) + +#define ANSI_OFF 0 +#define ANSI_ON 1 + +#define COLORS_2 0x01 +#define COLORS_4 0x02 +#define COLORS_16 0x04 + +#define VGMT_OTHER 0x01 +#define VGMT_GRAPHICS 0x02 +#define VGMT_DISABLEBURST 0x04 + +#define VP_NOWAIT 0x0000 +#define VP_WAIT 0x0001 +#define VP_OPAQUE 0x0000 +#define VP_TRANSPARENT 0x0002 + +#define VMWR_POPUP 0 +#define VMWN_POPUP 0 + +#define VSRWI_SAVEANDREDRAW 0 +#define VSRWI_REDRAW 1 + +#define VSRWN_SAVE 0 +#define VSRWN_REDRAW 1 + +#define UNDOI_GETOWNER 0 +#define UNDOI_RELEASEOWNER 1 + +#define UNDOK_ERRORCODE 0 +#define UNDOK_TERMINATE 1 + +#define LOCKIO_NOWAIT 0 +#define LOCKIO_WAIT 1 + +#define LOCK_SUCCESS 0 +#define LOCK_FAIL 1 + +#define VCC_SBCSCHAR 0 +#define VCC_DBCSFULLCHAR 1 +#define VCC_DBCS1STHALF 2 +#define VCC_DBCS2NDHALF 3 + +#define VGFI_GETCURFONT 0 +#define VGFI_GETROMFONT 1 + +#define VIO_CONFIG_CURRENT 0 +#define VIO_CONFIG_PRIMARY 1 +#define VIO_CONFIG_SECONDARY 2 + +#define DISPLAY_MONOCHROME 0 +#define DISPLAY_CGA 1 +#define DISPLAY_EGA 2 +#define DISPLAY_VGA 3 +#define DISPLAY_8514A 7 +#define DISPLAY_IMAGEADAPTER 8 +#define DISPLAY_XGA 9 + +#define MONITOR_MONOCHROME 0x0000 +#define MONITOR_COLOR 0x0001 +#define MONITOR_ENHANCED 0x0002 +#define MONITOR_8503 0x0003 +#define MONITOR_851X_COLOR 0x0004 +#define MONITOR_8514 0x0009 +#define MONITOR_FLATPANEL 0x000a +#define MONITOR_8507_8604 0x000b +#define MONITOR_8515 0x000c +#define MONITOR_9515 0x000f +#define MONITOR_9517 0x0011 +#define MONITOR_9518 0x0012 + +#define VR_VIOGETCURPOS 0x00000001 +#define VR_VIOGETCURTYPE 0x00000002 +#define VR_VIOGETMODE 0x00000004 +#define VR_VIOGETBUF 0x00000008 +#define VR_VIOGETPHYSBUF 0x00000010 +#define VR_VIOSETCURPOS 0x00000020 +#define VR_VIOSETCURTYPE 0x00000040 +#define VR_VIOSETMODE 0x00000080 +#define VR_VIOSHOWBUF 0x00000100 +#define VR_VIOREADCHARSTR 0x00000200 +#define VR_VIOREADCELLSTR 0x00000400 +#define VR_VIOWRTNCHAR 0x00000800 +#define VR_VIOWRTNATTR 0x00001000 +#define VR_VIOWRTNCELL 0x00002000 +#define VR_VIOWRTTTY 0x00004000 +#define VR_VIOWRTCHARSTR 0x00008000 +#define VR_VIOWRTCHARSTRATT 0x00010000 +#define VR_VIOWRTCELLSTR 0x00020000 +#define VR_VIOSCROLLUP 0x00040000 +#define VR_VIOSCROLLDN 0x00080000 +#define VR_VIOSCROLLLF 0x00100000 +#define VR_VIOSCROLLRT 0x00200000 +#define VR_VIOSETANSI 0x00400000 +#define VR_VIOGETANSI 0x00800000 +#define VR_VIOPRTSC 0x01000000 +#define VR_VIOSCRLOCK 0x02000000 +#define VR_VIOSCRUNLOCK 0x04000000 +#define VR_VIOSAVREDRAWWAIT 0x08000000 +#define VR_VIOSAVREDRAWUNDO 0x10000000 +#define VR_VIOPOPUP 0x20000000 +#define VR_VIOENDPOPUP 0x40000000 +#define VR_VIOPRTSCTOGGLE 0x80000000 + +#define VR_VIOMODEWAIT 0x00000001 +#define VR_VIOMODEUNDO 0x00000002 +#define VR_VIOGETFONT 0x00000004 +#define VR_VIOGETCONFIG 0x00000008 +#define VR_VIOSETCP 0x00000010 +#define VR_VIOGETCP 0x00000020 +#define VR_VIOSETFONT 0x00000040 +#define VR_VIOGETSTATE 0x00000080 +#define VR_VIOSETSTATE 0x00000100 + + +typedef USHORT HVIO; +typedef HVIO *PHVIO; + + +typedef struct _VIOMODEINFO +{ + USHORT cb; + UCHAR fbType; + UCHAR color; + USHORT col; + USHORT row; + USHORT hres; + USHORT vres; + UCHAR fmt_ID; + UCHAR attrib; + ULONG buf_addr; + ULONG buf_length; + ULONG full_length; + ULONG partial_length; + PCH ext_data_addr; +} VIOMODEINFO; +typedef VIOMODEINFO *PVIOMODEINFO; + +typedef struct _VIOCONFIGINFO +{ + USHORT cb; + USHORT adapter; + USHORT display; + ULONG cbMemory; + USHORT Configuration; + USHORT VDHVersion; + USHORT Flags; + ULONG HWBufferSize; + ULONG FullSaveSize; + ULONG PartSaveSize; + USHORT EMAdaptersOFF; + USHORT EMDisplaysOFF; +} VIOCONFIGINFO; +typedef VIOCONFIGINFO *PVIOCONFIGINFO; + +typedef struct _VIOPHYSBUF +{ + PBYTE pBuf; + ULONG cb; + SEL asel[1]; +} VIOPHYSBUF; +typedef VIOPHYSBUF *PVIOPHYSBUF; + +typedef struct _VIOPALSTATE +{ + USHORT cb; + USHORT type; + USHORT iFirst; + USHORT acolor[1]; +} VIOPALSTATE; +typedef VIOPALSTATE *PVIOPALSTATE; + +typedef struct _VIOOVERSCAN +{ + USHORT cb; + USHORT type; + USHORT color; +} VIOOVERSCAN; +typedef VIOOVERSCAN *PVIOOVERSCAN; + +typedef struct _VIOINTENSITY +{ + USHORT cb; + USHORT type; + USHORT fs; +} VIOINTENSITY; +typedef VIOINTENSITY *PVIOINTENSITY; + +typedef struct _VIOCOLORREG +{ + USHORT cb; + USHORT type; + USHORT firstcolorreg; + USHORT numcolorregs; + PCH colorregaddr; +} VIOCOLORREG; +typedef VIOCOLORREG *PVIOCOLORREG; + +typedef struct _VIOSETULINELOC +{ + USHORT cb; + USHORT type; + USHORT scanline; +} VIOSETULINELOC; +typedef VIOSETULINELOC *PVIOSETULINELOC; + +typedef struct _VIOSETTARGET +{ + USHORT cb; + USHORT type; + USHORT defaultalgorithm; +} VIOSETTARGET; +typedef VIOSETTARGET *PVIOSETTARGET; + +typedef struct _VIOCURSORINFO +{ + USHORT yStart; + USHORT cEnd; + USHORT cx; + USHORT attr; +} VIOCURSORINFO; +typedef VIOCURSORINFO *PVIOCURSORINFO; + +typedef struct _VIOFONTINFO +{ + USHORT cb; + USHORT type; + USHORT cxCell; + USHORT cyCell; + ULONG pbData; /* PVOID16 / _far16ptr */ + USHORT cbData; +} VIOFONTINFO; +typedef VIOFONTINFO *PVIOFONTINFO; + + +USHORT VioCheckCharType (PUSHORT pType, USHORT usRow, USHORT usColumn, + HVIO hvio); +USHORT VioDeRegister (VOID); +USHORT VioEndPopUp (HVIO hvio); +USHORT VioGetAnsi (PUSHORT pfAnsi, HVIO hvio); +USHORT VioGetBuf (PULONG pLVB, PUSHORT pcbLVB, HVIO hvio); +USHORT VioGetConfig (USHORT usConfigId, PVIOCONFIGINFO pvioin, HVIO hvio); +USHORT VioGetCp (USHORT usReserved, PUSHORT pusCodePage, HVIO hvio); +USHORT VioGetCurPos (PUSHORT pusRow, PUSHORT pusColumn, HVIO hvio); +USHORT VioGetCurType (PVIOCURSORINFO pvioCursorInfo, HVIO hvio); +USHORT VioGetFont (PVIOFONTINFO pviofi, HVIO hvio); +USHORT VioGetMode (PVIOMODEINFO pvioModeInfo, HVIO hvio); +USHORT VioGetPhysBuf (PVIOPHYSBUF pvioPhysBuf, USHORT usReserved); +USHORT VioGetState (PVOID pState, HVIO hvio); +USHORT VioGlobalReg (PCSZ pszModName, PCSZ pszEntryName, ULONG ulFunMask1, + ULONG ulFunMask2, USHORT usReturn); +USHORT VioModeUndo (USHORT usOwnerInd, USHORT usKillInd, USHORT usReserved); +USHORT VioModeWait (USHORT usReqType, PUSHORT pNotifyType, USHORT usReserved); +USHORT VioPopUp (PUSHORT pfWait, HVIO hvio); +USHORT VioPrtSc (HVIO hvio); +USHORT VioPrtScToggle (HVIO hvio); +USHORT VioReadCellStr (PCH pchCellStr, PUSHORT pcb, USHORT usRow, + USHORT usColumn, HVIO hvio); +USHORT VioReadCharStr (PCH pch, PUSHORT pcb, USHORT usRow, USHORT usColumn, + HVIO hvio); +USHORT VioRegister (PCSZ pszModName, PCSZ pszEntryName, ULONG ulFunMask1, + ULONG ulFunMask2); +USHORT VioSavRedrawUndo (USHORT usOwnerInd, USHORT usKillInd, + USHORT usReserved); +USHORT VioSavRedrawWait (USHORT usRedrawInd, PUSHORT pusNotifyType, + USHORT usReserved); +USHORT VioScrLock (USHORT fWait, PUCHAR pfNotLocked, HVIO hvio); +USHORT VioScrollDn (USHORT usTopRow, USHORT usLeftCol, USHORT usBotRow, + USHORT usRightCol, USHORT cbLines, PBYTE pCell, HVIO hvio); +USHORT VioScrollLf (USHORT usTopRow, USHORT usLeftCol, USHORT usBotRow, + USHORT usRightCol, USHORT cbCol, PBYTE pCell, HVIO hvio); +USHORT VioScrollRt (USHORT usTopRow, USHORT usLeftCol, USHORT usBotRow, + USHORT usRightCol, USHORT cbCol, PBYTE pCell, HVIO hvio); +USHORT VioScrollUp (USHORT usTopRow, USHORT usLeftCol, USHORT usBotRow, + USHORT usRightCol, USHORT cbLines, PBYTE pCell, HVIO hvio); +USHORT VioScrUnLock (HVIO hvio); +USHORT VioSetAnsi (USHORT fAnsi, HVIO hvio); +USHORT VioSetCp (USHORT usReserved, USHORT usCodePage, HVIO hvio); +USHORT VioSetCurPos (USHORT usRow, USHORT usColumn, HVIO hvio); +USHORT VioSetCurType (PVIOCURSORINFO pvioCursorInfo, HVIO hvio); +USHORT VioSetFont (PVIOFONTINFO pviofi, HVIO hvio); +USHORT VioSetMode (PVIOMODEINFO pvioModeInfo, HVIO hvio); +USHORT VioSetState (CPVOID pState, HVIO hvio); +USHORT VioShowBuf (USHORT offLVB, USHORT cb, HVIO hvio); +USHORT VioWrtCellStr (PCCH pchCellStr, USHORT cb, USHORT usRow, + USHORT usColumn, HVIO hvio); +USHORT VioWrtCharStr (PCCH pch, USHORT cb, USHORT usRow, USHORT usColumn, + HVIO hvio); +USHORT VioWrtCharStrAtt (PCCH pch, USHORT cb, USHORT usRow, USHORT usColumn, + PBYTE pAttr, HVIO hvio); +USHORT VioWrtNAttr (__const__ BYTE *pAttr, USHORT cb, USHORT usRow, + USHORT usColumn, HVIO hvio); +USHORT VioWrtNCell (__const__ BYTE *pCell, USHORT cb, USHORT usRow, + USHORT usColumn, HVIO hvio); +USHORT VioWrtNChar (PCCH pch, USHORT cb, USHORT usRow, USHORT usColumn, + HVIO hvio); +USHORT VioWrtTTY (PCCH pch, USHORT cb, HVIO hvio); + +#endif /* INCL_VIO */ + +#if defined (INCL_MOU) + +#define MHK_BUTTON1 0x0001 +#define MHK_BUTTON2 0x0002 +#define MHK_BUTTON3 0x0004 + +#define MOU_NOWAIT 0x0000 +#define MOU_WAIT 0x0001 + +#define MOUSE_MOTION 0x0001 +#define MOUSE_MOTION_WITH_BN1_DOWN 0x0002 +#define MOUSE_BN1_DOWN 0x0004 +#define MOUSE_MOTION_WITH_BN2_DOWN 0x0008 +#define MOUSE_BN2_DOWN 0x0010 +#define MOUSE_MOTION_WITH_BN3_DOWN 0x0020 +#define MOUSE_BN3_DOWN 0x0040 + +#define MOUSE_QUEUEBUSY 0x0001 +#define MOUSE_BLOCKREAD 0x0002 +#define MOUSE_FLUSH 0x0004 +#define MOUSE_UNSUPPORTED_MODE 0x0008 +#define MOUSE_DISABLED 0x0100 +#define MOUSE_MICKEYS 0x0200 + +#define MOU_NODRAW 0x0001 +#define MOU_DRAW 0x0000 +#define MOU_MICKEYS 0x0002 +#define MOU_PELS 0x0000 + +#define MR_MOUGETNUMBUTTONS 0x00000001 +#define MR_MOUGETNUMMICKEYS 0x00000002 +#define MR_MOUGETDEVSTATUS 0x00000004 +#define MR_MOUGETNUMQUEEL 0x00000008 +#define MR_MOUREADEVENTQUE 0x00000010 +#define MR_MOUGETSCALEFACT 0x00000020 +#define MR_MOUGETEVENTMASK 0x00000040 +#define MR_MOUSETSCALEFACT 0x00000080 +#define MR_MOUSETEVENTMASK 0x00000100 +#define MR_MOUOPEN 0x00000800 +#define MR_MOUCLOSE 0x00001000 +#define MR_MOUGETPTRSHAPE 0x00002000 +#define MR_MOUSETPTRSHAPE 0x00004000 +#define MR_MOUDRAWPTR 0x00008000 +#define MR_MOUREMOVEPTR 0x00010000 +#define MR_MOUGETPTRPOS 0x00020000 +#define MR_MOUSETPTRPOS 0x00040000 +#define MR_MOUINITREAL 0x00080000 +#define MR_MOUSETDEVSTATUS 0x00100000 + + +typedef USHORT HMOU; +typedef HMOU *PHMOU; + + +typedef struct _MOUEVENTINFO +{ + USHORT fs; + ULONG time; + SHORT row; + SHORT col; +} MOUEVENTINFO; +typedef MOUEVENTINFO *PMOUEVENTINFO; + +typedef struct _MOUQUEINFO +{ + USHORT cEvents; + USHORT cmaxEvents; +} MOUQUEINFO; +typedef MOUQUEINFO *PMOUQUEINFO; + +typedef struct _PTRLOC +{ + USHORT row; + USHORT col; +} PTRLOC; +typedef PTRLOC *PPTRLOC; + +typedef struct _NOPTRRECT +{ + USHORT row; + USHORT col; + USHORT cRow; + USHORT cCol; +} NOPTRRECT; +typedef NOPTRRECT *PNOPTRRECT; + +typedef struct _PTRSHAPE +{ + USHORT cb; + USHORT col; + USHORT row; + USHORT colHot; + USHORT rowHot; +} PTRSHAPE; +typedef PTRSHAPE *PPTRSHAPE; + +typedef struct _SCALEFACT +{ + USHORT rowScale; + USHORT colScale; +} SCALEFACT; +typedef SCALEFACT *PSCALEFACT; + +typedef struct _THRESHOLD +{ + USHORT Length; + USHORT Level1; + USHORT Lev1Mult; + USHORT Level2; + USHORT lev2Mult; +} THRESHOLD; +typedef THRESHOLD *PTHRESHOLD; + + +USHORT MouClose (HMOU hmou); +USHORT MouDeRegister (VOID); +USHORT MouDrawPtr (HMOU hmou); +USHORT MouFlushQue (HMOU hmou); +USHORT MouGetDevStatus (PUSHORT pfsDevStatus, HMOU hmou); +USHORT MouGetEventMask (PUSHORT pfsEvents, HMOU hmou); +USHORT MouGetNumButtons (PUSHORT pcButtons, HMOU hmou); +USHORT MouGetNumMickeys (PUSHORT pcMickeys, HMOU hmou); +USHORT MouGetNumQueEl (PMOUQUEINFO qmouqi, HMOU hmou); +USHORT MouGetPtrPos (PPTRLOC pmouLoc, HMOU hmou); +USHORT MouGetPtrShape (PBYTE pBuf, PPTRSHAPE pmoupsInfo, HMOU hmou); +USHORT MouGetScaleFact (PSCALEFACT pmouscFactors, HMOU hmou); +USHORT MouGetThreshold (PTHRESHOLD pthreshold, HMOU hmou); +USHORT MouInitReal (PCSZ pszDriverName); +USHORT MouOpen (PCSZ pszDvrName, PHMOU phmou); +USHORT MouReadEventQue (PMOUEVENTINFO pmouevEvent, PUSHORT pfWait, HMOU hmou); +USHORT MouRegister (PCSZ pszModName, PCSZ pszEntryName, ULONG ulFunMask); +USHORT MouRemovePtr (PNOPTRRECT pmourtRect, HMOU hmou); +USHORT MouSetDevStatus (PUSHORT pfsDevStatus, HMOU hmou); +USHORT MouSetEventMask (PUSHORT pfsEvents, HMOU hmou); +USHORT MouSetPtrPos (PPTRLOC pmouLoc, HMOU hmou); +USHORT MouSetPtrShape (PBYTE pBuf, PPTRSHAPE pmoupsInfo, HMOU hmou); +USHORT MouSetScaleFact (PSCALEFACT pmouscFactors, HMOU hmou); +USHORT MouSetThreshold (PTHRESHOLD pthreshold, HMOU hmou); +USHORT MouSynch (USHORT fWait); + +#endif /* INCL_MOU */ + +/* ------------------------------ THE END --------------------------------- */ + +#pragma pack(4) + +#endif /* not _OS2EMX_H */ + +/* Note 1: + + There are some inconsistencies in the structure names defined in + the header files of the IBM Developer's Toolkit for OS/2. To make + C++ modules compiled with those headers linkable with C++ modules + compiled with this header, we have to use the same (questionable) + structure names. */ + +/* + * Local variables: + * indent-tabs-mode: t + * end: + */ -- 2.17.1