1 /* os2emx.h (emx+gcc) */
8 #endif /* __cplusplus */
12 /* ------------------------ INCL_ SYMBOLS --------------------------------- */
14 #if defined (INCL_BASE)
16 #define INCL_DOSERRORS
20 #if defined (INCL_DOS)
21 #define INCL_DOSDATETIME
22 #define INCL_DOSDEVICES
23 #define INCL_DOSEXCEPTIONS
24 #define INCL_DOSFILEMGR
25 #define INCL_DOSMEMMGR
28 #define INCL_DOSMODULEMGR
30 #define INCL_DOSPROCESS
31 #define INCL_DOSPROFILE
33 #define INCL_DOSQUEUES
34 #define INCL_DOSRESOURCES
35 #define INCL_DOSSEMAPHORES
36 #define INCL_DOSSESMGR
39 #if defined (INCL_REXXSAA)
43 #define INCL_RXSYSEXIT
48 #if defined (INCL_SUB)
56 #define INCL_FONTFILEFORMAT
60 #define INCL_WINWORKPLACE
63 #if defined (INCL_WIN) || defined (RC_INVOKED)
64 #define INCL_WINACCELERATORS
65 #define INCL_WINBUTTONS
66 #define INCL_WINDIALOGS
67 #define INCL_WINENTRYFIELDS
68 #define INCL_WINFRAMECTLS
69 #define INCL_WINFRAMEMGR
72 #define INCL_WINLISTBOXES
74 #define INCL_WINMESSAGEMGR
76 #define INCL_WINPOINTERS
77 #define INCL_WINSCROLLBARS
78 #define INCL_WINSTATICS
79 #define INCL_WINSTDDLGS
81 #endif /* INCL_WIN || RC_INVOKED */
83 #if defined (INCL_WIN)
85 #define INCL_WINCLIPBOARD
86 #define INCL_WINCOUNTRY
87 #define INCL_WINCURSORS
89 #define INCL_WINDESKTOP
90 #define INCL_WINERRORS
93 #define INCL_WINPALETTE
94 #define INCL_WINPROGRAMLIST
95 #define INCL_WINRECTANGLES
96 #define INCL_WINSHELLDATA
97 #define INCL_WINSWITCHLIST
98 #define INCL_WINTHUNKAPI
100 #define INCL_WINTRACKRECT
101 #define INCL_WINTYPES
102 #define INCL_WINWINDOWMGR
103 #endif /* INCL_WIN */
105 #if defined (INCL_WINCOMMON)
106 #define INCL_WINWINDOWMGR
109 #if defined (INCL_WINSTDDLGS)
110 #define INCL_WINCIRCULARSLIDER
111 #define INCL_WINSTDBOOK
112 #define INCL_WINSTDCNR
113 #define INCL_WINSTDDRAG
114 #define INCL_WINSTDFILE
115 #define INCL_WINSTDFONT
116 #define INCL_WINSTDSLIDER
117 #define INCL_WINSTDSPIN
118 #define INCL_WINSTDVALSET
121 #if defined (INCL_WINSTDCNR) || defined (INCL_WINSTDVALSET)
122 #define INCL_WINSTDDRAG
125 #if defined (INCL_WINMLE) && !defined (INCL_WINENTRYFIELDS)
126 #define INCL_WINENTRYFIELDS
129 #if defined (INCL_WINWORKPLACE)
133 #if defined (INCL_GPI)
134 #define INCL_GPIBITMAPS
135 #define INCL_GPICONTROL
136 #define INCL_GPICORRELATION
138 #define INCL_GPISEGMENTS
141 #if defined (INCL_ERRORS)
142 #define INCL_DOSERRORS
143 #define INCL_GPIERRORS
144 #define INCL_SHLERRORS
145 #define INCL_WINERRORS
148 #if defined (INCL_DDIDEFS)
149 #define INCL_GPIBITMAPS
150 #define INCL_GPIERRORS
153 #if defined (INCL_CIRCULARSLIDER) && !defined (INCL_WINCIRCULARSLIDER)
154 #define INCL_WINCIRCULARSLIDER
157 /* ------------------------ DISABLE KEYWORDS ------------------------------ */
163 /* ------------------------ CONSTANTS AND TYPES --------------------------- */
175 #define NULLHANDLE ((LHANDLE)0)
176 #define NULLSHANDLE ((SHANDLE)0)
179 #if defined (__cplusplus)
182 #define NULL ((void *)0)
186 typedef int INT
; /* Required for Toolkit sample programs */
187 typedef unsigned UINT
;
188 typedef unsigned long APIRET
;
190 typedef unsigned long BOOL
;
193 typedef unsigned long BOOL32
;
194 typedef BOOL
*PBOOL32
;
199 #if !defined (OS2EMX_PLAIN_CHAR)
201 typedef unsigned char BYTE
;
202 typedef unsigned char *PCH
;
203 typedef unsigned char *PSZ
;
204 typedef __const__
unsigned char *PCCH
;
205 typedef __const__
unsigned char *PCSZ
;
212 typedef __const__
char *PCCH
;
213 typedef __const__
char *PCSZ
;
219 typedef unsigned char UCHAR
;
220 typedef UCHAR
*PUCHAR
;
223 typedef SHORT
*PSHORT
;
225 typedef unsigned short USHORT
;
226 typedef USHORT
*PUSHORT
;
231 typedef unsigned long ULONG
;
232 typedef ULONG
*PULONG
;
235 typedef PVOID
*PPVOID
;
237 typedef __const__ VOID
*CPVOID
;
239 typedef CHAR STR8
[8];
242 typedef CHAR STR16
[16];
243 typedef STR16
*PSTR16
;
244 typedef CHAR STR32
[32];
245 typedef STR32
*PSTR32
;
246 typedef CHAR STR64
[64];
247 typedef STR64
*PSTR64
;
249 typedef unsigned short SHANDLE
;
250 typedef unsigned long LHANDLE
;
252 typedef LHANDLE HPIPE
;
253 typedef HPIPE
*PHPIPE
;
255 typedef LHANDLE HQUEUE
;
256 typedef HQUEUE
*PHQUEUE
;
258 typedef LHANDLE HMODULE
;
259 typedef HMODULE
*PHMODULE
;
264 typedef LHANDLE HOBJECT
;
272 typedef int (*PFN
)();
285 #define FIELDOFFSET(t,f) ((SHORT)&(((t *)0)->f))
287 #define MAKETYPE(v,t) (*((t *)&v))
289 #define MAKEUSHORT(l,h) (((USHORT)(l)) | ((USHORT)(h))<<8)
290 #define MAKESHORT(l,h) ((SHORT)MAKEUSHORT(l, h))
292 #define MAKEULONG(l,h) ((ULONG)(((USHORT)(l)) | ((ULONG)((USHORT)(h)))<<16))
293 #define MAKELONG(l,h) ((LONG)MAKEULONG(l, h))
295 #define LOUCHAR(w) ((UCHAR)(w))
296 #define HIUCHAR(w) ((UCHAR)((USHORT)(w)>>8))
298 #define LOBYTE(x) LOUCHAR(x)
299 #define HIBYTE(x) HIUCHAR(x)
301 #define LOUSHORT(x) ((USHORT)((ULONG)(x)))
302 #define HIUSHORT(x) ((USHORT)((ULONG)(x)>>16))
304 /* ---------------------------- ERROR CODES ------------------------------- */
306 #define WINERR_BASE 0x1000
307 #define GPIERR_BASE 0x2000
308 #define DEVERR_BASE 0x3000
309 #define SPLERR_BASE 0x4000
311 #define SEVERITY_NOERROR 0x0000
312 #define SEVERITY_WARNING 0x0004
313 #define SEVERITY_ERROR 0x0008
314 #define SEVERITY_SEVERE 0x000c
315 #define SEVERITY_UNRECOVERABLE 0x0010
317 #if defined (INCL_DOSERRORS)
320 #define ERROR_INVALID_FUNCTION 1
321 #define ERROR_FILE_NOT_FOUND 2
322 #define ERROR_PATH_NOT_FOUND 3
323 #define ERROR_TOO_MANY_OPEN_FILES 4
324 #define ERROR_ACCESS_DENIED 5
325 #define ERROR_INVALID_HANDLE 6
326 #define ERROR_ARENA_TRASHED 7
327 #define ERROR_NOT_ENOUGH_MEMORY 8
328 #define ERROR_INVALID_BLOCK 9
329 #define ERROR_BAD_ENVIRONMENT 10
330 #define ERROR_BAD_FORMAT 11
331 #define ERROR_INVALID_ACCESS 12
332 #define ERROR_INVALID_DATA 13
333 #define ERROR_INVALID_DRIVE 15
334 #define ERROR_CURRENT_DIRECTORY 16
335 #define ERROR_NOT_SAME_DEVICE 17
336 #define ERROR_NO_MORE_FILES 18
337 #define ERROR_WRITE_PROTECT 19
338 #define ERROR_BAD_UNIT 20
339 #define ERROR_NOT_READY 21
340 #define ERROR_BAD_COMMAND 22
342 #define ERROR_BAD_LENGTH 24
343 #define ERROR_SEEK 25
344 #define ERROR_NOT_DOS_DISK 26
345 #define ERROR_SECTOR_NOT_FOUND 27
346 #define ERROR_OUT_OF_PAPER 28
347 #define ERROR_WRITE_FAULT 29
348 #define ERROR_READ_FAULT 30
349 #define ERROR_GEN_FAILURE 31
350 #define ERROR_SHARING_VIOLATION 32
351 #define ERROR_LOCK_VIOLATION 33
352 #define ERROR_WRONG_DISK 34
353 #define ERROR_FCB_UNAVAILABLE 35
354 #define ERROR_SHARING_BUFFER_EXCEEDED 36
355 #define ERROR_CODE_PAGE_MISMATCHED 37
356 #define ERROR_HANDLE_EOF 38
357 #define ERROR_HANDLE_DISK_FULL 39
358 #define ERROR_NOT_SUPPORTED 50
359 #define ERROR_REM_NOT_LIST 51
360 #define ERROR_DUP_NAME 52
361 #define ERROR_BAD_NETPATH 53
362 #define ERROR_NETWORK_BUSY 54
363 #define ERROR_DEV_NOT_EXIST 55
364 #define ERROR_TOO_MANY_CMDS 56
365 #define ERROR_ADAP_HDW_ERR 57
366 #define ERROR_BAD_NET_RESP 58
367 #define ERROR_UNEXP_NET_ERR 59
368 #define ERROR_BAD_REM_ADAP 60
369 #define ERROR_PRINTQ_FULL 61
370 #define ERROR_NO_SPOOL_SPACE 62
371 #define ERROR_PRINT_CANCELLED 63
372 #define ERROR_NETNAME_DELETED 64
373 #define ERROR_NETWORK_ACCESS_DENIED 65
374 #define ERROR_BAD_DEV_TYPE 66
375 #define ERROR_BAD_NET_NAME 67
376 #define ERROR_TOO_MANY_NAMES 68
377 #define ERROR_TOO_MANY_SESS 69
378 #define ERROR_SHARING_PAUSED 70
379 #define ERROR_REQ_NOT_ACCEP 71
380 #define ERROR_REDIR_PAUSED 72
381 #define ERROR_SBCS_ATT_WRITE_PROT 73
382 #define ERROR_SBCS_GENERAL_FAILURE 74
383 #define ERROR_XGA_OUT_MEMORY 75
384 #define ERROR_FILE_EXISTS 80
385 #define ERROR_DUP_FCB 81
386 #define ERROR_CANNOT_MAKE 82
387 #define ERROR_FAIL_I24 83
388 #define ERROR_OUT_OF_STRUCTURES 84
389 #define ERROR_ALREADY_ASSIGNED 85
390 #define ERROR_INVALID_PASSWORD 86
391 #define ERROR_INVALID_PARAMETER 87
392 #define ERROR_NET_WRITE_FAULT 88
393 #define ERROR_NO_PROC_SLOTS 89
394 #define ERROR_NOT_FROZEN 90
395 #define ERROR_SYS_COMP_NOT_LOADED 90 /*!*/
396 #define ERR_TSTOVFL 91
397 #define ERR_TSTDUP 92
398 #define ERROR_NO_ITEMS 93
399 #define ERROR_INTERRUPT 95
400 #define ERROR_DEVICE_IN_USE 99
401 #define ERROR_TOO_MANY_SEMAPHORES 100
402 #define ERROR_EXCL_SEM_ALREADY_OWNED 101
403 #define ERROR_SEM_IS_SET 102
404 #define ERROR_TOO_MANY_SEM_REQUESTS 103
405 #define ERROR_INVALID_AT_INTERRUPT_TIME 104
406 #define ERROR_SEM_OWNER_DIED 105
407 #define ERROR_SEM_USER_LIMIT 106
408 #define ERROR_DISK_CHANGE 107
409 #define ERROR_DRIVE_LOCKED 108
410 #define ERROR_BROKEN_PIPE 109
411 #define ERROR_OPEN_FAILED 110
412 #define ERROR_BUFFER_OVERFLOW 111
413 #define ERROR_DISK_FULL 112
414 #define ERROR_NO_MORE_SEARCH_HANDLES 113
415 #define ERROR_INVALID_TARGET_HANDLE 114
416 #define ERROR_PROTECTION_VIOLATION 115
417 #define ERROR_VIOKBD_REQUEST 116
418 #define ERROR_INVALID_CATEGORY 117
419 #define ERROR_INVALID_VERIFY_SWITCH 118
420 #define ERROR_BAD_DRIVER_LEVEL 119
421 #define ERROR_CALL_NOT_IMPLEMENTED 120
422 #define ERROR_SEM_TIMEOUT 121
423 #define ERROR_INSUFFICIENT_BUFFER 122
424 #define ERROR_INVALID_NAME 123
425 #define ERROR_INVALID_LEVEL 124
426 #define ERROR_NO_VOLUME_LABEL 125
427 #define ERROR_MOD_NOT_FOUND 126
428 #define ERROR_PROC_NOT_FOUND 127
429 #define ERROR_WAIT_NO_CHILDREN 128
430 #define ERROR_CHILD_NOT_COMPLETE 129
431 #define ERROR_DIRECT_ACCESS_HANDLE 130
432 #define ERROR_NEGATIVE_SEEK 131
433 #define ERROR_SEEK_ON_DEVICE 132
434 #define ERROR_IS_JOIN_TARGET 133
435 #define ERROR_IS_JOINED 134
436 #define ERROR_IS_SUBSTED 135
437 #define ERROR_NOT_JOINED 136
438 #define ERROR_NOT_SUBSTED 137
439 #define ERROR_JOIN_TO_JOIN 138
440 #define ERROR_SUBST_TO_SUBST 139
441 #define ERROR_JOIN_TO_SUBST 140
442 #define ERROR_SUBST_TO_JOIN 141
443 #define ERROR_BUSY_DRIVE 142
444 #define ERROR_SAME_DRIVE 143
445 #define ERROR_DIR_NOT_ROOT 144
446 #define ERROR_DIR_NOT_EMPTY 145
447 #define ERROR_IS_SUBST_PATH 146
448 #define ERROR_IS_JOIN_PATH 147
449 #define ERROR_PATH_BUSY 148
450 #define ERROR_IS_SUBST_TARGET 149
451 #define ERROR_SYSTEM_TRACE 150
452 #define ERROR_INVALID_EVENT_COUNT 151
453 #define ERROR_TOO_MANY_MUXWAITERS 152
454 #define ERROR_INVALID_LIST_FORMAT 153
455 #define ERROR_LABEL_TOO_LONG 154
456 #define ERROR_TOO_MANY_TCBS 155
457 #define ERROR_SIGNAL_REFUSED 156
458 #define ERROR_DISCARDED 157
459 #define ERROR_NOT_LOCKED 158
460 #define ERROR_BAD_THREADID_ADDR 159
461 #define ERROR_BAD_ARGUMENTS 160
462 #define ERROR_BAD_PATHNAME 161
463 #define ERROR_SIGNAL_PENDING 162
464 #define ERROR_UNCERTAIN_MEDIA 163
465 #define ERROR_MAX_THRDS_REACHED 164
466 #define ERROR_MONITORS_NOT_SUPPORTED 165
467 #define ERROR_UNC_DRIVER_NOT_INSTALLED 166
468 #define ERROR_LOCK_FAILED 167
469 #define ERROR_SWAPIO_FAILED 168
470 #define ERROR_SWAPIN_FAILED 169
471 #define ERROR_BUSY 170
472 #define ERROR_CANCEL_VIOLATION 173
473 #define ERROR_ATOMIC_LOCK_NOT_SUPPORTED 174
474 #define ERROR_READ_LOCKS_NOT_SUPPORTED 175
475 #define ERROR_INVALID_SEGMENT_NUMBER 180
476 #define ERROR_INVALID_CALLGATE 181
477 #define ERROR_INVALID_ORDINAL 182
478 #define ERROR_ALREADY_EXISTS 183
479 #define ERROR_NO_CHILD_PROCESS 184
480 #define ERROR_CHILD_ALIVE_NOWAIT 185
481 #define ERROR_INVALID_FLAG_NUMBER 186
482 #define ERROR_SEM_NOT_FOUND 187
483 #define ERROR_INVALID_STARTING_CODESEG 188
484 #define ERROR_INVALID_STACKSEG 189
485 #define ERROR_INVALID_MODULETYPE 190
486 #define ERROR_INVALID_EXE_SIGNATURE 191
487 #define ERROR_EXE_MARKED_INVALID 192
488 #define ERROR_BAD_EXE_FORMAT 193
489 #define ERROR_ITERATED_DATA_EXCEEDS_64K 194
490 #define ERROR_INVALID_MINALLOCSIZE 195
491 #define ERROR_DYNLINK_FROM_INVALID_RING 196
492 #define ERROR_IOPL_NOT_ENABLED 197
493 #define ERROR_INVALID_SEGDPL 198
494 #define ERROR_AUTODATASEG_EXCEEDS_64K 199
495 #define ERROR_RING2SEG_MUST_BE_MOVABLE 200
496 #define ERROR_RELOCSRC_CHAIN_EXCEEDS_SEGLIMIT 201
497 #define ERROR_INFLOOP_IN_RELOC_CHAIN 202
498 #define ERROR_ENVVAR_NOT_FOUND 203
499 #define ERROR_NOT_CURRENT_CTRY 204
500 #define ERROR_NO_SIGNAL_SENT 205
501 #define ERROR_FILENAME_EXCED_RANGE 206
502 #define ERROR_RING2_STACK_IN_USE 207
503 #define ERROR_META_EXPANSION_TOO_LONG 208
504 #define ERROR_INVALID_SIGNAL_NUMBER 209
505 #define ERROR_THREAD_1_INACTIVE 210
506 #define ERROR_INFO_NOT_AVAIL 211
507 #define ERROR_LOCKED 212
508 #define ERROR_BAD_DYNALINK 213
509 #define ERROR_TOO_MANY_MODULES 214
510 #define ERROR_NESTING_NOT_ALLOWED 215
511 #define ERROR_CANNOT_SHRINK 216
512 #define ERROR_ZOMBIE_PROCESS 217
513 #define ERROR_STACK_IN_HIGH_MEMORY 218
514 #define ERROR_INVALID_EXITROUTINE_RING 219
515 #define ERROR_GETBUF_FAILED 220
516 #define ERROR_FLUSHBUF_FAILED 221
517 #define ERROR_TRANSFER_TOO_LONG 222
518 #define ERROR_FORCENOSWAP_FAILED 223
519 #define ERROR_SMG_NO_TARGET_WINDOW 224
520 #define ERROR_NO_CHILDREN 228
521 #define ERROR_INVALID_SCREEN_GROUP 229
522 #define ERROR_BAD_PIPE 230
523 #define ERROR_PIPE_BUSY 231
524 #define ERROR_NO_DATA 232
525 #define ERROR_PIPE_NOT_CONNECTED 233
526 #define ERROR_MORE_DATA 234
527 #define ERROR_VC_DISCONNECTED 240
528 #define ERROR_CIRCULARITY_REQUESTED 250
529 #define ERROR_DIRECTORY_IN_CDS 251
530 #define ERROR_INVALID_FSD_NAME 252
531 #define ERROR_INVALID_PATH 253
532 #define ERROR_INVALID_EA_NAME 254
533 #define ERROR_EA_LIST_INCONSISTENT 255
534 #define ERROR_EA_LIST_TOO_LONG 256
535 #define ERROR_NO_META_MATCH 257
536 #define ERROR_FINDNOTIFY_TIMEOUT 258
537 #define ERROR_NO_MORE_ITEMS 259
538 #define ERROR_SEARCH_STRUC_REUSED 260
539 #define ERROR_CHAR_NOT_FOUND 261
540 #define ERROR_TOO_MUCH_STACK 262
541 #define ERROR_INVALID_ATTR 263
542 #define ERROR_INVALID_STARTING_RING 264
543 #define ERROR_INVALID_DLL_INIT_RING 265
544 #define ERROR_CANNOT_COPY 266
545 #define ERROR_DIRECTORY 267
546 #define ERROR_OPLOCKED_FILE 268
547 #define ERROR_OPLOCK_THREAD_EXISTS 269
548 #define ERROR_VOLUME_CHANGED 270
549 #define ERROR_FINDNOTIFY_HANDLE_IN_USE 271
550 #define ERROR_FINDNOTIFY_HANDLE_CLOSED 272
551 #define ERROR_NOTIFY_OBJECT_REMOVED 273
552 #define ERROR_ALREADY_SHUTDOWN 274
553 #define ERROR_EAS_DIDNT_FIT 275
554 #define ERROR_EA_FILE_CORRUPT 276
555 #define ERROR_EA_TABLE_FULL 277
556 #define ERROR_INVALID_EA_HANDLE 278
557 #define ERROR_NO_CLUSTER 279
558 #define ERROR_CREATE_EA_FILE 280
559 #define ERROR_CANNOT_OPEN_EA_FILE 281
560 #define ERROR_EAS_NOT_SUPPORTED 282
561 #define ERROR_NEED_EAS_FOUND 283
562 #define ERROR_DUPLICATE_HANDLE 284
563 #define ERROR_DUPLICATE_NAME 285
564 #define ERROR_EMPTY_MUXWAIT 286
565 #define ERROR_MUTEX_OWNED 287
566 #define ERROR_NOT_OWNER 288
567 #define ERROR_PARAM_TOO_SMALL 289
568 #define ERROR_TOO_MANY_HANDLES 290
569 #define ERROR_TOO_MANY_OPENS 291
570 #define ERROR_WRONG_TYPE 292
571 #define ERROR_UNUSED_CODE 293
572 #define ERROR_THREAD_NOT_TERMINATED 294
573 #define ERROR_INIT_ROUTINE_FAILED 295
574 #define ERROR_MODULE_IN_USE 296
575 #define ERROR_NOT_ENOUGH_WATCHPOINTS 297
576 #define ERROR_TOO_MANY_POSTS 298
577 #define ERROR_ALREADY_POSTED 299
578 #define ERROR_ALREADY_RESET 300
579 #define ERROR_SEM_BUSY 301
580 #define ERROR_INVALID_PROCID 303
581 #define ERROR_INVALID_PDELTA 304
582 #define ERROR_NOT_DESCENDANT 305
583 #define ERROR_NOT_SESSION_MANAGER 306
584 #define ERROR_INVALID_PCLASS 307
585 #define ERROR_INVALID_SCOPE 308
586 #define ERROR_INVALID_THREADID 309
587 #define ERROR_DOSSUB_SHRINK 310
588 #define ERROR_DOSSUB_NOMEM 311
589 #define ERROR_DOSSUB_OVERLAP 312
590 #define ERROR_DOSSUB_BADSIZE 313
591 #define ERROR_DOSSUB_BADFLAG 314
592 #define ERROR_DOSSUB_BADSELECTOR 315
593 #define ERROR_MR_MSG_TOO_LONG 316
594 #define ERROR_MR_MID_NOT_FOUND 317
595 #define ERROR_MR_UN_ACC_MSGF 318
596 #define ERROR_MR_INV_MSGF_FORMAT 319
597 #define ERROR_MR_INV_IVCOUNT 320
598 #define ERROR_MR_UN_PERFORM 321
599 #define ERROR_TS_WAKEUP 322
600 #define ERROR_TS_SEMHANDLE 323
601 #define ERROR_TS_NOTIMER 324
602 #define ERROR_TS_HANDLE 326
603 #define ERROR_TS_DATETIME 327
604 #define ERROR_SYS_INTERNAL 328
605 #define ERROR_QUE_CURRENT_NAME 329
606 #define ERROR_QUE_PROC_NOT_OWNED 330
607 #define ERROR_QUE_PROC_OWNED 331
608 #define ERROR_QUE_DUPLICATE 332
609 #define ERROR_QUE_ELEMENT_NOT_EXIST 333
610 #define ERROR_QUE_NO_MEMORY 334
611 #define ERROR_QUE_INVALID_NAME 335
612 #define ERROR_QUE_INVALID_PRIORITY 336
613 #define ERROR_QUE_INVALID_HANDLE 337
614 #define ERROR_QUE_LINK_NOT_FOUND 338
615 #define ERROR_QUE_MEMORY_ERROR 339
616 #define ERROR_QUE_PREV_AT_END 340
617 #define ERROR_QUE_PROC_NO_ACCESS 341
618 #define ERROR_QUE_EMPTY 342
619 #define ERROR_QUE_NAME_NOT_EXIST 343
620 #define ERROR_QUE_NOT_INITIALIZED 344
621 #define ERROR_QUE_UNABLE_TO_ACCESS 345
622 #define ERROR_QUE_UNABLE_TO_ADD 346
623 #define ERROR_QUE_UNABLE_TO_INIT 347
624 #define ERROR_VIO_INVALID_MASK 349
625 #define ERROR_VIO_PTR 350
626 #define ERROR_VIO_APTR 351
627 #define ERROR_VIO_RPTR 352
628 #define ERROR_VIO_CPTR 353
629 #define ERROR_VIO_LPTR 354
630 #define ERROR_VIO_MODE 355
631 #define ERROR_VIO_WIDTH 356
632 #define ERROR_VIO_ATTR 357
633 #define ERROR_VIO_ROW 358
634 #define ERROR_VIO_COL 359
635 #define ERROR_VIO_TOPROW 360
636 #define ERROR_VIO_BOTROW 361
637 #define ERROR_VIO_RIGHTCOL 362
638 #define ERROR_VIO_LEFTCOL 363
639 #define ERROR_SCS_CALL 364
640 #define ERROR_SCS_VALUE 365
641 #define ERROR_VIO_WAIT_FLAG 366
642 #define ERROR_VIO_UNLOCK 367
643 #define ERROR_SGS_NOT_SESSION_MGR 368
644 #define ERROR_SMG_INVALID_SGID 369
645 #define ERROR_SMG_INVALID_SESSION_ID 369 /*!*/
646 #define ERROR_SMG_NOSG 370
647 #define ERROR_SMG_NO_SESSIONS 370 /*!*/
648 #define ERROR_SMG_GRP_NOT_FOUND 371
649 #define ERROR_SMG_SESSION_NOT_FOUND 371 /*!*/
650 #define ERROR_SMG_SET_TITLE 372
651 #define ERROR_KBD_PARAMETER 373
652 #define ERROR_KBD_NO_DEVICE 374
653 #define ERROR_KBD_INVALID_IOWAIT 375
654 #define ERROR_KBD_INVALID_LENGTH 376
655 #define ERROR_KBD_INVALID_ECHO_MASK 377
656 #define ERROR_KBD_INVALID_INPUT_MASK 378
657 #define ERROR_MON_INVALID_PARMS 379
658 #define ERROR_MON_INVALID_DEVNAME 380
659 #define ERROR_MON_INVALID_HANDLE 381
660 #define ERROR_MON_BUFFER_TOO_SMALL 382
661 #define ERROR_MON_BUFFER_EMPTY 383
662 #define ERROR_MON_DATA_TOO_LARGE 384
663 #define ERROR_MOUSE_NO_DEVICE 385
664 #define ERROR_MOUSE_INV_HANDLE 386
665 #define ERROR_MOUSE_INV_PARMS 387
666 #define ERROR_MOUSE_CANT_RESET 388
667 #define ERROR_MOUSE_DISPLAY_PARMS 389
668 #define ERROR_MOUSE_INV_MODULE 390
669 #define ERROR_MOUSE_INV_ENTRY_PT 391
670 #define ERROR_MOUSE_INV_MASK 392
671 #define NO_ERROR_MOUSE_NO_DATA 393
672 #define NO_ERROR_MOUSE_PTR_DRAWN 394
673 #define ERROR_INVALID_FREQUENCY 395
674 #define ERROR_NLS_NO_COUNTRY_FILE 396
675 #define ERROR_NLS_OPEN_FAILED 397
676 #define ERROR_NLS_NO_CTRY_CODE 398
677 #define ERROR_NLS_TABLE_TRUNCATED 399
678 #define ERROR_NLS_BAD_TYPE 400
679 #define ERROR_NLS_TYPE_NOT_FOUND 401
680 #define ERROR_VIO_SMG_ONLY 402
681 #define ERROR_VIO_INVALID_ASCIIZ 403
682 #define ERROR_VIO_DEREGISTER 404
683 #define ERROR_VIO_NO_POPUP 405
684 #define ERROR_VIO_EXISTING_POPUP 406
685 #define ERROR_KBD_SMG_ONLY 407
686 #define ERROR_KBD_INVALID_ASCIIZ 408
687 #define ERROR_KBD_INVALID_MASK 409
688 #define ERROR_KBD_REGISTER 410
689 #define ERROR_KBD_DEREGISTER 411
690 #define ERROR_MOUSE_SMG_ONLY 412
691 #define ERROR_MOUSE_INVALID_ASCIIZ 413
692 #define ERROR_MOUSE_INVALID_MASK 414
693 #define ERROR_MOUSE_REGISTER 415
694 #define ERROR_MOUSE_DEREGISTER 416
695 #define ERROR_SMG_BAD_ACTION 417
696 #define ERROR_SMG_INVALID_CALL 418
697 #define ERROR_SCS_SG_NOTFOUND 419
698 #define ERROR_SCS_NOT_SHELL 420
699 #define ERROR_VIO_INVALID_PARMS 421
700 #define ERROR_VIO_FUNCTION_OWNED 422
701 #define ERROR_VIO_RETURN 423
702 #define ERROR_SCS_INVALID_FUNCTION 424
703 #define ERROR_SCS_NOT_SESSION_MGR 425
704 #define ERROR_VIO_REGISTER 426
705 #define ERROR_VIO_NO_MODE_THREAD 427
706 #define ERROR_VIO_NO_SAVE_RESTORE_THD 428
707 #define ERROR_VIO_IN_BG 429
708 #define ERROR_VIO_ILLEGAL_DURING_POPUP 430
709 #define ERROR_SMG_NOT_BASESHELL 431
710 #define ERROR_SMG_BAD_STATUSREQ 432
711 #define ERROR_QUE_INVALID_WAIT 433
712 #define ERROR_VIO_LOCK 434
713 #define ERROR_MOUSE_INVALID_IOWAIT 435
714 #define ERROR_VIO_INVALID_HANDLE 436
715 #define ERROR_VIO_ILLEGAL_DURING_LOCK 437
716 #define ERROR_VIO_INVALID_LENGTH 438
717 #define ERROR_KBD_INVALID_HANDLE 439
718 #define ERROR_KBD_NO_MORE_HANDLE 440
719 #define ERROR_KBD_CANNOT_CREATE_KCB 441
720 #define ERROR_KBD_CODEPAGE_LOAD_INCOMPL 442
721 #define ERROR_KBD_INVALID_CODEPAGE_ID 443
722 #define ERROR_KBD_NO_CODEPAGE_SUPPORT 444
723 #define ERROR_KBD_FOCUS_REQUIRED 445
724 #define ERROR_KBD_FOCUS_ALREADY_ACTIVE 446
725 #define ERROR_KBD_KEYBOARD_BUSY 447
726 #define ERROR_KBD_INVALID_CODEPAGE 448
727 #define ERROR_KBD_UNABLE_TO_FOCUS 449
728 #define ERROR_SMG_SESSION_NON_SELECT 450
729 #define ERROR_SMG_SESSION_NOT_FOREGRND 451
730 #define ERROR_SMG_SESSION_NOT_PARENT 452
731 #define ERROR_SMG_INVALID_START_MODE 453
732 #define ERROR_SMG_INVALID_RELATED_OPT 454
733 #define ERROR_SMG_INVALID_BOND_OPTION 455
734 #define ERROR_SMG_INVALID_SELECT_OPT 456
735 #define ERROR_SMG_START_IN_BACKGROUND 457
736 #define ERROR_SMG_INVALID_STOP_OPTION 458
737 #define ERROR_SMG_BAD_RESERVE 459
738 #define ERROR_SMG_PROCESS_NOT_PARENT 460
739 #define ERROR_SMG_INVALID_DATA_LENGTH 461
740 #define ERROR_SMG_NOT_BOUND 462
741 #define ERROR_SMG_RETRY_SUB_ALLOC 463
742 #define ERROR_KBD_DETACHED 464
743 #define ERROR_VIO_DETACHED 465
744 #define ERROR_MOU_DETACHED 466
745 #define ERROR_VIO_FONT 467
746 #define ERROR_VIO_USER_FONT 468
747 #define ERROR_VIO_BAD_CP 469
748 #define ERROR_VIO_NO_CP 470
749 #define ERROR_VIO_NA_CP 471
750 #define ERROR_INVALID_CODE_PAGE 472
751 #define ERROR_CPLIST_TOO_SMALL 473
752 #define ERROR_CP_NOT_MOVED 474
753 #define ERROR_MODE_SWITCH_INIT 475
754 #define ERROR_CODE_PAGE_NOT_FOUND 476
755 #define ERROR_UNEXPECTED_SLOT_RETURNED 477
756 #define ERROR_SMG_INVALID_TRACE_OPTION 478
757 #define ERROR_VIO_INTERNAL_RESOURCE 479
758 #define ERROR_VIO_SHELL_INIT 480
759 #define ERROR_SMG_NO_HARD_ERRORS 481
760 #define ERROR_CP_SWITCH_INCOMPLETE 482
761 #define ERROR_VIO_TRANSPARENT_POPUP 483
762 #define ERROR_CRITSEC_OVERFLOW 484
763 #define ERROR_CRITSEC_UNDERFLOW 485
764 #define ERROR_VIO_BAD_RESERVE 486
765 #define ERROR_INVALID_ADDRESS 487
766 #define ERROR_ZERO_SELECTORS_REQUESTED 488
767 #define ERROR_NOT_ENOUGH_SELECTORS_AVA 489
768 #define ERROR_INVALID_SELECTOR 490
769 #define ERROR_SMG_INVALID_PROGRAM_TYPE 491
770 #define ERROR_SMG_INVALID_PGM_CONTROL 492
771 #define ERROR_SMG_INVALID_INHERIT_OPT 493
772 #define ERROR_VIO_EXTENDED_SG 494
773 #define ERROR_VIO_NOT_PRES_MGR_SG 495
774 #define ERROR_VIO_SHIELD_OWNED 496
775 #define ERROR_VIO_NO_MORE_HANDLES 497
776 #define ERROR_VIO_SEE_ERROR_LOG 498
777 #define ERROR_VIO_ASSOCIATED_DC 499
778 #define ERROR_KBD_NO_CONSOLE 500
779 #define ERROR_MOUSE_NO_CONSOLE 501
780 #define ERROR_MOUSE_INVALID_HANDLE 502
781 #define ERROR_SMG_INVALID_DEBUG_PARMS 503
782 #define ERROR_KBD_EXTENDED_SG 504
783 #define ERROR_MOU_EXTENDED_SG 505
784 #define ERROR_SMG_INVALID_ICON_FILE 506
785 #define ERROR_TRC_PID_NON_EXISTENT 507
786 #define ERROR_TRC_COUNT_ACTIVE 508
787 #define ERROR_TRC_SUSPENDED_BY_COUNT 509
788 #define ERROR_TRC_COUNT_INACTIVE 510
789 #define ERROR_TRC_COUNT_REACHED 511
790 #define ERROR_NO_MC_TRACE 512
791 #define ERROR_MC_TRACE 513
792 #define ERROR_TRC_COUNT_ZERO 514
793 #define ERROR_SMG_TOO_MANY_DDS 515
794 #define ERROR_SMG_INVALID_NOTIFICATION 516
795 #define ERROR_LF_INVALID_FUNCTION 517
796 #define ERROR_LF_NOT_AVAIL 518
797 #define ERROR_LF_SUSPENDED 519
798 #define ERROR_LF_BUF_TOO_SMALL 520
799 #define ERROR_LF_BUFFER_CORRUPTED 521
800 #define ERROR_LF_BUFFER_FULL 521 /*!*/
801 #define ERROR_LF_INVALID_DAEMON 522
802 #define ERROR_LF_INVALID_RECORD 522 /*!*/
803 #define ERROR_LF_INVALID_TEMPL 523
804 #define ERROR_LF_INVALID_SERVICE 523 /*!*/
805 #define ERROR_LF_GENERAL_FAILURE 524
806 #define ERROR_LF_INVALID_ID 525
807 #define ERROR_LF_INVALID_HANDLE 526
808 #define ERROR_LF_NO_ID_AVAIL 527
809 #define ERROR_LF_TEMPLATE_AREA_FULL 528
810 #define ERROR_LF_ID_IN_USE 529
811 #define ERROR_MOU_NOT_INITIALIZED 530
812 #define ERROR_MOUINITREAL_DONE 531
813 #define ERROR_DOSSUB_CORRUPTED 532
814 #define ERROR_MOUSE_CALLER_NOT_SUBSYS 533
815 #define ERROR_ARITHMETIC_OVERFLOW 534
816 #define ERROR_TMR_NO_DEVICE 535
817 #define ERROR_TMR_INVALID_TIME 536
818 #define ERROR_PVW_INVALID_ENTITY 537
819 #define ERROR_PVW_INVALID_ENTITY_TYPE 538
820 #define ERROR_PVW_INVALID_SPEC 539
821 #define ERROR_PVW_INVALID_RANGE_TYPE 540
822 #define ERROR_PVW_INVALID_COUNTER_BLK 541
823 #define ERROR_PVW_INVALID_TEXT_BLK 542
824 #define ERROR_PRF_NOT_INITIALIZED 543
825 #define ERROR_PRF_ALREADY_INITIALIZED 544
826 #define ERROR_PRF_NOT_STARTED 545
827 #define ERROR_PRF_ALREADY_STARTED 546
828 #define ERROR_PRF_TIMER_OUT_OF_RANGE 547
829 #define ERROR_PRF_TIMER_RESET 548
830 #define ERROR_VDD_LOCK_USEAGE_DENIED 639
831 #define ERROR_TIMEOUT 640
832 #define ERROR_VDM_DOWN 641
833 #define ERROR_VDM_LIMIT 642
834 #define ERROR_VDD_NOT_FOUND 643
835 #define ERROR_INVALID_CALLER 644
836 #define ERROR_PID_MISMATCH 645
837 #define ERROR_INVALID_VDD_HANDLE 646
838 #define ERROR_VLPT_NO_SPOOLER 647
839 #define ERROR_VCOM_DEVICE_BUSY 648
840 #define ERROR_VLPT_DEVICE_BUSY 649
841 #define ERROR_NESTING_TOO_DEEP 650
842 #define ERROR_VDD_MISSING 651
843 #define ERROR_BIDI_INVALID_LENGTH 671
844 #define ERROR_BIDI_INVALID_INCREMENT 672
845 #define ERROR_BIDI_INVALID_COMBINATION 673
846 #define ERROR_BIDI_INVALID_RESERVED 674
847 #define ERROR_BIDI_INVALID_EFFECT 675
848 #define ERROR_BIDI_INVALID_CSDREC 676
849 #define ERROR_BIDI_INVALID_CSDSTATE 677
850 #define ERROR_BIDI_INVALID_LEVEL 678
851 #define ERROR_BIDI_INVALID_TYPE_SUPPORT 679
852 #define ERROR_BIDI_INVALID_ORIENTATION 680
853 #define ERROR_BIDI_INVALID_NUM_SHAPE 681
854 #define ERROR_BIDI_INVALID_CSD 682
855 #define ERROR_BIDI_NO_SUPPORT 683
856 #define NO_ERROR_BIDI_RW_INCOMPLETE 684
857 #define ERROR_IMP_INVALID_PARM 691
858 #define ERROR_IMP_INVALID_LENGTH 692
859 #define ERROR_MON_BAD_BUFFER 730
860 #define ERROR_MODULE_CORRUPTED 731
861 #define ERROR_SM_OUTOF_SWAPFILE 1477
862 #define ERROR_LF_TIMEOUT 2055
863 #define ERROR_LF_SUSPEND_SUCCESS 2057
864 #define ERROR_LF_RESUME_SUCCESS 2058
865 #define ERROR_LF_REDIRECT_SUCCESS 2059
866 #define ERROR_LF_REDIRECT_FAILURE 2060
867 #define ERROR_SWAPPER_NOT_ACTIVE 32768
868 #define ERROR_INVALID_SWAPID 32769
869 #define ERROR_IOERR_SWAP_FILE 32770
870 #define ERROR_SWAP_TABLE_FULL 32771
871 #define ERROR_SWAP_FILE_FULL 32772
872 #define ERROR_CANT_INIT_SWAPPER 32773
873 #define ERROR_SWAPPER_ALREADY_INIT 32774
874 #define ERROR_PMM_INSUFFICIENT_MEMORY 32775
875 #define ERROR_PMM_INVALID_FLAGS 32776
876 #define ERROR_PMM_INVALID_ADDRESS 32777
877 #define ERROR_PMM_LOCK_FAILED 32778
878 #define ERROR_PMM_UNLOCK_FAILED 32779
879 #define ERROR_PMM_MOVE_INCOMPLETE 32780
880 #define ERROR_UCOM_DRIVE_RENAMED 32781
881 #define ERROR_UCOM_FILENAME_TRUNCATED 32782
882 #define ERROR_UCOM_BUFFER_LENGTH 32783
883 #define ERROR_MON_CHAIN_HANDLE 32784
884 #define ERROR_MON_NOT_REGISTERED 32785
885 #define ERROR_SMG_ALREADY_TOP 32786
886 #define ERROR_PMM_ARENA_MODIFIED 32787
887 #define ERROR_SMG_PRINTER_OPEN 32788
888 #define ERROR_PMM_SET_FLAGS_FAILED 32789
889 #define ERROR_INVALID_DOS_DD 32790
890 #define ERROR_BLOCKED 32791
891 #define ERROR_NOBLOCK 32792
892 #define ERROR_INSTANCE_SHARED 32793
893 #define ERROR_NO_OBJECT 32794
894 #define ERROR_PARTIAL_ATTACH 32795
895 #define ERROR_INCACHE 32796
896 #define ERROR_SWAP_IO_PROBLEMS 32797
897 #define ERROR_CROSSES_OBJECT_BOUNDARY 32798
898 #define ERROR_LONGLOCK 32799
899 #define ERROR_SHORTLOCK 32800
900 #define ERROR_UVIRTLOCK 32801
901 #define ERROR_ALIASLOCK 32802
902 #define ERROR_ALIAS 32803
903 #define ERROR_NO_MORE_HANDLES 32804
904 #define ERROR_SCAN_TERMINATED 32805
905 #define ERROR_TERMINATOR_NOT_FOUND 32806
906 #define ERROR_NOT_DIRECT_CHILD 32807
907 #define ERROR_DELAY_FREE 32808
908 #define ERROR_GUARDPAGE 32809
909 #define ERROR_SWAPERROR 32900
910 #define ERROR_LDRERROR 32901
911 #define ERROR_NOMEMORY 32902
912 #define ERROR_NOACCESS 32903
913 #define ERROR_NO_DLL_TERM 32904
914 #define ERROR_CPSIO_CODE_PAGE_INVALID 65026
915 #define ERROR_CPSIO_NO_SPOOLER 65027
916 #define ERROR_CPSIO_FONT_ID_INVALID 65028
917 #define ERROR_CPSIO_INTERNAL_ERROR 65033
918 #define ERROR_CPSIO_INVALID_PTR_NAME 65034
919 #define ERROR_CPSIO_NOT_ACTIVE 65037
920 #define ERROR_CPSIO_PID_FULL 65039
921 #define ERROR_CPSIO_PID_NOT_FOUND 65040
922 #define ERROR_CPSIO_READ_CTL_SEQ 65043
923 #define ERROR_CPSIO_READ_FNT_DEF 65045
924 #define ERROR_CPSIO_WRITE_ERROR 65047
925 #define ERROR_CPSIO_WRITE_FULL_ERROR 65048
926 #define ERROR_CPSIO_WRITE_HANDLE_BAD 65049
927 #define ERROR_CPSIO_SWIT_LOAD 65074
928 #define ERROR_CPSIO_INV_COMMAND 65077
929 #define ERROR_CPSIO_NO_FONT_SWIT 65078
930 #define ERROR_ENTRY_IS_CALLGATE 65079
932 #endif /* INCL_DOSERRORS */
934 /* ----------------------------- ERRORS ----------------------------------- */
936 #if defined (INCL_DOSERRORS)
938 #define ERRACT_RETRY 1
939 #define ERRACT_DLYRET 2
940 #define ERRACT_USER 3
941 #define ERRACT_ABORT 4
942 #define ERRACT_PANIC 5
943 #define ERRACT_IGNORE 6
944 #define ERRACT_INTRET 7
946 #define ERRCLASS_OUTRES 1
947 #define ERRCLASS_TEMPSIT 2
948 #define ERRCLASS_AUTH 3
949 #define ERRCLASS_INTRN 4
950 #define ERRCLASS_HRDFAIL 5
951 #define ERRCLASS_SYSFAIL 6
952 #define ERRCLASS_APPERR 7
953 #define ERRCLASS_NOTFND 8
954 #define ERRCLASS_BADFMT 9
955 #define ERRCLASS_LOCKED 10
956 #define ERRCLASS_MEDIA 11
957 #define ERRCLASS_ALREADY 12
958 #define ERRCLASS_UNK 13
959 #define ERRCLASS_CANT 14
960 #define ERRCLASS_TIME 15
963 #define ERRLOC_DISK 2
965 #define ERRLOC_SERDEV 4
968 #endif /* INCL_DOSERRORS */
970 #if defined (INCL_DOSMISC)
972 #define FERR_DISABLEHARDERR 0x0000L
973 #define FERR_ENABLEHARDERR 0x0001L
974 #define FERR_ENABLEEXCEPTION 0x0000L
975 #define FERR_DISABLEEXCEPTION 0x0002L
977 #define BEGIN_LIBPATH 1
978 #define END_LIBPATH 2
980 ULONG
DosErrClass (ULONG ulCode
, PULONG pulClass
, PULONG pulAction
,
982 ULONG
DosError (ULONG ulError
);
983 ULONG
DosQueryExtLIBPATH (PCSZ pszExtLIBPATH
, ULONG flags
);
984 ULONG
DosSetExtLIBPATH (PCSZ pszExtLIBPATH
, ULONG flags
);
986 #endif /* INCL_DOSMISC */
988 /* ----------------------------- FONTS ------------------------------------ */
992 #define FATTR_SEL_ITALIC 0x0001
993 #define FATTR_SEL_UNDERSCORE 0x0002
994 #define FATTR_SEL_OUTLINE 0x0008
995 #define FATTR_SEL_STRIKEOUT 0x0010
996 #define FATTR_SEL_BOLD 0x0020
998 #define FATTR_TYPE_KERNING 0x0004
999 #define FATTR_TYPE_MBCS 0x0008
1000 #define FATTR_TYPE_DBCS 0x0010
1001 #define FATTR_TYPE_ANTIALIASED 0x0020
1003 #define FATTR_FONTUSE_NOMIX 0x0002
1004 #define FATTR_FONTUSE_OUTLINE 0x0004
1005 #define FATTR_FONTUSE_TRANSFORMABLE 0x0008
1007 #define FM_TYPE_FIXED 0x0001
1008 #define FM_TYPE_LICENSED 0x0002
1009 #define FM_TYPE_KERNING 0x0004
1010 #define FM_TYPE_DBCS 0x0010
1011 #define FM_TYPE_MBCS 0x0018
1012 #define FM_TYPE_64K 0x8000
1013 #define FM_TYPE_ATOMS 0x4000
1014 #define FM_TYPE_FAMTRUNC 0x2000
1015 #define FM_TYPE_FACETRUNC 0x1000
1017 #define FM_DEFN_OUTLINE 0x0001
1018 #define FM_DEFN_IFI 0x0002
1019 #define FM_DEFN_WIN 0x0004
1020 #define FM_DEFN_GENERIC 0x8000
1022 #define FM_SEL_ITALIC 0x0001
1023 #define FM_SEL_UNDERSCORE 0x0002
1024 #define FM_SEL_NEGATIVE 0x0004
1025 #define FM_SEL_OUTLINE 0x0008
1026 #define FM_SEL_STRIKEOUT 0x0010
1027 #define FM_SEL_BOLD 0x0020
1028 #define FM_SEL_ISO9241_TESTED 0x0040
1030 #define FM_CAP_NOMIX 0x0001
1032 #define FM_ISO_9518_640 0x01
1033 #define FM_ISO_9515_640 0x02
1034 #define FM_ISO_9515_1024 0x04
1035 #define FM_ISO_9517_640 0x08
1036 #define FM_ISO_9517_1024 0x10
1039 typedef struct _PANOSE
1046 BYTE bStrokeVariation
;
1055 typedef struct _FONTMETRICS
1057 CHAR szFamilyname
[FACESIZE
];
1058 CHAR szFacename
[FACESIZE
];
1065 LONG lLowerCaseAscent
;
1066 LONG lLowerCaseDescent
;
1067 LONG lInternalLeading
;
1068 LONG lExternalLeading
;
1072 LONG lMaxBaselineExt
;
1076 USHORT usWeightClass
;
1077 USHORT usWidthClass
;
1084 SHORT sNominalPointSize
;
1085 SHORT sMinimumPointSize
;
1086 SHORT sMaximumPointSize
;
1090 USHORT fsCapabilities
;
1091 LONG lSubscriptXSize
;
1092 LONG lSubscriptYSize
;
1093 LONG lSubscriptXOffset
;
1094 LONG lSubscriptYOffset
;
1095 LONG lSuperscriptXSize
;
1096 LONG lSuperscriptYSize
;
1097 LONG lSuperscriptXOffset
;
1098 LONG lSuperscriptYOffset
;
1099 LONG lUnderscoreSize
;
1100 LONG lUnderscorePosition
;
1101 LONG lStrikeoutSize
;
1102 LONG lStrikeoutPosition
;
1103 SHORT sKerningPairs
;
1106 LONG FamilyNameAtom
;
1110 typedef FONTMETRICS
*PFONTMETRICS
;
1112 typedef struct _FATTRS
1114 USHORT usRecordLength
;
1117 CHAR szFacename
[FACESIZE
];
1120 LONG lMaxBaselineExt
;
1125 typedef FATTRS
*PFATTRS
;
1127 /* ------------------------- MEMORY MANAGEMENT ---------------------------- */
1129 #if defined (INCL_DOSMEMMGR) || !defined (INCL_NOCOMMON)
1131 #define PAG_READ 0x0001
1132 #define PAG_WRITE 0x0002
1133 #define PAG_EXECUTE 0x0004
1134 #define PAG_GUARD 0x0008
1135 #define PAG_COMMIT 0x0010
1136 #define PAG_DECOMMIT 0x0020
1137 #define OBJ_TILE 0x0040
1138 #define OBJ_PROTECTED 0x0080
1139 #define OBJ_GETTABLE 0x0100
1140 #define OBJ_GIVEABLE 0x0200
1141 #define PAG_DEFAULT 0x0400
1142 #define PAG_SHARED 0x2000
1143 #define PAG_FREE 0x4000
1144 #define PAG_BASE 0x00010000
1146 #define DOSSUB_INIT 0x0001
1147 #define DOSSUB_GROW 0x0002
1148 #define DOSSUB_SPARSE_OBJ 0x0004
1149 #define DOSSUB_SERIALIZE 0x0008
1151 #define fPERM (PAG_EXECUTE | PAG_READ | PAG_WRITE)
1152 #define fSHARE (OBJ_GETTABLE | OBJ_GIVEABLE)
1153 #define fALLOC (fPERM | OBJ_TILE | PAG_COMMIT)
1154 #define fALLOCSHR (fPERM | fSHARE | OBJ_TILE | PAG_COMMIT)
1155 #define fGETNMSHR (fPERM)
1156 #define fGETSHR (fPERM)
1157 #define fGIVESHR (fPERM)
1158 #define fSET (fPERM|PAG_COMMIT|PAG_DECOMMIT|PAG_DEFAULT)
1160 ULONG
DosAllocMem (PPVOID pBaseAddress
, ULONG ulObjectSize
,
1161 ULONG ulAllocationFlags
);
1162 ULONG
DosAllocSharedMem (PPVOID pBaseAddress
, PCSZ pszName
,
1163 ULONG ulObjectSize
, ULONG ulAllocationFlags
);
1164 ULONG
DosFreeMem (PVOID pBaseAddress
);
1165 ULONG
DosGetNamedSharedMem (PPVOID pBaseAddress
, PCSZ pszSharedMemName
,
1166 ULONG ulAttributeFlags
);
1167 ULONG
DosGetSharedMem (CPVOID pBaseAddress
, ULONG ulAttributeFlags
);
1168 ULONG
DosGiveSharedMem (CPVOID pBaseAddress
, PID idProcessId
,
1169 ULONG ulAttributeFlags
);
1170 ULONG
DosQueryMem (CPVOID pBaseAddress
, PULONG pulRegionSize
,
1171 PULONG pulAllocationFlags
);
1172 ULONG
DosSetMem (CPVOID pBaseAddress
, ULONG ulRegionSize
,
1173 ULONG ulAttributeFlags
);
1174 ULONG
DosSubAllocMem (PVOID pOffset
, PPVOID pBlockOffset
, ULONG ulSize
);
1175 ULONG
DosSubFreeMem (PVOID pOffset
, PVOID pBlockOffset
, ULONG ulSize
);
1176 ULONG
DosSubSetMem (PVOID pOffset
, ULONG ulFlags
, ULONG ulSize
);
1177 ULONG
DosSubUnsetMem (PVOID pOffset
);
1179 #endif /* INCL_DOSMEMMGR || !INCL_NOCOMMON */
1181 /* --------------------------- FILE SYSTEM -------------------------------- */
1183 #define CCHMAXPATH 260
1184 #define CCHMAXPATHCOMP 256
1186 #if defined (INCL_DOSMISC)
1187 #define DSP_IMPLIEDCUR 1
1188 #define DSP_PATHREF 2
1189 #define DSP_IGNORENETERR 4
1192 #if defined (INCL_DOSFILEMGR) || !defined (INCL_NOCOMMON)
1194 #define DCPY_EXISTING 0x0001
1195 #define DCPY_APPEND 0x0002
1196 #define DCPY_FAILEAS 0x0004
1198 #define DSPI_WRTTHRU 0x0010
1200 #define EAT_BINARY 0xfffe
1201 #define EAT_ASCII 0xfffd
1202 #define EAT_BITMAP 0xfffb
1203 #define EAT_METAFILE 0xfffa
1204 #define EAT_ICON 0xfff9
1205 #define EAT_EA 0xffee
1206 #define EAT_MVMT 0xffdf
1207 #define EAT_MVST 0xffde
1208 #define EAT_ASN1 0xffdd
1210 #define ENUMEA_LEVEL_NO_VALUE 1
1212 #define ENUMEA_REFTYPE_FHANDLE 0
1213 #define ENUMEA_REFTYPE_PATH 1
1214 #define ENUMEA_REFTYPE_MAX ENUMEA_REFTYPE_PATH
1216 #define ENUMEA_REFTYPE_FHANDLE 0
1217 #define ENUMEA_REFTYPE_PATH 1
1219 #define FEA_NEEDEA 0x80
1221 #define FHB_DSKREMOTE 0x8000
1222 #define FHB_CHRDEVREMOTE 0x8000
1223 #define FHB_PIPEREMOTE 0x8000
1225 #define FHT_DISKFILE 0x0000
1226 #define FHT_CHRDEV 0x0001
1227 #define FHT_PIPE 0x0002
1229 #define FIL_STANDARD 1
1230 #define FIL_QUERYEASIZE 2
1231 #define FIL_QUERYEASFROMLIST 3
1232 #define FIL_QUERYFULLNAME 5 /* DosQueryPathInfo */
1234 #define FILE_BEGIN 0
1235 #define FILE_CURRENT 1
1238 #define FILE_NORMAL 0x0000
1239 #define FILE_READONLY 0x0001
1240 #define FILE_HIDDEN 0x0002
1241 #define FILE_SYSTEM 0x0004
1242 #define FILE_DIRECTORY 0x0010
1243 #define FILE_ARCHIVED 0x0020
1245 #define FILE_IGNORE 0x10000
1247 #define FILE_EXISTED 0x0001
1248 #define FILE_CREATED 0x0002
1249 #define FILE_TRUNCATED 0x0003
1251 #define FILE_OPEN 0x0001
1252 #define FILE_TRUNCATE 0x0002
1253 #define FILE_CREATE 0x0010
1257 #define FS_SPOOLATTACH 2
1258 #define FS_SPOOLDETACH 3
1260 #define FSAIL_QUERYNAME 1
1261 #define FSAIL_DEVNUMBER 2
1262 #define FSAIL_DRVNUMBER 3
1264 #define FSAT_CHARDEV 1
1265 #define FSAT_PSEUDODEV 2
1266 #define FSAT_LOCALDRV 3
1267 #define FSAT_REMOTEDRV 4
1269 #define FSCTL_HANDLE 1
1270 #define FSCTL_PATHNAME 2
1271 #define FSCTL_FSDNAME 3
1273 #define FSCTL_ERROR_INFO 1
1274 #define FSCTL_MAX_EASIZE 2
1275 #define FSCTL_GET_NEXT_ROUTE_NAME 3
1276 #define FSCTL_DAEMON_QUERY 4
1278 #define FSCTL_QUERY_COMPLETE 0
1279 #define FSCTL_QUERY_AGAIN 1
1281 #define FSIL_ALLOC 1
1282 #define FSIL_VOLSER 2
1284 #define HANDTYPE_FILE 0x0000
1285 #define HANDTYPE_DEVICE 0x0001
1286 #define HANDTYPE_PIPE 0x0002
1287 #define HANDTYPE_PROTECTED 0x4000
1288 #define HANDTYPE_NETWORK 0x8000
1290 #define HDIR_SYSTEM 1
1291 #define HDIR_CREATE ((HDIR)-1)
1293 #define MUST_HAVE_READONLY (FILE_READONLY | (FILE_READONLY << 8))
1294 #define MUST_HAVE_HIDDEN (FILE_HIDDEN | (FILE_HIDDEN << 8))
1295 #define MUST_HAVE_SYSTEM (FILE_SYSTEM | (FILE_SYSTEM << 8))
1296 #define MUST_HAVE_DIRECTORY (FILE_DIRECTORY | (FILE_DIRECTORY << 8))
1297 #define MUST_HAVE_ARCHIVED (FILE_ARCHIVED | (FILE_ARCHIVED << 8))
1299 #define OPEN_ACTION_FAIL_IF_EXISTS 0x0000
1300 #define OPEN_ACTION_OPEN_IF_EXISTS 0x0001
1301 #define OPEN_ACTION_REPLACE_IF_EXISTS 0x0002
1302 #define OPEN_ACTION_FAIL_IF_NEW 0x0000
1303 #define OPEN_ACTION_CREATE_IF_NEW 0x0010
1305 #define OPEN_ACCESS_READONLY 0x0000
1306 #define OPEN_ACCESS_WRITEONLY 0x0001
1307 #define OPEN_ACCESS_READWRITE 0x0002
1309 #define OPEN_SHARE_DENYREADWRITE 0x0010
1310 #define OPEN_SHARE_DENYWRITE 0x0020
1311 #define OPEN_SHARE_DENYREAD 0x0030
1312 #define OPEN_SHARE_DENYNONE 0x0040
1314 #define OPEN_FLAGS_NOINHERIT 0x0080
1315 #define OPEN_FLAGS_NO_LOCALITY 0x0000
1316 #define OPEN_FLAGS_SEQUENTIAL 0x0100
1317 #define OPEN_FLAGS_RANDOM 0x0200
1318 #define OPEN_FLAGS_RANDOMSEQUENTIAL 0x0300
1319 #define OPEN_FLAGS_NO_CACHE 0x1000
1320 #define OPEN_FLAGS_FAIL_ON_ERROR 0x2000
1321 #define OPEN_FLAGS_WRITE_THROUGH 0x4000
1322 #define OPEN_FLAGS_DASD 0x8000
1323 #define OPEN_FLAGS_NONSPOOLED 0x40000
1324 #define OPEN_FLAGS_PROTECTED_HANDLE 0x40000000
1326 #define SEARCH_PATH 0x0000
1327 #define SEARCH_CUR_DIRECTORY 0x0001
1328 #define SEARCH_ENVIRONMENT 0x0002
1329 #define SEARCH_IGNORENETERRS 0x0004
1332 typedef LHANDLE HFILE
;
1333 typedef HFILE
*PHFILE
;
1335 typedef ULONG FHLOCK
;
1336 typedef PULONG PFHLOCK
;
1338 typedef LHANDLE HDIR
;
1339 typedef HDIR
*PHDIR
;
1342 typedef struct _FTIME
1348 typedef FTIME
*PFTIME
;
1350 typedef struct _FDATE
1356 typedef FDATE
*PFDATE
;
1366 typedef struct _FEALIST
1371 typedef FEALIST
*PFEALIST
;
1380 typedef struct _GEALIST
1385 typedef GEALIST
*PGEALIST
;
1387 typedef struct _EAOP
1393 typedef EAOP
*PEAOP
;
1395 typedef struct _FEA2
1397 ULONG oNextEntryOffset
;
1403 typedef FEA2
*PFEA2
;
1405 typedef struct _FEA2LIST
1410 typedef FEA2LIST
*PFEA2LIST
;
1412 typedef struct _GEA2
1414 ULONG oNextEntryOffset
;
1418 typedef GEA2
*PGEA2
;
1420 typedef struct _GEA2LIST
1425 typedef GEA2LIST
*PGEA2LIST
;
1427 typedef struct _EAOP2
1429 PGEA2LIST fpGEA2List
;
1430 PFEA2LIST fpFEA2List
;
1433 typedef EAOP2
*PEAOP2
;
1435 typedef struct _DENA1
1442 typedef DENA1
*PDENA1
;
1445 typedef PFEA2 PDENA2
;
1447 typedef struct _EASIZEBUF
1450 ULONG cbMaxEAListSize
; /* Packed? */
1452 typedef EASIZEBUF
*PEASIZEBUF
;
1454 typedef struct _ROUTENAMEBUF
1459 typedef ROUTENAMEBUF
*PROUTENAMEBUF
;
1461 typedef struct _FSDTHREAD
1465 ULONG ulPriorityClass
;
1466 LONG lPriorityLevel
;
1469 typedef struct _FSDDAEMON
1471 USHORT usNumThreads
;
1473 USHORT usCallInstance
;
1474 FSDTHREAD tdThrds
[16];
1477 typedef struct _FILEFINDBUF
1479 FDATE fdateCreation
;
1480 FTIME ftimeCreation
;
1481 FDATE fdateLastAccess
;
1482 FTIME ftimeLastAccess
;
1483 FDATE fdateLastWrite
;
1484 FTIME ftimeLastWrite
;
1489 CHAR achName
[CCHMAXPATHCOMP
];
1491 typedef FILEFINDBUF
*PFILEFINDBUF
;
1493 typedef struct _FILEFINDBUF2
1495 FDATE fdateCreation
;
1496 FTIME ftimeCreation
;
1497 FDATE fdateLastAccess
;
1498 FTIME ftimeLastAccess
;
1499 FDATE fdateLastWrite
;
1500 FTIME ftimeLastWrite
;
1506 CHAR achName
[CCHMAXPATHCOMP
];
1508 typedef FILEFINDBUF2
*PFILEFINDBUF2
;
1510 typedef struct _FILEFINDBUF3
1512 ULONG oNextEntryOffset
;
1513 FDATE fdateCreation
;
1514 FTIME ftimeCreation
;
1515 FDATE fdateLastAccess
;
1516 FTIME ftimeLastAccess
;
1517 FDATE fdateLastWrite
;
1518 FTIME ftimeLastWrite
;
1523 CHAR achName
[CCHMAXPATHCOMP
];
1525 typedef FILEFINDBUF3
*PFILEFINDBUF3
;
1527 typedef struct _FILEFINDBUF4
1529 ULONG oNextEntryOffset
;
1530 FDATE fdateCreation
;
1531 FTIME ftimeCreation
;
1532 FDATE fdateLastAccess
;
1533 FTIME ftimeLastAccess
;
1534 FDATE fdateLastWrite
;
1535 FTIME ftimeLastWrite
;
1541 CHAR achName
[CCHMAXPATHCOMP
];
1543 typedef FILEFINDBUF4
*PFILEFINDBUF4
;
1545 typedef struct _FILELOCK
1550 typedef FILELOCK
*PFILELOCK
;
1552 typedef struct _FILESTATUS
1554 FDATE fdateCreation
;
1555 FTIME ftimeCreation
;
1556 FDATE fdateLastAccess
;
1557 FTIME ftimeLastAccess
;
1558 FDATE fdateLastWrite
;
1559 FTIME ftimeLastWrite
;
1564 typedef FILESTATUS
*PFILESTATUS
;
1566 typedef struct _FILESTATUS2
1568 FDATE fdateCreation
;
1569 FTIME ftimeCreation
;
1570 FDATE fdateLastAccess
;
1571 FTIME ftimeLastAccess
;
1572 FDATE fdateLastWrite
;
1573 FTIME ftimeLastWrite
;
1579 typedef FILESTATUS2
*PFILESTATUS2
;
1581 typedef struct _FILESTATUS3
1583 FDATE fdateCreation
;
1584 FTIME ftimeCreation
;
1585 FDATE fdateLastAccess
;
1586 FTIME ftimeLastAccess
;
1587 FDATE fdateLastWrite
;
1588 FTIME ftimeLastWrite
;
1593 typedef FILESTATUS3
*PFILESTATUS3
;
1595 typedef struct _FILESTATUS4
1597 FDATE fdateCreation
;
1598 FTIME ftimeCreation
;
1599 FDATE fdateLastAccess
;
1600 FTIME ftimeLastAccess
;
1601 FDATE fdateLastWrite
;
1602 FTIME ftimeLastWrite
;
1608 typedef FILESTATUS4
*PFILESTATUS4
;
1610 typedef struct _FSALLOCATE
1618 typedef FSALLOCATE
*PFSALLOCATE
;
1620 typedef struct _FSQBUFFER
1630 typedef FSQBUFFER
*PFSQBUFFER
;
1632 typedef struct _FSQBUFFER2
1642 typedef FSQBUFFER2
*PFSQBUFFER2
;
1644 typedef struct _SPOOLATTACH
1649 typedef SPOOLATTACH
*PSPOOLATTACH
;
1651 typedef struct _VOLUMELABEL
1654 CHAR szVolLabel
[12];
1656 typedef VOLUMELABEL
*PVOLUMELABEL
;
1658 typedef struct _FSINFO
1660 FDATE fdateCreation
;
1661 FTIME ftimeCreation
;
1664 typedef FSINFO
*PFSINFO
;
1667 ULONG
DosCancelLockRequest (HFILE hFile
, __const__ FILELOCK
*pfl
);
1668 ULONG
DosClose (HFILE hFile
);
1669 ULONG
DosCopy (PCSZ pszSource
, PCSZ pszTarget
, ULONG ulOption
);
1670 ULONG
DosCreateDir (PCSZ pszDirName
, PEAOP2 pEABuf
);
1671 ULONG
DosDelete (PCSZ pszFileName
);
1672 ULONG
DosDeleteDir (PCSZ pszDirName
);
1673 ULONG
DosDupHandle (HFILE hFile
, PHFILE phFile
);
1674 ULONG
DosEditName (ULONG ulLevel
, PCSZ pszSource
, PCSZ pszEdit
,
1675 PBYTE pszTargetBuf
, ULONG ulTargetBufLength
);
1676 ULONG
DosEnumAttribute (ULONG ulRefType
, CPVOID pvFile
, ULONG ulEntry
,
1677 PVOID pvBuf
, ULONG ulBufLength
, PULONG pulCount
, ULONG ulInfoLevel
);
1678 ULONG
DosFindClose (HDIR hDir
);
1679 ULONG
DosFindFirst (PCSZ pszFileSpec
, PHDIR phDir
, ULONG flAttribute
,
1680 PVOID pFindBuf
, ULONG ulFindBufLength
, PULONG pulFileNames
,
1682 ULONG
DosFindNext (HDIR hDir
, PVOID pFindBuf
, ULONG ulFindBufLength
,
1683 PULONG pulFileNames
);
1684 ULONG
DosForceDelete (PCSZ pszFileName
);
1685 ULONG
DosFSAttach (PCSZ pszDevice
, PCSZ pszFilesystem
,
1686 __const__ VOID
*pData
, ULONG ulDataLength
, ULONG ulFlag
);
1687 ULONG
DosFSCtl (PVOID pData
, ULONG ulDataLengthMax
, PULONG pulDataLength
,
1688 PVOID pParmList
, ULONG ulParmLengthMax
, PULONG pulParmLength
,
1689 ULONG ulFunction
, PCSZ pszRouteName
, HFILE hFile
, ULONG ulMethod
);
1690 ULONG
DosMove (PCSZ pszOldName
, PCSZ pszNewName
);
1691 ULONG
DosOpen (PCSZ pszFileName
, PHFILE phFile
, PULONG pulAction
,
1692 ULONG ulFileSize
, ULONG ulAttribute
, ULONG ulOpenFlags
, ULONG ulOpenMode
,
1694 ULONG
DosProtectClose (HFILE hFile
, FHLOCK fhFileHandleLockID
);
1695 ULONG
DosProtectEnumAttribute (ULONG ulRefType
, CPVOID pvFile
,
1696 ULONG ulEntry
, PVOID pvBuf
, ULONG ulBufLength
, PULONG pulCount
,
1697 ULONG ulInfoLevel
, FHLOCK fhFileHandleLockID
);
1698 ULONG
DosProtectOpen (PCSZ pszFileName
, PHFILE phFile
, PULONG pulAction
,
1699 ULONG ulFileSize
, ULONG ulAttribute
, ULONG ulOpenFlags
, ULONG ulOpenMode
,
1700 PEAOP2 pEABuf
, PFHLOCK pfhFileHandleLockID
);
1701 ULONG
DosProtectQueryFHState (HFILE hFile
, PULONG pulMode
,
1702 FHLOCK fhFileHandleLockID
);
1703 ULONG
DosProtectQueryFileInfo (HFILE hFile
, ULONG ulInfoLevel
,
1704 PVOID pInfoBuffer
, ULONG ulInfoLength
, FHLOCK fhFileHandleLockID
);
1705 ULONG
DosProtectRead (HFILE hFile
, PVOID pBuffer
, ULONG ulLength
,
1706 PULONG pulBytesRead
, FHLOCK fhFileHandleLockID
);
1707 ULONG
DosProtectSetFHState (HFILE hFile
, ULONG ulMode
,
1708 FHLOCK fhFileHandleLockID
);
1709 ULONG
DosProtectSetFileInfo (HFILE hFile
, ULONG ulInfoLevel
, PVOID pInfoBuffer
,
1710 ULONG ulInfoLength
, FHLOCK fhFileHandleLockID
);
1711 ULONG
DosProtectSetFileLocks (HFILE hFile
, __const__ FILELOCK
*pflUnlock
,
1712 __const__ FILELOCK
*pflLock
, ULONG ulTimeout
, ULONG ulFlags
,
1713 FHLOCK fhFileHandleLockID
);
1714 ULONG
DosProtectSetFilePtr (HFILE hFile
, LONG lOffset
, ULONG ulOrigin
,
1715 PULONG pulPos
, FHLOCK fhFileHandleLockID
);
1716 ULONG
DosProtectSetFileSize (HFILE hFile
, ULONG ulSize
,
1717 FHLOCK fhFileHandleLockID
);
1718 ULONG
DosProtectWrite (HFILE hFile
, CPVOID pBuffer
, ULONG ulLength
,
1719 PULONG pulBytesWritten
, FHLOCK fhFileHandleLockID
);
1720 ULONG
DosQueryCurrentDir (ULONG ulDrive
, PBYTE pPath
, PULONG pulPathLength
);
1721 ULONG
DosQueryCurrentDisk (PULONG pulDrive
, PULONG pulLogical
);
1722 ULONG
DosQueryFHState (HFILE hFile
, PULONG pulMode
);
1723 ULONG
DosQueryFileInfo (HFILE hFile
, ULONG ulInfoLevel
, PVOID pInfoBuffer
,
1724 ULONG ulInfoLength
);
1725 ULONG
DosQueryFSAttach (PCSZ pszDeviceName
, ULONG ulOrdinal
,
1726 ULONG ulFSAInfoLevel
, PFSQBUFFER2 pfsqb
, PULONG pulBufLength
);
1727 ULONG
DosQueryFSInfo (ULONG ulDrive
, ULONG ulInfoLevel
, PVOID pBuf
,
1729 ULONG
DosQueryHType (HFILE hFile
, PULONG pulType
, PULONG pulAttr
);
1730 ULONG
DosQueryPathInfo (PCSZ pszPathName
, ULONG ulInfoLevel
,
1731 PVOID pInfoBuffer
, ULONG ulInfoLength
);
1732 ULONG
DosQueryVerify (PBOOL32 pVerify
);
1733 ULONG
DosRead (HFILE hFile
, PVOID pBuffer
, ULONG ulLength
,
1734 PULONG pulBytesRead
);
1735 ULONG
DosResetBuffer (HFILE hf
);
1736 ULONG
DosSetCurrentDir (PCSZ pszDir
);
1737 ULONG
DosSetDefaultDisk (ULONG ulDrive
);
1738 ULONG
DosSetFHState (HFILE hFile
, ULONG ulMode
);
1739 ULONG
DosSetFileInfo (HFILE hFile
, ULONG ulInfoLevel
, PVOID pInfoBuffer
,
1740 ULONG ulInfoLength
);
1741 ULONG
DosSetFileLocks (HFILE hFile
, __const__ FILELOCK
*pflUnlock
,
1742 __const__ FILELOCK
*pflLock
, ULONG ulTimeout
, ULONG ulFlags
);
1743 ULONG
DosSetFilePtr (HFILE hFile
, LONG lOffset
, ULONG ulOrigin
, PULONG pulPos
);
1744 ULONG
DosSetFileSize (HFILE hFile
, ULONG ulSize
);
1745 ULONG
DosSetFSInfo (ULONG ulDrive
, ULONG ulInfoLevel
, PVOID pBuf
,
1747 ULONG
DosSetMaxFH (ULONG ulCount
);
1748 ULONG
DosSetPathInfo (PCSZ pszPathName
, ULONG ulInfoLevel
, PVOID pInfoBuffer
,
1749 ULONG ulInfoLength
, ULONG ulOptions
);
1750 ULONG
DosSetRelMaxFH (PLONG pulReqCount
, PULONG pulCurMaxFH
);
1751 ULONG
DosSetVerify (BOOL32 f32Verify
);
1752 ULONG
DosShutdown (ULONG ulReserved
);
1753 ULONG
DosWrite (HFILE hFile
, CPVOID pBuffer
, ULONG ulLength
,
1754 PULONG pulBytesWritten
);
1756 #endif /* INCL_DOSFILEMGR || !INCL_NOCOMMON */
1759 #if defined (INCL_DOSMISC)
1760 ULONG
DosSearchPath (ULONG ulControl
, PCSZ pszPath
, PCSZ pszFilename
,
1761 PBYTE pBuf
, ULONG ulBufLength
);
1762 #endif /* INCL_DOSMISC */
1764 /* ---------------------------- DEVICE I/O -------------------------------- */
1766 #if defined (INCL_DOSDEVICES)
1768 #define DEVINFO_PRINTER 0
1769 #define DEVINFO_RS232 1
1770 #define DEVINFO_FLOPPY 2
1771 #define DEVINFO_COPROCESSOR 3
1772 #define DEVINFO_SUBMODEL 4
1773 #define DEVINFO_MODEL 5
1774 #define DEVINFO_ADAPTER 6
1776 #define INFO_COUNT_PARTITIONABLE_DISKS 1
1777 #define INFO_GETIOCTLHANDLE 2
1778 #define INFO_FREEIOCTLHANDLE 3
1780 ULONG
DosDevConfig (PVOID pInfo
, ULONG ulItem
);
1781 ULONG
DosDevIOCtl (HFILE hDevice
, ULONG ulCategory
, ULONG ulFunction
,
1782 PVOID pParams
, ULONG ulParamsLengthMax
, PULONG pulParamsLength
,
1783 PVOID pData
, ULONG ulDataLengthMax
, PULONG pulDataLength
);
1784 ULONG
DosPhysicalDisk (ULONG ulFunction
, PVOID pBuffer
, ULONG ulBufferLength
,
1785 PVOID pParams
, ULONG ulParamsLength
);
1787 #endif /* INCL_DOSDEVICES */
1789 #if defined (INCL_DOSDEVIOCTL)
1791 #define IOCTL_ASYNC 0x0001
1792 #define IOCTL_SCR_AND_PTRDRAW 0x0003
1793 #define IOCTL_KEYBOARD 0x0004
1794 #define IOCTL_PRINTER 0x0005
1795 #define IOCTL_LIGHTPEN 0x0006
1796 #define IOCTL_POINTINGDEVICE 0x0007
1797 #define IOCTL_DISK 0x0008
1798 #define IOCTL_PHYSICALDISK 0x0009
1799 #define IOCTL_MONITOR 0x000a
1800 #define IOCTL_GENERAL 0x000b
1801 #define IOCTL_POWER 0x000c
1802 #define IOCTL_OEMHLP 0x0080
1803 #define IOCTL_TESTCFG_SYS 0x0080
1804 #define IOCTL_CDROMDISK 0x0080
1805 #define IOCTL_CDROMAUDIO 0x0081
1806 #define IOCTL_TOUCH_DEVDEP 0x0081
1807 #define IOCTL_TOUCH_DEVINDEP 0x0081
1809 #define ASYNC_SETBAUDRATE 0x0041
1810 #define ASYNC_SETLINECTRL 0x0042
1811 #define ASYNC_EXTSETBAUDRATE 0x0043
1812 #define ASYNC_TRANSMITIMM 0x0044
1813 #define ASYNC_SETBREAKOFF 0x0045
1814 #define ASYNC_SETMODEMCTRL 0x0046
1815 #define ASYNC_STOPTRANSMIT 0x0047
1816 #define ASYNC_STARTTRANSMIT 0x0048
1817 #define ASYNC_SETBREAKON 0x004b
1818 #define ASYNC_SETDCBINFO 0x0053
1819 #define ASYNC_SETENHANCEDMODEPARMS 0x0054
1820 #define ASYNC_GETBAUDRATE 0x0061
1821 #define ASYNC_GETLINECTRL 0x0062
1822 #define ASYNC_EXTGETBAUDRATE 0x0063
1823 #define ASYNC_GETCOMMSTATUS 0x0064
1824 #define ASYNC_GETLINESTATUS 0x0065
1825 #define ASYNC_GETMODEMOUTPUT 0x0066
1826 #define ASYNC_GETMODEMINPUT 0x0067
1827 #define ASYNC_GETINQUECOUNT 0x0068
1828 #define ASYNC_GETOUTQUECOUNT 0x0069
1829 #define ASYNC_GETCOMMERROR 0x006d
1830 #define ASYNC_GETCOMMEVENT 0x0072
1831 #define ASYNC_GETDCBINFO 0x0073
1832 #define ASYNC_GETENHANCEDMODEPARMS 0x0074
1834 #define SCR_ALLOCLDT 0x0070
1835 #define SCR_DEALLOCLDT 0x0071
1836 #define PTR_GETPTRDRAWADDRESS 0x0072
1837 #define VID_INITCALLVECTOR 0x0073
1838 #define SCR_ABIOSPASSTHRU 0x0074
1839 #define SCR_ALLOCLDTOFF 0x0075
1840 #define SCR_ALLOCLDTBGVAL 0x0076
1841 #define SCR_ALLOCVIDEOBUFFER 0x007e
1842 #define SCR_GETROMFONTADDR 0x007f
1844 #define KBD_SETTRANSTABLE 0x0050
1845 #define KBD_SETINPUTMODE 0x0051
1846 #define KBD_SETINTERIMFLAG 0x0052
1847 #define KBD_SETSHIFTSTATE 0x0053
1848 #define KBD_SETTYPAMATICRATE 0x0054
1849 #define KBD_SETFGNDSCREENGRP 0x0055
1850 #define KBD_SETSESMGRHOTKEY 0x0056
1851 #define KBD_SETFOCUS 0x0057
1852 #define KBD_SETKCB 0x0058
1853 #define KBD_SETREADNOTIFICATION 0x0059
1854 #define KBD_ALTERKBDLED 0x005a
1855 #define KBD_SETNLS 0x005c
1856 #define KBD_CREATE 0x005d
1857 #define KBD_DESTROY 0x005e
1858 #define KBD_GETINPUTMODE 0x0071
1859 #define KBD_GETINTERIMFLAG 0x0072
1860 #define KBD_GETSHIFTSTATE 0x0073
1861 #define KBD_READCHAR 0x0074
1862 #define KBD_PEEKCHAR 0x0075
1863 #define KBD_GETSESMGRHOTKEY 0x0076
1864 #define KBD_GETKEYBDTYPE 0x0077
1865 #define KBD_GETCODEPAGEID 0x0078
1866 #define KBD_XLATESCAN 0x0079
1867 #define KBD_QUERYKBDHARDWAREID 0x007a
1868 #define KBD_QUERYKBDCODEPAGESUPPORT 0x007b
1870 #define PRT_QUERYJOBHANDLE 0x0021
1871 #define PRT_SETFRAMECTL 0x0042
1872 #define PRT_SETINFINITERETRY 0x0044
1873 #define PRT_INITPRINTER 0x0046
1874 #define PRT_ACTIVATEFONT 0x0048
1875 #define PRT_SETPRINTJOBTITLE 0x004d
1876 #define PRT_SETIRQTIMEOUT 0x004e
1877 #define PRT_GETFRAMECTL 0x0062
1878 #define PRT_GETINFINITERETRY 0x0064
1879 #define PRT_GETPRINTERSTATUS 0x0066
1880 #define PRT_QUERYACTIVEFONT 0x0069
1881 #define PRT_VERIFYFONT 0x006a
1882 #define PRT_QUERYIRQTIMEOUT 0x006e
1884 #define MOU_ALLOWPTRDRAW 0x0050
1885 #define MOU_UPDATEDISPLAYMODE 0x0051
1886 #define MOU_SCREENSWITCH 0x0052
1887 #define MOU_SETSCALEFACTORS 0x0053
1888 #define MOU_SETEVENTMASK 0x0054
1889 #define MOU_SETHOTKEYBUTTON 0x0055
1890 #define MOU_REASSIGNTHRESHOLDVALUES 0x0055 /* ? */
1891 #define MOU_SETPTRSHAPE 0x0056
1892 #define MOU_DRAWPTR 0x0057
1893 #define MOU_UNMARKCOLLISIONAREA 0x0057 /* ? */
1894 #define MOU_REMOVEPTR 0x0058
1895 #define MOU_MARKCOLLISIONAREA 0x0058 /* ? */
1896 #define MOU_SETPTRPOS 0x0059
1897 #define MOU_SETPROTDRAWADDRESS 0x005a
1898 #define MOU_SETREALDRAWADDRESS 0x005b
1899 #define MOU_SETMOUSTATUS 0x005c
1900 #define MOU_DISPLAYMODECHANGE 0x005d
1901 #define MOU_GETBUTTONCOUNT 0x0060
1902 #define MOU_GETMICKEYCOUNT 0x0061
1903 #define MOU_GETMOUSTATUS 0x0062
1904 #define MOU_READEVENTQUE 0x0063
1905 #define MOU_GETQUESTATUS 0x0064
1906 #define MOU_GETEVENTMASK 0x0065
1907 #define MOU_GETSCALEFACTORS 0x0066
1908 #define MOU_GETPTRPOS 0x0067
1909 #define MOU_GETPTRSHAPE 0x0068
1910 #define MOU_GETHOTKEYBUTTON 0x0069
1911 #define MOU_QUERYTHRESHOLDVALUES 0x0069 /* ? */
1912 #define MOU_VER 0x006a
1913 #define MOU_QUERYPOINTERID 0x006b /* ? */
1915 #define DSK_LOCKDRIVE 0x0000
1916 #define DSK_UNLOCKDRIVE 0x0001
1917 #define DSK_REDETERMINEMEDIA 0x0002
1918 #define DSK_SETLOGICALMAP 0x0003
1919 #define DSK_BEGINFORMAT 0x0004
1920 #define DSK_BLOCKREMOVABLE 0x0020
1921 #define DSK_GETLOGICALMAP 0x0021
1922 #define DSK_UNLOCKEJECTMEDIA 0x0040
1923 #define DSK_SETDEVICEPARAMS 0x0043
1924 #define DSK_WRITETRACK 0x0044
1925 #define DSK_FORMATVERIFY 0x0045
1926 #define DSK_DISKETTECONTROL 0x005d
1927 #define DSK_QUERYMEDIASENSE 0x0060
1928 #define DSK_GETDEVICEPARAMS 0x0063
1929 #define DSK_READTRACK 0x0064
1930 #define DSK_VERIFYTRACK 0x0065
1931 #define DSK_GETLOCKSTATUS 0x0066
1933 #define PDSK_LOCKPHYSDRIVE 0x0000
1934 #define PDSK_UNLOCKPHYSDRIVE 0x0001
1935 #define PDSK_WRITEPHYSTRACK 0x0044
1936 #define PDSK_GETPHYSDEVICEPARAMS 0x0063
1937 #define PDSK_READPHYSTRACK 0x0064
1938 #define PDSK_VERIFYPHYSTRACK 0x0065
1940 #define POWER_SENDPOWEREVENT 0x0040
1941 #define POWER_SETPOWEREVENTRES 0x0041
1942 #define POWER_GETPOWERSTATUS 0x0060
1943 #define POWER_GETPOWEREVENT 0x0061
1944 #define POWER_GETPOWERINFO 0x0062
1946 #define OEMHLP_GETOEMADAPTIONINFO 0x0000
1947 #define OEMHLP_GETMACHINEINFO 0x0001
1948 #define OEMHLP_GETDISPLAYCOMBCODE 0x0002
1949 #define OEMHLP_GETVIDEOFONTS 0x0003
1950 #define OEMHLP_READEISACONFIGINFO 0x0004
1951 #define OEMHLP_GETROMBIOSINFO 0x0005
1952 #define OEMHLP_GETMISCVIDEOINFO 0x0006
1953 #define OEMHLP_GETVIDEOADAPTER 0x0007
1954 #define OEMHLP_GETSVGAINFO 0x0008
1955 #define OEMHLP_GETMEMINFO 0x0009
1956 #define OEMHLP_GETDMQSINFO 0x000a
1957 #define OEMHLP_PCI 0x000b
1959 #define TESTCFG_SYS_GETBIOSADAPTER 0x0040
1960 #define TESTCFG_SYS_ISSUEINIOINSTR 0x0041
1961 #define TESTCFG_SYS_ISSUEOUTIOINSTR 0x0042
1962 #define TESTCFG_SYS_GETBUSARCH 0x0060
1963 #define TESTCFG_SYS_GETALLPOSIDS 0x0061
1964 #define TESTCFG_SYS_GETALLEISAIDS 0x0062
1966 #define CDROMDISK_RESETDRIVE 0x0040
1967 #define CDROMDISK_EJECTDISK 0x0044
1968 #define CDROMDISK_LOCKUNLOCKDOOR 0x0046
1969 #define CDROMDISK_SEEK 0x0050
1970 #define CDROMDISK_DEVICESTATUS 0x0060
1971 #define CDROMDISK_GETDRIVER 0x0061
1972 #define CDROMDISK_GETSECTORSIZE 0x0063
1973 #define CDROMDISK_GETHEADLOC 0x0070
1974 #define CDROMDISK_READLONG 0x0072
1975 #define CDROMDISK_GETVOLUMESIZE 0x0078
1976 #define CDROMDISK_GETUPC 0x0079
1978 #define CDROMAUDIO_SETCHANNELCTRL 0x0040
1979 #define CDROMAUDIO_PLAYAUDIO 0x0050
1980 #define CDROMAUDIO_STOPAUDIO 0x0051
1981 #define CDROMAUDIO_RESUMEAUDIO 0x0052
1982 #define CDROMAUDIO_GETCHANNEL 0x0060
1983 #define CDROMAUDIO_GETAUDIODISK 0x0061
1984 #define CDROMAUDIO_GETAUDIOTRACK 0x0062
1985 #define CDROMAUDIO_GETSUBCHANNELQ 0x0063
1986 #define CDROMAUDIO_GETAUDIOSTATUS 0x0065
1988 #define TOUCH_DEVDEP_SETCALIBCONST 0x0052
1989 #define TOUCH_DEVDEP_READDATA 0x0053
1990 #define TOUCH_DEVDEP_SETDATAMODE 0x0054
1991 #define TOUCH_DEVDEP_SETCLICKLOCK 0x0055
1992 #define TOUCH_DEVDEP_SETTOUCHTHRESHOLD 0x0056
1993 #define TOUCH_DEVDEP_SETEMULXY 0x0057
1994 #define TOUCH_DEVDEP_SETDATAREPORTRATE 0x0058
1995 #define TOUCH_DEVDEP_SETLOWPASSFILTER 0x0059
1996 #define TOUCH_DEVDEP_WRITEMEMLOC 0x005a
1997 #define TOUCH_DEVDEP_GETCALIBCONST 0x0060
1998 #define TOUCH_DEVDEP_GETDATAMODE 0x0061
1999 #define TOUCH_DEVDEP_GETCLICKLOCK 0x0062
2000 #define TOUCH_DEVDEP_GETTOUCHTHRESHOLD 0x0063
2001 #define TOUCH_DEVDEP_GETEMULXY 0x0064
2002 #define TOUCH_DEVDEP_GETDATAREPORTRATE 0x0065
2003 #define TOUCH_DEVDEP_GETLOWPASSFILTER 0x0066
2004 #define TOUCH_DEVDEP_READMEMLOC 0x0067
2006 #define TOUCH_DEVINDEP_SETCOORDSYS 0x0050
2007 #define TOUCH_DEVINDEP_SETSELECTMECH 0x0052
2008 #define TOUCH_DEVINDEP_SETEVENTMASK 0x0053
2009 #define TOUCH_DEVINDEP_SETQUEUESIZE 0x0054
2010 #define TOUCH_DEVINDEP_SETEMULSTATE 0x0055
2011 #define TOUCH_DEVINDEP_GETCOORDSYS 0x0060
2012 #define TOUCH_DEVINDEP_GETSELECTMECH 0x0062
2013 #define TOUCH_DEVINDEP_GETEVENTMASK 0x0063
2014 #define TOUCH_DEVINDEP_GETQUEUESIZE 0x0064
2015 #define TOUCH_DEVINDEP_GETEMULSTATE 0x0065
2016 #define TOUCH_DEVINDEP_GETREADEVENTQUEUE 0x0066
2018 #define MON_REGISTERMONITOR 0x0040
2020 #define DEV_FLUSHINPUT 0x0001
2021 #define DEV_FLUSHOUTPUT 0x0002
2022 #define DEV_SYSTEMNOTIFYPDD 0x0041
2023 #define DEV_QUERYMONSUPPORT 0x0060
2025 #define RX_QUE_OVERRUN 0x0001
2026 #define RX_HARDWARE_OVERRUN 0x0002
2027 #define PARITY_ERROR 0x0004
2028 #define FRAMING_ERROR 0x0008
2030 #define CHAR_RECEIVED 0x0001
2031 #define LAST_CHAR_SENT 0x0004
2032 #define CTS_CHANGED 0x0008
2033 #define DSR_CHANGED 0x0010
2034 #define DCD_CHANGED 0x0020
2035 #define BREAK_DETECTED 0x0040
2036 #define ERROR_OCCURRED 0x0080
2037 #define RI_DETECTED 0x0100
2039 #define TX_WAITING_FOR_CTS 0x0001
2040 #define TX_WAITING_FOR_DSR 0x0002
2041 #define TX_WAITING_FOR_DCD 0x0004
2042 #define TX_WAITING_FOR_XON 0x0008
2043 #define TX_WAITING_TO_SEND_XON 0x0010
2044 #define TX_WAITING_WHILE_BREAK_ON 0x0020
2045 #define TX_WAITING_TO_SEND_IMM 0x0040
2046 #define RX_WAITING_FOR_DSR 0x0080
2048 #define WRITE_REQUEST_QUEUED 0x0001
2049 #define DATA_IN_TX_QUE 0x0002
2050 #define HARDWARE_TRANSMITTING 0x0004
2051 #define CHAR_READY_TO_SEND_IMM 0x0008
2052 #define WAITING_TO_SEND_XON 0x0010
2053 #define WAITING_TO_SEND_XOFF 0x0020
2060 #define MODE_DTR_CONTROL 0x01
2061 #define MODE_DTR_HANDSHAKE 0x02
2062 #define MODE_CTS_HANDSHAKE 0x08
2063 #define MODE_DSR_HANDSHAKE 0x10
2064 #define MODE_DCD_HANDSHAKE 0x20
2065 #define MODE_DSR_SENSITIVITY 0x40
2067 #define MODE_AUTO_TRANSMIT 0x01
2068 #define MODE_AUTO_RECEIVE 0x02
2069 #define MODE_ERROR_CHAR 0x04
2070 #define MODE_NULL_STRIPPING 0x08
2071 #define MODE_BREAK_CHAR 0x10
2072 #define MODE_RTS_CONTROL 0x40
2073 #define MODE_RTS_HANDSHAKE 0x80
2074 #define MODE_TRANSMIT_TOGGLE 0xc0
2076 #define MODE_NO_WRITE_TIMEOUT 0x01
2077 #define MODE_READ_TIMEOUT 0x02
2078 #define MODE_WAIT_READ_TIMEOUT 0x04
2079 #define MODE_NOWAIT_READ_TIMEOUT 0x06
2084 #define DTR_OFF 0xfe
2085 #define RTS_OFF 0xfd
2087 #define ASCII_MODE 0x00
2088 #define BINARY_MODE 0x80
2090 #define CONVERSION_REQUEST 0x20
2091 #define INTERIM_CHAR 0x80
2093 #define HOTKEY_MAX_COUNT 0x0000
2094 #define HOTKEY_CURRENT_COUNT 0x0001
2096 #define KBD_DATA_RECEIVED 0x0001
2097 #define KBD_DATA_BINARY 0x8000
2099 #define KBD_READ_WAIT 0x0000
2100 #define KBD_READ_NOWAIT 0x8000
2102 #define SHIFT_REPORT_MODE 0x01
2104 #define RIGHTSHIFT 0x0001
2105 #define LEFTSHIFT 0x0002
2106 #define CONTROL 0x0004
2108 #define SCROLLLOCK_ON 0x0010
2109 #define NUMLOCK_ON 0x0020
2110 #define CAPSLOCK_ON 0x0040
2111 #define INSERT_ON 0x0080
2112 #define LEFTCONTROL 0x0100
2113 #define LEFTALT 0x0200
2114 #define RIGHTCONTROL 0x0400
2115 #define RIGHTALT 0x0800
2116 #define SCROLLLOCK 0x1000
2117 #define NUMLOCK 0x2000
2118 #define CAPSLOCK 0x4000
2119 #define SYSREQ 0x8000
2121 #define PRINTER_TIMEOUT 0x0001
2122 #define PRINTER_IO_ERROR 0x0008
2123 #define PRINTER_SELECTED 0x0010
2124 #define PRINTER_OUT_OF_PAPER 0x0020
2125 #define PRINTER_ACKNOWLEDGED 0x0040
2126 #define PRINTER_NOT_BUSY 0x0080
2128 #define MOUSE_MOTION 0x0001
2129 #define MOUSE_MOTION_WITH_BN1_DOWN 0x0002
2130 #define MOUSE_BN1_DOWN 0x0004
2131 #define MOUSE_MOTION_WITH_BN2_DOWN 0x0008
2132 #define MOUSE_BN2_DOWN 0x0010
2133 #define MOUSE_MOTION_WITH_BN3_DOWN 0x0020
2134 #define MOUSE_BN3_DOWN 0x0040
2136 #define MHK_BUTTON1 0x0001
2137 #define MHK_BUTTON2 0x0002
2138 #define MHK_BUTTON3 0x0004
2140 #define MOU_NOWAIT 0x0000
2141 #define MOU_WAIT 0x0001
2143 #define MHK_NO_HOTKEY 0x0000
2145 #define MOUSE_QUEUEBUSY 0x0001
2146 #define MOUSE_BLOCKREAD 0x0002
2147 #define MOUSE_FLUSH 0x0004
2148 #define MOUSE_UNSUPPORTED_MODE 0x0008
2149 #define MOUSE_DISABLED 0x0100
2150 #define MOUSE_MICKEYS 0x0200
2152 #define BUILD_BPB_FROM_MEDIUM 0x00
2153 #define REPLACE_BPB_FOR_DEVICE 0x01
2154 #define REPLACE_BPB_FOR_MEDIUM 0x02
2156 #define DEVTYPE_48TPI 0x0000
2157 #define DEVTYPE_96TPI 0x0001
2158 #define DEVTYPE_35 0x0002
2159 #define DEVTYPE_8SD 0x0003
2160 #define DEVTYPE_8DD 0x0004
2161 #define DEVTYPE_FIXED 0x0005
2162 #define DEVTYPE_TAPE 0x0006
2163 #define DEVTYPE_UNKNOWN 0x0007
2165 #define SCREENDD_GETCURRENTBANK 0x00
2166 #define SCREENDD_SETCURRENTBANK 0x01
2167 #define SCREENDD_SVGA_ID 0x08
2168 #define SCREENDD_SVGA_OEM 0x09
2169 #define SCREENDD_UPDATEMEMORY 0x0a
2170 #define SCREENDD_GETLINEARACCESS 0x0b
2171 #define SCREENDD_GETGLOBALACCESS 0x0c
2172 #define SCREENDD_FREEGLOBALACCESS 0x0d
2173 #define SCREENDD_REGISTER_RING0_CALLER 0x0e
2174 #define SCREENDD_WAIT_ON_RING0_CALLER 0x0f
2175 #define SCREENDD_CATEGORY 0x80
2176 #define SCREENDD_NAME "SCREEN$"
2178 #define GETLINEAR_FLAG_MAPPHYSICAL 0x00000010
2179 #define GETLINEAR_FLAG_MAPPROCESS 0x00000020
2180 #define GETLINEAR_FLAG_MAPSHARED 0x00000400
2181 #define GETLINEAR_FLAG_MAPATTACH 0x80000000
2185 #define EGAVGA_BIT (EGA_BIT|VGA_BIT)
2188 #define WRITE_BANK 1
2190 #define MODE_PLANAR 1
2191 #define MODE_LINEAR 2
2193 typedef struct _DCBINFO
2195 USHORT usWriteTimeout
;
2196 USHORT usReadTimeout
;
2200 BYTE bErrorReplacementChar
;
2201 BYTE bBreakReplacementChar
;
2205 typedef DCBINFO
*PDCBINFO
;
2207 typedef struct _LINECONTROL
2214 typedef LINECONTROL
*PLINECONTROL
;
2216 typedef struct _MODEMSTATUS
2221 typedef MODEMSTATUS
*PMODEMSTATUS
;
2223 typedef struct _KBDTYPE
2229 typedef KBDTYPE
*PKBDTYPE
;
2231 typedef struct _RATEDELAY
2236 typedef RATEDELAY
*PRATEDELAY
;
2238 typedef struct _CODEPAGEINFO
2244 typedef CODEPAGEINFO
*PCODEPAGEINFO
;
2246 typedef struct _CPID
2251 typedef CPID
*PCPID
;
2253 typedef struct _SHIFTSTATE
2258 typedef SHIFTSTATE
*PSHIFTSTATE
;
2260 typedef struct _HOTKEY
2263 UCHAR uchScancodeMake
;
2264 UCHAR uchScancodeBreak
;
2267 typedef HOTKEY
*PHOTKEY
;
2269 typedef struct _PTRDRAWFUNCTION
2271 USHORT usReturnCode
;
2275 typedef PTRDRAWFUNCTION
*PPTRDRAWFUNCTION
;
2277 typedef struct _PTRDRAWADDRESS
2280 PTRDRAWFUNCTION ptrdfnc
;
2282 typedef PTRDRAWADDRESS
*PPTRDRAWADDRESS
;
2284 typedef struct _PTRDRAWDATA
2290 typedef PTRDRAWDATA
*PPTRDRAWDATA
;
2292 typedef struct _TRACKLAYOUT
2297 USHORT usFirstSector
;
2301 USHORT usSectorNumber
;
2302 USHORT usSectorSize
;
2305 typedef TRACKLAYOUT
*PTRACKLAYOUT
;
2307 typedef struct _TRACKFORMAT
2322 typedef TRACKFORMAT
*PTRACKFORMAT
;
2324 typedef struct _BIOSPARAMETERBLOCK
2326 USHORT usBytesPerSector
;
2327 BYTE bSectorsPerCluster
;
2328 USHORT usReservedSectors
;
2330 USHORT cRootEntries
;
2333 USHORT usSectorsPerFAT
;
2334 USHORT usSectorsPerTrack
;
2336 ULONG cHiddenSectors
;
2337 ULONG cLargeSectors
;
2341 USHORT fsDeviceAttr
;
2342 } BIOSPARAMETERBLOCK
;
2343 typedef BIOSPARAMETERBLOCK
*PBIOSPARAMETERBLOCK
;
2345 typedef struct _DEVICEPARAMETERBLOCK
2350 USHORT cSectorsPerTrack
;
2355 } DEVICEPARAMETERBLOCK
;
2356 typedef DEVICEPARAMETERBLOCK
*PDEVICEPARAMETERBLOCK
;
2358 typedef struct _MONITORPOSITION
2365 typedef MONITORPOSITION
*PMONITORPOSITION
;
2367 typedef struct _FRAME
2372 typedef FRAME
*PFRAME
;
2374 typedef struct _LDTADDRINFO
2379 typedef LDTADDRINFO
*PLDTADDRINFO
;
2381 typedef struct _SCREENGROUP
2386 typedef SCREENGROUP
*PSCREENGROUP
;
2388 typedef struct _RXQUEUE
2393 typedef RXQUEUE
*PRXQUEUE
;
2395 typedef struct _GETLINIOCTLDATA
2398 ULONG PhysicalAddress
;
2400 PBYTE LinearAddress
;
2403 typedef GETLINIOCTLDATA
*PGETLINIOCTLDATA
;
2405 typedef struct _BANKINFO
2409 USHORT usVideoModeType
;
2410 USHORT usReadWriteMode
;
2413 typedef struct _GLOBALIOCTLDATA
2415 ULONG ProcessAddress
;
2416 ULONG AddressLength
;
2417 ULONG GlobalAddress
;
2420 typedef struct _OEMSVGAINFO
2427 typedef struct _OEMINFO
2430 USHORT Manufacturer
;
2431 ULONG ManufacturerData
;
2434 typedef struct _GETGLOBALPACKET
2436 ULONG GlobalPktLength
;
2437 GLOBALIOCTLDATA GlobalPktData
[1];
2440 #endif /* INCL_DOSDEVIOCTL */
2442 /* -------------------- NATIONAL LANGUAGE SUPPORT ------------------------- */
2444 #if defined (INCL_DOSNLS)
2446 typedef struct _COUNTRYCODE
2451 typedef COUNTRYCODE
*PCOUNTRYCODE
;
2453 typedef struct _COUNTRYINFO
2459 CHAR szThousandsSeparator
[2];
2461 CHAR szDateSeparator
[2];
2462 CHAR szTimeSeparator
[2];
2463 UCHAR fsCurrencyFmt
;
2464 UCHAR cDecimalPlace
;
2466 USHORT abReserved1
[2];
2467 CHAR szDataSeparator
[2];
2468 USHORT abReserved2
[5];
2470 typedef COUNTRYINFO
*PCOUNTRYINFO
;
2473 ULONG
DosMapCase (ULONG ulLength
, __const__ COUNTRYCODE
*pCountryCode
,
2475 ULONG
DosQueryCollate (ULONG ulLength
, __const__ COUNTRYCODE
*pCountryCode
,
2476 PCHAR pchBuffer
, PULONG pulDataLength
);
2477 ULONG
DosQueryCp (ULONG ulLength
, PULONG pCodePageList
, PULONG pDataLength
);
2478 ULONG
DosQueryCtryInfo (ULONG ulLength
, PCOUNTRYCODE pCountryCode
,
2479 PCOUNTRYINFO pCountryInfo
, PULONG pulDataLength
);
2480 ULONG
DosQueryDBCSEnv (ULONG ulLength
, PCOUNTRYCODE pCountryCode
, PCHAR pBuf
);
2481 ULONG
DosSetProcessCp (ULONG ulCodePage
);
2483 #endif /* INCL_DOSNLS */
2485 /* -------------------------- DYNAMIC LINKING ----------------------------- */
2487 #if defined (INCL_DOSMODULEMGR)
2493 ULONG
DosFreeModule (HMODULE hmod
);
2494 ULONG
DosLoadModule (PSZ pszObject
, ULONG uObjectLen
, PCSZ pszModule
,
2496 ULONG
DosQueryModuleHandle (PCSZ pszModname
, PHMODULE phmod
);
2497 ULONG
DosQueryModuleName (HMODULE hmod
, ULONG ulNameLength
, PCHAR pNameBuf
);
2498 ULONG
DosQueryProcAddr (HMODULE hmod
, ULONG ulOrdinal
, PCSZ pszProcName
,
2500 ULONG
DosQueryProcType (HMODULE hmod
, ULONG ulOrdinal
, PCSZ pszProcName
,
2501 PULONG pulProcType
);
2503 #endif /* INCL_DOSMODULEMGR */
2505 /* ----------------------------- RESOURCES -------------------------------- */
2507 #if defined (INCL_DOSRESOURCES) || !defined (INCL_NOCOMMON)
2509 #define RT_POINTER 1
2514 #define RT_FONTDIR 6
2516 #define RT_ACCELTABLE 8
2518 #define RT_MESSAGE 10
2519 #define RT_DLGINCLUDE 11
2520 #define RT_VKEYTBL 12
2521 #define RT_KEYTBL 13
2522 #define RT_CHARTBL 14
2523 #define RT_DISPLAYINFO 15
2524 #define RT_FKASHORT 16
2525 #define RT_FKALONG 17
2526 #define RT_HELPTABLE 18
2527 #define RT_HELPSUBTABLE 19
2532 #define RF_ORDINALID 0x80000000L
2535 ULONG
DosFreeResource (PVOID pResAddr
);
2536 ULONG
DosGetResource (HMODULE hmod
, ULONG ulTypeID
, ULONG ulNameID
,
2538 ULONG
DosQueryResourceSize (HMODULE hmod
, ULONG ulTypeID
, ULONG ulNameID
,
2541 #endif /* INCL_DOSRESOURCES || !INCL_NOCOMMON */
2543 /* -------------------------------- TASKS --------------------------------- */
2545 #if defined (INCL_DOSPROCESS) || !defined (INCL_NOCOMMON)
2547 #define EXIT_THREAD 0
2548 #define EXIT_PROCESS 1
2550 ULONG
DosBeep (ULONG ulFrequency
, ULONG ulDuration
);
2551 VOID
DosExit (ULONG ulAction
, ULONG ulResult
) __attribute__ ((__noreturn__
));
2553 #endif /* INCL_DOSPROCESS || !defined (INCL_NOCOMMON) */
2556 #if defined (INCL_DOSPROCESS)
2558 #define CREATE_READY 0
2559 #define CREATE_SUSPENDED 1
2561 #define STACK_SPARSE 0
2562 #define STACK_COMMITTED 2
2564 #define DCWA_PROCESS 0
2565 #define DCWA_PROCESSTREE 1
2568 #define DCWW_NOWAIT 1
2570 #define DKP_PROCESSTREE 0
2571 #define DKP_PROCESS 1
2574 #define EXEC_ASYNC 1
2575 #define EXEC_ASYNCRESULT 2
2576 #define EXEC_TRACE 3
2577 #define EXEC_BACKGROUND 4
2579 #define EXEC_ASYNCRESULTDB 6
2582 #define EXLST_REMOVE 2
2583 #define EXLST_EXIT 3
2585 #define PRTYC_NOCHANGE 0
2586 #define PRTYC_IDLETIME 1
2587 #define PRTYC_REGULAR 2
2588 #define PRTYC_TIMECRITICAL 3
2589 #define PRTYC_FOREGROUNDSERVER 4
2591 #define PRTYD_MINIMUM (-31)
2592 #define PRTYD_MAXIMUM 31
2594 #define PRTYS_PROCESS 0
2595 #define PRTYS_PROCESSTREE 1
2596 #define PRTYS_THREAD 2
2599 #define TC_HARDERROR 1
2601 #define TC_KILLPROCESS 3
2602 #define TC_EXCEPTION 4
2605 typedef struct _RESULTCODES
2607 ULONG codeTerminate
;
2610 typedef RESULTCODES
*PRESULTCODES
;
2612 typedef struct tib2_s
2617 USHORT tib2_usMCCount
;
2618 USHORT tib2_fMCForceFlag
;
2620 typedef TIB2
*PTIB2
;
2622 typedef struct tib_s
2626 PVOID tib_pstacklimit
;
2633 typedef struct pib_s
2645 typedef VOID (*PFNTHREAD
)(ULONG ulThreadArg
);
2646 typedef VOID (*PFNEXITLIST
)(ULONG ulArg
);
2649 ULONG
DosAllocThreadLocalMemory (ULONG cb
, PULONG
*p
);
2650 ULONG
DosCreateThread (PTID ptidThreadID
, PFNTHREAD pfnThreadAddr
,
2651 ULONG ulThreadArg
, ULONG ulFlags
, ULONG ulStackSize
);
2652 ULONG
DosEnterCritSec (VOID
);
2653 ULONG
DosExecPgm (PCHAR pObjname
, LONG lObjnameLength
, ULONG ulFlagS
,
2654 PCSZ pszArg
, PCSZ pszEnv
, PRESULTCODES pReturnCodes
, PCSZ pszName
);
2655 ULONG
DosExitCritSec (VOID
);
2656 ULONG
DosExitList (ULONG ulOrder
, PFNEXITLIST pfn
);
2657 ULONG
DosFreeThreadLocalMemory (ULONG
*p
);
2658 ULONG
DosGetInfoBlocks (PTIB
*ptib
, PPIB
*ppib
);
2659 ULONG
DosKillProcess (ULONG ulAction
, PID pid
);
2660 ULONG
DosKillThread (TID tid
);
2661 ULONG
DosResumeThread (TID tid
);
2662 ULONG
DosSetPriority (ULONG ulScope
, ULONG ulClass
, LONG lDelta
, ULONG ulID
);
2664 #define STDCALL __attribute__ ((stdcall))
2665 //#define CDECL __attribute__ ((cdecl))
2666 //#define CALLBACK WINAPI
2667 //#define PASCAL WINAPI
2669 #define WINAPI STDCALL
2670 //#define APIENTRY STDCALL
2672 //ULONG WINAPI DosSleep (ULONG ulInterval);
2673 ULONG
DosSleep (ULONG ulInterval
);
2675 ULONG
DosSuspendThread (TID tid
);
2676 ULONG
DosVerifyPidTid (PID pid
, TID tid
);
2677 ULONG
DosWaitChild (ULONG ulAction
, ULONG ulWait
, PRESULTCODES pReturnCodes
,
2678 PPID ppidOut
, PID pidIn
);
2679 ULONG
DosWaitThread (PTID ptid
, ULONG ulWait
);
2681 #endif /* INCL_DOSPROCESS */
2683 /* ------------------------------ SESSIONS -------------------------------- */
2685 #if defined (INCL_DOSSESMGR) || defined (INCL_DOSFILEMGR)
2687 #define FAPPTYP_NOTSPEC 0x0000
2688 #define FAPPTYP_NOTWINDOWCOMPAT 0x0001
2689 #define FAPPTYP_WINDOWCOMPAT 0x0002
2690 #define FAPPTYP_WINDOWAPI 0x0003
2691 #define FAPPTYP_BOUND 0x0008
2692 #define FAPPTYP_DLL 0x0010
2693 #define FAPPTYP_DOS 0x0020
2694 #define FAPPTYP_PHYSDRV 0x0040
2695 #define FAPPTYP_VIRTDRV 0x0080
2696 #define FAPPTYP_PROTDLL 0x0100
2697 #define FAPPTYP_WINDOWSREAL 0x0200
2698 #define FAPPTYP_WINDOWSPROT 0x0400
2699 #define FAPPTYP_WINDOWSPROT31 0x1000
2700 #define FAPPTYP_32BIT 0x4000
2701 #define FAPPTYP_EXETYPE 0x0003
2702 #define FAPPTYP_RESERVED (~(FAPPTYP_WINDOWAPI | FAPPTYP_BOUND | \
2703 FAPPTYP_DLL | FAPPTYP_DOS | \
2704 FAPPTYP_PHYSDRV | FAPPTYP_VIRTDRV | \
2705 FAPPTYP_PROTDLL | FAPPTYP_32BIT))
2707 #endif /* INCL_DOSSESMGR || INCL_DOSFILEMGR */
2709 #if defined (INCL_DOSSESMGR)
2711 #define SET_SESSION_UNCHANGED 0
2712 #define SET_SESSION_SELECTABLE 1
2713 #define SET_SESSION_NON_SELECTABLE 2
2714 #define SET_SESSION_BOND 1
2715 #define SET_SESSION_NO_BOND 2
2717 #define SSF_RELATED_INDEPENDENT 0
2718 #define SSF_RELATED_CHILD 1
2720 #define SSF_FGBG_FORE 0
2721 #define SSF_FGBG_BACK 1
2723 #define SSF_TRACEOPT_NONE 0
2724 #define SSF_TRACEOPT_TRACE 1
2725 #define SSF_TRACEOPT_TRACEALL 2
2727 #define SSF_INHERTOPT_SHELL 0
2728 #define SSF_INHERTOPT_PARENT 1
2730 #define SSF_TYPE_DEFAULT 0
2731 #define SSF_TYPE_FULLSCREEN 1
2732 #define SSF_TYPE_WINDOWABLEVIO 2
2733 #define SSF_TYPE_PM 3
2734 #define SSF_TYPE_VDM 4
2735 #define SSF_TYPE_GROUP 5
2736 #define SSF_TYPE_DLL 6
2737 #define SSF_TYPE_WINDOWEDVDM 7
2738 #define SSF_TYPE_PDD 8
2739 #define SSF_TYPE_VDD 9
2741 #define SSF_CONTROL_VISIBLE 0x0000
2742 #define SSF_CONTROL_INVISIBLE 0x0001
2743 #define SSF_CONTROL_MAXIMIZE 0x0002
2744 #define SSF_CONTROL_MINIMIZE 0x0004
2745 #define SSF_CONTROL_NOAUTOCLOSE 0x0008
2746 #define SSF_CONTROL_SETPOS 0x8000
2748 #define STOP_SESSION_SPECIFIED 0
2749 #define STOP_SESSION_ALL 1
2751 typedef struct _STARTDATA
2773 ULONG ObjectBuffLen
;
2775 typedef STARTDATA
*PSTARTDATA
;
2777 typedef struct _STATUSDATA
2783 typedef STATUSDATA
*PSTATUSDATA
;
2785 ULONG
DosQueryAppType (PCSZ pszName
, PULONG pulFlags
);
2786 ULONG
DosSelectSession (ULONG ulIDSession
);
2787 ULONG
DosSetSession (ULONG ulIDSession
, PSTATUSDATA psd
);
2788 ULONG
DosStartSession (PSTARTDATA psd
, PULONG pulIDSession
, PPID ppid
);
2789 ULONG
DosStopSession (ULONG ulScope
, ULONG ulIDSession
);
2791 #endif /* INCL_DOSSESMGR */
2793 /* ----------------------------- SEMAPHORES ------------------------------- */
2795 #if defined (INCL_DOSSEMAPHORES) || !defined (INCL_NOCOMMON)
2797 #define DC_SEM_SHARED 0x01
2798 #define DCMW_WAIT_ANY 0x02
2799 #define DCMW_WAIT_ALL 0x04
2801 #define SEM_INDEFINITE_WAIT ((ULONG)-1)
2802 #define SEM_IMMEDIATE_RETURN 0
2807 typedef struct _PSEMRECORD
/* Note 1 */
2812 typedef SEMRECORD
*PSEMRECORD
;
2814 #endif /* INCL_DOSSEMAPHORES || !INCL_NOCOMMON */
2816 #if defined (INCL_DOSSEMAPHORES)
2818 ULONG
DosCloseEventSem (HEV hev
);
2819 ULONG
DosCreateEventSem (PCSZ pszName
, PHEV phev
, ULONG ulAttr
, BOOL32 fState
);
2820 ULONG
DosOpenEventSem (PCSZ pszName
, PHEV phev
);
2821 ULONG
DosPostEventSem (HEV hev
);
2822 ULONG
DosQueryEventSem (HEV hev
, PULONG pulCount
);
2823 ULONG
DosResetEventSem (HEV hev
, PULONG pulCount
);
2824 ULONG
DosWaitEventSem (HEV hev
, ULONG ulTimeout
);
2826 ULONG
DosCloseMutexSem (HMTX hmtx
);
2827 ULONG
DosCreateMutexSem (PCSZ pszName
, PHMTX phmtx
, ULONG ulAttr
,
2829 ULONG
DosOpenMutexSem (PCSZ pszName
, PHMTX phmtx
);
2830 ULONG
DosQueryMutexSem (HMTX hmtx
, PPID ppid
, PTID ptid
, PULONG pulCount
);
2831 ULONG
DosReleaseMutexSem (HMTX hmtx
);
2832 ULONG
DosRequestMutexSem (HMTX hmtx
, ULONG ulTimeout
);
2834 ULONG
DosAddMuxWaitSem (HMUX hmux
, PSEMRECORD pSemRec
);
2835 ULONG
DosCloseMuxWaitSem (HMUX hmux
);
2836 ULONG
DosCreateMuxWaitSem (PCSZ pszName
, PHMUX phmux
, ULONG ulcSemRec
,
2837 PSEMRECORD pSemRec
, ULONG ulAttr
);
2838 ULONG
DosDeleteMuxWaitSem (HMUX hmux
, HSEM hSem
);
2839 ULONG
DosOpenMuxWaitSem (PCSZ pszName
, PHMUX phmux
);
2840 ULONG
DosQueryMuxWaitSem (HMUX hmux
, PULONG pulcSemRec
, PSEMRECORD pSemRec
,
2842 ULONG
DosWaitMuxWaitSem (HMUX hmux
, ULONG ulTimeout
, PULONG pulUser
);
2844 #endif /* INCL_DOSSEMAPHORES */
2846 /* ---------------------------- NAMED PIPES ------------------------------- */
2848 #define NP_INDEFINITE_WAIT ((ULONG)-1)
2849 #define NP_DEFAULT_WAIT 0
2851 #define NP_STATE_DISCONNECTED 1
2852 #define NP_STATE_LISTENING 2
2853 #define NP_STATE_CONNECTED 3
2854 #define NP_STATE_CLOSING 4
2856 #define NP_ACCESS_INBOUND 0x0000
2857 #define NP_ACCESS_OUTBOUND 0x0001
2858 #define NP_ACCESS_DUPLEX 0x0002
2859 #define NP_INHERIT 0x0000
2860 #define NP_NOINHERIT 0x0080
2861 #define NP_WRITEBEHIND 0x0000
2862 #define NP_NOWRITEBEHIND 0x4000
2864 #define NP_READMODE_BYTE 0x0000
2865 #define NP_READMODE_MESSAGE 0x0100
2866 #define NP_TYPE_BYTE 0x0000
2867 #define NP_TYPE_MESSAGE 0x0400
2868 #define NP_END_CLIENT 0x0000
2869 #define NP_END_SERVER 0x4000
2870 #define NP_WAIT 0x0000
2871 #define NP_NOWAIT 0x8000
2872 #define NP_UNLIMITED_INSTANCES 0x00ff
2874 #define NP_NBLK NO_WAIT
2875 #define NP_SERVER NP_END_SERVER
2876 #define NP_WMESG NP_TYPE_MESSAGE
2877 #define NP_RMESG NP_READMODE_MESSAGE
2878 #define NP_ICOUNT 0x00ff
2881 #define NPSS_RDATA 1
2882 #define NPSS_WSPACE 2
2883 #define NPSS_CLOSE 3
2885 #define NPSS_WAIT 0x0001
2887 typedef struct _AVAILDATA
2892 typedef AVAILDATA
*PAVAILDATA
;
2894 typedef struct _PIPEINFO
2903 typedef PIPEINFO
*PPIPEINFO
;
2905 typedef struct _PIPESEMSTATE
2912 typedef PIPESEMSTATE
*PPIPESEMSTATE
;
2914 ULONG
DosCallNPipe (PCSZ pszName
, PVOID pInbuf
, ULONG ulInbufLength
,
2915 PVOID pOutbuf
, ULONG ulOutbufSize
, PULONG pulActualLength
,
2917 ULONG
DosConnectNPipe (HPIPE hpipe
);
2918 ULONG
DosCreateNPipe (PCSZ pszName
, PHPIPE phpipe
, ULONG ulOpenMode
,
2919 ULONG ulPipeMode
, ULONG ulInbufLength
, ULONG ulOutbufLength
,
2921 ULONG
DosDisConnectNPipe (HPIPE hpipe
);
2922 ULONG
DosPeekNPipe (HPIPE hpipe
, PVOID pBuf
, ULONG ulBufLength
,
2923 PULONG pulActualLength
, PAVAILDATA pAvail
, PULONG pulState
);
2924 ULONG
DosQueryNPHState (HPIPE hpipe
, PULONG pulState
);
2925 ULONG
DosQueryNPipeInfo (HPIPE hpipe
, ULONG ulInfoLevel
, PVOID pBuf
,
2927 ULONG
DosQueryNPipeSemState (HSEM hsem
, PPIPESEMSTATE pState
,
2929 ULONG
DosRawReadNPipe (PCSZ pszName
, ULONG ulCount
, PULONG pulLength
,
2931 ULONG
DosRawWriteNPipe (PCSZ pszName
, ULONG ulCount
);
2932 ULONG
DosSetNPHState (HPIPE hpipe
, ULONG ulState
);
2933 ULONG
DosSetNPipeSem (HPIPE hpipe
, HSEM hsem
, ULONG ulKey
);
2934 ULONG
DosTransactNPipe (HPIPE hpipe
, PVOID pOutbuf
, ULONG ulOutbufLength
,
2935 PVOID pInbuf
, ULONG ulInbufLength
, PULONG pulBytesRead
);
2936 ULONG
DosWaitNPipe (PCSZ pszName
, ULONG ulTimeout
);
2938 /* ------------------------------- QUEUES --------------------------------- */
2940 #if defined (INCL_DOSQUEUES)
2942 #define QUE_FIFO 0x0000
2943 #define QUE_LIFO 0x0001
2944 #define QUE_PRIORITY 0x0002
2945 #define QUE_NOCONVERT_ADDRESS 0x0000
2946 #define QUE_CONVERT_ADDRESS 0x0004
2948 typedef struct _REQUESTDATA
2953 typedef REQUESTDATA
*PREQUESTDATA
;
2955 ULONG
DosCreatePipe (PHFILE phfReadHandle
, PHFILE phfWriteHandle
,
2958 ULONG
DosCloseQueue (HQUEUE hq
);
2959 ULONG
DosCreateQueue (PHQUEUE phq
, ULONG ulPriority
, PCSZ pszName
);
2960 ULONG
DosOpenQueue (PPID ppid
, PHQUEUE phq
, PCSZ pszName
);
2961 ULONG
DosPeekQueue (HQUEUE hq
, PREQUESTDATA pRequest
, PULONG pulDataLength
,
2962 PPVOID pDataAddress
, PULONG pulElement
, BOOL32 fNowait
, PBYTE pPriority
,
2964 ULONG
DosPurgeQueue (HQUEUE hq
);
2965 ULONG
DosQueryQueue (HQUEUE hq
, PULONG pulCount
);
2966 ULONG
DosReadQueue (HQUEUE hq
, PREQUESTDATA pRequest
, PULONG pulDataLength
,
2967 PPVOID pDataAddress
, ULONG pulElement
, BOOL32 fNowait
, PBYTE pPriority
,
2969 ULONG
DosWriteQueue (HQUEUE hq
, ULONG ulRequest
, ULONG ulDataLength
,
2970 PVOID pData
, ULONG ulPriority
);
2972 #endif /* INCL_DOSQUEUES */
2974 /* --------------------------- EXCEPTIONS --------------------------------- */
2976 #if defined (INCL_DOSEXCEPTIONS)
2978 #define CONTEXT_CONTROL 0x0001
2979 #define CONTEXT_INTEGER 0x0002
2980 #define CONTEXT_SEGMENTS 0x0004
2981 #define CONTEXT_FLOATING_POINT 0x0008
2982 #define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | \
2983 CONTEXT_SEGMENTS | CONTEXT_FLOATING_POINT)
2985 #define EH_NONCONTINUABLE 0x0001
2986 #define EH_UNWINDING 0x0002
2987 #define EH_EXIT_UNWIND 0x0004
2988 #define EH_STACK_INVALID 0x0008
2989 #define EH_NESTED_CALL 0x0010
2991 #define SIG_UNSETFOCUS 0
2992 #define SIG_SETFOCUS 1
2994 #define UNWIND_ALL 0
2996 #define XCPT_CONTINUE_SEARCH 0x00000000
2997 #define XCPT_CONTINUE_EXECUTION 0xffffffff
2998 #define XCPT_CONTINUE_STOP 0x00716668
3000 #define XCPT_SIGNAL_INTR 1
3001 #define XCPT_SIGNAL_KILLPROC 3
3002 #define XCPT_SIGNAL_BREAK 4
3004 #define XCPT_FATAL_EXCEPTION 0xc0000000
3005 #define XCPT_SEVERITY_CODE 0xc0000000
3006 #define XCPT_CUSTOMER_CODE 0x20000000
3007 #define XCPT_FACILITY_CODE 0x1fff0000
3008 #define XCPT_EXCEPTION_CODE 0x0000ffff
3010 #define XCPT_UNKNOWN_ACCESS 0x00000000
3011 #define XCPT_READ_ACCESS 0x00000001
3012 #define XCPT_WRITE_ACCESS 0x00000002
3013 #define XCPT_EXECUTE_ACCESS 0x00000004
3014 #define XCPT_SPACE_ACCESS 0x00000008
3015 #define XCPT_LIMIT_ACCESS 0x00000010
3016 #define XCPT_DATA_UNKNOWN 0xffffffff
3018 #define XCPT_GUARD_PAGE_VIOLATION 0x80000001
3019 #define XCPT_UNABLE_TO_GROW_STACK 0x80010001
3020 #define XCPT_ACCESS_VIOLATION 0xc0000005
3021 #define XCPT_IN_PAGE_ERROR 0xc0000006
3022 #define XCPT_ILLEGAL_INSTRUCTION 0xc000001c
3023 #define XCPT_INVALID_LOCK_SEQUENCE 0xc000001d
3024 #define XCPT_NONCONTINUABLE_EXCEPTION 0xc0000024
3025 #define XCPT_INVALID_DISPOSITION 0xc0000025
3026 #define XCPT_UNWIND 0xc0000026
3027 #define XCPT_BAD_STACK 0xc0000027
3028 #define XCPT_INVALID_UNWIND_TARGET 0xc0000028
3029 #define XCPT_ARRAY_BOUNDS_EXCEEDED 0xc0000093
3030 #define XCPT_FLOAT_DENORMAL_OPERAND 0xc0000094
3031 #define XCPT_FLOAT_DIVIDE_BY_ZERO 0xc0000095
3032 #define XCPT_FLOAT_INEXACT_RESULT 0xc0000096
3033 #define XCPT_FLOAT_INVALID_OPERATION 0xc0000097
3034 #define XCPT_FLOAT_OVERFLOW 0xc0000098
3035 #define XCPT_FLOAT_STACK_CHECK 0xc0000099
3036 #define XCPT_FLOAT_UNDERFLOW 0xc000009a
3037 #define XCPT_INTEGER_DIVIDE_BY_ZERO 0xc000009b
3038 #define XCPT_INTEGER_OVERFLOW 0xc000009c
3039 #define XCPT_PRIVILEGED_INSTRUCTION 0xc000009d
3040 #define XCPT_DATATYPE_MISALIGNMENT 0xc000009e
3041 #define XCPT_BREAKPOINT 0xc000009f
3042 #define XCPT_SINGLE_STEP 0xc00000a0
3043 #define XCPT_PROCESS_TERMINATE 0xc0010001
3044 #define XCPT_ASYNC_PROCESS_TERMINATE 0xc0010002
3045 #define XCPT_SIGNAL 0xc0010003
3047 typedef struct _fpreg
/* Note 1 */
3053 typedef FPREG
*PFPREG
;
3055 typedef struct _CONTEXT
/* Note 1 */
3077 typedef CONTEXTRECORD
*PCONTEXTRECORD
;
3079 #define EXCEPTION_MAXIMUM_PARAMETERS 4
3081 typedef struct _EXCEPTIONREPORTRECORD
3084 ULONG fHandlerFlags
;
3085 struct _EXCEPTIONREPORTRECORD
* NestedExceptionReportRecord
;
3086 PVOID ExceptionAddress
;
3088 ULONG ExceptionInfo
[EXCEPTION_MAXIMUM_PARAMETERS
];
3089 } EXCEPTIONREPORTRECORD
;
3090 typedef EXCEPTIONREPORTRECORD
*PEXCEPTIONREPORTRECORD
;
3092 struct _EXCEPTIONREGISTRATIONRECORD
;
3094 typedef ULONG
_ERR (PEXCEPTIONREPORTRECORD pReport
,
3095 struct _EXCEPTIONREGISTRATIONRECORD
*pRegistration
,
3096 PCONTEXTRECORD pContext
, PVOID pWhatever
);
3099 typedef struct _EXCEPTIONREGISTRATIONRECORD
3101 struct _EXCEPTIONREGISTRATIONRECORD
* __volatile__ prev_structure
;
3102 ERR __volatile__ ExceptionHandler
;
3103 } EXCEPTIONREGISTRATIONRECORD
;
3104 typedef EXCEPTIONREGISTRATIONRECORD
*PEXCEPTIONREGISTRATIONRECORD
;
3106 #define END_OF_CHAIN ((PEXCEPTIONREGISTRATIONRECORD)(-1))
3108 ULONG
DosAcknowledgeSignalException (ULONG ulSignal
);
3109 ULONG
DosEnterMustComplete (PULONG pulNesting
);
3110 ULONG
DosExitMustComplete (PULONG pulNesting
);
3111 ULONG
DosQueryThreadContext (TID tid
, ULONG ulLevel
, PCONTEXTRECORD pContext
);
3112 ULONG
DosRaiseException (PEXCEPTIONREPORTRECORD pXRepRec
);
3113 ULONG
DosSendSignalException (PID pid
, ULONG ulSignal
);
3114 ULONG
DosSetExceptionHandler (PEXCEPTIONREGISTRATIONRECORD pXRegRec
);
3115 ULONG
DosSetSignalExceptionFocus (BOOL32 flag
, PULONG pulTimes
);
3116 ULONG
DosUnsetExceptionHandler (PEXCEPTIONREGISTRATIONRECORD pXRegRec
);
3117 ULONG
DosUnwindException (PEXCEPTIONREGISTRATIONRECORD pXRegRec
,
3118 PVOID pJumpThere
, PEXCEPTIONREPORTRECORD pXRepRec
);
3120 #endif /* INCL_DOSEXCEPTIONS */
3122 /* --------------------------- INFORMATION -------------------------------- */
3124 #if defined (INCL_DOSMISC)
3126 #define QSV_MAX_PATH_LENGTH 1
3127 #define QSV_MAX_TEXT_SESSIONS 2
3128 #define QSV_MAX_PM_SESSIONS 3
3129 #define QSV_MAX_VDM_SESSIONS 4
3130 #define QSV_BOOT_DRIVE 5
3131 #define QSV_DYN_PRI_VARIATION 6
3132 #define QSV_MAX_WAIT 7
3133 #define QSV_MIN_SLICE 8
3134 #define QSV_MAX_SLICE 9
3135 #define QSV_PAGE_SIZE 10
3136 #define QSV_VERSION_MAJOR 11
3137 #define QSV_VERSION_MINOR 12
3138 #define QSV_VERSION_REVISION 13
3139 #define QSV_MS_COUNT 14
3140 #define QSV_TIME_LOW 15
3141 #define QSV_TIME_HIGH 16
3142 #define QSV_TOTPHYSMEM 17
3143 #define QSV_TOTRESMEM 18
3144 #define QSV_TOTAVAILMEM 19
3145 #define QSV_MAXPRMEM 20
3146 #define QSV_MAXSHMEM 21
3147 #define QSV_TIMER_INTERVAL 22
3148 #define QSV_MAX_COMP_LENGTH 23
3149 #define QSV_FOREGROUND_FS_SESSION 24
3150 #define QSV_FOREGROUND_PROCESS 25
3151 #define QSV_MAX QSV_FOREGROUND_PROCESS
3153 #define SIS_MMIOADDR 0
3154 #define SIS_MEC_TABLE 1
3155 #define SIS_SYS_LOG 2
3157 ULONG
DosQuerySysInfo (ULONG ulStart
, ULONG ulLast
, PVOID pBuf
,
3159 ULONG
DosScanEnv (PCSZ pszName
, PSZ
*pszValue
);
3160 ULONG
DosQueryRASInfo (ULONG Index
, PPVOID Addr
);
3162 #endif /* INCL_DOSMISC */
3164 /* ---------------------------- TIMERS ------------------------------------ */
3166 #if defined (INCL_DOSDATETIME) || !defined (INCL_NOCOMMON)
3168 typedef struct _DATETIME
3180 typedef DATETIME
*PDATETIME
;
3182 ULONG
DosGetDateTime (PDATETIME pdt
);
3183 ULONG
DosSetDateTime (__const__ DATETIME
*pdt
);
3185 #endif /* INCL_DOSDATETIME || !INCL_NOCOMMON */
3188 #if defined (INCL_DOSDATETIME)
3190 typedef LHANDLE HTIMER
;
3191 typedef HTIMER
*PHTIMER
;
3193 ULONG
DosAsyncTimer (ULONG ulMilliSec
, HSEM hsem
, PHTIMER phtimer
);
3194 ULONG
DosStartTimer (ULONG ulMilliSec
, HSEM hsem
, PHTIMER phtimer
);
3195 ULONG
DosStopTimer (HTIMER htimer
);
3197 #endif /* INCL_DOSDATETIME */
3199 #if defined (INCL_DOSPROFILE)
3201 typedef struct _QWORD
3206 typedef QWORD
*PQWORD
;
3208 ULONG
DosTmrQueryFreq (PULONG pulTmrFreq
);
3209 ULONG
DosTmrQueryTime (PQWORD pqwTmrTime
);
3211 #endif /* INCL_DOSPROFILE */
3213 /* ---------------------- VIRTUAL DOS MACHINES----------------------------- */
3215 typedef USHORT SGID
;
3217 #if defined (INCL_DOSMVDM)
3219 typedef LHANDLE HVDD
;
3220 typedef HVDD
*PHVDD
;
3222 ULONG
DosCloseVDD (HVDD hvdd
);
3223 ULONG
DosOpenVDD (PCSZ pszVDD
, PHVDD phvdd
);
3224 ULONG
DosQueryDOSProperty (SGID sgidSesssionID
, PCSZ pszName
,
3225 ULONG ulBufferLength
, PSZ pBuffer
);
3226 ULONG
DosRequestVDD (HVDD hvdd
, SGID sgidSessionID
, ULONG ulCommand
,
3227 ULONG ulInputBufferLength
, PVOID pInputBuffer
,
3228 ULONG ulOutputBufferLength
, PVOID pOutputBuffer
);
3229 ULONG
DosSetDOSProperty (SGID sgidSessionID
, PCSZ pszName
,
3230 ULONG ulBufferLength
, PCSZ pBuffer
);
3232 #endif /* INCL_DOSMVDM */
3234 /* --------------------------- DEBUGGING ---------------------------------- */
3236 #if defined (INCL_DOSPROCESS)
3238 #define DBG_C_Null 0
3239 #define DBG_C_ReadMem 1
3240 #define DBG_C_ReadMem_I 1
3241 #define DBG_C_ReadMem_D 2
3242 #define DBG_C_ReadReg 3
3243 #define DBG_C_WriteMem 4
3244 #define DBG_C_WriteMem_I 4
3245 #define DBG_C_WriteMem_D 5
3246 #define DBG_C_WriteReg 6
3248 #define DBG_C_Term 8
3249 #define DBG_C_SStep 9
3250 #define DBG_C_Stop 10
3251 #define DBG_C_Freeze 11
3252 #define DBG_C_Resume 12
3253 #define DBG_C_NumToAddr 13
3254 #define DBG_C_ReadCoRegs 14
3255 #define DBG_C_WriteCoRegs 15
3256 #define DBG_C_ThrdStat 17
3257 #define DBG_C_MapROAlias 18
3258 #define DBG_C_MapRWAlias 19
3259 #define DBG_C_UnMapAlias 20
3260 #define DBG_C_Connect 21
3261 #define DBG_C_ReadMemBuf 22
3262 #define DBG_C_WriteMemBuf 23
3263 #define DBG_C_SetWatch 24
3264 #define DBG_C_ClearWatch 25
3265 #define DBG_C_RangeStep 26
3266 #define DBG_C_Continue 27
3267 #define DBG_C_AddrToObject 28
3268 #define DBG_C_XchngOpcode 29
3269 #define DBG_C_LinToSel 30
3270 #define DBG_C_SelToLin 31
3272 #define DBG_N_Success 0
3273 #define DBG_N_Error (-1)
3274 #define DBG_N_ProcTerm (-6)
3275 #define DBG_N_Exception (-7)
3276 #define DBG_N_ModuleLoad (-8)
3277 #define DBG_N_CoError (-9)
3278 #define DBG_N_ThreadTerm (-10)
3279 #define DBG_N_AsyncStop (-11)
3280 #define DBG_N_NewProc (-12)
3281 #define DBG_N_AliasFree (-13)
3282 #define DBG_N_Watchpoint (-14)
3283 #define DBG_N_ThreadCreate (-15)
3284 #define DBG_N_ModuleFree (-16)
3285 #define DBG_N_RangeStep (-17)
3287 #define DBG_D_Thawed 0
3288 #define DBG_D_Frozen 1
3290 #define DBG_T_Runnable 0
3291 #define DBG_T_Suspended 1
3292 #define DBG_T_Blocked 2
3293 #define DBG_T_CritSec 3
3297 #define DBG_LEN_387 108
3299 #define DBG_CO_387 1
3301 #define DBG_O_OBJMTE 0x10000000
3303 #define DBG_W_Global 0x00000001
3304 #define DBG_W_Local 0x00000002
3305 #define DBG_W_Execute 0x00010000
3306 #define DBG_W_Write 0x00020000
3307 #define DBG_W_ReadWrite 0x00030000
3309 #define DBG_X_PRE_FIRST_CHANCE 0x00000000
3310 #define DBG_X_FIRST_CHANCE 0x00000001
3311 #define DBG_X_LAST_CHANCE 0x00000002
3312 #define DBG_X_STACK_INVALID 0x00000003
3314 typedef struct _TStat
3374 ULONG
DosDebug (uDB_t
*pDebugBuffer
);
3376 #endif /* INCL_DOSPROCESS */
3378 /* ---------------------------- MESSAGES ---------------------------------- */
3380 #if defined (INCL_DOSMISC)
3382 ULONG
DosGetMessage (PCHAR
*pTable
, ULONG ulTableEntries
,
3383 PCHAR pBuffer
, ULONG ulBufferLengthMax
, ULONG ulMsgnNumber
,
3384 PCSZ pszFile
, PULONG pulBufferLength
);
3385 ULONG
DosInsertMessage (PCHAR
*pTable
, ULONG ulCount
, PCSZ pszMsg
,
3386 ULONG ulMsgLength
, PCHAR pBuffer
, ULONG ulBufferLengthMax
,
3387 PULONG pulBufferLength
);
3388 ULONG
DosPutMessage (HFILE hfile
, ULONG ulMessageLength
, PCHAR pMessage
);
3389 ULONG
DosQueryMessageCP (PCHAR pBuffer
, ULONG ulBufferLengthMax
,
3390 PCSZ pszFilename
, PULONG pulBufferLength
);
3392 #endif /* INCL_DOSMISC */
3394 /* ----------------------------- RAS -------------------------------------- */
3396 #if defined (INCL_DOSRAS)
3398 #define DDP_DISABLEPROCDUMP 0
3399 #define DDP_ENABLEPROCDUMP 1
3400 #define DDP_PERFORMPROCDUMP 2
3402 #define LF_LOGENABLE 0x0001
3403 #define LF_LOGAVAILABLE 0x0002
3405 #define SIS_MMIOADDR 0
3406 #define SIS_MEC_TABLE 1
3407 #define SIS_SYS_LOG 2
3409 #define SPU_DISABLESUPPRESSION 0
3410 #define SPU_ENABLESUPPRESSION 1
3412 ULONG
DosDumpProcess (ULONG ulFlag
, ULONG ulDrive
, PID pid
);
3413 ULONG
DosForceSystemDump (ULONG ulReserved
);
3414 ULONG
DosQueryRASInfo (ULONG ulIndex
, PPVOID addr
);
3415 ULONG
DosSuppressPopUps (ULONG ulFlag
, ULONG ulDrive
);
3417 #endif /* INCL_DOSRAS */
3419 /* ---------------------------- REXX -------------------------------------- */
3421 #define RXAUTOBUFLEN 256
3423 typedef struct _RXSTRING
3428 typedef RXSTRING
*PRXSTRING
;
3430 typedef struct _RXSYSEXIT
3435 typedef RXSYSEXIT
*PRXSYSEXIT
;
3437 #define RXNULLSTRING(r) ((r).strptr == (PCH)0)
3438 #define RXZEROLENSTRING(r) ((r).strptr != (PCH)0 && (r).strlength == 0)
3439 #define RXVALIDSTRING(r) ((r).strptr != (PCH)0 && (r).strlength != 0)
3440 #define RXSTRLEN(r) (RXNULLSTRING(r) ? 0 : (r).strlength)
3441 #define RXSTRPTR(r) (r).strptr
3442 #define MAKERXSTRING(r,p,l) \
3443 ((r).strptr = (PCH)p, (r).strlength = (ULONG)l)
3446 #define RXSUBROUTINE 1
3447 #define RXFUNCTION 2
3449 #if defined (INCL_RXSUBCOM)
3451 #define RXSUBCOM_DROPPABLE 0x0000
3452 #define RXSUBCOM_NONDROP 0x0001
3454 #define RXSUBCOM_ISREG 0x0001
3455 #define RXSUBCOM_ERROR 0x0001
3456 #define RXSUBCOM_FAILURE 0x0002
3458 #define RXSUBCOM_BADENTRY 1001
3459 #define RXSUBCOM_NOEMEM 1002
3460 #define RXSUBCOM_BADTYPE 1003
3461 #define RXSUBCOM_NOTINIT 1004
3463 #define RXSUBCOM_OK 0
3464 #define RXSUBCOM_DUP 10
3465 #define RXSUBCOM_MAXREG 20
3466 #define RXSUBCOM_NOTREG 30
3467 #define RXSUBCOM_NOCANDROP 40
3468 #define RXSUBCOM_LOADERR 50
3469 #define RXSUBCOM_NOPROC 127
3471 typedef ULONG
RexxSubcomHandler (PRXSTRING prxCommand
, PUSHORT pusFlags
,
3472 PRXSTRING prxResult
);
3474 ULONG
RexxDeregisterSubcom (PCSZ pszEnvName
, PCSZ pszModuleName
);
3475 ULONG
RexxQuerySubcom (PCSZ pszEnvName
, PCSZ pszModuleName
, PUSHORT pusFlags
,
3477 ULONG
RexxRegisterSubcomDll (PCSZ pszEnvName
, PCSZ pszModuleName
,
3478 PCSZ pszEntryPoint
, PUCHAR pUserArea
, ULONG ulDropAuth
);
3479 ULONG
RexxRegisterSubcomExe (PCSZ pszEnvName
, PFN pfnEntryPoint
,
3482 #define REXXDEREGISTERSUBCOM RexxDeregisterSubcom
3483 #define REXXREGISTERSUBCOMDLL RexxRegisterSubcomDll
3484 #define REXXREGISTERSUBCOMEXE RexxRegisterSubcomExe
3485 #define REXXQUERYSUBCOM RexxQuerySubcom
3487 #endif /* INCL_RXSUBCOM */
3489 #if defined (INCL_RXSHV)
3491 #define RXSHV_SET 0x0000
3492 #define RXSHV_FETCH 0x0001
3493 #define RXSHV_DROPV 0x0002
3494 #define RXSHV_SYSET 0x0003
3495 #define RXSHV_SYFET 0x0004
3496 #define RXSHV_SYDRO 0x0005
3497 #define RXSHV_NEXTV 0x0006
3498 #define RXSHV_PRIV 0x0007
3499 #define RXSHV_EXIT 0x0008
3501 #define RXSHV_NOAVL 144
3503 #define RXSHV_OK 0x0000
3504 #define RXSHV_NEWV 0x0001
3505 #define RXSHV_LVAR 0x0002
3506 #define RXSHV_TRUNC 0x0004
3507 #define RXSHV_BADN 0x0008
3508 #define RXSHV_MEMFL 0x0010
3509 #define RXSHV_BADF 0x0080
3511 typedef struct _SHVBLOCK
3513 struct _SHVBLOCK
*shvnext
;
3521 typedef SHVBLOCK
*PSHVBLOCK
;
3523 ULONG
RexxVariablePool (PSHVBLOCK pRequest
);
3525 #define REXXVARIABLEPOOL RexxVariablePool
3527 #endif /* INCL_RXSHV */
3529 #if defined (INCL_RXFUNC)
3531 #define RXFUNC_DYNALINK 1
3532 #define RXFUNC_CALLENTRY 2
3535 #define RXFUNC_DEFINED 10
3536 #define RXFUNC_NOMEM 20
3537 #define RXFUNC_NOTREG 30
3538 #define RXFUNC_MODNOTFND 40
3539 #define RXFUNC_ENTNOTFND 50
3540 #define RXFUNC_NOTINIT 60
3541 #define RXFUNC_BADTYPE 70
3543 typedef ULONG
RexxFunctionHandler (PCSZ pszName
, ULONG ulArgCount
,
3544 PRXSTRING prxArgList
, PCSZ pszQueueName
, PRXSTRING prxResult
);
3546 ULONG
RexxDeregisterFunction (PCSZ pszFuncName
);
3547 ULONG
RexxQueryFunction (PCSZ pszFuncName
);
3548 ULONG
RexxRegisterFunctionDll (PCSZ pszFuncName
, PCSZ pszModuleName
,
3549 PCSZ pszEntryPoint
);
3550 ULONG
RexxRegisterFunctionExe (PCSZ pszFuncName
,
3551 RexxFunctionHandler
*pfnEntryPoint
);
3553 #define REXXDEREGISTERFUNCTION RexxDeregisterFunction
3554 #define REXXQUERYFUNCTION RexxQueryFunction
3555 #define REXXREGISTERFUNCTIONDLL RexxRegisterFunctionDll
3556 #define REXXREGISTERFUNCTIONEXE RexxRegisterFunctionExe
3558 #endif /* INCL_RXFUNC */
3560 #if defined (INCL_RXSYSEXIT)
3562 #define RXEXIT_DROPPABLE 0x0000
3563 #define RXEXIT_NONDROP 0x0001
3565 #define RXEXIT_HANDLED 0
3566 #define RXEXIT_NOT_HANDLED 1
3567 #define RXEXIT_RAISE_ERROR (-1)
3569 #define RXEXIT_ISREG 0x0001
3570 #define RXEXIT_ERROR 0x0001
3571 #define RXEXIT_FAILURE 0x0002
3573 #define RXEXIT_BADENTRY 1001
3574 #define RXEXIT_NOEMEM 1002
3575 #define RXEXIT_BADTYPE 1003
3576 #define RXEXIT_NOTINIT 1004
3579 #define RXEXIT_DUP 10
3580 #define RXEXIT_MAXREG 20
3581 #define RXEXIT_NOTREG 30
3582 #define RXEXIT_NOCANDROP 40
3583 #define RXEXIT_LOADERR 50
3584 #define RXEXIT_NOPROC 127
3620 #define RXNOOFEXITS 11
3622 typedef PUCHAR PEXIT
;
3624 typedef struct _RXFNC_FLAGS
3631 typedef struct _RXFNCCAL_PARM
3633 RXFNC_FLAGS rxfnc_flags
;
3639 PRXSTRING rxfnc_argv
;
3640 RXSTRING rxfnc_retc
;
3643 typedef struct _RXCMD_FLAGS
3649 typedef struct _RXCMDHST_PARM
3651 RXCMD_FLAGS rxcmd_flags
;
3652 PUCHAR rxcmd_address
;
3653 USHORT rxcmd_addressl
;
3655 USHORT rxcmd_dll_len
;
3656 RXSTRING rxcmd_command
;
3657 RXSTRING rxcmd_retc
;
3660 typedef struct _RXMSQPLL_PARM
3662 RXSTRING rxmsq_retc
;
3665 typedef struct _RXMSQ_FLAGS
3670 typedef struct _RXMSQPSH_PARM
3672 RXMSQ_FLAGS rxmsq_flags
;
3673 RXSTRING rxmsq_value
;
3676 typedef struct _RXMSQSIZ_PARM
3681 typedef struct _RXMSQNAM_PARM
3683 RXSTRING rxmsq_name
;
3686 typedef struct _RXSIOSAY_PARM
3688 RXSTRING rxsio_string
;
3691 typedef struct _RXSIOTRC_PARM
3693 RXSTRING rxsio_string
;
3696 typedef struct _RXSIOTRD_PARM
3698 RXSTRING rxsiotrd_retc
;
3701 typedef struct _RXSIODR_PARM
3703 RXSTRING rxsiodtr_retc
;
3706 typedef struct _RXHLT_FLAGS
3711 typedef struct _RXHLTTST_PARM
3713 RXHLT_FLAGS rxhlt_flags
;
3716 typedef struct _RXTRC_FLAGS
3721 typedef struct _RXTRCTST_PARM
3723 RXTRC_FLAGS rxtrc_flags
;
3726 typedef LONG
RexxExitHandler (LONG lExitNumber
, LONG lSubfunction
,
3729 ULONG
RexxDeregisterExit (PCSZ pszEnvName
, PCSZ pszModuleName
);
3730 ULONG
RexxQueryExit (PCSZ pszEnvName
, PCSZ pszModuleName
, PUSHORT pusFlag
,
3732 ULONG
RexxRegisterExitDll (PCSZ pszEnvName
, PCSZ pszModuleName
,
3733 PCSZ pszEntryName
, PUCHAR pUserArea
, ULONG ulDropAuth
);
3734 ULONG
RexxRegisterExitExe (PCSZ pszEnvName
, PFN pfnEntryPoint
,
3737 #define REXXDEREGISTEREXIT RexxDeregisterExit
3738 #define REXXQUERYEXIT RexxQueryExit
3739 #define REXXREGISTEREXITDLL RexxRegisterExitDll
3740 #define REXXREGISTEREXITEXE RexxRegisterExitExe
3742 #endif /* INCL_RXSYSEXIT */
3744 #if defined (INCL_RXARI)
3747 #define RXARI_NOT_FOUND 1
3748 #define RXARI_PROCESSING_ERROR 2
3750 ULONG
RexxResetTrace (PID pid
, TID tid
);
3751 ULONG
RexxSetHalt (PID pid
, TID tid
);
3752 ULONG
RexxSetTrace (PID pid
, TID tid
);
3754 #define REXXRESETTRACE RexxResetTrace
3755 #define REXXSETHALT RexxSetHalt
3756 #define REXXSETTRACE RexxSetTrace
3758 #endif /* INCL_RXARI */
3760 #if defined (INCL_RXMACRO)
3762 #define RXMACRO_SEARCH_BEFORE 1
3763 #define RXMACRO_SEARCH_AFTER 2
3765 #define RXMACRO_OK 0
3766 #define RXMACRO_NO_STORAGE 1
3767 #define RXMACRO_NOT_FOUND 2
3768 #define RXMACRO_EXTENSION_REQUIRED 3
3769 #define RXMACRO_ALREADY_EXISTS 4
3770 #define RXMACRO_FILE_ERROR 5
3771 #define RXMACRO_SIGNATURE_ERROR 6
3772 #define RXMACRO_SOURCE_NOT_FOUND 7
3773 #define RXMACRO_INVALID_POSITION 8
3774 #define RXMACRO_NOT_INIT 9
3776 ULONG
RexxAddMacro (PCSZ pszFuncName
, PCSZ pszSourceFile
, ULONG ulPosition
);
3777 ULONG
RexxClearMacroSpace (VOID
);
3778 ULONG
RexxDropMacro (PCSZ pszFuncName
);
3779 ULONG
RexxLoadMacroSpace (ULONG ulFuncCout
, PCSZ
*apszFuncNames
,
3780 PCSZ pszMacroLibFile
);
3781 ULONG
RexxQueryMacro (PCSZ pszFuncName
, PUSHORT pusPosition
);
3782 ULONG
RexxReorderMacro(PCSZ pszFuncName
, ULONG ulPosition
);
3783 ULONG
RexxSaveMacroSpace (ULONG ulFuncCount
, PCSZ
*apszFuncNames
,
3784 PCSZ pszMacroLibFile
);
3786 #define REXXADDMACRO RexxAddMacro
3787 #define REXXCLEARMACROSPACE RexxClearMacroSpace
3788 #define REXXDROPMACRO RexxDropMacro
3789 #define REXXSAVEMACROSPACE RexxSaveMacroSpace
3790 #define REXXLOADMACROSPACE RexxLoadMacroSpace
3791 #define REXXQUERYMACRO RexxQueryMacro
3792 #define REXXREORDERMACRO RexxReorderMacro
3794 #endif /* INCL_RXMACRO */
3796 LONG
RexxStart (LONG lArgCount
, PRXSTRING prxArgList
, PCSZ pszProgramName
,
3797 PRXSTRING prxInstore
, PCSZ pszEnvName
, LONG lCallType
, PRXSYSEXIT pExits
,
3798 PSHORT psReturnCode
, PRXSTRING prxResult
);
3800 #define REXXSTART RexxStart
3802 /* ----------------------- PRESENTATION MANAGER --------------------------- */
3804 #define CTLS_WM_BIDI_FIRST 0x390
3805 #define CTLS_WM_BIDI_LAST 0x39f
3807 #if defined (INCL_NLS)
3808 #define WM_DBCSFIRST 0x00b0
3809 #define WM_DBCSLAST 0x00cf
3810 #endif /* INCL_NLS */
3812 #define WC_FRAME ((PSZ)0xffff0001)
3813 #define WC_COMBOBOX ((PSZ)0xffff0002)
3814 #define WC_BUTTON ((PSZ)0xffff0003)
3815 #define WC_MENU ((PSZ)0xffff0004)
3816 #define WC_STATIC ((PSZ)0xffff0005)
3817 #define WC_ENTRYFIELD ((PSZ)0xffff0006)
3818 #define WC_LISTBOX ((PSZ)0xffff0007)
3819 #define WC_SCROLLBAR ((PSZ)0xffff0008)
3820 #define WC_TITLEBAR ((PSZ)0xffff0009)
3821 #define WC_MLE ((PSZ)0xffff000a)
3822 #define WC_APPSTAT ((PSZ)0xffff0010)
3823 #define WC_KBDSTAT ((PSZ)0xffff0011)
3824 #define WC_PECIC ((PSZ)0xffff0012)
3825 #define WC_DBE_KKPOPUP ((PSZ)0xffff0013)
3826 #define WC_SPINBUTTON ((PSZ)0xffff0020)
3827 #define WC_CONTAINER ((PSZ)0xffff0025)
3828 #define WC_SLIDER ((PSZ)0xffff0026)
3829 #define WC_VALUESET ((PSZ)0xffff0027)
3830 #define WC_NOTEBOOK ((PSZ)0xffff0028)
3831 #define WC_PENFIRST ((PSZ)0xffff0029)
3832 #define WC_PENLAST ((PSZ)0xffff002c)
3833 #define WC_MMPMFIRST ((PSZ)0xffff0040)
3834 #define WC_CIRCULARSLIDER ((PSZ)0xffff0041)
3835 #define WC_MMPMLAST ((PSZ)0xffff004f)
3837 #define WS_VISIBLE 0x80000000
3838 #define WS_DISABLED 0x40000000
3839 #define WS_CLIPCHILDREN 0x20000000
3840 #define WS_CLIPSIBLINGS 0x10000000
3841 #define WS_PARENTCLIP 0x08000000
3842 #define WS_SAVEBITS 0x04000000
3843 #define WS_SYNCPAINT 0x02000000