home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / xc212os2.zip / DEF / os2.def < prev    next >
Text File  |  1996-03-05  |  1MB  |  21,213 lines

  1.  
  2. (* ------------- Include file: .\hm\os2.hm ------------- *)
  3. <* M2EXTENSIONS + *>
  4. DEFINITION MODULE ["C"] OS2;
  5. IMPORT SYSTEM;
  6.  
  7.  
  8. (*static char *SCCSID = "@(#)os2.h    6.6 92/03/15";*)
  9. (****************************** Module Header ******************************\
  10. *                                                                          *
  11. * Copyright (c) 1987  - 1992 IBM Corporation                               *
  12. *                                                                          *
  13. * Module Name: OS2.H                                                       *
  14. *                                                                          *
  15. * This is the top level include file that includes all the files necessary *
  16. * for writing an OS/2 application.                                         *
  17. *                                                                          *
  18. \***************************************************************************)
  19.  
  20. <* IF NOT DEFINED (__OS2_H__)  THEN *>
  21. <* NEW __OS2_H__ + *>
  22.  
  23. <* NEW OS2_INCLUDED + *>
  24.  
  25. (* Common definitions *)
  26.  
  27. (* ------------- Include file: .\hm\os2def.hm ------------- *)
  28. (****************************** Module Header ******************************\
  29. *
  30. * Module Name: OS2DEF.H
  31. *
  32. * OS/2 Common Definitions file
  33. *
  34. * Copyright (c) International Business Machines Corporation 1981, 1988-1992
  35. *
  36. * ===========================================================================
  37. *
  38. * Comments at the end of each TYPE line give the name tags used in
  39. * the assembler include version of this file.
  40. *
  41. * The assembler include version of this file excludes lines between NOINC
  42. * and INC comments.
  43. *
  44. \***************************************************************************)
  45. (* NOINC *)
  46. ----Original:
  47. --#define FAR         (* this will be deleted shortly *)
  48. --#define NEAR        (* this will be deleted shortly *)
  49. --#define APIENTRY    _System
  50. --#define EXPENTRY    _System
  51. --#define APIENTRY16  _Far16 _Pascal
  52. --#define PASCAL16    _Far16 _Pascal
  53. --#define CDECL16     _Far16 _Cdecl
  54.  
  55. CONST APIENTRY    = "SysCall"; -- for APIENTRY       
  56. CONST EXPENTRY    = "SysCall"; -- for EXPENTRY...
  57. <* IF DEFINED(__NEWER_DEFINED_NAME) THEN *> (* it was '#if' 0 in the source text *)
  58.     CONST APIENTRY16  = 2;
  59. <* END *>
  60.  
  61. TYPE VOID = SYSTEM.void;
  62. (* INC *)
  63.  
  64. TYPE APIRET   = SYSTEM.CARD32;      -- unsigned long
  65. TYPE APIRET16 = SYSTEM.CARD16;      -- unsigned short
  66. TYPE APIRET32 = SYSTEM.CARD32;      -- unsigned long
  67.  
  68. TYPE SHANDLE  = SYSTEM.CARD16;      -- unsigned short
  69. TYPE LHANDLE  = SYSTEM.CARD32;      -- unsigned long
  70.  
  71. CONST NULLHANDLE  = LHANDLE(0);
  72. CONST NULLSHANDLE = LHANDLE(0);
  73.  
  74. (* NOINC *)
  75. --TYPE CHAR    = CHAR;          (* ch  *)
  76. TYPE SHORT     = SYSTEM.INT16;  (* s   *)
  77. TYPE LONG      = SYSTEM.INT32;  (* l   *)
  78.  
  79. <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  80.     TYPE INT       = SYSTEM.int;  (* i   *)
  81. <* END *>
  82. (* INC *)
  83.  
  84. TYPE UCHAR       = CHAR;           (* uch *)
  85. TYPE USHORT      = SYSTEM.CARD16;  (* us  *)
  86. TYPE ULONG       = SYSTEM.CARD32;  (* ul  *)
  87.  
  88. <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  89.       TYPE UINT     = SYSTEM.unsigned;(* ui  *)
  90. <* END *>
  91.  
  92. <* IF DEFINED(__NEWER_DEFINED_NAME) THEN *> (* it was '#if' 0 in the source text *)
  93.     TYPE PUCHAR16    = POINTER TO UCHAR;     
  94.     TYPE PCHAR16     = POINTER TO CHAR;
  95. <* END *>
  96.  
  97. TYPE BYTE        = SYSTEM.CARD8;    (* b   *)
  98.  
  99. TYPE PSZ         = POINTER TO CHAR;
  100. TYPE NPSZ        = POINTER TO CHAR;
  101.  
  102. TYPE PCH         = POINTER TO CHAR;
  103. TYPE NPCH        = POINTER TO CHAR;
  104. TYPE PCSZ        = POINTER TO CHAR;
  105. TYPE PPCSZ       = POINTER TO PCSZ;
  106.  
  107. TYPE PFN  = PROCEDURE [APIENTRY] (): INT;
  108. TYPE NPFN = PROCEDURE [APIENTRY] (): INT;
  109. (*
  110. --   declarations before are interprited by Modula as
  111. --   a pointers, original _PFN and _NPFN are newer used.
  112. Original:
  113.       TYPE PFN  = POINTER TO _PFN; 
  114.       TYPE NPFN = POINTER TO _NPFN;
  115. *)
  116.  
  117.  
  118. TYPE PBYTE       = POINTER TO BYTE;
  119. TYPE NPBYTE      = POINTER TO BYTE;
  120.  
  121. TYPE PCHAR       = POINTER TO CHAR;
  122. TYPE PPCHAR      = POINTER TO PCHAR;
  123. TYPE PSHORT      = POINTER TO SHORT;
  124. TYPE PLONG       = POINTER TO LONG;
  125.  
  126. <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  127.       TYPE PINT     = POINTER TO INT;
  128. <* END *>
  129.  
  130. TYPE PUCHAR      = POINTER TO UCHAR;
  131. TYPE PUSHORT     = POINTER TO USHORT;
  132. TYPE PULONG      = POINTER TO ULONG;
  133.  
  134. <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  135.       TYPE PUINT    = POINTER TO UINT;
  136. <* END *>
  137.  
  138. TYPE PVOID       = POINTER TO SYSTEM.void; 
  139. TYPE PPVOID      = POINTER TO PVOID;
  140. <* IF DEFINED(__NEWER_DEFINED_NAME) THEN *> (* it was '#if' 0 in the source text *)
  141.     TYPE PVOID16     = PVOID;            
  142. <* END *>
  143.  
  144. TYPE BOOL        = SYSTEM.CARD32;          (* f   *)
  145. TYPE PBOOL       = POINTER TO BOOL;
  146.  
  147.  
  148. (* NOINC *)
  149. TYPE BOOL32      = BOOL;
  150. TYPE PBOOL32     = PBOOL;
  151. (* INC *)
  152.  
  153. (* Quad-word *)
  154. (* NOINC *)
  155. TYPE QWORD = RECORD         (* qword *)
  156.       ulLo: ULONG;
  157.       ulHi: ULONG;
  158. END;
  159. TYPE PQWORD = POINTER TO QWORD;
  160. (* INC *)
  161.  
  162. <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  163.       TYPE SEL       = SYSTEM.CARD16;    (* sel *)
  164.       TYPE PSEL      = POINTER TO SEL;
  165.  
  166.       (*** Useful Helper Macros *)(* Sorry. Can't use macro *)
  167.  
  168.       (* Create untyped far pointer from selector and offset *)
  169.       --#define MAKEP( sel,off ) (( void * )( void * _Seg16 )( (sel) << 16 | (off) ))
  170.       --#define MAKE16P( sel,off ) (( void * _Seg16 )( (sel) << 16 | (off) ))
  171.  
  172.       (* Extract selector or offset from far pointer *)
  173.       (* Warning:the selectorof macro should not be used*)
  174.       (* for 32 bit objects                             *)
  175.       --#define SELECTOROF(ptr)     ((((ULONG)(ptr))>>13)|7)
  176.       --#define OFFSETOF(p)         (((PUSHORT)&(p))[0])
  177. <* END *>
  178.  
  179. (* Cast any variable to an instance of the specified type. *)
  180. --#define MAKETYPE(v, type)   (*((type *)&v))
  181.  
  182. (* Calculate the byte offset of a field in a structure of type type. *)
  183. --#define FIELDOFFSET(type, field)    ((SHORT)&(((type *)0)->field))
  184.  
  185. (* Combine l & h to form a 32 bit quantity. *)
  186. --#define MAKEULONG(l, h)  ((ULONG)(((USHORT)(l)) | ((ULONG)((USHORT)(h))) << 16))
  187. --#define MAKELONG(l, h)   ((LONG)MAKEULONG(l, h))
  188.  
  189. (* Combine l & h to form a 16 bit quantity. *)
  190. --#define MAKEUSHORT(l, h) (((USHORT)(l)) | ((USHORT)(h)) << 8)
  191. --#define MAKESHORT(l, h)  ((SHORT)MAKEUSHORT(l, h))
  192.  
  193. (* Extract high and low order parts of 16 and 32 bit quantity *)
  194. --#define LOBYTE(w)       LOUCHAR(w)
  195. --#define HIBYTE(w)       HIUCHAR(w)
  196. --#define LOUCHAR(w)      ((UCHAR)(w))
  197. --#define HIUCHAR(w)      ((UCHAR)(((USHORT)(w) >> 8) & 0xff))
  198. --#define LOUSHORT(l)     ((USHORT)((ULONG)l))
  199. --#define HIUSHORT(l)     ((USHORT)(((ULONG)(l) >> 16) & 0xffff))
  200.  
  201. (*** Common Error definitions ****)
  202.  
  203. TYPE ERRORID  = CARDINAL;
  204. TYPE PERRORID = POINTER TO ERRORID;
  205.  
  206. (* Combine severity and error code to produce ERRORID *)
  207. --#define MAKEERRORID(sev, error) (ERRORID)(MAKEULONG((error), (sev)))
  208.  
  209. (* Extract error number from an errorid *)
  210. --#define ERRORIDERROR(errid)            (LOUSHORT(errid))
  211.  
  212. (* Extract severity from an errorid *)
  213. --#define ERRORIDSEV(errid)              (HIUSHORT(errid))
  214.  
  215. (* Severity codes *)
  216. CONST SEVERITY_NOERROR = 0000H;
  217. CONST SEVERITY_WARNING = 0004H;
  218. CONST SEVERITY_ERROR   = 0008H;
  219. CONST SEVERITY_SEVERE  = 000CH;
  220. CONST SEVERITY_UNRECOVERABLE = 0010H;
  221.  
  222. (* Base component error values *)
  223.  
  224. CONST WINERR_BASE =  1000H;  (* Window Manager                  *)
  225. CONST GPIERR_BASE =  2000H;  (* Graphics Presentation Interface *)
  226. CONST DEVERR_BASE =  3000H;  (* Device Manager                  *)
  227. CONST SPLERR_BASE =  4000H;  (* Spooler                         *)
  228.  
  229. (*** Common types used across components *)
  230.  
  231. (*** Common DOS types *)
  232.  
  233. TYPE HMODULE = LHANDLE;        (* hmod *)
  234. TYPE PID     = LHANDLE;        (* pid  *)
  235. TYPE TID     = LHANDLE;        (* tid  *)
  236.  
  237. <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  238.       TYPE SGID = USHORT;            (* sgid *)
  239. <* END *>
  240.  
  241. TYPE PHMODULE = POINTER TO HMODULE;
  242. TYPE PPID     = POINTER TO PID;
  243. TYPE PTID     = POINTER TO TID;
  244.  
  245. <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  246.    <* IF NOT DEFINED (__HSEM__)  THEN *>
  247. <* NEW __HSEM__ + *>
  248.               TYPE HSEM   = SYSTEM.ADDRESS;      (* hsem *)
  249.               TYPE PHSMEM = POINTER TO HSEM;
  250.    <* END *>
  251. <* END *>
  252.  
  253. (*** Common SUP types *)
  254.  
  255. TYPE HAB  = LHANDLE;         (* hab  *)
  256. TYPE PHAB = POINTER TO HAB;
  257.  
  258. (*** Common GPI/DEV types *)
  259.  
  260. TYPE HPS  = LHANDLE;         (* hps  *)
  261. TYPE PHPS = POINTER TO HPS;
  262.  
  263. TYPE HDC  = LHANDLE;         (* hdc  *)
  264. TYPE PHDC = POINTER TO HDC;
  265.  
  266. TYPE HRGN  = LHANDLE;        (* hrgn *)
  267. TYPE PHRGN = POINTER TO HRGN;
  268.  
  269. TYPE HBITMAP  = LHANDLE;     (* hbm  *)
  270. TYPE PHBITMAP = POINTER TO HBITMAP;
  271.  
  272. TYPE HMF  = LHANDLE;         (* hmf  *)
  273. TYPE PHMF = POINTER TO HMF;
  274.  
  275. TYPE HPAL  = LHANDLE;        (* hpal *)
  276. TYPE PHPAL = POINTER TO HPAL;
  277.  
  278. TYPE COLOR  = LONG;        (* clr  *)
  279. TYPE PCOLOR = POINTER TO COLOR;
  280.  
  281. TYPE POINTL = RECORD        (* ptl  *)
  282.       x: LONG;
  283.       y: LONG;
  284. END;
  285.  
  286. TYPE PPOINTL = POINTER TO POINTL;
  287. TYPE NPPOINTL = POINTER TO POINTL;
  288.  
  289. TYPE POINTS = RECORD        (* pts *)
  290.       x: SHORT;
  291.       y: SHORT;
  292. END;
  293. TYPE PPOINTS = POINTER TO POINTS;
  294.  
  295. TYPE RECTL = RECORD          (* rcl *)
  296.       xLeft,
  297.       yBottom,
  298.       xRight,
  299.       yTop: LONG;
  300. END;
  301. TYPE PRECTL  = POINTER TO RECTL;
  302. TYPE NPRECTL = POINTER TO RECTL;
  303.  
  304. TYPE STR8  = ARRAY [0..7] OF CHAR;    (* str8 *)
  305. TYPE PSTR8 = POINTER TO STR8;
  306.  
  307. (*** common DEV/SPL types *)
  308.  
  309. (* structure for Device Driver data *)
  310.  
  311. TYPE DRIVDATA = RECORD       (* driv *)
  312.       cb:        LONG;
  313.       lVersion:  LONG;
  314.       szDeviceName:  ARRAY [0..31] OF CHAR;
  315.       abGeneralData: ARRAY [0..0]  OF CHAR;
  316. END;
  317. TYPE PDRIVDATA = POINTER TO DRIVDATA;
  318.  
  319. (* pointer data for DevOpenDC *)
  320.  
  321. TYPE PDEVOPENDATA = POINTER TO PSZ;
  322.  
  323. (* array indices for array parameter for DevOpenDC, SplQmOpen or SplQpOpen *)
  324.  
  325. CONST ADDRESS           =  0;
  326. <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  327.       CONST DRIVER_NAME    =  1;
  328.       CONST DRIVER_DATA    =  2;
  329.       CONST DATA_TYPE      =  3;
  330.       CONST COMMENT        =  4;
  331.       CONST PROC_NAME      =  5;
  332.       CONST PROC_PARAMS    =  6;
  333.       CONST SPL_PARAMS     =  7;
  334.       CONST NETWORK_PARAMS =  8;
  335.  
  336.       (* structure definition as an alternative of the array parameter *)
  337.  
  338.       TYPE DEVOPENSTRUC = RECORD     (* dop *)
  339.             pszLogAddress,
  340.             pszDriverName:    PSZ;
  341.             pdriv:            PDRIVDATA;
  342.             pszDataType,
  343.             pszComment,
  344.             pszQueueProcName,
  345.             pszQueueProcParams,
  346.             pszSpoolerParams,
  347.             pszNetworkParams: PSZ;
  348.       END;
  349.       TYPE PDEVOPENSTRUC = POINTER TO DEVOPENSTRUC;
  350. <* END *>
  351.  
  352. (* common PMWP object and PMSTDDLG drag data *)
  353.  
  354. TYPE PRINTDEST = RECORD     (* prntdst *)
  355.       cb:         ULONG;
  356.       lType:      LONG;
  357.       pszToken:   PSZ;
  358.       lCount:     LONG;
  359.       pdopData:   PDEVOPENDATA;
  360.       fl:         ULONG;
  361.       pszPrinter: PSZ;
  362. END;
  363. TYPE PPRINTDEST = POINTER TO PRINTDEST;
  364.  
  365. CONST PD_JOB_PROPERTY  =  0001H;      (* Flags for .fl field           *)
  366.  
  367. (*** common AVIO/GPI types *)
  368.  
  369. (* values of fsSelection field of FATTRS structure *)
  370. CONST FATTR_SEL_ITALIC      =  0001H;
  371. CONST FATTR_SEL_UNDERSCORE  =  0002H;
  372. CONST FATTR_SEL_OUTLINE     =  0008H;
  373. CONST FATTR_SEL_STRIKEOUT   =  0010H;
  374. CONST FATTR_SEL_BOLD        =  0020H;
  375.  
  376. (* values of fsType field of FATTRS structure *)
  377. CONST FATTR_TYPE_KERNING    =  0004H;
  378. CONST FATTR_TYPE_MBCS       =  0008H;
  379. CONST FATTR_TYPE_DBCS       =  0010H;
  380. CONST FATTR_TYPE_ANTIALIASED=  0020H;
  381.  
  382. (* values of fsFontUse field of FATTRS structure *)
  383. CONST FATTR_FONTUSE_NOMIX         = 0002H;
  384. CONST FATTR_FONTUSE_OUTLINE       = 0004H;
  385. CONST FATTR_FONTUSE_TRANSFORMABLE = 0008H;
  386. (* size for fields in the font structures *)
  387.  
  388. CONST FACESIZE = 32;
  389.  
  390. (* font struct for Vio/GpiCreateLogFont *)
  391.  
  392. TYPE FATTRS = RECORD            (* fat *)
  393.       usRecordLength:   USHORT;
  394.       fsSelection:      USHORT;
  395.       lMatch:           LONG;
  396.       szFacename:       ARRAY [0..FACESIZE-1] OF CHAR;
  397.       idRegistry:       USHORT;
  398.       usCodePage:       USHORT;
  399.       lMaxBaselineExt:  LONG;
  400.       lAveCharWidth:    LONG;
  401.       fsType:           USHORT;
  402.       fsFontUse:        USHORT;
  403. END;
  404. TYPE PFATTRS = POINTER TO FATTRS;
  405.  
  406. (* values of fsType field of FONTMETRICS structure *)
  407. CONST FM_TYPE_FIXED          = 0001H;
  408. CONST FM_TYPE_LICENSED       = 0002H;
  409. CONST FM_TYPE_KERNING        = 0004H;
  410. CONST FM_TYPE_DBCS           = 0010H;
  411. CONST FM_TYPE_MBCS           = 0018H;
  412. CONST FM_TYPE_64K            = 8000H;
  413. CONST FM_TYPE_ATOMS          = 4000H;
  414. CONST FM_TYPE_FAMTRUNC       = 2000H;
  415. CONST FM_TYPE_FACETRUNC      = 1000H;
  416.  
  417. (* values of fsDefn field of FONTMETRICS structure *)
  418. CONST FM_DEFN_OUTLINE        = 0001H;
  419. CONST FM_DEFN_IFI            = 0002H;
  420. CONST FM_DEFN_WIN            = 0004H;
  421. CONST FM_DEFN_GENERIC        = 8000H;
  422.  
  423. (* values of fsSelection field of FONTMETRICS structure *)
  424. CONST FM_SEL_ITALIC          = 0001H;
  425. CONST FM_SEL_UNDERSCORE      = 0002H;
  426. CONST FM_SEL_NEGATIVE        = 0004H;
  427. CONST FM_SEL_OUTLINE         = 0008H;          (* Hollow Outline Font *)
  428. CONST FM_SEL_STRIKEOUT       = 0010H;
  429. CONST FM_SEL_BOLD            = 0020H;
  430. CONST FM_SEL_ISO9241_TESTED  = 0040H;
  431.  
  432. (* ISO 9241 is an international standard covering health and safety      *)
  433. (* in the work place for users of visual display terminals. Part 3 of    *)
  434. (* this standard covers clarity and legibility of text displayed on      *)
  435. (* computer screens, it places requirements on minimum sizes and         *)
  436. (* luminance contrast. The presence of FM_SEL_ISO9241_TESTED flag in the *)
  437. (* font metrics indicates that the font has been tested for compliance   *)
  438. (* to the standard. The FM_ISO_XXX flags indicate the results of the     *)
  439. (* test on the IBM 9515, 9517 and 9518 color displays at the supported   *)
  440. (* dimensions of 640x480 and 1024x768. To ensure compliance the          *)
  441. (* sXDeviceRes and sYDeviceRes must also match the target display        *)
  442. (* resolution.                                                           *)
  443.  
  444. (* values of fbPassed/FailedISO field in the PANOSE structure *)
  445. CONST FM_ISO_9518_640       = 01H;
  446. CONST FM_ISO_9515_640       = 02H;
  447. CONST FM_ISO_9515_1024      = 04H;
  448. CONST FM_ISO_9517_640       = 08H;
  449. CONST FM_ISO_9517_1024      = 10H;
  450.  
  451. (* values of fsCapabilities field of FONTMETRICS structure *)
  452. CONST FM_CAP_NOMIX          =  0001H;
  453.  
  454. (* font metrics returned by GpiQueryFonts and others *)
  455.  
  456. TYPE PANOSE = RECORD  (* panose *)
  457.       bFamilyType,
  458.       bSerifStyle,
  459.       bWeight,
  460.       bProportion,
  461.       bContrast,
  462.       bStrokeVariation,
  463.       bArmStyle,
  464.       bLetterform,
  465.       bMidline,
  466.       bXHeight,
  467.       fbPassedISO,
  468.       fbFailedISO: BYTE;
  469. END;
  470.  
  471. TYPE FONTMETRICS = RECORD    (* fm *)
  472.       szFamilyname:    ARRAY [0..FACESIZE-1] OF CHAR;
  473.       szFacename:      ARRAY [0..FACESIZE-1] OF CHAR;
  474.       idRegistry:        USHORT;
  475.       usCodePage:        USHORT;
  476.       lEmHeight,
  477.       lXHeight,
  478.       lMaxAscender,
  479.       lMaxDescender,
  480.       lLowerCaseAscent,
  481.       lLowerCaseDescent,
  482.       lInternalLeading,
  483.       lExternalLeading,
  484.       lAveCharWidth,
  485.       lMaxCharInc,
  486.       lEmInc,
  487.       lMaxBaselineExt:   LONG;
  488.       sCharSlope:        SHORT;
  489.       sInlineDir:        SHORT;
  490.       sCharRot:          SHORT;
  491.       usWeightClass:     USHORT;
  492.       usWidthClass:      USHORT;
  493.       sXDeviceRes,
  494.       sYDeviceRes,
  495.       sFirstChar,
  496.       sLastChar,
  497.       sDefaultChar,
  498.       sBreakChar,
  499.       sNominalPointSize,
  500.       sMinimumPointSize,
  501.       sMaximumPointSize: SHORT;
  502.       fsType:            USHORT;
  503.       fsDefn:            USHORT;
  504.       fsSelection:       USHORT;
  505.       fsCapabilities:    USHORT;
  506.       lSubscriptXSize,
  507.       lSubscriptYSize,
  508.       lSubscriptXOffset,
  509.       lSubscriptYOffset,
  510.       lSuperscriptXSize,
  511.       lSuperscriptYSize,
  512.       lSuperscriptXOffset,
  513.       lSuperscriptYOffset,
  514.       lUnderscoreSize,
  515.       lUnderscorePosition,
  516.       lStrikeoutSize,
  517.       lStrikeoutPosition:LONG;
  518.       sKerningPairs:     SHORT;
  519.       sFamilyClass:      SHORT;
  520.       lMatch:            LONG;
  521.       FamilyNameAtom:    LONG;
  522.       FaceNameAtom:      LONG;
  523.       panose:            PANOSE;
  524. END;
  525. TYPE PFONTMETRICS = POINTER TO FONTMETRICS;
  526.  
  527. (*** Common WIN types *)
  528.  
  529. TYPE HWND  = LHANDLE;      (* hwnd *)
  530. TYPE PHWND = POINTER TO HWND;
  531.  
  532. TYPE HMQ  = LHANDLE;       (* hmq *)
  533. TYPE PHMQ = POINTER TO LHANDLE;
  534.  
  535. (* NOINC *)
  536. --#define WRECT RECTL
  537. --#define PWRECT PRECTL
  538. --#define NPWRECT NPRECTL
  539.  
  540. --#define WPOINT POINTL
  541. --#define PWPOINT PPOINTL
  542. --#define NPWPOINT NPPOINTL
  543. (* INC *)
  544.  
  545. TYPE ICONINFO = RECORD   (* icninf *)
  546.       cb:           ULONG;       (* size of ICONINFO structure *)
  547.       fFormat:      ULONG;
  548.       pszFileName:  PSZ;         (* use when fFormat = ICON_FILE *)
  549.       hmod:         HMODULE;     (* use when fFormat = ICON_RESOURCE *)
  550.       resid:        ULONG;       (* use when fFormat = ICON_RESOURCE *)
  551.       cbIconData:   ULONG;       (* use when fFormat = ICON_DATA     *)
  552.       pIconData:    PVOID;       (* use when fFormat = ICON_DATA     *)
  553. END;
  554. TYPE PICONINFO = POINTER TO ICONINFO;
  555.  
  556. CONST ICON_FILE     = 1;         (* flags for fFormat *)
  557. CONST ICON_RESOURCE = 2;
  558. CONST ICON_DATA     = 3;
  559. CONST ICON_CLEAR    = 4;
  560.  
  561. (**************************** end of file **********************************)
  562.  
  563. (* ------------- End of file:  .\hm\os2def.hm ------------- *)
  564. (* OS/2 Base Include File *)
  565. <* IF NOT DEFINED (INCL_NOBASEAPI)  THEN *>
  566.    
  567. (* ------------- Include file: .\hm\bse.hm ------------- *)
  568. (*static char *SCCSID = "@(#)bse.h    6.8 92/03/15";*)
  569. (****************************** Module Header ******************************\
  570. *
  571. * Module Name: BSE.H
  572. *
  573. * This file includes the definitions necessary for writing Base OS/2 applications.
  574. *
  575. * Copyright (c) 1987, 1992  IBM Corporation
  576. *
  577. *
  578. *
  579. * ===========================================================================
  580. *
  581. * The following symbols are used in this file for conditional sections.
  582. *
  583. *   INCL_BASE      -  ALL of OS/2 Base
  584. *   INCL_DOS       -  OS/2 DOS Kernel
  585. *   INCL_SUB       -  OS/2 VIO/KBD/MOU
  586. *   INCL_DOSERRORS -  OS/2 Errors         - only included if symbol defined
  587. *   INCL_ORDINALS  -  OS/2 Ordinals       - only included if symbol defined
  588. \***************************************************************************)
  589.  
  590.  
  591.  
  592. <* NEW INCL_BASEINCLUDED + *>
  593.  
  594. (* if INCL_BASE defined then define all the symbols *)
  595.  
  596. <* IF DEFINED(INCL_BASE) THEN *>
  597.    <* NEW INCL_DOS + *>
  598.    <* NEW INCL_SUB + *>
  599.    <* NEW INCL_DOSERRORS + *>
  600. <* END *>
  601.  
  602.    
  603. (* ------------- Include file: .\hm\bsedos.hm ------------- *)
  604. (****************************** Module Header ******************************\
  605. *
  606. * Module Name: BSEDOS.H
  607. *
  608. * OS/2 Base include file.
  609. *
  610. * Copyright (c) International Business Machines Corporation 1981, 1988-1992
  611. *
  612. * ===========================================================================
  613. *
  614. * The folowing symbols are used in this file for conditional sections.
  615. *
  616. * If INCL_BSE is defined, all subcomponents are included.
  617. *
  618. * Subcomponents marked with "+" are partially included by default:
  619. *
  620. *   CONST:                To include:
  621. *
  622. * + INCL_DOSPROCESS         Process and thread support
  623. * + INCL_DOSFILEMGR         File Management
  624. * + INCL_DOSMEMMGR          Memory Management
  625. * + INCL_DOSSEMAPHORES      Semaphore support
  626. * + INCL_DOSDATETIME        Date/Time and Timer support
  627. *   INCL_DOSMODULEMGR       Module manager
  628. * + INCL_DOSRESOURCES       Resource support
  629. *   INCL_DOSNLS             National Language Support
  630. *   INCL_DOSEXCEPTIONS      Exception Management Support
  631. *   INCL_DOSMISC            Miscellaneous
  632. *   INCL_DOSMONITORS        Monitors
  633. *   INCL_DOSQUEUES          Queues
  634. *   INCL_DOSSESMGR          Session Manager Support
  635. *   INCL_DOSDEVICES         Device specific, ring 2 support
  636. *   INCL_DOSNMPIPES         Named Pipes Support
  637. *   INCL_DOSPROFILE         DosProfile API
  638. *   INCL_DOSMVDM            MVDM support
  639. *
  640. * ===========================================================================
  641. *
  642. * Comments at the end of each TYPE line give the name tags used in
  643. * the assembler include version of this file.
  644. *
  645. * The assembler include version of this file excludes lines between NOINC
  646. * and INC comments.
  647. *
  648. \***************************************************************************)
  649.  
  650.  
  651.  
  652. <* NEW INCL_DOSINCLUDED + *>
  653.  
  654. <* IF DEFINED(INCL_DOS) THEN *>
  655.    <* NEW INCL_DOSPROCESS + *>
  656.    <* NEW INCL_DOSFILEMGR + *>
  657.    <* NEW INCL_DOSMEMMGR + *>
  658.    <* NEW INCL_DOSSEMAPHORES + *>
  659.    <* NEW INCL_DOSDATETIME + *>
  660.    <* NEW INCL_DOSMODULEMGR + *>
  661.    <* NEW INCL_DOSRESOURCES + *>
  662.    <* NEW INCL_DOSNLS + *>
  663.    <* NEW INCL_DOSEXCEPTIONS + *>
  664.    <* NEW INCL_DOSMISC + *>
  665.    <* NEW INCL_DOSMONITORS + *>
  666.    <* NEW INCL_DOSQUEUES + *>
  667.    <* NEW INCL_DOSSESMGR + *>
  668.    <* NEW INCL_DOSDEVICES + *>
  669.    <* NEW INCL_DOSNMPIPES + *>
  670.    <* NEW INCL_DOSPROFILE + *>
  671.    <* NEW INCL_DOSMVDM + *>
  672. <* END *>
  673.  
  674. <* IF DEFINED(INCL_ERRORS) THEN *>
  675.    <* NEW INCL_DOSERRORS + *>
  676. <* END *>
  677.  
  678. <* IF (DEFINED (INCL_DOSPROCESS) OR NOT DEFINED (INCL_NOCOMMON) ) THEN *>
  679.       (*** General services *)
  680.       PROCEDURE [APIENTRY] DosBeep(freq:  ULONG ;
  681.                                                       dur:  ULONG): APIRET;
  682.  
  683.       (*** Process and Thread support *)
  684.       PROCEDURE [APIENTRY] DosExit(action: ULONG ;
  685.                                                         result: ULONG); (* :void; *)
  686.  
  687.       (* DosExit codes *)
  688.       CONST EXIT_THREAD        = 0;
  689.       CONST EXIT_PROCESS       = 1;
  690. <* END *>
  691.  
  692. <* IF DEFINED(INCL_DOSPROCESS) THEN *>
  693.  
  694.    
  695. (* ------------- Include file: .\hm\bsetib.hm ------------- *)
  696. (*      SCCSID = @(#)bsetib.h    6.9 92/03/15 *)
  697. (***************************************************************************\
  698. *
  699. * Module Name: BSETIB.H
  700. *
  701. * OS/2 Thread Information Block Include File
  702. *
  703. * Copyright (c) 1989, 1992  IBM Corporation
  704. * Copyright (c) 1989  Microsoft Corporation
  705. *
  706. *****************************************************************************)
  707.  
  708. (*
  709.   *      Thread Information Block (TIB)
  710.   *)
  711.  
  712. TYPE tib2_s = RECORD
  713.               tib2_ultid:        ULONG;   (* Thread I.D. *)
  714.               tib2_ulpri:        ULONG;   (* Thread priority *)
  715.               tib2_version:      ULONG;   (* Version number for this structure *)
  716.               tib2_usMCCount:    ULONG;   (* Must Complete count *)
  717.               tib2_fMCForceFlag: ULONG;   (* Must Complete force flag *)
  718. END;
  719.  
  720. TYPE TIB2  = tib2_s;
  721. TYPE PTIB2 = POINTER TO TIB2;
  722.  
  723. TYPE tib_s = RECORD                   (* TIB Thread Information Block *)
  724.                 tib_pexchain:    PVOID;       (* Head of exception handler chain *)
  725.                 tib_pstack:      PVOID;       (* Pointer to base of stack *)
  726.                 tib_pstacklimit: PVOID;       (* Pointer to end of stack *)
  727.                 tib_ptib2:       PTIB2;       (* Pointer to system specific TIB *)
  728.                 tib_version:     ULONG;       (* Version number for this TIB structure *)
  729.                 tib_ordinal:     ULONG;       (* Thread ordinal number        *)
  730. END;
  731.  
  732.  
  733. TYPE tib_t = tib_s;
  734. TYPE TIB   = tib_s;
  735. TYPE PTIB  = POINTER TO tib_s;
  736.  
  737.  
  738. (*
  739.   *      Process Information Block (PIB)
  740.   *)
  741.  
  742.  
  743. TYPE pib_s = RECORD                         (* PIB Process Information Block *)
  744.               pib_ulpid:    ULONG;          (* Process I.D. *)
  745.               pib_ulppid:   ULONG;          (* Parent process I.D. *)
  746.               pib_hmte:     ULONG;          (* Program (.EXE) module handle *)
  747.               pib_pchcmd:   PCHAR;          (* Command line pointer *)
  748.               pib_pchenv:   PCHAR;          (* Environment pointer *)
  749.               pib_flstatus: ULONG;          (* Process' status bits *)
  750.               pib_ultype:   ULONG;          (* Process' type code *)
  751. END;
  752.  
  753.  
  754. TYPE pib_t  = pib_s;
  755. TYPE PIB    = pib_s;
  756. TYPE PPIB   = POINTER TO pib_s;
  757.  
  758. (***************************** End of file ************************************)
  759.  
  760. (* ------------- End of file:  .\hm\bsetib.hm ------------- *)
  761.  
  762.       TYPE FNTHREAD  = PROCEDURE [APIENTRY] (ULONG);
  763.       TYPE PFNTHREAD = POINTER TO FNTHREAD;
  764.  
  765.       PROCEDURE [APIENTRY] DosCreateThread(ptid:   PTID ;
  766.                                                                       pfn:      PFNTHREAD ;
  767.                                                                       param:    ULONG ;
  768.                                                                       flag:     ULONG ;
  769.                                                                       cbStack:  ULONG ): APIRET;
  770.  
  771.       PROCEDURE [APIENTRY] DosResumeThread(tid:  TID ): APIRET;
  772.  
  773.       PROCEDURE [APIENTRY] DosSuspendThread(tid:  TID ): APIRET;
  774.  
  775.       TYPE PPTIB = POINTER TO PTIB;
  776.       TYPE PPPIB = POINTER TO PPIB;
  777.       PROCEDURE [APIENTRY] DosGetInfoBlocks(pptib:  PPTIB;
  778.                                                                                   pppib:  PPPIB): APIRET;
  779.  
  780.       PROCEDURE [APIENTRY] DosKillThread(tid:  TID ): APIRET;
  781.  
  782.       (* Action code values *)
  783.  
  784.       CONST DCWA_PROCESS      = 0;
  785.       CONST DCWA_PROCESSTREE  = 1;
  786.  
  787.       (* Wait option values *)
  788.  
  789.       CONST DCWW_WAIT         = 0;
  790.       CONST DCWW_NOWAIT       = 1;
  791.  
  792. (* Thread Flags for DosCreateThread options 59468 *)
  793.  
  794. CONST CREATE_READY       = 0;                   (* defect 65437  *)
  795. CONST CREATE_SUSPENDED   = 1;
  796. CONST STACK_SPARSE       = 0;
  797. CONST STACK_COMMITTED    = 2;
  798.  
  799.       TYPE RESULTCODES = RECORD      (* resc *)
  800.             codeTerminate:  ULONG ;
  801.             codeResult:     ULONG ;
  802.       END;
  803.       TYPE PRESULTCODES = POINTER TO RESULTCODES;
  804.  
  805.       PROCEDURE [APIENTRY] DosWaitChild(action:  ULONG ;
  806.                                                                 option:   ULONG ;
  807.                                                                 pres:     PRESULTCODES ;
  808.                                                                 ppid:     PPID ;
  809.                                                                 pid:      PID ): APIRET;
  810.  
  811.       CONST DosCwait = DosWaitChild;
  812.  
  813.       PROCEDURE [APIENTRY] DosWaitThread(ptid:    PTID ;
  814.                                                                   option:   ULONG ): APIRET;
  815.  
  816.       PROCEDURE [APIENTRY] DosSleep(msec:  ULONG ): APIRET;
  817.  
  818. (***ET+ uDB -   User's Debug Buffer structure
  819.   *
  820.   *      A pointer to a uDB is the sole parameter to DosDebug.  It
  821.   *      contains all the information required for each DosDebug
  822.   *      command.
  823.   *
  824.   *)
  825.  
  826. TYPE _uDB_t = RECORD   (* uDB *)
  827.     Pid:       SYSTEM.CARD32;       (* Debuggee Process id          *)
  828.     Tid:       SYSTEM.CARD32;       (* Debuggee Thread id           *)
  829.     Cmd:       SYSTEM.INT32;        (* Command or Notification      *)
  830.     Value:     SYSTEM.INT32;        (* Generic Data Value           *)
  831.     Addr:      SYSTEM.CARD32;       (* Debuggee Address             *)
  832.     Buffer:    SYSTEM.CARD32;       (* Debugger Buffer Address      *)
  833.     Len:       SYSTEM.CARD32;       (* Length of Range              *)
  834.     Index:     SYSTEM.CARD32;       (* Generic Identifier Index     *)
  835.     MTE:       SYSTEM.CARD32;       (* Module Table Entry Handle    *)
  836.     EAX:       SYSTEM.CARD32;       (* Register Set                 *)
  837.     ECX:       SYSTEM.CARD32;
  838.     EDX:       SYSTEM.CARD32;
  839.     EBX:       SYSTEM.CARD32;
  840.     ESP:       SYSTEM.CARD32;
  841.     EBP:       SYSTEM.CARD32;
  842.     ESI:       SYSTEM.CARD32;
  843.     EDI:       SYSTEM.CARD32;
  844.     EFlags:    SYSTEM.CARD32;
  845.     EIP:       SYSTEM.CARD32;
  846.     CSLim:     SYSTEM.CARD32;
  847.     CSBase:    SYSTEM.CARD32;
  848.     CSAcc:     CHAR;
  849.     CSAtr:     CHAR;
  850.     CS:        SYSTEM.CARD16;
  851.     DSLim:     SYSTEM.CARD32;
  852.     DSBase:    SYSTEM.CARD32;
  853.     DSAcc:     CHAR;
  854.     DSAtr:     CHAR;
  855.     DS:        SYSTEM.CARD16;
  856.     ESLim:     SYSTEM.CARD32;
  857.     ESBase:    SYSTEM.CARD32;
  858.     ESAcc:     CHAR;
  859.     ESAtr:     CHAR;
  860.     ES:        SYSTEM.CARD16;
  861.     FSLim:     SYSTEM.CARD32;
  862.     FSBase:    SYSTEM.CARD32;
  863.     FSAcc:     CHAR;
  864.     FSAtr:     CHAR  ;
  865.     FS:        SYSTEM.CARD16;
  866.     GSLim:     SYSTEM.CARD32;
  867.     GSBase:    SYSTEM.CARD32;
  868.     GSAcc:     CHAR;
  869.     GSAtr:     CHAR;
  870.     GS:        SYSTEM.CARD16;
  871.     SSLim:     SYSTEM.CARD32;
  872.     SSBase:    SYSTEM.CARD32;
  873.     SSAcc:     CHAR;
  874.     SSAtr:     CHAR;
  875.     SS:        SYSTEM.CARD16;
  876. END;
  877.  
  878. (***EK+ DBG_C - DosDebug Command Numbers
  879.   *
  880.   *      These numbers are placed in the Cmd field of the uDB on
  881.   *      entry to DosDebug.
  882.   *
  883.   *      These numbers identify which command DosDebug is requested
  884.   *      to perform.
  885.   *
  886.   *)
  887.  
  888. CONST DBG_C_Null            =  0;       (* Null                         *)
  889. CONST DBG_C_ReadMem         =  1;       (* Read Word                    *)
  890. CONST DBG_C_ReadMem_I       =  1;       (* Read Word                    *)
  891. CONST DBG_C_ReadMem_D       =  2;       (* Read Word (same as 1)        *)
  892. CONST DBG_C_ReadReg         =  3;       (* Read Register Set            *)
  893. CONST DBG_C_WriteMem        =  4;       (* Write Word                   *)
  894. CONST DBG_C_WriteMem_I      =  4;       (* Write Word                   *)
  895. CONST DBG_C_WriteMem_D      =  5;       (* Write Word (same as 4)       *)
  896. CONST DBG_C_WriteReg        =  6;       (* Write Register Set           *)
  897. CONST DBG_C_Go              =  7;       (* Go                           *)
  898. CONST DBG_C_Term            =  8;       (* Terminate                    *)
  899. CONST DBG_C_SStep           =  9;       (* Single Step                  *)
  900. CONST DBG_C_Stop            =  10;      (* Stop                         *)
  901. CONST DBG_C_Freeze          =  11;      (* Freeze Thread                *)
  902. CONST DBG_C_Resume          =  12;      (* Resume Thread                *)
  903. CONST DBG_C_NumToAddr       =  13;      (* Object Number to Address     *)
  904. CONST DBG_C_ReadCoRegs      =  14;      (* Read Coprocessor Registers   *)
  905. CONST DBG_C_WriteCoRegs     =  15;      (* Write Coprocessor Registers  *)
  906.                                                                                 (* 16 is reserved               *)
  907. CONST DBG_C_ThrdStat        =  17;      (* Get Thread Status            *)
  908. CONST DBG_C_MapROAlias      =  18;      (* Map read-only alias          *)
  909. CONST DBG_C_MapRWAlias      =  19;      (* Map read-write alias         *)
  910. CONST DBG_C_UnMapAlias      =  20;      (* Unmap Alias                  *)
  911. CONST DBG_C_Connect         =  21;      (* Connect to Debuggee          *)
  912. CONST DBG_C_ReadMemBuf      =  22;      (* Read Memory Buffer           *)
  913. CONST DBG_C_WriteMemBuf     =  23;      (* Write Memory Buffer          *)
  914. CONST DBG_C_SetWatch        =  24;      (* Set Watchpoint               *)
  915. CONST DBG_C_ClearWatch      =  25;      (* Clear Watchpoint             *)
  916. CONST DBG_C_RangeStep       =  26;      (* Range Step                   *)
  917. CONST DBG_C_Continue        =  27;      (* Continue after an Exception  *)
  918. CONST DBG_C_AddrToObject    =  28;      (* Address to Object            *)
  919. CONST DBG_C_XchgOpcode      =  29;      (* Exchange opcode and go       *)
  920. CONST DBG_C_LinToSel        =  30;      (* 32 to 16 conversion      A001*)
  921. CONST DBG_C_SelToLin        =  31;      (* 16 to 32 conversion      A001*)
  922.  
  923.       PROCEDURE [APIENTRY] DosDebug(pdbgbuf:  PVOID ): APIRET;
  924.  
  925.  
  926.       (* codeTerminate values (also passed to ExitList routines) *)
  927.  
  928.       CONST TC_EXIT            =0;
  929.       CONST TC_HARDERROR       =1;
  930.       CONST TC_TRAP            =2;
  931.       CONST TC_KILLPROCESS     =3;
  932.       CONST TC_EXCEPTION       =4;
  933.  
  934.       TYPE FNEXITLIST  = PROCEDURE [APIENTRY] (ULONG);
  935.       TYPE PFNEXITLIST = POINTER TO FNEXITLIST;
  936.  
  937.       PROCEDURE [APIENTRY] DosEnterCritSec(): APIRET;
  938.  
  939.       PROCEDURE [APIENTRY] DosExitCritSec(): APIRET;
  940.  
  941.       PROCEDURE [APIENTRY] DosExitList(ordercode:  ULONG ;
  942.                                                                 pfn:        PFNEXITLIST ): APIRET;
  943.  
  944.       (* DosExitList functions *)
  945.  
  946.       CONST EXLST_ADD         = 1;
  947.       CONST EXLST_REMOVE      = 2;
  948.       CONST EXLST_EXIT        = 3;
  949.  
  950.       PROCEDURE [APIENTRY] DosExecPgm(pObjname:  PCHAR ;
  951.                                                             cbObjname:  LONG ;
  952.                                                             execFlag:   ULONG ;
  953.                                                             pArg:       PCSZ ;
  954.                                                             pEnv:       PCSZ ;
  955.                                                             pRes:       PRESULTCODES ;
  956.                                                             pName:      PCSZ ): APIRET;
  957.  
  958.       (* DosExecPgm functions *)
  959.  
  960.       CONST EXEC_SYNC         = 0;
  961.       CONST EXEC_ASYNC        = 1;
  962.       CONST EXEC_ASYNCRESULT  = 2;
  963.       CONST EXEC_TRACE        = 3;
  964.       CONST EXEC_BACKGROUND   = 4;
  965.       CONST EXEC_LOAD         = 5;
  966.       CONST EXEC_ASYNCRESULTDB= 6;
  967.  
  968.  
  969.       PROCEDURE [APIENTRY]  DosSetPriority(scope:   ULONG ;
  970.                                                                       ulclass:  ULONG ;
  971.                                                                       delta:    LONG ;
  972.                                                                       PorTid:   ULONG ): APIRET;
  973.  
  974.       CONST DosSetPrty = DosSetPriority;
  975.  
  976.       (* Priority scopes *)
  977.  
  978.       CONST PRTYS_PROCESS     = 0;
  979.       CONST PRTYS_PROCESSTREE = 1;
  980.       CONST PRTYS_THREAD      = 2;
  981.  
  982.       (* Priority classes *)
  983.  
  984.       CONST PRTYC_NOCHANGE    = 0;
  985.       CONST PRTYC_IDLETIME    = 1;
  986.       CONST PRTYC_REGULAR     = 2;
  987.       CONST PRTYC_TIMECRITICAL= 3;
  988.       CONST PRTYC_FOREGROUNDSERVER =4;
  989.  
  990.       (* Priority deltas *)
  991.  
  992.       CONST PRTYD_MINIMUM    = -31;
  993.       CONST PRTYD_MAXIMUM    =  31;
  994.  
  995.       PROCEDURE [APIENTRY] DosKillProcess(action:  ULONG ;
  996.                                                                       pid:     PID ): APIRET;
  997.  
  998.       CONST DKP_PROCESSTREE  =  0;
  999.       CONST DKP_PROCESS      =  1;
  1000. <* END *>
  1001.  
  1002. <* IF NOT DEFINED(INCL_SAADEFS) THEN *>
  1003.       (*************************************************************************\
  1004.       * CCHMAXPATH is the maximum fully qualified path name length including  *
  1005.       * the drive letter, colon, backslashes and terminating NULL.            *
  1006.       \*************************************************************************)
  1007.       CONST CCHMAXPATH       =  260;
  1008.  
  1009.       (*************************************************************************\
  1010.       * CCHMAXPATHCOMP is the maximum individual path component name length   *
  1011.       * including a terminating NULL.                                         *
  1012.       \*************************************************************************)
  1013.       CONST CCHMAXPATHCOMP   =  256;
  1014. <* END *>
  1015.  
  1016. <* IF (DEFINED (INCL_DOSFILEMGR) OR NOT DEFINED (INCL_NOCOMMON) ) THEN *>
  1017.       (*** File manager *)
  1018.       (* DosSetFilePtr() file position codes *)
  1019.  
  1020.       CONST FILE_BEGIN     = 00000H;   (* Move relative to beginning of file *)
  1021.       CONST FILE_CURRENT   = 00001H;   (* Move relative to current fptr position *)
  1022.       CONST FILE_END       = 00002H;   (* Move relative to end of file *)
  1023.  
  1024.       (* DosFindFirst/Next Directory handle types *)
  1025.       CONST HDIR_SYSTEM     =   1 ;    (* Use system handle (1) *)
  1026.       CONST HDIR_CREATE     = (-1);    (* Allocate a new, unused handle *)
  1027.  
  1028.       (* DosCopy control bits; may be or'ed together *)
  1029.       CONST DCPY_EXISTING  = 00001H;   (* Copy even if target exists *)
  1030.       CONST DCPY_APPEND    = 00002H;   (* Append to existing file, do not replace *)
  1031.       CONST DCPY_FAILEAS   = 00004H;   (* Fail if EAs not supported on target*)
  1032.  
  1033.       (* DosOpen/DosQFHandState/DosQueryFileInfo et al file attributes; also *)
  1034.       (* known as Dos File Mode bits... *)
  1035.       CONST FILE_NORMAL    = 00000H;
  1036.       CONST FILE_READONLY  = 00001H;
  1037.       CONST FILE_HIDDEN    = 00002H;
  1038.       CONST FILE_SYSTEM    = 00004H;
  1039.       CONST FILE_DIRECTORY = 00010H;
  1040.       CONST FILE_ARCHIVED  = 00020H;
  1041.  
  1042.       CONST FILE_IGNORE    = 010000H;     (* ignore file attribute in *)
  1043.       (* DosSetPath/File Info if *)
  1044.       (* this bit is set*)
  1045.  
  1046.       CONST MUST_HAVE_READONLY     = ( (FILE_READONLY  * 256) + FILE_READONLY  );
  1047.       CONST MUST_HAVE_HIDDEN       = ( (FILE_HIDDEN    * 256) + FILE_HIDDEN    );
  1048.       CONST MUST_HAVE_SYSTEM       = ( (FILE_SYSTEM    * 256) + FILE_SYSTEM    );
  1049.       CONST MUST_HAVE_DIRECTORY    = ( (FILE_DIRECTORY * 256) + FILE_DIRECTORY );
  1050.       CONST MUST_HAVE_ARCHIVED     = ( (FILE_ARCHIVED  * 256) + FILE_ARCHIVED  );
  1051.  
  1052.       (* DosOpen() actions *)
  1053.       CONST FILE_EXISTED    =00001H;
  1054.       CONST FILE_CREATED    =00002H;
  1055.       CONST FILE_TRUNCATED  =00003H;
  1056.  
  1057.       (* DosOpen() open flags *)
  1058.       CONST FILE_OPEN      = 00001H;
  1059.       CONST FILE_TRUNCATE  = 00002H;
  1060.       CONST FILE_CREATE    = 00010H;
  1061.  
  1062.       (*     this nibble applies if file already exists                xxxx *)
  1063.       CONST OPEN_ACTION_FAIL_IF_EXISTS    = 00000H;  (* ---- ---- ---- 0000 *)
  1064.       CONST OPEN_ACTION_OPEN_IF_EXISTS    = 00001H;  (* ---- ---- ---- 0001 *)
  1065.       CONST OPEN_ACTION_REPLACE_IF_EXISTS = 00002H;  (* ---- ---- ---- 0010 *)
  1066.  
  1067.       (*     this nibble applies if file does not exist           xxxx      *)
  1068.       CONST OPEN_ACTION_FAIL_IF_NEW       = 00000H;  (* ---- ---- 0000 ---- *)
  1069.       CONST OPEN_ACTION_CREATE_IF_NEW     = 00010H;  (* ---- ---- 0001 ---- *)
  1070.  
  1071.       (* DosOpen/DosSetFHandState flags *)
  1072.       CONST OPEN_ACCESS_READONLY          = 00000H;  (* ---- ---- ---- -000 *)
  1073.       CONST OPEN_ACCESS_WRITEONLY         = 00001H;  (* ---- ---- ---- -001 *)
  1074.       CONST OPEN_ACCESS_READWRITE         = 00002H;  (* ---- ---- ---- -010 *)
  1075.       CONST OPEN_SHARE_DENYREADWRITE      = 00010H;  (* ---- ---- -001 ---- *)
  1076.       CONST OPEN_SHARE_DENYWRITE          = 00020H;  (* ---- ---- -010 ---- *)
  1077.       CONST OPEN_SHARE_DENYREAD           = 00030H;  (* ---- ---- -011 ---- *)
  1078.       CONST OPEN_SHARE_DENYNONE           = 00040H;  (* ---- ---- -100 ---- *)
  1079.       CONST OPEN_FLAGS_NOINHERIT          = 00080H;  (* ---- ---- 1--- ---- *)
  1080.       CONST OPEN_FLAGS_NO_LOCALITY        = 00000H;  (* ---- -000 ---- ---- *)
  1081.       CONST OPEN_FLAGS_SEQUENTIAL         = 00100H;  (* ---- -001 ---- ---- *)
  1082.       CONST OPEN_FLAGS_RANDOM             = 00200H;  (* ---- -010 ---- ---- *)
  1083.       CONST OPEN_FLAGS_RANDOMSEQUENTIAL   = 00300H;  (* ---- -011 ---- ---- *)
  1084.       CONST OPEN_FLAGS_NO_CACHE           = 01000H;  (* ---1 ---- ---- ---- *)
  1085.       CONST OPEN_FLAGS_FAIL_ON_ERROR      = 02000H;  (* --1- ---- ---- ---- *)
  1086.       CONST OPEN_FLAGS_WRITE_THROUGH      = 04000H;  (* -1-- ---- ---- ---- *)
  1087.       CONST OPEN_FLAGS_DASD               = 08000H;  (* 1--- ---- ---- ---- *)
  1088.       CONST OPEN_FLAGS_NONSPOOLED         = 000040000H;
  1089.       CONST OPEN_FLAGS_PROTECTED_HANDLE =040000000H;
  1090.  
  1091.  
  1092.       (* DosSearchPath() constants *)
  1093.       CONST SEARCH_PATH          = 00000H;
  1094.       CONST SEARCH_CUR_DIRECTORY = 00001H;
  1095.       CONST SEARCH_ENVIRONMENT   = 00002H;
  1096.       CONST SEARCH_IGNORENETERRS = 00004H;
  1097.  
  1098.  
  1099.       (************************************************************
  1100.       EA Info Levels & Find First/Next
  1101.       =========================================
  1102.       API's: DosFindFirst, DosQueryFileInfo, DosQueryPathInfo, DosSetFileInfo,
  1103.       DosSetPathInfo
  1104.       ************************************************************)
  1105.  
  1106.       (* File info levels&gml All listed API's *)
  1107.       CONST FIL_STANDARD         = 1;     (* Info level 1, standard file info *)
  1108.       CONST FIL_QUERYEASIZE      = 2;     (* Level 2, return Full EA size *)
  1109.       CONST FIL_QUERYEASFROMLIST = 3;     (* Level 3, return requested EA's *)
  1110.  
  1111.       (* File info levels: Dos...PathInfo only *)
  1112.       CONST FIL_QUERYFULLNAME    = 5;     (* Level 5, return fully qualified
  1113.       name of file *)
  1114.  
  1115.  
  1116.       (* DosFsAttach() *)
  1117.       (* Attact or detach *)
  1118.       CONST FS_ATTACH            = 0;     (* Attach file server *)
  1119.       CONST FS_DETACH            = 1;     (* Detach file server *)
  1120.       CONST FS_SPOOLATTACH       = 2;     (* Register a spooler device *)
  1121.       CONST FS_SPOOLDETACH       = 3;     (* De-register a spooler device *)
  1122.  
  1123.  
  1124.       (* DosFsCtl() *)
  1125.       (* Routing type *)
  1126.       CONST FSCTL_HANDLE         = 1;     (* File Handle directs req routing *)
  1127.       CONST FSCTL_PATHNAME       = 2;     (* Path Name directs req routing *)
  1128.       CONST FSCTL_FSDNAME        = 3;     (* FSD Name directs req routing *)
  1129.  
  1130.       (* defined FSCTL functions *)
  1131.       CONST FSCTL_ERROR_INFO     = 1;     (* return error info from FSD *)
  1132.       CONST FSCTL_MAX_EASIZE     = 2;     (* Max ea size for the FSD *)
  1133.  
  1134.       TYPE EASIZEBUF = RECORD      (* struct for FSCTL fn 2 - max ea size *)
  1135.             cbMaxEASize:      USHORT;        (* max. size of one EA *)
  1136.             cbMaxEAListSize:  ULONG;    (* max size of the full EA List *)
  1137.       END;
  1138.       TYPE PEASIZEBUF = POINTER TO EASIZEBUF;
  1139.  
  1140.  
  1141.  
  1142.       (* DosQueryFSAttach() *)
  1143.       (* Information level types (defines method of query) *)
  1144.       CONST FSAIL_QUERYNAME      = 1;     (* Return data for a Drive or Device *)
  1145.       CONST FSAIL_DEVNUMBER      = 2;     (* Return data for Ordinal Device # *)
  1146.       CONST FSAIL_DRVNUMBER      = 3;     (* Return data for Ordinal Drive # *)
  1147.  
  1148.       (* Item types (from data structure item "iType") *)
  1149.       CONST FSAT_CHARDEV         = 1;     (* Resident character device *)
  1150.       CONST FSAT_PSEUDODEV       = 2;     (* Pusedu-character device *)
  1151.       CONST FSAT_LOCALDRV        = 3;     (* Local drive *)
  1152.       CONST FSAT_REMOTEDRV       = 4;     (* Remote drive attached to FSD *)
  1153.  
  1154.       TYPE FSQBUFFER = RECORD      (* fsqbuf Data structure for QFSAttach*)
  1155.             iType:        USHORT;                 (* Item type *)
  1156.             cbName:       USHORT;                 (* Length of item name, sans NULL *)
  1157.             szName:       POINTER TO UCHAR;       (* ASCIIZ item name *)
  1158.             cbFSDName:    USHORT;                 (* Length of FSD name, sans NULL *)
  1159.             szFSDName:    POINTER TO UCHAR;       (* ASCIIZ FSD name *)
  1160.             cbFSAData:    USHORT;                 (* Length of FSD Attach data returned *)
  1161.             rgFSAData:    POINTER TO UCHAR;       (* FSD Attach data from FSD *)
  1162.       END;
  1163.       TYPE PFSQBUFFER = POINTER TO FSQBUFFER;
  1164.  
  1165.  
  1166.       TYPE FSQBUFFER2 = RECORD      (* fsqbuf Data structure for QFSAttach*)
  1167.             iType:            USHORT  ;
  1168.             cbName:           USHORT  ;
  1169.             cbFSDName:        USHORT  ;
  1170.             cbFSAData:        USHORT  ;
  1171.             szName:           ARRAY [0..0] OF UCHAR;
  1172.             szFSDName:        ARRAY [0..0] OF UCHAR;
  1173.             rgFSAData:        ARRAY [0..0] OF UCHAR;
  1174.       END;
  1175.       TYPE PFSQBUFFER2 = POINTER TO FSQBUFFER2;
  1176.  
  1177.       TYPE SPOOLATTACH = RECORD     (* Data structure for spooler operations *)
  1178.             hNmPipe:   USHORT;            (* Named pipe handle *)
  1179.             ulKey:     ULONG;             (* Attached key *)
  1180.       END;
  1181.       TYPE PSPOOLATTACH  = POINTER TO SPOOLATTACH;
  1182.  
  1183.  
  1184.       (*****************************************************************************
  1185.       * File System Drive Information&gml DosQueryFSInfo DosSetFSInfo              *
  1186.       *****************************************************************************)
  1187.  
  1188.       (* FS Drive Info Levels *)
  1189.       CONST FSIL_ALLOC            =1;     (* Drive allocation info (Query only) *)
  1190.       CONST FSIL_VOLSER           =2;     (* Drive Volum/Serial info *)
  1191.  
  1192.       (* DosQueryFHType() *)
  1193.       (* Handle classes (low 8 bits of Handle Type) *)
  1194.       CONST FHT_DISKFILE         = 00000H;   (* Disk file handle *)
  1195.       CONST FHT_CHRDEV           = 00001H;   (* Character device handle *)
  1196.       CONST FHT_PIPE             = 00002H;   (* Pipe handle *)
  1197.  
  1198.       (* Handle bits (high 8 bits of Handle Type) *)
  1199.       CONST FHB_DSKREMOTE        = 08000H;   (* Remote disk *)
  1200.       CONST FHB_CHRDEVREMOTE     = 08000H;   (* Remote character device *)
  1201.       CONST FHB_PIPEREMOTE       = 08000H;   (* Remote pipe *)
  1202.  
  1203.  
  1204.  
  1205.    <* IF NOT DEFINED(INCL_SAADEFS) THEN *>
  1206.             (* File time and date types *)
  1207.       <* IF DEFINED(__IBMC__) THEN *>
  1208.                   TYPE FTIME = RECORD          (* ftime *)
  1209.                       twosecs: [0..31];   --       UINT   twosecs : 5;
  1210.                       minutes: [0..63];   --       UINT   minutes : 6;
  1211.                       hours:   [0..31];   --       UINT   hours   : 5;
  1212.                   END;
  1213.                   TYPE PFTIME = POINTER TO FTIME;
  1214.       <* ELSE *>
  1215.                   TYPE FTIME = RECORD          (* ftime *)
  1216.                       twosecs: [0..31];   --       USHORT   twosecs : 5;
  1217.                       minutes: [0..63];   --       USHORT   minutes : 6;
  1218.                       hours:   [0..31];   --       USHORT   hours   : 5;
  1219.                   END;
  1220.                   TYPE PFTIME = POINTER TO FTIME;
  1221.       <* END *>
  1222.  
  1223.       <* IF DEFINED(__IBMC__) THEN *>
  1224.                   TYPE FDATE = RECORD          (* fdate *)
  1225.                       day:   [0..31];     --       UINT   day     : 5;
  1226.                       month: [0..15];     --       UINT   month   : 4;
  1227.                       year:  [0..127];    --       UINT   year    : 7;
  1228.                   END;
  1229.                   TYPE PFDATE = POINTER TO FDATE;
  1230.       <* ELSE *>
  1231.                   TYPE FDATE = RECORD          (* fdate *)
  1232.                       day:   [0..31];     --       USHORT   day     : 5;
  1233.                       month: [0..15];     --       USHORT   month   : 4;
  1234.                       year:  [0..127];    --       USHORT   year    : 7;
  1235.                   END;
  1236.                   TYPE PFDATE = POINTER TO FDATE;
  1237.       <* END *>
  1238.    <* END *>
  1239.  
  1240.  
  1241.       TYPE VOLUMELABEL = RECORD     (* vol *)
  1242.             cch:         BYTE ;
  1243.             szVolLabel:  ARRAY [0..11] OF CHAR;
  1244.       END;
  1245.       TYPE PVOLUMELABEL = POINTER TO VOLUMELABEL;
  1246.  
  1247.       TYPE FSINFO = RECORD     (* fsinf *)
  1248.             fdateCreation:  FDATE ;
  1249.             ftimeCreation:  FTIME ;
  1250.             vol:            VOLUMELABEL ;
  1251.       END;
  1252.       TYPE PFSINFO = POINTER TO FSINFO;
  1253.  
  1254.       (* HANDTYPE values *)
  1255.       CONST HANDTYPE_FILE        = 00000H;
  1256.       CONST HANDTYPE_DEVICE      = 00001H;
  1257.       CONST HANDTYPE_PIPE        = 00002H;
  1258.       CONST HANDTYPE_PROTECTED   = 04000H;
  1259.       CONST HANDTYPE_NETWORK     = 08000H;
  1260.  
  1261.       TYPE FILELOCK = RECORD     (* flock *)
  1262.             lOffset:      LONG ;
  1263.             lRange:       LONG ;
  1264.       END;
  1265.       TYPE PFILELOCK = POINTER TO FILELOCK;
  1266.  
  1267.       TYPE HFILE  = LHANDLE;     (* hf *)
  1268.       TYPE PHFILE = POINTER TO HFILE;
  1269.  
  1270.    <* IF NOT DEFINED(__HEV__) THEN *>
  1271.       <* NEW __HEV__ + *>
  1272.             TYPE  HEV  = ULONG;             (* hev *)
  1273.             TYPE  PHEV = POINTER TO HEV;
  1274.    <* END *>
  1275.  
  1276.       TYPE  FHLOCK   = ULONG;
  1277.       TYPE  PFHLOCK = PULONG;
  1278.  
  1279.       PROCEDURE [APIENTRY] DosSetFileLocks(hFile:    HFILE ;
  1280.                                                                       pflUnlock: PFILELOCK ;
  1281.                                                                       pflLock:   PFILELOCK ;
  1282.                                                                       timeout:   ULONG ;
  1283.                                                                       flags:     ULONG ): APIRET;
  1284.       PROCEDURE [APIENTRY] DosProtectSetFileLocks(hFile:              HFILE ;
  1285.                                                                                     pflUnlock:           PFILELOCK ;
  1286.                                                                                     pflLock:             PFILELOCK ;
  1287.                                                                                     timeout:             ULONG;
  1288.                                                                                     flags:               ULONG ;
  1289.                                                                                     fhFileHandleLockID:  FHLOCK ): APIRET;
  1290.  
  1291.       PROCEDURE [APIENTRY] DosCancelLockRequest(hFile:   HFILE ;
  1292.                                                                                 pflLock:  PFILELOCK ): APIRET;
  1293.  
  1294.  
  1295.    <* IF NOT DEFINED(INCL_SAADEFS) THEN *>
  1296.  
  1297.             TYPE FILEFINDBUF = RECORD    (* findbuf *)
  1298.                   fdateCreation:     FDATE  ;
  1299.                   ftimeCreation:     FTIME  ;
  1300.                   fdateLastAccess:   FDATE  ;
  1301.                   ftimeLastAccess:   FTIME  ;
  1302.                   fdateLastWrite:    FDATE  ;
  1303.                   ftimeLastWrite:    FTIME  ;
  1304.                   cbFile:            ULONG  ;
  1305.                   cbFileAlloc:       ULONG  ;
  1306.                   attrFile:          USHORT ;
  1307.                   cchName:           UCHAR  ;
  1308.                   achName:           ARRAY [0..CCHMAXPATHCOMP-1] OF CHAR;
  1309.             END;
  1310.  
  1311.             TYPE PFILEFINDBUF = POINTER TO FILEFINDBUF;
  1312.  
  1313.             (*NOINC *)
  1314.             --#pragma pack(2)
  1315.             (*INC  *)
  1316.             TYPE FILEFINDBUF2 = RECORD   (* findbuf2 *)
  1317.                   fdateCreation:     FDATE  ;
  1318.                   ftimeCreation:     FTIME  ;
  1319.                   fdateLastAccess:   FDATE  ;
  1320.                   ftimeLastAccess:   FTIME  ;
  1321.                   fdateLastWrite:    FDATE  ;
  1322.                   ftimeLastWrite:    FTIME  ;
  1323.                   cbFile:            ULONG  ;
  1324.                   cbFileAlloc:       ULONG  ;
  1325.                   attrFile:          USHORT ;
  1326.                   cbList:            ULONG  ;
  1327.                   cchName:           UCHAR  ;
  1328.                   achName:           ARRAY [0..CCHMAXPATHCOMP-1] OF CHAR;
  1329.             END;
  1330.             TYPE PFILEFINDBUF2 = POINTER TO FILEFINDBUF2;
  1331.  
  1332.             TYPE FILEFINDBUF3 = RECORD                (* findbuf3 *)
  1333.                   oNextEntryOffset:      ULONG   ;       (* new field *)
  1334.                   fdateCreation:         FDATE   ;
  1335.                   ftimeCreation:         FTIME   ;
  1336.                   fdateLastAccess:       FDATE   ;
  1337.                   ftimeLastAccess:       FTIME   ;
  1338.                   fdateLastWrite:        FDATE   ;
  1339.                   ftimeLastWrite:        FTIME   ;
  1340.                   cbFile:                ULONG   ;
  1341.                   cbFileAlloc:           ULONG   ;
  1342.                   attrFile:              ULONG   ;        (* widened field *)
  1343.                   cchName:               UCHAR   ;
  1344.                   achName:               ARRAY [0..CCHMAXPATHCOMP-1] OF CHAR;
  1345.             END;
  1346.             TYPE PFILEFINDBUF3 = POINTER TO FILEFINDBUF3;
  1347.  
  1348.             TYPE FILEFINDBUF4 = RECORD                (* findbuf4 *)
  1349.                   oNextEntryOffset:    ULONG   ; (* new field *)
  1350.                   fdateCreation:       FDATE   ;
  1351.                   ftimeCreation:       FTIME   ;
  1352.                   fdateLastAccess:     FDATE   ;
  1353.                   ftimeLastAccess:     FTIME   ;
  1354.                   fdateLastWrite:      FDATE   ;
  1355.                   ftimeLastWrite:      FTIME   ;
  1356.                   cbFile:              ULONG   ;
  1357.                   cbFileAlloc:         ULONG   ;
  1358.                   attrFile:            ULONG   ; (* widened field *)
  1359.                   cbList:              ULONG   ;
  1360.                   cchName:             UCHAR   ;
  1361.                   achName:             ARRAY [0..CCHMAXPATHCOMP-1] OF CHAR;
  1362.             END;
  1363.             TYPE PFILEFINDBUF4 = POINTER TO FILEFINDBUF4;
  1364.  
  1365.             (* extended attribute structures *)
  1366.  
  1367.             TYPE GEA = RECORD        (* gea *)
  1368.                   cbName:    BYTE;                  (* name length not including NULL *)
  1369.                   szName:    ARRAY [0..0] OF CHAR;  (* attribute name *)
  1370.             END;
  1371.             TYPE PGEA = POINTER TO GEA;
  1372.  
  1373.             TYPE GEALIST = RECORD    (* geal *)
  1374.                   cbList:   ULONG;       (* total bytes of structure including full list *)
  1375.                   list:     ARRAY [0..0] OF GEA;        (* variable length GEA structures *)
  1376.             END;
  1377.             TYPE PGEALIST = POINTER TO GEALIST;
  1378.  
  1379.             TYPE FEA = RECORD        (* fea *)
  1380.                   fEA:        BYTE;       (* flags                              *)
  1381.                   cbName:     BYTE;       (* name length not including NULL *)
  1382.                   cbValue:    USHORT;     (* value length *)
  1383.             END;
  1384.             TYPE PFEA = POINTER TO FEA;
  1385.  
  1386.             (* flags for _FEA.fEA *)
  1387.             CONST FEA_NEEDEA        = 080H;     (* need EA bit *)
  1388.  
  1389.             TYPE FEALIST = RECORD    (* feal *)
  1390.                   cbList: ULONG;       (* total bytes of structure including full list *)
  1391.                   list:   ARRAY [0..0] OF FEA;        (* variable length FEA structures *)
  1392.             END;
  1393.             TYPE PFEALIST = POINTER TO FEALIST;
  1394.  
  1395.             TYPE EAOP = RECORD       (* eaop *)
  1396.                   fpGEAList:  PGEALIST; (* general EA list *)
  1397.                   fpFEAList:  PFEALIST; (* full EA list *)
  1398.                   oError:     ULONG;
  1399.             END;
  1400.             TYPE PEAOP = POINTER TO EAOP;
  1401.  
  1402.             (*NOINC*)
  1403.             --#pragma pack(1)
  1404.             (*INC*)
  1405.  
  1406.             TYPE FEA2 = RECORD        (* fea2 *)
  1407.                   oNextEntryOffset:  ULONG; (* new field *)
  1408.                   fEA:               BYTE    ;
  1409.                   cbName:            BYTE    ;
  1410.                   cbValue:           USHORT  ;
  1411.                   szName:            ARRAY [0..0] OF CHAR;   (* new field *)
  1412.             END;
  1413.             TYPE PFEA2 = POINTER TO FEA2;
  1414.  
  1415.  
  1416.             TYPE FEA2LIST = RECORD    (* fea2l *)
  1417.                   cbList:        ULONG   ;
  1418.                   list:          ARRAY [0..0] OF FEA2;
  1419.             END;
  1420.             TYPE PFEA2LIST = POINTER TO FEA2LIST;
  1421.  
  1422.             TYPE GEA2 = RECORD         (* gea2 *)
  1423.                   oNextEntryOffset:      ULONG   ;  (*  new field *)
  1424.                   cbName:                BYTE    ;
  1425.                   szName:                ARRAY [0..0] OF CHAR; (* new field *)
  1426.             END;
  1427.             TYPE PGEA2 = POINTER TO GEA2;
  1428.  
  1429.             TYPE GEA2LIST = RECORD      (* gea2l *)
  1430.                   cbList:          ULONG   ;
  1431.                   list:            ARRAY [0..0] OF GEA2;
  1432.             END;
  1433.             TYPE PGEA2LIST = POINTER TO GEA2LIST;
  1434.  
  1435.             TYPE EAOP2 = RECORD        (* eaop2 *)
  1436.                   fpGEA2List:  PGEA2LIST; (* GEA set *)
  1437.                   fpFEA2List:  PFEA2LIST; (* FEA set *)
  1438.                   oError:      ULONG;     (* offset of FEA error *)
  1439.             END;
  1440.             TYPE PEAOP2 = POINTER TO EAOP2;
  1441.  
  1442.  
  1443.             (*
  1444.             * Equates for the types of EAs that follow the convention that we have
  1445.             * established.
  1446.             *
  1447.             * Values 0xFFFE thru 0x8000 are reserved.
  1448.             * Values 0x0000 thru 0x7fff are user definable.
  1449.             * Value  0xFFFC is not used
  1450.             *)
  1451.  
  1452.             CONST EAT_BINARY      =0FFFEH;      (* length preceeded binary *)
  1453.             CONST EAT_ASCII       =0FFFDH;      (* length preceeded ASCII *)
  1454.             CONST EAT_BITMAP      =0FFFBH;      (* length preceeded bitmap *)
  1455.             CONST EAT_METAFILE    =0FFFAH;      (* length preceeded metafile *)
  1456.             CONST EAT_ICON        =0FFF9H;      (* length preceeded icon *)
  1457.             CONST EAT_EA          =0FFEEH;      (* length preceeded ASCII *)
  1458.                                                                                     (* name of associated data (#include) *)
  1459.             CONST EAT_MVMT        =0FFDFH;      (* multi-valued, multi-typed field *)
  1460.             CONST EAT_MVST        =0FFDEH;      (* multi-valued, single-typed field *)
  1461.             CONST EAT_ASN1        =0FFDDH;      (* ASN.1 field *)
  1462.  
  1463.    <* END *>
  1464.       (*NOINC*)
  1465.       --#pragma pack()
  1466.       (*INC*)
  1467.  
  1468.  
  1469.  
  1470.       PROCEDURE [APIENTRY]  DosOpen(pszFileName:       PCSZ    ;
  1471.                                                         pHf:         PHFILE ;
  1472.                                                         pulAction:   PULONG ;
  1473.                                                         cbFile:      ULONG  ;
  1474.                                                         ulAttribute: ULONG  ;
  1475.                                                         fsOpenFlags: ULONG  ;
  1476.                                                         fsOpenMode:  ULONG  ;
  1477.                                                         peaop2:      PEAOP2 ): APIRET;
  1478.  
  1479.       PROCEDURE [APIENTRY]  DosProtectOpen(pszFileName:  PCSZ ;
  1480.                                                                       phf:           PHFILE ;
  1481.                                                                       pulAction:     PULONG ;
  1482.                                                                       cbFile:        ULONG ;
  1483.                                                                       ulAttribute:   ULONG ;
  1484.                                                                       fsOpenFlags:   ULONG ;
  1485.                                                                       fsOpenMode:    ULONG ;
  1486.                                                                       peaop2:        PEAOP2 ;
  1487.                                                                       pfhFileHandleLockID:  PFHLOCK ): APIRET;
  1488.  
  1489.       PROCEDURE [APIENTRY]  DosClose(hFile:  HFILE ): APIRET;
  1490.  
  1491.       PROCEDURE [APIENTRY]  DosProtectClose(hFile:       HFILE ;
  1492.                                                                         fhFileHandleLockID:  FHLOCK ): APIRET;
  1493.  
  1494.       PROCEDURE [APIENTRY]  DosRead(hFile:       HFILE ;
  1495.                                                         pBuffer:      PVOID ;
  1496.                                                         cbRead:       ULONG ;
  1497.                                                         pcbActual:    PULONG ): APIRET;
  1498.  
  1499.       PROCEDURE [APIENTRY]  DosProtectRead(hFile:    HFILE ;
  1500.                                                                       pBuffer:   PVOID ;
  1501.                                                                       cbRead:    ULONG ;
  1502.                                                                       pcbActual: PULONG ;
  1503.                                                                       fhFileHandleLockID:  FHLOCK ): APIRET;
  1504.  
  1505.       PROCEDURE [APIENTRY]  DosWrite(hFile:      HFILE ;
  1506.                                                           pBuffer:     PVOID ;
  1507.                                                           cbWrite:     ULONG ;
  1508.                                                           pcbActual:   PULONG ): APIRET;
  1509.  
  1510.       PROCEDURE [APIENTRY]  DosProtectWrite(hFile:       HFILE ;
  1511.                                                                         pBuffer:      PVOID ;
  1512.                                                                         cbWrite:      ULONG ;
  1513.                                                                         pcbActual:    PULONG ;
  1514.                                                                         fhFileHandleLockID:  FHLOCK ): APIRET;
  1515.  
  1516.       (* File time and date types *)
  1517.  
  1518.       TYPE FILESTATUS = RECORD     (* fsts *)
  1519.             fdateCreation:     FDATE  ;
  1520.             ftimeCreation:     FTIME  ;
  1521.             fdateLastAccess:   FDATE  ;
  1522.             ftimeLastAccess:   FTIME  ;
  1523.             fdateLastWrite:    FDATE  ;
  1524.             ftimeLastWrite:    FTIME  ;
  1525.             cbFile:            ULONG  ;
  1526.             cbFileAlloc:       ULONG  ;
  1527.             attrFile:          USHORT ;
  1528.       END;
  1529.       TYPE PFILESTATUS = POINTER TO FILESTATUS;
  1530.  
  1531.       TYPE FILESTATUS2 = RECORD    (* fsts2 *)
  1532.             fdateCreation:      FDATE  ;
  1533.             ftimeCreation:      FTIME  ;
  1534.             fdateLastAccess:    FDATE  ;
  1535.             ftimeLastAccess:    FTIME  ;
  1536.             fdateLastWrite:     FDATE  ;
  1537.             ftimeLastWrite:     FTIME  ;
  1538.             cbFile:             ULONG  ;
  1539.             cbFileAlloc:        ULONG  ;
  1540.             attrFile:           USHORT ;
  1541.             cbList:             ULONG  ;
  1542.       END;
  1543.       TYPE PFILESTATUS2 = POINTER TO FILESTATUS2;
  1544.  
  1545.       TYPE FILESTATUS3 = RECORD    (* fsts3 *)
  1546.             fdateCreation:      FDATE  ;
  1547.             ftimeCreation:      FTIME  ;
  1548.             fdateLastAccess:    FDATE  ;
  1549.             ftimeLastAccess:    FTIME  ;
  1550.             fdateLastWrite:     FDATE  ;
  1551.             ftimeLastWrite:     FTIME  ;
  1552.             cbFile:             ULONG  ;
  1553.             cbFileAlloc:        ULONG  ;
  1554.             attrFile:           ULONG  ;
  1555.       END;
  1556.       TYPE PFILESTATUS3 = POINTER TO FILESTATUS3;
  1557.  
  1558.       TYPE FILESTATUS4 = RECORD     (* fsts4 *)
  1559.             fdateCreation:      FDATE  ;
  1560.             ftimeCreation:      FTIME  ;
  1561.             fdateLastAccess:    FDATE  ;
  1562.             ftimeLastAccess:    FTIME  ;
  1563.             fdateLastWrite:     FDATE  ;
  1564.             ftimeLastWrite:     FTIME  ;
  1565.             cbFile:             ULONG  ;
  1566.             cbFileAlloc:        ULONG  ;
  1567.             attrFile:           ULONG  ;
  1568.             cbList:             ULONG  ;
  1569.       END;
  1570.       TYPE PFILESTATUS4 = POINTER TO FILESTATUS4;
  1571.  
  1572.  
  1573.       TYPE FSALLOCATE = RECORD     (* fsalloc *)
  1574.             idFileSystem:      ULONG  ;
  1575.             cSectorUnit:       ULONG  ;
  1576.             cUnit:             ULONG  ;
  1577.             cUnitAvail:        ULONG  ;
  1578.             cbSector:          USHORT ;
  1579.       END;
  1580.       TYPE PFSALLOCATE = POINTER TO FSALLOCATE;
  1581.  
  1582.       TYPE HDIR  = LHANDLE;        (* hdir *)
  1583.       TYPE PHDIR = POINTER TO HDIR;
  1584.  
  1585.  
  1586.       PROCEDURE [APIENTRY]  DosDelete(pszFile:  PCSZ ): APIRET;
  1587.  
  1588.       PROCEDURE [APIENTRY]  DosForceDelete(pszFile:  PCSZ ): APIRET;
  1589.  
  1590.       PROCEDURE [APIENTRY]  DosDupHandle(hFile:  HFILE ;
  1591.                                                                   pHfile:  PHFILE ): APIRET;
  1592.  
  1593.       PROCEDURE [APIENTRY]  DosQueryFHState(hFile:       HFILE ;
  1594.                                                                         pMode:        PULONG ): APIRET;
  1595.       PROCEDURE [APIENTRY]  DosProtectQueryFHState(hFile: HFILE ;
  1596.                                                                                       pMode: PULONG ;
  1597.                                                                                       fhFileHandleLockID:  FHLOCK ): APIRET;
  1598.  
  1599.       PROCEDURE [APIENTRY]  DosSetFHState(hFile: HFILE ;
  1600.                                                                     mode:  ULONG ): APIRET;
  1601.  
  1602.       PROCEDURE [APIENTRY]  DosProtectSetFHState(hFile:  HFILE ;
  1603.                                                                                   mode:    ULONG ;
  1604.                                                                                   fhFileHandleLockID:  FHLOCK ): APIRET;
  1605.  
  1606.       PROCEDURE [APIENTRY]  DosQueryHType(hFile: HFILE ;
  1607.                                                                     pType: PULONG ;
  1608.                                                                     pAttr:  PULONG ): APIRET;
  1609.  
  1610.       PROCEDURE [APIENTRY]  DosFindFirst(pszFileSpec:  PCSZ    ;
  1611.                                                                   phdir:         PHDIR  ;
  1612.                                                                   flAttribute:   ULONG  ;
  1613.                                                                   pfindbuf:      PVOID  ;
  1614.                                                                   cbBuf:         ULONG  ;
  1615.                                                                   pcFileNames:   PULONG ;
  1616.                                                                   ulInfoLevel:   ULONG  ): APIRET;
  1617.  
  1618.       PROCEDURE [APIENTRY]  DosFindNext(hDir:   HDIR   ;
  1619.                                                                 pfindbuf:        PVOID  ;
  1620.                                                                 cbfindbuf:       ULONG  ;
  1621.                                                                 pcFilenames:     PULONG ): APIRET;
  1622.  
  1623.       PROCEDURE [APIENTRY]  DosFindClose(hDir:  HDIR ): APIRET;
  1624.  
  1625.       PROCEDURE [APIENTRY]  DosFSAttach(pszDevice:        PCSZ ;
  1626.                                                                 pszFilesystem:     PCSZ ;
  1627.                                                                 pData:             PVOID ;
  1628.                                                                 cbData:            ULONG ;
  1629.                                                                 flag:              ULONG ): APIRET;
  1630.  
  1631.       PROCEDURE [APIENTRY]  DosQueryFSAttach(pszDeviceName:    PCSZ    ;
  1632.                                                                           ulOrdinal:         ULONG  ;
  1633.                                                                           ulFSAInfoLevel:    ULONG  ;
  1634.                                                                           pfsqb:             PFSQBUFFER2 ;
  1635.                                                                           pcbBuffLength:     PULONG ): APIRET;
  1636.  
  1637.       PROCEDURE [APIENTRY]  DosFSCtl(pData:      PVOID ;
  1638.                                                           cbData:      ULONG ;
  1639.                                                           pcbData:     PULONG ;
  1640.                                                           pParms:      PVOID ;
  1641.                                                           cbParms:     ULONG ;
  1642.                                                           pcbParms:    PULONG ;
  1643.                                                           function:    ULONG ;
  1644.                                                           pszRoute:    PCSZ ;
  1645.                                                           hFile:       HFILE ;
  1646.                                                           method:      ULONG ): APIRET;
  1647.  
  1648.       PROCEDURE [APIENTRY]  DosSetFileSize(hFile:        HFILE ;
  1649.                                                                       cbSize:        ULONG ): APIRET;
  1650.  
  1651.       PROCEDURE [APIENTRY]  DosProtectSetFileSize(hFile: HFILE ;
  1652.                                                                                     cbSize: ULONG ;
  1653.                                                                                     fhFileHandleLockID:  FHLOCK ): APIRET;
  1654.  
  1655.       PROCEDURE [APIENTRY]  DosResetBuffer(hFile:  HFILE ): APIRET;
  1656.  
  1657.       PROCEDURE [APIENTRY]  DosSetFilePtr(hFile:   HFILE ;
  1658.                                                                     ib:       LONG ;
  1659.                                                                     method:   ULONG ;
  1660.                                                                     ibActual: PULONG ): APIRET;
  1661.  
  1662.       PROCEDURE [APIENTRY]  DosProtectSetFilePtr(hFile:   HFILE ;
  1663.                                                                                   ib:       LONG;
  1664.                                                                                   method:   ULONG ;
  1665.                                                                                   ibActual: PULONG ;
  1666.                                                                                   fhFileHandleLockID:  FHLOCK ): APIRET;
  1667.  
  1668.       PROCEDURE [APIENTRY]  DosMove(pszOld:       PCSZ ;
  1669.                                                         pszNew:        PCSZ ): APIRET;
  1670.  
  1671.       PROCEDURE [APIENTRY]  DosCopy(pszOld:  PCSZ ;
  1672.                                                         pszNew:   PCSZ ;
  1673.                                                         option:   ULONG ): APIRET;
  1674.  
  1675.       PROCEDURE [APIENTRY]  DosEditName(metalevel:  ULONG ;
  1676.                                                                 pszSource:   PCSZ;
  1677.                                                                 pszEdit:     PCSZ ;
  1678.                                                                 pszTarget:   PBYTE ;
  1679.                                                                 cbTarget:    ULONG ): APIRET;
  1680.  
  1681.       PROCEDURE [APIENTRY]  DosCreateDir(pszDirName:      PCSZ ;
  1682.                                                                   peaop2:           PEAOP2 ): APIRET;
  1683.  
  1684.       PROCEDURE [APIENTRY]  DosDeleteDir(pszDir:  PCSZ ): APIRET;
  1685.  
  1686.       PROCEDURE [APIENTRY]  DosSetDefaultDisk(disknum:  ULONG ): APIRET;
  1687.  
  1688.       PROCEDURE [APIENTRY]  DosQueryCurrentDisk(pdisknum: PULONG ;
  1689.                                                                                 plogical:  PULONG ): APIRET;
  1690.  
  1691.       PROCEDURE [APIENTRY]  DosSetCurrentDir(pszDir: PCSZ): APIRET;
  1692.  
  1693.       PROCEDURE [APIENTRY]  DosQueryCurrentDir(disknum:  ULONG ;
  1694.                                                                               pBuf:      PBYTE ;
  1695.                                                                               pcbBuf:    PULONG ): APIRET;
  1696.  
  1697.       PROCEDURE [APIENTRY]  DosQueryFSInfo(disknum:      ULONG ;
  1698.                                                                       infolevel:     ULONG ;
  1699.                                                                       pBuf:          PVOID ;
  1700.                                                                       cbBuf:         ULONG ): APIRET;
  1701.  
  1702.       PROCEDURE [APIENTRY]  DosSetFSInfo(disknum:  ULONG ;
  1703.                                                                   infolevel: ULONG ;
  1704.                                                                   pBuf:      PVOID ;
  1705.                                                                   cbBuf:     ULONG ): APIRET;
  1706.  
  1707.       PROCEDURE [APIENTRY]  DosQueryVerify(pBool:  PBOOL32 ): APIRET;
  1708.  
  1709.       PROCEDURE [APIENTRY]  DosSetVerify(bool: BOOL32): APIRET;
  1710.  
  1711.       PROCEDURE [APIENTRY]  DosSetMaxFH(cFH:  ULONG ): APIRET;
  1712.  
  1713.       PROCEDURE [APIENTRY]  DosSetRelMaxFH(pcbReqCount:  PLONG ;
  1714.                                                                       pcbCurMaxFH:   PULONG ): APIRET;
  1715.  
  1716.       PROCEDURE [APIENTRY]  DosQueryFileInfo(hf:         HFILE ;
  1717.                                                                           ulInfoLevel: ULONG ;
  1718.                                                                           pInfo:       PVOID ;
  1719.                                                                           cbInfoBuf:   ULONG ): APIRET;
  1720.  
  1721.       PROCEDURE [APIENTRY]  DosProtectQueryFileInfo(hf:         HFILE ;
  1722.                                                                                         ulInfoLevel: ULONG ;
  1723.                                                                                         pInfo:       PVOID ;
  1724.                                                                                         cbInfoBuf:   ULONG ;
  1725.                                                                                         fhFileHandleLockID:  FHLOCK ): APIRET;
  1726.  
  1727.       PROCEDURE [APIENTRY]  DosSetFileInfo(hf:          HFILE ;
  1728.                                                                       ulInfoLevel:  ULONG ;
  1729.                                                                       pInfoBuf:     PVOID ;
  1730.                                                                       cbInfoBuf:    ULONG ): APIRET;
  1731.  
  1732.       PROCEDURE [APIENTRY]  DosProtectSetFileInfo(hf:    HFILE ;
  1733.                                                                                     ulInfoLevel:    ULONG ;
  1734.                                                                                     pInfoBuf:       PVOID ;
  1735.                                                                                     cbInfoBuf:      ULONG ;
  1736.                                                                                     fhFileHandleLockID:  FHLOCK ): APIRET;
  1737.  
  1738.       PROCEDURE [APIENTRY]  DosQueryPathInfo(pszPathName: PCSZ   ;
  1739.                                                                           ulInfoLevel:  ULONG ;
  1740.                                                                           pInfoBuf:     PVOID ;
  1741.                                                                           cbInfoBuf:    ULONG ): APIRET;
  1742.  
  1743.       PROCEDURE [APIENTRY]  DosSetPathInfo(pszPathName:  PCSZ   ;
  1744.                                                                       ulInfoLevel:   ULONG ;
  1745.                                                                       pInfoBuf:      PVOID ;
  1746.                                                                       cbInfoBuf:     ULONG ;
  1747.                                                                       flOptions:     ULONG ): APIRET;
  1748.  
  1749.       (* defines for DosSetPathInfo -pathinfo flag *)
  1750.       CONST DSPI_WRTTHRU    = 010H;    (* write through *)
  1751.  
  1752.       PROCEDURE [APIENTRY]  DosShutdown(ulReserved:  ULONG ): APIRET;
  1753.  
  1754.       PROCEDURE [APIENTRY]  DosEnumAttribute(ulRefType:  ULONG  ;
  1755.                                                                           pvFile:      PVOID  ;
  1756.                                                                           ulEntry:     ULONG  ;
  1757.                                                                           pvBuf:       PVOID  ;
  1758.                                                                           cbBuf:       ULONG  ;
  1759.                                                                           pulCount:    PULONG ;
  1760.                                                                           ulInfoLevel: ULONG  ): APIRET;
  1761.  
  1762.       PROCEDURE [APIENTRY]  DosProtectEnumAttribute(ulRefType:   ULONG ;
  1763.                                                                                         pvFile:       PVOID ;
  1764.                                                                                         ulEntry:      ULONG ;
  1765.                                                                                         pvBuf:        PVOID ;
  1766.                                                                                         cbBuf:        ULONG ;
  1767.                                                                                         pulCount:     PULONG ;
  1768.                                                                                         ulInfoLevel:  ULONG ;
  1769.                                                                                         fhFileHandleLockID :  FHLOCK ): APIRET;
  1770.  
  1771.       (*NOINC*)
  1772.       --#pragma pack(1)
  1773.       (*INC *)
  1774.  
  1775.       TYPE DENA1 = RECORD(* _dena1 level 1 info returned from DosEnumAttribute *)
  1776.             reserved: UCHAR;       (* 0 *)
  1777.             cbName:   UCHAR;         (* length of name exculding NULL *)
  1778.             cbValue:  USHORT;        (* length of value *)
  1779.             szName:   ARRAY [0..0] OF UCHAR;      (* variable length asciiz name *)
  1780.       END;
  1781.       TYPE PDENA1 = POINTER TO DENA1;
  1782.  
  1783.       TYPE DENA2  = FEA2;
  1784.       TYPE PDENA2 = PFEA2;
  1785.  
  1786.       (*NOINC*)
  1787.       --#pragma pack()
  1788.       (*INC *)
  1789.       (* Infolevels for DosEnumAttribute  *)
  1790.       CONST ENUMEA_LEVEL_NO_VALUE  = 1;      (* FEA without value *)
  1791.       (* Reference types for DosEnumAttribute *)
  1792.       CONST ENUMEA_REFTYPE_FHANDLE = 0;       (* file handle *)
  1793.       CONST ENUMEA_REFTYPE_PATH    = 1;       (* path name *)
  1794.       CONST ENUMEA_REFTYPE_MAX     = ENUMEA_REFTYPE_PATH;
  1795.  
  1796.  
  1797.       CONST DosOpen2       = DosOpen;
  1798.       CONST DosFindFirst2  = DosFindFirst;
  1799.       CONST DosQFHandState = DosQueryFHState;
  1800.       CONST DosProtectQFHandState = DosProtectQueryFHState;
  1801.       CONST DosSetFHandState = DosSetFHState;
  1802.       CONST DosProtectSetFHandState = DosProtectSetFHState;
  1803.       CONST DosQHandType   = DosQueryHType;
  1804.       CONST DosQFSAttach   = DosQueryFSAttach;
  1805.       CONST DosNewSize     = DosSetFileSize;
  1806.       CONST DosProtectNewSize = DosProtectSetFileSize;
  1807.       CONST DosBufReset    = DosResetBuffer;
  1808.       CONST DosChgFilePtr  = DosSetFilePtr;
  1809.       CONST DosProtectChgFilePtr  = DosProtectSetFilePtr;
  1810.       CONST DosMkDir       = DosCreateDir;
  1811.       CONST DosMkDir2      = DosCreateDir;
  1812.       CONST DosRmDir       = DosDeleteDir;
  1813.       CONST DosSelectDisk  = DosSetDefaultDisk;
  1814.       CONST DosQCurDisk    = DosQueryCurrentDisk;
  1815.       CONST DosChDir       = DosSetCurrentDir;
  1816.       CONST DosQCurDir     = DosQueryCurrentDir;
  1817.       CONST DosQFSInfo     = DosQueryFSInfo;
  1818.       CONST DosQVerify     = DosQueryVerify;
  1819.       CONST DosQFileInfo   = DosQueryFileInfo;
  1820.       CONST DosProtectQFileInfo   = DosProtectQueryFileInfo;
  1821.       CONST DosQPathInfo   = DosQueryPathInfo;
  1822.  
  1823. <* END *>
  1824.  
  1825. <* IF (DEFINED (INCL_DOSMEMMGR) OR NOT DEFINED (INCL_NOCOMMON) ) THEN *>
  1826.       (*** Memory management *)
  1827.  
  1828.       PROCEDURE [APIENTRY]  DosAllocMem(ppb:    PPVOID ;
  1829.                                                                 cb:      ULONG ;
  1830.                                                                 flag:    ULONG ): APIRET;
  1831.  
  1832.       PROCEDURE [APIENTRY]  DosFreeMem(pb:  PVOID ): APIRET;
  1833.  
  1834.       PROCEDURE [APIENTRY]  DosSetMem(pb:  PVOID ;
  1835.                                                             cb:   ULONG ;
  1836.                                                             flag: ULONG ): APIRET;
  1837.  
  1838.       PROCEDURE [APIENTRY]  DosGiveSharedMem(pb:   PVOID ;
  1839.                                                                           pid:   PID ;
  1840.                                                                           flag:  ULONG ): APIRET;
  1841.  
  1842.       PROCEDURE [APIENTRY]  DosGetSharedMem(pb:   PVOID ;
  1843.                                                                         flag:  ULONG ): APIRET;
  1844.  
  1845.       PROCEDURE [APIENTRY]  DosGetNamedSharedMem(ppb:     PPVOID ;
  1846.                                                                                   pszName:  PCSZ ;
  1847.                                                                                   flag:     ULONG ): APIRET;
  1848.  
  1849.       PROCEDURE [APIENTRY]  DosAllocSharedMem(ppb:    PPVOID ;
  1850.                                                                             pszName: PCSZ ;
  1851.                                                                             cb:      ULONG ;
  1852.                                                                             flag:    ULONG ): APIRET;
  1853.  
  1854.       PROCEDURE [APIENTRY]  DosQueryMem(pb:    PVOID ;
  1855.                                                                 pcb:    PULONG ;
  1856.                                                                 pFlag:  PULONG ): APIRET;
  1857.  
  1858.       PROCEDURE [APIENTRY]  DosSubAllocMem(pbBase: PVOID ;
  1859.                                                                       ppb:     PPVOID ;
  1860.                                                                       cb:      ULONG ): APIRET;
  1861.       CONST DosSubAlloc   =  DosSubAllocMem;
  1862.       CONST DOSSUBALLOC   =  DosSubAllocMem;
  1863.  
  1864.       PROCEDURE [APIENTRY]  DosSubFreeMem(pbBase: PVOID ;
  1865.                                                                     pb:      PVOID ;
  1866.                                                                     cb:      ULONG): APIRET;
  1867.       CONST DosSubFree    =  DosSubFreeMem;
  1868.       CONST DOSSUBFREE    =  DosSubFreeMem;
  1869.  
  1870.       PROCEDURE [APIENTRY]  DosSubSetMem(pbBase: PVOID ;
  1871.                                                                   flag:    ULONG ;
  1872.                                                                   cb:      ULONG ): APIRET;
  1873.       CONST DosSubSet     =  DosSubSetMem;
  1874.       CONST DOSSUBSET     =  DosSubSetMem;
  1875.  
  1876.       PROCEDURE [APIENTRY]  DosSubUnsetMem(pbBase:  PVOID ): APIRET;
  1877.       CONST DosSubUnset   =  DosSubUnsetMem;
  1878.       CONST DOSSUBUNSET   =  DosSubUnsetMem;
  1879.  
  1880.    
  1881. (* ------------- Include file: .\hm\bsememf.hm ------------- *)
  1882. (*static char *SCCSID = "@(#)bsememf.h  6.8 92/03/15";*)
  1883.   (******************************************************************************\
  1884.   *                                                                             *
  1885.   * Module Name: BSEMEMF.H                                                      *
  1886.   *                                                                             *
  1887.   * OS/2 Base MEMory Flags include file                                         *
  1888.   *                                                                             *
  1889.   * Copyright (c) 1989  - 1992 IBM Corporation                                  *
  1890.   *                                                                             *
  1891.   *******************************************************************************)
  1892.  
  1893.  
  1894.   (* Access protection *)
  1895.  
  1896.   CONST PAG_READ       =   (00000001H);      (* read access                      *)
  1897.   CONST PAG_WRITE      =   (00000002H);      (* write access                     *)
  1898.   CONST PAG_EXECUTE    =   (00000004H);      (* execute access                   *)
  1899.   CONST PAG_GUARD      =   (00000008H);      (* guard protection                 *)
  1900.   CONST PAG_DEFAULT    =   (00000400H);      (* default (initial) access         *)
  1901.  
  1902.   (* Commit *)
  1903.   CONST PAG_COMMIT      =  (00000010H);      (* commit storage                   *)
  1904.   CONST PAG_DECOMMIT    =  (00000020H);      (* decommit storage                 *)
  1905.  
  1906.   (* Allocation attributes *)
  1907.   CONST OBJ_TILE        =  (00000040H);      (* tile object             *)
  1908.   CONST OBJ_PROTECTED   =  (00000080H);      (* protect object          *)
  1909.                                                   (* NOTE: This flag is NOT available at the api level *)
  1910.  
  1911.   CONST OBJ_GETTABLE    =  (00000100H);     (* gettable by other processes      *)
  1912.   CONST OBJ_GIVEABLE    =  (00000200H);     (* giveable to other processes      *)
  1913.  
  1914.   CONST fPERM  = PAG_EXECUTE + PAG_READ + PAG_WRITE;
  1915.   CONST fSHARE = OBJ_GETTABLE + OBJ_GIVEABLE;
  1916.  
  1917.   (* DosAllocMem flags *)
  1918.   CONST fALLOC = OBJ_TILE + PAG_COMMIT + fPERM;
  1919.  
  1920.   (* DosAllocSharedMem flags *)
  1921.   CONST fALLOCSHR = OBJ_TILE + PAG_COMMIT + fSHARE + fPERM;
  1922.  
  1923.   (* DosGetNamedSharedMem flags *)
  1924.   CONST  fGETNMSHR = fPERM;
  1925.  
  1926.   (* DosGetSharedMem flags *)
  1927.   CONST fGETSHR = fPERM;
  1928.  
  1929.   (* DosGiveSharedMem flags *)
  1930.   CONST fGIVESHR = fPERM;
  1931.  
  1932.   (* DosSetMem flags *)
  1933.   CONST fSET = PAG_COMMIT + PAG_DECOMMIT + PAG_DEFAULT + fPERM;
  1934.  
  1935.   (* Dos32SubSet flags *)
  1936.   CONST DOSSUB_INIT =       01H;          (* initialize memory object for     *)
  1937.                                                                                   (* suballocation                    *)
  1938.  
  1939.   CONST DOSSUB_GROW      =   02H;          (* increase size of memory pool     *)
  1940.                                                                                   (* for suballocation                *)
  1941.  
  1942.   CONST DOSSUB_SPARSE_OBJ=   04H;          (* indicator for DosSub to          *)
  1943.                                                                                   (* manage the commitment of         *)
  1944.                                                                                   (* pages spanned by the memory      *)
  1945.                                                                                   (* pool                             *)
  1946.  
  1947.   CONST DOSSUB_SERIALIZE =   08H;          (* indicates that access to the     *)
  1948.                                                                                   (* memory pool is to be             *)
  1949.                                                                                   (* serialized by DosSub             *)
  1950.  
  1951.   (* Allocation type (returned from DosQueryMem) *)
  1952.   CONST PAG_SHARED      =  (00002000H);    (* shared object                    *)
  1953.   CONST PAG_FREE        =  (00004000H);    (* pages are free                   *)
  1954.   CONST PAG_BASE        =  (00010000H);    (* first page in object             *)
  1955.  
  1956. (************************** End of file ***************************************)
  1957.  
  1958. (* ------------- End of file:  .\hm\bsememf.hm ------------- *)
  1959.  
  1960. <* END *>
  1961.  
  1962.  
  1963.  
  1964. <* IF (DEFINED (INCL_DOSSEMAPHORES) OR NOT DEFINED (INCL_NOCOMMON) ) THEN *>
  1965.  
  1966.       (*
  1967.       *     32-bit Semaphore Support
  1968.       *)
  1969.  
  1970.       (* Semaphore Attributes *)
  1971.  
  1972.       CONST DC_SEM_SHARED  = 001H;   (* DosCreateMutex; DosCreateEvent; and     *)
  1973.                                                                     (*   DosCreateMuxWait use it to indicate   *)
  1974.                                                                     (*   whether the semaphore is shared or    *)
  1975.                                                                     (*   private when the PSZ is null          *)
  1976.       CONST DCMW_WAIT_ANY  = 002H;   (* DosCreateMuxWait option for wait on any *)
  1977.                                                                     (*   event/mutex to occur                  *)
  1978.       CONST DCMW_WAIT_ALL  = 004H;   (* DosCreateMuxWait option for wait on all *)
  1979.                                                                     (*   events/mutexs to occur                *)
  1980.  
  1981.       CONST SEM_INDEFINITE_WAIT   =  -1;
  1982.       CONST SEM_IMMEDIATE_RETURN  =   0;
  1983.  
  1984.    <* IF NOT DEFINED(__HSEM__) THEN *>
  1985.       <* NEW __HSEM__ + *>
  1986.             TYPE HSEM  = POINTER TO SYSTEM.void;
  1987.             TYPE PHSEM = POINTER TO HSEM;
  1988.    <* END *>
  1989.  
  1990.       TYPE SEMRECORD = RECORD     (* psr *)
  1991.             hsemCur:     HSEM        ;
  1992.             ulUser:      ULONG       ;
  1993.       END;
  1994.       TYPE PSEMRECORD = POINTER TO SEMRECORD;
  1995.  
  1996. <* END *>
  1997.  
  1998.  
  1999.  
  2000. <* IF DEFINED(INCL_DOSSEMAPHORES) THEN *>
  2001.  
  2002.    <* IF NOT DEFINED(__HEV__) THEN *>
  2003.       <* NEW __HEV__ + *>
  2004.             TYPE  HEV  = ULONG;             (* hev *)
  2005.             TYPE  PHEV = POINTER TO HEV;
  2006.    <* END *>
  2007.  
  2008.       TYPE  HMTX  = ULONG;            (* hmtx *)
  2009.       TYPE  PHMTX = POINTER TO HMTX;
  2010.       TYPE  HMUX  = ULONG;            (* hmux *)
  2011.       TYPE  PHMUX = POINTER TO HMUX;
  2012.  
  2013.       PROCEDURE [APIENTRY]  DosCreateEventSem (pszName:  PCSZ ;
  2014.                                                                               phev:      PHEV ;
  2015.                                                                               flAttr:    ULONG ;
  2016.                                                                               fState:    BOOL32 ): APIRET;
  2017.  
  2018.       PROCEDURE [APIENTRY]  DosOpenEventSem (pszName: PCSZ ;
  2019.                                                                           phev:     PHEV ): APIRET;
  2020.  
  2021.       PROCEDURE [APIENTRY]  DosCloseEventSem (hev:  HEV ): APIRET;
  2022.  
  2023.       PROCEDURE [APIENTRY]  DosResetEventSem (hev: HEV ;
  2024.                                                                             pulPostCt:  PULONG ): APIRET;
  2025.  
  2026.       PROCEDURE [APIENTRY]  DosPostEventSem (hev:  HEV ): APIRET;
  2027.  
  2028.       PROCEDURE [APIENTRY]  DosWaitEventSem (hev:  HEV ;
  2029.                                                                           ulTimeout:  ULONG ): APIRET;
  2030.  
  2031.       PROCEDURE [APIENTRY]  DosQueryEventSem (hev: HEV ;
  2032.                                                                             pulPostCt:  PULONG ): APIRET;
  2033.  
  2034.       PROCEDURE [APIENTRY]  DosCreateMutexSem (pszName:  PCSZ ;
  2035.                                                                               phmtx:     PHMTX ;
  2036.                                                                               flAttr:    ULONG ;
  2037.                                                                               fState:    BOOL32 ): APIRET;
  2038.  
  2039.       PROCEDURE [APIENTRY]  DosOpenMutexSem (pszName:     PCSZ ;
  2040.                                                                           phmtx:        PHMTX ): APIRET;
  2041.  
  2042.       PROCEDURE [APIENTRY]  DosCloseMutexSem (hmtx:  HMTX): APIRET;
  2043.  
  2044.       PROCEDURE [APIENTRY]  DosRequestMutexSem (hmtx:     HMTX ;
  2045.                                                                                 ulTimeout: ULONG ): APIRET;
  2046.  
  2047.       PROCEDURE [APIENTRY]  DosReleaseMutexSem (hmtx:  HMTX ): APIRET;
  2048.  
  2049.       PROCEDURE [APIENTRY]  DosQueryMutexSem (hmtx:  HMTX ;
  2050.                                                                             ppid:   PPID;
  2051.                                                                             ptid:   PTID;
  2052.                                                                             pulCount:  PULONG ): APIRET;
  2053.  
  2054.       PROCEDURE [APIENTRY]  DosCreateMuxWaitSem (pszName: PCSZ ;
  2055.                                                                                   phmux:   PHMUX ;
  2056.                                                                                   cSemRec: ULONG ;
  2057.                                                                                   pSemRec: PSEMRECORD ;
  2058.                                                                                   flAttr:  ULONG ): APIRET;
  2059.  
  2060.       PROCEDURE [APIENTRY]  DosOpenMuxWaitSem (pszName:   PCSZ ;
  2061.                                                                               phmux:      PHMUX ): APIRET;
  2062.  
  2063.       PROCEDURE [APIENTRY]  DosCloseMuxWaitSem (hmux:  HMUX ): APIRET;
  2064.  
  2065.       PROCEDURE [APIENTRY]  DosWaitMuxWaitSem (hmux:     HMUX ;
  2066.                                                                               ulTimeout: ULONG ;
  2067.                                                                               pulUser:   PULONG ): APIRET;
  2068.  
  2069.       PROCEDURE [APIENTRY]  DosAddMuxWaitSem (hmux:       HMUX ;
  2070.                                                                             pSemRec:     PSEMRECORD ): APIRET;
  2071.  
  2072.       PROCEDURE [APIENTRY]  DosDeleteMuxWaitSem (hmux:    HMUX ;
  2073.                                                                                   hSem:     HSEM ): APIRET;
  2074.  
  2075.       PROCEDURE [APIENTRY]  DosQueryMuxWaitSem (hmux:     HMUX ;
  2076.                                                                                 pcSemRec:  PULONG ;
  2077.                                                                                 pSemRec:   PSEMRECORD ;
  2078.                                                                                 pflAttr:   PULONG ): APIRET;
  2079.  
  2080. <* END *>
  2081.  
  2082.  
  2083.  
  2084. <* IF (DEFINED (INCL_DOSDATETIME) OR NOT DEFINED (INCL_NOCOMMON) ) THEN *>
  2085.  
  2086.       (*** Time support *)
  2087.  
  2088.       TYPE DATETIME = RECORD     (* date *)
  2089.             hours:          UCHAR   ;
  2090.             minutes:        UCHAR   ;
  2091.             seconds:        UCHAR   ;
  2092.             hundredths:     UCHAR   ;
  2093.             day:            UCHAR   ;
  2094.             month:          UCHAR   ;
  2095.             year:           USHORT  ;
  2096.             timezone:       SHORT   ;
  2097.             weekday:        UCHAR   ;
  2098.       END;
  2099.       TYPE PDATETIME = POINTER TO DATETIME;
  2100.  
  2101.       PROCEDURE [APIENTRY]   DosGetDateTime(pdt:  PDATETIME ): APIRET;
  2102.  
  2103.       PROCEDURE [APIENTRY]   DosSetDateTime(pdt:  PDATETIME ): APIRET;
  2104.  
  2105. <* END *>
  2106.  
  2107.  
  2108.  
  2109. <* IF DEFINED(INCL_DOSDATETIME) THEN *>
  2110.  
  2111.  
  2112.       TYPE HTIMER  = LHANDLE;
  2113.       TYPE PHTIMER = POINTER TO HTIMER;
  2114.  
  2115.       PROCEDURE [APIENTRY]   DosAsyncTimer(msec:   ULONG ;
  2116.                                                                       hsem:    HSEM ;
  2117.                                                                       phtimer: PHTIMER ): APIRET;
  2118.  
  2119.       PROCEDURE [APIENTRY]   DosStartTimer(msec:   ULONG ;
  2120.                                                                       hsem:    HSEM ;
  2121.                                                                       phtimer: PHTIMER ): APIRET;
  2122.  
  2123.       PROCEDURE [APIENTRY]   DosStopTimer(htimer:  HTIMER ): APIRET;
  2124.  
  2125.       CONST DosTimerAsync  = DosAsyncTimer;
  2126.       CONST DosTimerStart  = DosStartTimer;
  2127.       CONST DosTimerStop   = DosStopTimer;
  2128.  
  2129. <* END *>
  2130.  
  2131.  
  2132.  
  2133.  
  2134. (*** Module manager *)
  2135.  
  2136. <* IF DEFINED(INCL_DOSMODULEMGR) THEN *>
  2137.  
  2138.  
  2139.       PROCEDURE [APIENTRY]  DosLoadModule(pszName:   PCSZ ;
  2140.                                                                     cbName:     ULONG ;
  2141.                                                                     pszModname: PCSZ ;
  2142.                                                                     phmod:      PHMODULE ): APIRET;
  2143.  
  2144.       PROCEDURE [APIENTRY]  DosFreeModule(hmod: HMODULE): APIRET;
  2145.  
  2146.       TYPE PPFN = POINTER TO SYSTEM.ADDRESS;
  2147.       PROCEDURE [APIENTRY]  DosQueryProcAddr(hmod:   HMODULE ;
  2148.                                                                           ordinal: ULONG ;
  2149.                                                                           pszName: PCSZ ;
  2150.                                                                           ppfn:    PPFN): APIRET;
  2151.  
  2152.       PROCEDURE [APIENTRY]  DosQueryModuleHandle(pszModname: PCSZ ;
  2153.                                                                                   phmod:       PHMODULE ): APIRET;
  2154.  
  2155.       PROCEDURE [APIENTRY]  DosQueryModuleName(hmod:   HMODULE ;
  2156.                                                                               cbName:  ULONG;
  2157.                                                                               pch:     PCHAR): APIRET ;
  2158.  
  2159.       CONST PT_16BIT    =    0;
  2160.       CONST PT_32BIT    =    1;
  2161.  
  2162.       PROCEDURE [APIENTRY]  DosQueryProcType(hmod:       HMODULE ;
  2163.                                                                           ordinal:     ULONG ;
  2164.                                                                           pszName:     PCSZ ;
  2165.                                                                           pulproctype: PULONG ): APIRET;
  2166.  
  2167. <* END *>
  2168.  
  2169.  
  2170.  
  2171. <* IF (DEFINED (INCL_DOSRESOURCES) OR NOT DEFINED (INCL_NOCOMMON) ) THEN *>
  2172.       (*** Resource support *)
  2173.  
  2174.       (* Predefined resource types *)
  2175.  
  2176.       CONST RT_POINTER     = 1;   (* mouse pointer shape *)
  2177.       CONST RT_BITMAP      = 2;   (* bitmap *)
  2178.       CONST RT_MENU        = 3;   (* menu template *)
  2179.       CONST RT_DIALOG      = 4;   (* dialog template *)
  2180.       CONST RT_STRING      = 5;   (* string tables *)
  2181.       CONST RT_FONTDIR     = 6;   (* font directory *)
  2182.       CONST RT_FONT        = 7;   (* font *)
  2183.       CONST RT_ACCELTABLE  = 8;   (* accelerator tables *)
  2184.       CONST RT_RCDATA      = 9;   (* binary data *)
  2185.       CONST RT_MESSAGE     = 10;  (* error msg     tables *)
  2186.       CONST RT_DLGINCLUDE  = 11;  (* dialog include file name *)
  2187.       CONST RT_VKEYTBL     = 12;  (* key to vkey tables *)
  2188.       CONST RT_KEYTBL      = 13;  (* key to UGL tables *)
  2189.       CONST RT_CHARTBL     = 14;  (* glyph to character tables *)
  2190.       CONST RT_DISPLAYINFO = 15;  (* screen display information *)
  2191.  
  2192.       CONST RT_FKASHORT    = 16;  (* function key area short form *)
  2193.       CONST RT_FKALONG     = 17;  (* function key area long form *)
  2194.  
  2195.       CONST RT_HELPTABLE   = 18;  (* Help table for Cary Help manager *)
  2196.       CONST RT_HELPSUBTABLE= 19;  (* Help subtable for Cary Help manager *)
  2197.  
  2198.       CONST RT_FDDIR       = 20;  (* DBCS uniq/font driver directory *)
  2199.       CONST RT_FD          = 21;  (* DBCS uniq/font driver *)
  2200.  
  2201.       CONST RT_MAX         = 22;  (* 1st unused Resource Type *)
  2202.  
  2203.  
  2204.       CONST RF_ORDINALID   = 080000000H;     (* ordinal id flag in resource table *)
  2205.  
  2206. <* END *>
  2207.  
  2208.  
  2209.  
  2210.  
  2211. <* IF DEFINED(INCL_DOSRESOURCES) THEN *>
  2212.  
  2213.  
  2214.       PROCEDURE [APIENTRY]  DosGetResource(hmod:   HMODULE ;
  2215.                                                                       idType:  ULONG ;
  2216.                                                                       idName:  ULONG ;
  2217.                                                                       ppb:     PPVOID ): APIRET;
  2218.       CONST DosGetResource2 = DosGetResource;
  2219.  
  2220.       PROCEDURE [APIENTRY]  DosFreeResource(pb:  PVOID ): APIRET;
  2221.  
  2222.       PROCEDURE [APIENTRY]  DosQueryResourceSize(hmod:   HMODULE ;
  2223.                                                                                   idt:     ULONG ;
  2224.                                                                                   idn:     ULONG ;
  2225.                                                                                   pulsize: PULONG ): APIRET;
  2226.  
  2227. <* END *>
  2228.  
  2229.  
  2230.  
  2231.  
  2232. (*** NLS Support *)
  2233.  
  2234. <* IF DEFINED(INCL_DOSNLS) THEN *>
  2235.  
  2236.       TYPE COUNTRYCODE = RECORD  (* ctryc *)
  2237.             country:    ULONG       ;
  2238.             codepage:   ULONG       ;
  2239.       END;
  2240.       TYPE PCOUNTRYCODE = POINTER TO COUNTRYCODE;
  2241.  
  2242.       TYPE COUNTRYINFO = RECORD  (* ctryi *)
  2243.             country:              ULONG       ;
  2244.             codepage:             ULONG       ;
  2245.             fsDateFmt:            ULONG       ;
  2246.             szCurrency:           ARRAY [0..4] OF CHAR;
  2247.             szThousandsSeparator: ARRAY [0..1] OF CHAR;
  2248.             szDecimal:            ARRAY [0..1] OF CHAR;
  2249.             szDateSeparator:      ARRAY [0..1] OF CHAR;
  2250.             szTimeSeparator:      ARRAY [0..1] OF CHAR;
  2251.             fsCurrencyFmt:        UCHAR       ;
  2252.             cDecimalPlace:        UCHAR       ;
  2253.             fsTimeFmt:            UCHAR       ;
  2254.             abReserved1:          ARRAY [0..1] OF USHORT;
  2255.             szDataSeparator:      ARRAY [0..1] OF CHAR;
  2256.             abReserved2:          ARRAY [0..4] OF USHORT;
  2257.       END;
  2258.       TYPE PCOUNTRYINFO = POINTER TO COUNTRYINFO;
  2259.  
  2260.  
  2261.       PROCEDURE [APIENTRY]  DosQueryCtryInfo(cb:  ULONG ;
  2262.                                                                           pcc:  PCOUNTRYCODE ;
  2263.                                                                           pci:  PCOUNTRYINFO ;
  2264.                                                                           pcbActual:  PULONG ): APIRET;
  2265.  
  2266.       PROCEDURE [APIENTRY]  DosQueryDBCSEnv(cb:   ULONG ;
  2267.                                                                         pcc:   PCOUNTRYCODE ;
  2268.                                                                         pBuf:  PCHAR ): APIRET;
  2269.  
  2270.       PROCEDURE [APIENTRY]  DosMapCase(cb:       ULONG ;
  2271.                                                               pcc:       PCOUNTRYCODE ;
  2272.                                                               pch:       PCHAR ): APIRET;
  2273.  
  2274.       PROCEDURE [APIENTRY]  DosQueryCollate(cb:   ULONG ;
  2275.                                                                         pcc:   PCOUNTRYCODE;
  2276.                                                                         pch:   PCHAR;
  2277.                                                                         pcch:  PULONG ): APIRET;
  2278.  
  2279.       PROCEDURE [APIENTRY]  DosQueryCp(cb:    ULONG ;
  2280.                                                               arCP:   PULONG ;
  2281.                                                               pcCP:   PULONG ): APIRET;
  2282.  
  2283.       PROCEDURE [APIENTRY]  DosSetProcessCp(cp: ULONG): APIRET;
  2284.  
  2285.       CONST DosGetCtryInfo = DosQueryCtryInfo;
  2286.       CONST DosGetDBCSEv   = DosQueryDBCSEnv;
  2287.       CONST DosCaseMap     = DosMapCase;
  2288.       CONST DosGetCollate  = DosQueryCollate;
  2289.       CONST DosGetCp       = DosQueryCp;
  2290.       CONST DosSetProcCp   = DosSetProcessCp;
  2291.  
  2292. <* END *>
  2293.  
  2294.  
  2295.  
  2296.  
  2297. (*** Signal support *)
  2298.  
  2299. <* IF DEFINED(INCL_DOSEXCEPTIONS) THEN *>
  2300.  
  2301.       (* DosSetSigExceptionFocus codes *)
  2302.  
  2303.       CONST SIG_UNSETFOCUS = 0;
  2304.       CONST SIG_SETFOCUS   = 1;
  2305.  
  2306.    
  2307. (* ------------- Include file: .\hm\bsexcpt.hm ------------- *)
  2308. (*      SCCSID = @(#)bsexcpt.h  6.9 92/03/15 *)
  2309.  
  2310. (*************************** START OF SPECIFICATION *****************
  2311.   *
  2312.   * Source File Name: bsexcpt.h
  2313.   *
  2314.   * Descriptive Name: Thread Exception Constants and Structure Definitions.
  2315.   *
  2316.   * Copyright: IBM Corp. 1989  - 1992
  2317.   *
  2318.   * Function: This file provides constants and data structure
  2319.   *      definitions required by application programs to use 32 bit
  2320.   *      thread exceptions management facility.
  2321.   *
  2322.   * Notes: None.
  2323.   *
  2324.   *************************** END OF SPECIFICATION *******************)
  2325.  
  2326. (*
  2327.   * User Exception Handler Return Codes:
  2328.   *)
  2329.  
  2330. CONST XCPT_CONTINUE_SEARCH    = 000000000H;      (* exception not handled   *)
  2331. CONST XCPT_CONTINUE_EXECUTION = 0FFFFFFFFH;      (* exception handled       *)
  2332. CONST XCPT_CONTINUE_STOP      = 000716668H;      (* exception handled by    *)
  2333.                                                                                                 (* debugger (VIA DosDebug) *)
  2334.  
  2335. (*
  2336.   * fHandlerFlags values (see ExceptionReportRecord):
  2337.   *
  2338.   * The user may only set (but not clear) the EH_NONCONTINUABLE flag.
  2339.   * All other flags are set by the system.
  2340.   *
  2341.   *)
  2342.  
  2343. CONST EH_NONCONTINUABLE   = 1H;          (* Noncontinuable exception *)
  2344. CONST EH_UNWINDING        = 2H;          (* Unwind is in progress *)
  2345. CONST EH_EXIT_UNWIND      = 4H;          (* Exit unwind is in progress *)
  2346. CONST EH_STACK_INVALID    = 8H;          (* Stack out of limits or unaligned *)
  2347. CONST EH_NESTED_CALL      = 10H;         (* Nested exception handler call *)
  2348.  
  2349.  
  2350. (*
  2351.   * Unwind all exception handlers (see DosUnwindException API)
  2352.   *)
  2353. CONST UNWIND_ALL          = 0H;
  2354.  
  2355.  
  2356. (*
  2357.   *   Exception values are 32 bit values layed out as follows:
  2358.   *
  2359.   *   3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
  2360.   *   1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
  2361.   *   +---+-+-------------------------+-------------------------------+
  2362.   *   |Sev|C|       Facility          |               Code            |
  2363.   *   +---+-+-------------------------+-------------------------------+
  2364.   *
  2365.   *   where
  2366.   *
  2367.   *       Sev - is the severity code
  2368.   *           00 - Success
  2369.   *           01 - Informational
  2370.   *           10 - Warning
  2371.   *           11 - Error
  2372.   *
  2373.   *       C - is the Customer code flag
  2374.   *
  2375.   *       Facility - is the facility code
  2376.   *
  2377.   *       Code - is the facility's status code
  2378.   *
  2379.   *   Exceptions specific to OS/2 2.0 (e.g. XCPT_SIGNAL) will be marked
  2380.   *   with a facility code of 1.
  2381.   *
  2382.   *   System defined exceptions have a facility code of zero.
  2383.   *
  2384.   *   Each exception may also have several pieces of additional information.
  2385.   *   These are stored in the ExceptionInfo fields of the
  2386.   *   ExceptionReportRecord. They are documented here with the exceptions
  2387.   *   only for ease of reference.
  2388.   *)
  2389.  
  2390. CONST XCPT_FATAL_EXCEPTION    = 0C0000000H;
  2391. CONST XCPT_SEVERITY_CODE      = 0C0000000H;
  2392. CONST XCPT_CUSTOMER_CODE      = 020000000H;
  2393. CONST XCPT_FACILITY_CODE      = 01FFF0000H;
  2394. CONST XCPT_EXCEPTION_CODE     = 00000FFFFH;
  2395.  
  2396. (*  Violation flags in ExceptionInfo *)
  2397.  
  2398. CONST XCPT_UNKNOWN_ACCESS     = 00000000H;      (* Unknown access *)
  2399. CONST XCPT_READ_ACCESS        = 00000001H;      (* Read access    *)
  2400. CONST XCPT_WRITE_ACCESS       = 00000002H;      (* Write access   *)
  2401. CONST XCPT_EXECUTE_ACCESS     = 00000004H;      (* Execute access *)
  2402. CONST XCPT_SPACE_ACCESS       = 00000008H;      (* Address space access *)
  2403. CONST XCPT_LIMIT_ACCESS       = 00000010H;      (* Address space limit violation *)
  2404. CONST XCPT_DATA_UNKNOWN       = 0FFFFFFFFH;
  2405.  
  2406. (*  Signal numbers for XCPT_SIGNAL *)
  2407.  
  2408. CONST XCPT_SIGNAL_INTR      =  1H;
  2409. CONST XCPT_SIGNAL_KILLPROC  =  3H;
  2410. CONST XCPT_SIGNAL_BREAK     =  4H;
  2411.  
  2412. (*  Portable non-fatal software generated exceptions *)
  2413.  
  2414. CONST XCPT_GUARD_PAGE_VIOLATION       = 80000001H;
  2415.             (* ExceptionInfo[ 0 ] - Access Code: XCPT_READ_ACCESS
  2416.                                                                                       XCPT_WRITE_ACCESS *)
  2417.             (* ExceptionInfo[ 1 ] - FaultAddr *)
  2418.  
  2419. CONST XCPT_UNABLE_TO_GROW_STACK       = 80010001H;
  2420.  
  2421. (*  Portable fatal hardware generated exceptions *)
  2422.  
  2423. CONST XCPT_DATATYPE_MISALIGNMENT      = 0C000009EH;
  2424.             (* ExceptionInfo[ 0 ] - Access Code: XCPT_READ_ACCESS
  2425.                                                                                       XCPT_WRITE_ACCESS *)
  2426.             (* ExceptionInfo[ 1 ] - Alignment *)
  2427.             (* ExceptionInfo[ 2 ] - FaultAddr *)
  2428.  
  2429. CONST XCPT_BREAKPOINT                 = 0C000009FH;
  2430. CONST XCPT_SINGLE_STEP                = 0C00000A0H;
  2431. CONST XCPT_ACCESS_VIOLATION           = 0C0000005H;
  2432.             (* ExceptionInfo[ 0 ] - Access Code: XCPT_READ_ACCESS
  2433.                                                                                       XCPT_WRITE_ACCESS
  2434.                                                                                       XCPT_SPACE_ACCESS
  2435.                                                                                       XCPT_LIMIT_ACCESS
  2436.                                                                                       XCPT_UNKNOWN_ACCESS *)
  2437.             (* ExceptionInfo[ 1 ] - FaultAddr (XCPT_READ_ACCESS/XCPT_WRITE_ACCESS)
  2438.                                                             Selector  (XCPT_SPACE_ACCESS)
  2439.                                                             -1        (XCPT_LIMIT_ACCESS) *)
  2440.  
  2441. CONST XCPT_ILLEGAL_INSTRUCTION        = 0C000001CH;
  2442. CONST XCPT_FLOAT_DENORMAL_OPERAND     = 0C0000094H;
  2443. CONST XCPT_FLOAT_DIVIDE_BY_ZERO       = 0C0000095H;
  2444. CONST XCPT_FLOAT_INEXACT_RESULT       = 0C0000096H;
  2445. CONST XCPT_FLOAT_INVALID_OPERATION    = 0C0000097H;
  2446. CONST XCPT_FLOAT_OVERFLOW             = 0C0000098H;
  2447. CONST XCPT_FLOAT_STACK_CHECK          = 0C0000099H;
  2448. CONST XCPT_FLOAT_UNDERFLOW            = 0C000009AH;
  2449. CONST XCPT_INTEGER_DIVIDE_BY_ZERO     = 0C000009BH;
  2450. CONST XCPT_INTEGER_OVERFLOW           = 0C000009CH;
  2451. CONST XCPT_PRIVILEGED_INSTRUCTION     = 0C000009DH;
  2452.  
  2453. (*  Portable fatal software generated exceptions *)
  2454.  
  2455. CONST XCPT_IN_PAGE_ERROR              = 0C0000006H;
  2456.             (* ExceptionInfo[ 0 ] - FaultAddr *)
  2457.  
  2458. CONST XCPT_PROCESS_TERMINATE          = 0C0010001H;
  2459. CONST XCPT_ASYNC_PROCESS_TERMINATE    = 0C0010002H;
  2460.             (* ExceptionInfo[ 0 ] - TID of 'terminator' thread *)
  2461.  
  2462. CONST XCPT_NONCONTINUABLE_EXCEPTION   = 0C0000024H;
  2463. CONST XCPT_INVALID_DISPOSITION        = 0C0000025H;
  2464.  
  2465. (*  Non-portable fatal exceptions *)
  2466.  
  2467. CONST XCPT_INVALID_LOCK_SEQUENCE      = 0C000001DH;
  2468. CONST XCPT_ARRAY_BOUNDS_EXCEEDED      = 0C0000093H;
  2469. CONST XCPT_B1NPX_ERRATA_02            = 0C0010004H;
  2470.  
  2471. (*  Misc exceptions *)
  2472.  
  2473. CONST XCPT_UNWIND                     = 0C0000026H;
  2474. CONST XCPT_BAD_STACK                  = 0C0000027H;
  2475. CONST XCPT_INVALID_UNWIND_TARGET      = 0C0000028H;
  2476.  
  2477. (*  Signal Exceptions *)
  2478.  
  2479. CONST XCPT_SIGNAL                     = 0C0010003H;
  2480.             (* ExceptionInfo[ 0 ] - Signal Number *)
  2481.  
  2482. (*
  2483.   * ContextRecord
  2484.   *
  2485.   * This is the machine specific register contents for the thread
  2486.   * at the time of the exception. Note that only the register sets
  2487.   * specified by ContextFlags contain valid data. Conversely, only
  2488.   * registers specified in ContextFlags will be restored if an exception
  2489.   * is handled.
  2490.   *)
  2491.  
  2492. (*  The following flags control the contents of the CONTEXT structure. *)
  2493.  
  2494. CONST CONTEXT_CONTROL        = (00000001H); (* SS:ESP, CS:EIP,    *)
  2495.                                                                                                         (* EFLAGS, EBP        *)
  2496. CONST CONTEXT_INTEGER        = (00000002H); (* EAX, EBX, ECX, EDX,*)
  2497.                                                                                                         (* ESI, EDI           *)
  2498. CONST CONTEXT_SEGMENTS       = (00000004H); (* DS, ES, FS, GS     *)
  2499. CONST CONTEXT_FLOATING_POINT = (00000008H); (* num. coprocessor state *)
  2500.  
  2501. CONST CONTEXT_FULL           = CONTEXT_CONTROL + CONTEXT_INTEGER +
  2502.                                                               CONTEXT_SEGMENTS + CONTEXT_FLOATING_POINT;
  2503.  
  2504. (*XLATOFF *)
  2505. --#pragma pack(1)
  2506. (*XLATON  *)
  2507. TYPE FPREG = RECORD (* coprocessor stack register element *)
  2508.       losig:     ULONG;
  2509.       hisig:     ULONG;
  2510.       signexp:   USHORT;
  2511. END;
  2512. TYPE PFPREG = POINTER TO FPREG;
  2513. --#pragma pack()
  2514.  
  2515. TYPE CONTEXTRECORD = RECORD
  2516.     (*
  2517.       * The flags values within this flag control the contents of
  2518.       * a ContextRecord.
  2519.       *
  2520.       * If the ContextRecord is used as an input parameter, then
  2521.       * for each portion of the ContextRecord controlled by a flag
  2522.       * whose value is set, it is assumed that that portion of the
  2523.       * ContextRecord contains valid context. If the ContextRecord
  2524.       * is being used to modify a thread's context, then only that
  2525.       * portion of the thread's context will be modified.
  2526.       *
  2527.       * If the ContextRecord is used as an Input/Output parameter to
  2528.       * capture the context of a thread, then only those portions of the
  2529.       * thread's context corresponding to set flags will be returned.
  2530.       *)
  2531.  
  2532.       ContextFlags:  ULONG;
  2533.  
  2534.     (*
  2535.       * This section is specified/returned if the ContextFlags
  2536.       * contains the flag CONTEXT_FLOATING_POINT.
  2537.       *)
  2538.  
  2539.       ctx_env:     ARRAY [0..6] OF ULONG;
  2540.       ctx_stack:   ARRAY [0..7] OF FPREG;
  2541.  
  2542.     (*
  2543.       * This section is specified/returned if the ContextFlags
  2544.       * contains the flag CONTEXT_SEGMENTS.
  2545.       *)
  2546.  
  2547.       ctx_SegGs:     ULONG;
  2548.       ctx_SegFs:     ULONG;
  2549.       ctx_SegEs:     ULONG;
  2550.       ctx_SegDs:     ULONG;
  2551.  
  2552.     (*
  2553.       * This section is specified/returned if the ContextFlags
  2554.       * contains the flag CONTEXT_INTEGER.
  2555.       *)
  2556.  
  2557.       ctx_RegEdi:    ULONG;
  2558.       ctx_RegEsi:    ULONG;
  2559.       ctx_RegEax:    ULONG;
  2560.       ctx_RegEbx:    ULONG;
  2561.       ctx_RegEcx:    ULONG;
  2562.       ctx_RegEdx:    ULONG;
  2563.  
  2564.     (*
  2565.       * This section is specified/returned if the ContextFlags
  2566.       * contains the flag CONTEXT_CONTROL.
  2567.       *)
  2568.  
  2569.       ctx_RegEbp:    ULONG;
  2570.       ctx_RegEip:    ULONG;
  2571.       ctx_SegCs:     ULONG;
  2572.       ctx_EFlags:    ULONG;
  2573.       ctx_RegEsp:    ULONG;
  2574.       ctx_SegSs:     ULONG;
  2575.  
  2576. END;
  2577.  
  2578. TYPE PCONTEXTRECORD = POINTER TO CONTEXTRECORD;
  2579.  
  2580.  
  2581. (*
  2582.   * ExceptionReportRecord
  2583.   *
  2584.   * This structure contains machine independant information about an
  2585.   * exception/unwind. No system exception will ever have more than
  2586.   * EXCEPTION_MAXIMUM_PARAMETERS parameters. User exceptions are not
  2587.   * bound to this limit.
  2588.   *)
  2589.  
  2590.  
  2591. CONST EXCEPTION_MAXIMUM_PARAMETERS = 4;  (* Enough for all system exceptions. *)
  2592.  
  2593. TYPE PEXCEPTIONREPORTRECORD = POINTER TO EXCEPTIONREPORTRECORD;
  2594. TYPE EXCEPTIONREPORTRECORD = RECORD
  2595.       ExceptionNum:           ULONG;        (* exception number *)
  2596.       fHandlerFlags:          ULONG;
  2597.       NestedExceptionReportRecord:    PEXCEPTIONREPORTRECORD;
  2598.       ExceptionAddress:       PVOID;
  2599.       cParameters:            ULONG;        (* Size of Exception Specific Info *)
  2600.       ExceptionInfo:          ARRAY [0..EXCEPTION_MAXIMUM_PARAMETERS-1] OF ULONG;
  2601.                                                                                   (* Exception Specfic Info *)
  2602. END;
  2603.  
  2604. (*
  2605.   * ExceptionRegistrationRecord
  2606.   *
  2607.   * These are linked together to form a chain of exception handlers that
  2608.   * will be dispatched to upon receipt of an exception.
  2609.   *)
  2610.  
  2611. (* ??? volatile spec. is there;  *)
  2612.  
  2613. TYPE PEXCEPTIONREGISTRATIONRECORD = POINTER TO EXCEPTIONREGISTRATIONRECORD;
  2614.  
  2615. TYPE _ERR = PROCEDURE [APIENTRY] (PEXCEPTIONREPORTRECORD,
  2616.                                               PEXCEPTIONREGISTRATIONRECORD,
  2617.                                               PCONTEXTRECORD,
  2618.                                               PVOID): ULONG;
  2619.  
  2620. TYPE ERR = POINTER TO _ERR;
  2621.  
  2622.  
  2623. TYPE EXCEPTIONREGISTRATIONRECORD = RECORD
  2624.       prev_structure:     PEXCEPTIONREGISTRATIONRECORD;
  2625.       ExceptionHandler:   POINTER TO _ERR;
  2626. END;
  2627.  
  2628. (* End of exception chain marker. *)
  2629.  
  2630. --CONST END_OF_CHAIN = PEXCEPTIONREGISTRATIONRECORD - 1;
  2631.  
  2632. (************************** End of file ***************************************)
  2633.  
  2634. (* ------------- End of file:  .\hm\bsexcpt.hm ------------- *)
  2635.  
  2636.       PROCEDURE [APIENTRY]  DosSetExceptionHandler(pERegRec:  PEXCEPTIONREGISTRATIONRECORD ): APIRET;
  2637.  
  2638.       PROCEDURE [APIENTRY]  DosUnsetExceptionHandler(pERegRec:  PEXCEPTIONREGISTRATIONRECORD ): APIRET;
  2639.  
  2640.       PROCEDURE [APIENTRY]  DosRaiseException(pexcept:  PEXCEPTIONREPORTRECORD ): APIRET;
  2641.  
  2642.       PROCEDURE [APIENTRY]  DosSendSignalException(pid:       PID ;
  2643.                                                                                       exception:  ULONG ): APIRET;
  2644.  
  2645.       PROCEDURE [APIENTRY]  DosUnwindException(phandler:  PEXCEPTIONREGISTRATIONRECORD ;
  2646.                                                                               pTargetIP:  PVOID ;
  2647.                                                                               pERepRec:   PEXCEPTIONREPORTRECORD ): APIRET;
  2648.  
  2649.       PROCEDURE [APIENTRY]  DosSetSignalExceptionFocus(flag:    BOOL32 ;
  2650.                                                                                               pulTimes: PULONG ): APIRET;
  2651.  
  2652.       PROCEDURE [APIENTRY]  DosEnterMustComplete(pulNesting:  PULONG ): APIRET;
  2653.  
  2654.       PROCEDURE [APIENTRY]  DosExitMustComplete(pulNesting:  PULONG ): APIRET;
  2655.  
  2656.       PROCEDURE [APIENTRY]  DosAcknowledgeSignalException(ulSignalNum:  ULONG ): APIRET;
  2657.  
  2658. <* END *>
  2659.  
  2660.  
  2661. (*** Pipe and queue support *)
  2662.  
  2663. <* IF DEFINED(INCL_DOSQUEUES) THEN *>
  2664.    <* IF (DEFINED (INCL_DOSFILEMGR) OR NOT DEFINED (INCL_NOCOMMON) ) THEN *>
  2665.  
  2666.             TYPE HQUEUE  = LHANDLE;  (* hq *)
  2667.             TYPE PHQUEUE = POINTER TO HQUEUE;
  2668.             TYPE REQUESTDATA = RECORD    (* reqqdata *)
  2669.                   pid:          PID         ;
  2670.                   ulData:       ULONG       ;
  2671.             END;
  2672.             TYPE PREQUESTDATA = POINTER TO REQUESTDATA;
  2673.  
  2674.             CONST QUE_FIFO             = 0H;
  2675.             CONST QUE_LIFO             = 1H;
  2676.             CONST QUE_PRIORITY         = 2H;
  2677.             CONST QUE_NOCONVERT_ADDRESS= 0H;
  2678.             CONST QUE_CONVERT_ADDRESS  = 4H;
  2679.  
  2680.  
  2681.             PROCEDURE [APIENTRY]  DosCreatePipe(phfRead:   PHFILE ;
  2682.                                                                           phfWrite:   PHFILE ;
  2683.                                                                           cb:         ULONG ): APIRET;
  2684.  
  2685.             PROCEDURE [APIENTRY]  DosCloseQueue(hq:  HQUEUE ): APIRET;
  2686.  
  2687.             PROCEDURE [APIENTRY]  DosCreateQueue(phq:     PHQUEUE ;
  2688.                                                                             priority: ULONG ;
  2689.                                                                             pszName:  PCSZ ): APIRET;
  2690.  
  2691.             PROCEDURE [APIENTRY]  DosOpenQueue(ppid:    PPID ;
  2692.                                                                         phq:      PHQUEUE ;
  2693.                                                                         pszName:  PCSZ ): APIRET;
  2694.  
  2695.             PROCEDURE [APIENTRY]  DosPeekQueue(hq:          HQUEUE ;
  2696.                                                                         pRequest:     PREQUESTDATA ;
  2697.                                                                         pcbData:      PULONG ;
  2698.                                                                         ppbuf:        PPVOID ;
  2699.                                                                         element:      PULONG ;
  2700.                                                                         nowait:       BOOL32 ;
  2701.                                                                         ppriority:    PBYTE ;
  2702.                                                                         hsem:         HEV ): APIRET;
  2703.  
  2704.             PROCEDURE [APIENTRY]  DosPurgeQueue(hq:  HQUEUE ): APIRET;
  2705.  
  2706.             PROCEDURE [APIENTRY]  DosQueryQueue(hq:        HQUEUE ;
  2707.                                                                           pcbEntries: PULONG ): APIRET;
  2708.  
  2709.             PROCEDURE [APIENTRY]  DosReadQueue(hq:          HQUEUE ;
  2710.                                                                         pRequest:     PREQUESTDATA ;
  2711.                                                                         pcbData:      PULONG ;
  2712.                                                                         ppbuf:        PPVOID ;
  2713.                                                                         element:      ULONG ;
  2714.                                                                         wait:         BOOL32 ;
  2715.                                                                         ppriority:    PBYTE ;
  2716.                                                                         hsem:         HEV ): APIRET;
  2717.  
  2718.             PROCEDURE [APIENTRY]  DosWriteQueue(hq:         HQUEUE ;
  2719.                                                                           request:     ULONG ;
  2720.                                                                           cbData:      ULONG ;
  2721.                                                                           pbData:      PVOID ;
  2722.                                                                           priority:    ULONG ): APIRET;
  2723.  
  2724.    <* ELSE *>
  2725.       $; -- In the source file was: #error PHFILE not defined - define INCL_DOSFILEMGR or undefine INCL_NOCOMMON
  2726.    <* END *>
  2727. <* END *>
  2728.  
  2729.  
  2730.  
  2731. <* IF DEFINED(INCL_DOSMISC) THEN *>
  2732.  
  2733.       (* definitions for DosSearchPath control word *)
  2734.       CONST DSP_IMPLIEDCUR         = 1; (* current dir will be searched first *)
  2735.       CONST DSP_PATHREF            = 2; (* from env.variable *)
  2736.       CONST DSP_IGNORENETERR       = 4; (* ignore net errs & continue search *)
  2737.  
  2738.       (* indices for DosQuerySysInfo *)
  2739.       CONST QSV_MAX_PATH_LENGTH    = 1;
  2740.       CONST Q_MAX_PATH_LENGTH      = QSV_MAX_PATH_LENGTH;
  2741.       CONST QSV_MAX_TEXT_SESSIONS  = 2;
  2742.       CONST QSV_MAX_PM_SESSIONS    = 3;
  2743.       CONST QSV_MAX_VDM_SESSIONS   = 4;
  2744.       CONST QSV_BOOT_DRIVE         = 5;       (* 1=A; 2=B; etc. *)
  2745.       CONST QSV_DYN_PRI_VARIATION  = 6;       (* 0=Absolute; 1=Dynamic *)
  2746.       CONST QSV_MAX_WAIT           = 7;       (* seconds *)
  2747.       CONST QSV_MIN_SLICE          = 8;       (* milli seconds *)
  2748.       CONST QSV_MAX_SLICE          = 9;       (* milli seconds *)
  2749.       CONST QSV_PAGE_SIZE          = 10;
  2750.       CONST QSV_VERSION_MAJOR      = 11;
  2751.       CONST QSV_VERSION_MINOR      = 12;
  2752.       CONST QSV_VERSION_REVISION   = 13;      (* Revision letter *)
  2753.       CONST QSV_MS_COUNT           = 14;      (* Free running millisecond counter *)
  2754.       CONST QSV_TIME_LOW           = 15;      (* Low dword of time in seconds *)
  2755.       CONST QSV_TIME_HIGH          = 16;      (* High dword of time in seconds *)
  2756.       CONST QSV_TOTPHYSMEM         = 17;      (* Physical memory on system *)
  2757.       CONST QSV_TOTRESMEM          = 18;      (* Resident memory on system *)
  2758.       CONST QSV_TOTAVAILMEM        = 19;      (* Available memory for all processes *)
  2759.       CONST QSV_MAXPRMEM           = 20;      (* Avail private mem for calling proc *)
  2760.       CONST QSV_MAXSHMEM           = 21;      (* Avail shared mem for calling proc *)
  2761.       CONST QSV_TIMER_INTERVAL     = 22;      (* Timer interval in tenths of ms *)
  2762.       CONST QSV_MAX_COMP_LENGTH    = 23;      (* max len of one component in a name *)
  2763.       CONST QSV_MAX                = QSV_MAX_COMP_LENGTH;
  2764.  
  2765.       (* definitions for DosError - combine with | *)
  2766.       CONST FERR_DISABLEHARDERR    = 000000000H;    (* disable hard error popups *)
  2767.       CONST FERR_ENABLEHARDERR     = 000000001H;    (* enable hard error popups *)
  2768.       CONST FERR_ENABLEEXCEPTION   = 000000000H;    (* enable exception popups *)
  2769.       CONST FERR_DISABLEEXCEPTION  = 000000002H;    (* disable exception popups *)
  2770.  
  2771.       (* definitions for DosQueryRASInfo Index *)
  2772.       CONST SIS_MMIOADDR           = 0;
  2773.       CONST SIS_MEC_TABLE          = 1;
  2774.       CONST SIS_SYS_LOG            = 2;
  2775.  
  2776.  
  2777.       PROCEDURE [APIENTRY]  DosError(error:  ULONG ): APIRET;
  2778.  
  2779.       PROCEDURE [APIENTRY]  DosGetMessage(pTable:   PPCHAR ;
  2780.                                                                     cTable:    ULONG ;
  2781.                                                                     pBuf:      PCHAR ;
  2782.                                                                     cbBuf:     ULONG ;
  2783.                                                                     msgnumber: ULONG ;
  2784.                                                                     pszFile:   PCSZ ;
  2785.                                                                     pcbMsg:    PULONG ): APIRET;
  2786.  
  2787.       PROCEDURE [APIENTRY]  DosErrClass(code:   ULONG ;
  2788.                                                                 pClass:  PULONG ;
  2789.                                                                 pAction: PULONG ;
  2790.                                                                 pLocus:  PULONG ): APIRET;
  2791.  
  2792.       PROCEDURE [APIENTRY]  DosInsertMessage(pTable: PPCHAR;
  2793.                                                                           cTable:  ULONG ;
  2794.                                                                           pszMsg:  PCSZ ;
  2795.                                                                           cbMsg:   ULONG ;
  2796.                                                                           pBuf:    PCHAR ;
  2797.                                                                           cbBuf:   ULONG ;
  2798.                                                                           pcbMsg:  PULONG ): APIRET;
  2799.  
  2800.       PROCEDURE [APIENTRY]  DosPutMessage(hfile: HFILE ;
  2801.                                                                     cbMsg:  ULONG ;
  2802.                                                                     pBuf:   PCHAR ): APIRET;
  2803.  
  2804.       PROCEDURE [APIENTRY]  DosQuerySysInfo(iStart: ULONG ;
  2805.                                                                         iLast:   ULONG ;
  2806.                                                                         pBuf:    PVOID ;
  2807.                                                                         cbBuf:   ULONG ): APIRET;
  2808.  
  2809.       PROCEDURE [APIENTRY]  DosScanEnv(pszName:   PCSZ ;
  2810.                                                                       ppszValue:  PPCSZ): APIRET;
  2811.  
  2812.       PROCEDURE [APIENTRY]  DosSearchPath(flag:           ULONG ;
  2813.                                                                     pszPathOrName:   PCSZ ;
  2814.                                                                     pszFilename:     PCSZ ;
  2815.                                                                     pBuf:            PBYTE ;
  2816.                                                                     cbBuf:           ULONG ): APIRET;
  2817.  
  2818.       PROCEDURE [APIENTRY]  DosQueryMessageCP(pb:         PCHAR ;
  2819.                                                                             cb:          ULONG ;
  2820.                                                                             pszFilename: PCSZ ;
  2821.                                                                             cbBuf:       PULONG ): APIRET;
  2822.  
  2823.       PROCEDURE [APIENTRY]  DosQueryRASInfo(Index:       ULONG ;
  2824.                                                                         Addr:         PPVOID ): APIRET;
  2825.  
  2826.       CONST DosInsMessage  = DosInsertMessage;
  2827.       CONST DosQSysInfo    = DosQuerySysInfo;
  2828.  
  2829. <* END *>
  2830.  
  2831.  
  2832. (*** Session manager support *)
  2833.  
  2834. <* IF DEFINED(INCL_DOSSESMGR) THEN *>
  2835.  
  2836.       TYPE STARTDATA = RECORD    (* stdata *)
  2837.             Length:           USHORT  ;
  2838.             Related:          USHORT  ;
  2839.             FgBg:             USHORT  ;
  2840.             TraceOpt:         USHORT  ;
  2841.             PgmTitle:         PSZ     ;
  2842.             PgmName:          PSZ     ;
  2843.             PgmInputs:        PBYTE   ;
  2844.             TermQ:            PBYTE   ;
  2845.             Environment:      PBYTE   ;
  2846.             InheritOpt:       USHORT  ;
  2847.             SessionType:      USHORT  ;
  2848.             IconFile:         PSZ     ;
  2849.             PgmHandle:        ULONG   ;
  2850.             PgmControl:       USHORT  ;
  2851.             InitXPos:         USHORT  ;
  2852.             InitYPos:         USHORT  ;
  2853.             InitXSize:        USHORT  ;
  2854.             InitYSize:        USHORT  ;
  2855.             Reserved:         USHORT  ;
  2856.             ObjectBuffer:     PSZ     ;
  2857.             ObjectBuffLen:    ULONG   ;
  2858.       END;
  2859.       TYPE PSTARTDATA = POINTER TO STARTDATA;
  2860.  
  2861.       CONST SSF_RELATED_INDEPENDENT =0;
  2862.       CONST SSF_RELATED_CHILD       =1;
  2863.  
  2864.       CONST SSF_FGBG_FORE           =0;
  2865.       CONST SSF_FGBG_BACK           =1;
  2866.  
  2867.       CONST SSF_TRACEOPT_NONE       =0;
  2868.       CONST SSF_TRACEOPT_TRACE      =1;
  2869.       CONST SSF_TRACEOPT_TRACEALL   =2;
  2870.  
  2871.       CONST SSF_INHERTOPT_SHELL     =0;
  2872.       CONST SSF_INHERTOPT_PARENT    =1;
  2873.  
  2874.       (* note that these types are identical to those in pmshl.h for PROG_* *)
  2875.       CONST SSF_TYPE_DEFAULT        =0;
  2876.       CONST SSF_TYPE_FULLSCREEN     =1;
  2877.       CONST SSF_TYPE_WINDOWABLEVIO  =2;
  2878.       CONST SSF_TYPE_PM             =3;
  2879.       CONST SSF_TYPE_VDM            =4;
  2880.       CONST SSF_TYPE_GROUP          =5;
  2881.       CONST SSF_TYPE_DLL            =6;
  2882.       CONST SSF_TYPE_WINDOWEDVDM    =7;
  2883.       CONST SSF_TYPE_PDD            =8;
  2884.       CONST SSF_TYPE_VDD            =9;
  2885.  
  2886.       (* note that these flags are identical to those in pmshl.h for SHE_* *)
  2887.       CONST SSF_CONTROL_VISIBLE     =00000H;
  2888.       CONST SSF_CONTROL_INVISIBLE   =00001H;
  2889.       CONST SSF_CONTROL_MAXIMIZE    =00002H;
  2890.       CONST SSF_CONTROL_MINIMIZE    =00004H;
  2891.       CONST SSF_CONTROL_NOAUTOCLOSE =00008H;
  2892.       CONST SSF_CONTROL_SETPOS      =08000H;
  2893.  
  2894.       TYPE STATUSDATA = RECORD  (* stsdata *)
  2895.             Length:    USHORT ;
  2896.             SelectInd: USHORT ;
  2897.             BondInd:   USHORT ;
  2898.       END;
  2899.       TYPE PSTATUSDATA = POINTER TO STATUSDATA;
  2900.  
  2901.       (* SelectInd and BondInd paramater values for DosSetSession *)
  2902.       CONST SET_SESSION_UNCHANGED     = 0;
  2903.       CONST SET_SESSION_SELECTABLE    = 1;
  2904.       CONST SET_SESSION_NON_SELECTABLE= 2;
  2905.       CONST SET_SESSION_BOND          = 1;
  2906.       CONST SET_SESSION_NO_BOND       = 2;
  2907.  
  2908.       (* TargetOption (scope) parameter values for DosStopSession *)
  2909.       CONST STOP_SESSION_SPECIFIED    = 0;
  2910.       CONST STOP_SESSION_ALL          = 1;
  2911.  
  2912.  
  2913.  
  2914.  
  2915.       PROCEDURE [APIENTRY]  DosStartSession(psd:        PSTARTDATA ;
  2916.                                                                         pidSession:  PULONG ;
  2917.                                                                         ppid:        PPID ): APIRET;
  2918.  
  2919.       PROCEDURE [APIENTRY]  DosSetSession(idSession:     ULONG ;
  2920.                                                                     psd:            PSTATUSDATA ): APIRET;
  2921.  
  2922.       PROCEDURE [APIENTRY]  DosSelectSession(idSession:  ULONG ): APIRET;
  2923.  
  2924.       PROCEDURE [APIENTRY]  DosStopSession(scope:        ULONG ;
  2925.                                                                       idSession:     ULONG ): APIRET;
  2926.  
  2927.       PROCEDURE [APIENTRY] DosQueryAppType(pszName:       PCSZ ;
  2928.                                                                       pFlags:         PULONG ): APIRET;
  2929.  
  2930.       CONST DosQAppType   =  DosQueryAppType;
  2931.  
  2932. <* END *>
  2933.  
  2934.  
  2935.  
  2936. <* IF (DEFINED (INCL_DOSSESMGR) OR DEFINED (INCL_DOSFILEMGR) ) THEN *>
  2937.  
  2938.       (* AppType returned in by DosQueryAppType in pFlags as follows          *)
  2939.       CONST FAPPTYP_NOTSPEC        = 00000H;
  2940.       CONST FAPPTYP_NOTWINDOWCOMPAT= 00001H;
  2941.       CONST FAPPTYP_WINDOWCOMPAT   = 00002H;
  2942.       CONST FAPPTYP_WINDOWAPI      = 00003H;
  2943.       CONST FAPPTYP_BOUND          = 00008H;
  2944.       CONST FAPPTYP_DLL            = 00010H;
  2945.       CONST FAPPTYP_DOS            = 00020H;
  2946.       CONST FAPPTYP_PHYSDRV        = 00040H;  (* physical device driver       *)
  2947.       CONST FAPPTYP_VIRTDRV        = 00080H;  (* virtual device driver        *)
  2948.       CONST FAPPTYP_PROTDLL        = 00100H;  (* 'protected memory' dll       *)
  2949.       CONST FAPPTYP_WINDOWSREAL    = 00200H;  (* Windows real mode app        *)
  2950.       CONST FAPPTYP_WINDOWSPROT    = 00400H;  (* Windows protect mode app     *)
  2951.       CONST FAPPTYP_WINDOWSPROT31  = 01000H;  (* Windows 3.1 protect mode app *)
  2952.       CONST FAPPTYP_32BIT          = 04000H;
  2953.       CONST FAPPTYP_EXETYPE        = FAPPTYP_WINDOWAPI;
  2954.  
  2955.       CONST FAPPTYP_RESERVED       = -1-(FAPPTYP_WINDOWAPI + FAPPTYP_BOUND + FAPPTYP_DLL + FAPPTYP_DOS + FAPPTYP_PHYSDRV + FAPPTYP_VIRTDRV + FAPPTYP_PROTDLL + FAPPTYP_32BIT);
  2956.  
  2957.    <* IF DEFINED(INCL_DOSFILEMGR) THEN *>
  2958.  
  2959.             CONST EAT_APPTYP_PMAPI    =    000H;            (* Uses PM API *)
  2960.             CONST EAT_APPTYP_DOS      =    001H;            (* DOS APP *)
  2961.             CONST EAT_APPTYP_PMW      =    002H;            (* Window compatible *)
  2962.             CONST EAT_APPTYP_NOPMW    =    003H;            (* Not Window compatible *)
  2963.             CONST EAT_APPTYP_EXETYPE  =    003H;            (* EXE type mask *)
  2964.             CONST EAT_APPTYP_RESERVED =    -1-(EAT_APPTYP_EXETYPE);
  2965.  
  2966.    <* END *>
  2967.  
  2968. <* END *>
  2969.  
  2970.  
  2971.  
  2972.  
  2973. (*** Device support *)
  2974.  
  2975. <* IF DEFINED(INCL_DOSDEVICES) THEN *>
  2976.  
  2977.  
  2978.       PROCEDURE [APIENTRY]  DosDevConfig(pdevinfo:       PVOID ;
  2979.                                                                   item:            ULONG ): APIRET;
  2980.  
  2981.       CONST DEVINFO_PRINTER       =  0;       (* Number of printers attached *)
  2982.       CONST DEVINFO_RS232         =  1;       (* Number of RS232 ports *)
  2983.       CONST DEVINFO_FLOPPY        =  2;       (* Number of diskette drives *)
  2984.       CONST DEVINFO_COPROCESSOR   =  3;       (* Presence of math coprocessor *)
  2985.       CONST DEVINFO_SUBMODEL      =  4;       (* PC Submodel Type *)
  2986.       CONST DEVINFO_MODEL         =  5;       (* PC Model Type *)
  2987.       CONST DEVINFO_ADAPTER       =  6;       (* Primary display adapter type *)
  2988.  
  2989.       PROCEDURE [APIENTRY]  DosDevIOCtl(hDevice:      HFILE ;
  2990.                                                                 category:      ULONG ;
  2991.                                                                 function:      ULONG ;
  2992.                                                                 pParams:       PVOID ;
  2993.                                                                 cbParmLenMax:  ULONG ;
  2994.                                                                 pcbParmLen:    PULONG ;
  2995.                                                                 pData:         PVOID ;
  2996.                                                                 cbDataLenMax:  ULONG ;
  2997.                                                                 pcbDataLen:    PULONG ): APIRET;
  2998.  
  2999.  
  3000.       CONST DosDevIOCtl2   =  DosDevIOCtl;
  3001.  
  3002.       PROCEDURE [APIENTRY]  DosPhysicalDisk(function:    ULONG ;
  3003.                                                                         pBuf:         PVOID ;
  3004.                                                                         cbBuf:        ULONG ;
  3005.                                                                         pParams:      PVOID ;
  3006.                                                                         cbParams:     ULONG ): APIRET;
  3007.  
  3008.       CONST INFO_COUNT_PARTITIONABLE_DISKS = 1;       (* # of partitionable disks *)
  3009.       CONST INFO_GETIOCTLHANDLE            = 2;       (* Obtain handle            *)
  3010.       CONST INFO_FREEIOCTLHANDLE           = 3;       (* Release handle           *)
  3011.  
  3012. <* END *>
  3013.  
  3014.  
  3015. (*** DosNamedPipes API Support *)
  3016.  
  3017. <* IF DEFINED(INCL_DOSNMPIPES) THEN *>
  3018.  
  3019.       (*** Data structures used with named pipes ***)
  3020.  
  3021.       TYPE HPIPE  = LHANDLE;     (* hp *)
  3022.       TYPE PHPIPE = POINTER TO HPIPE;
  3023.  
  3024.       TYPE AVAILDATA = RECORD             (* AVAILDATA *)
  3025.             cbpipe:     USHORT;         (* bytes left in the pipe *)
  3026.             cbmessage:  USHORT;         (* bytes left in the current message *)
  3027.       END;
  3028.       TYPE PAVAILDATA = POINTER TO AVAILDATA;
  3029.  
  3030.       TYPE PIPEINFO = RECORD              (* nmpinf *)
  3031.             cbOut:      USHORT;     (* length of outgoing I/O buffer *)
  3032.             cbIn:       USHORT;     (* length of incoming I/O buffer *)
  3033.             cbMaxInst:  BYTE;       (* maximum number of instances   *)
  3034.             cbCurInst:  BYTE;       (* current number of instances   *)
  3035.             cbName:     BYTE;       (* length of pipe name           *)
  3036.             szName:     ARRAY [0..0] OF CHAR;  (* start of name      *)
  3037.       END;
  3038.       TYPE PPIPEINFO = POINTER TO PIPEINFO;
  3039.  
  3040.       TYPE PIPESEMSTATE = RECORD   (* nmpsmst *)
  3041.             fStatus:  BYTE;           (* type of record; 0 = EOI; 1 = read ok; *)
  3042.                                                                 (* 2 = write ok; 3 = pipe closed         *)
  3043.             fFlag:    BYTE;           (* additional info; 01 = waiting thread  *)
  3044.             usKey:    USHORT;         (* user's key value                      *)
  3045.             usAvail:  USHORT;         (* available data/space if status = 1/2  *)
  3046.       END;
  3047.       TYPE PPIPESEMSTATE = POINTER TO PIPESEMSTATE;
  3048.  
  3049.       CONST NP_INDEFINITE_WAIT    =  -1;
  3050.       CONST NP_DEFAULT_WAIT       =   0;
  3051.  
  3052.       (* DosPeekNmPipe() pipe states *)
  3053.  
  3054.       CONST NP_STATE_DISCONNECTED  = 00001H;
  3055.       CONST NP_STATE_LISTENING     = 00002H;
  3056.       CONST NP_STATE_CONNECTED     = 00003H;
  3057.       CONST NP_STATE_CLOSING       = 00004H;
  3058.  
  3059.       (* DosCreateNPipe open modes *)
  3060.  
  3061.       CONST NP_ACCESS_INBOUND      = 00000H;
  3062.       CONST NP_ACCESS_OUTBOUND     = 00001H;
  3063.       CONST NP_ACCESS_DUPLEX       = 00002H;
  3064.       CONST NP_INHERIT             = 00000H;
  3065.       CONST NP_NOINHERIT           = 00080H;
  3066.       CONST NP_WRITEBEHIND         = 00000H;
  3067.       CONST NP_NOWRITEBEHIND       = 04000H;
  3068.  
  3069.       (* DosCreateNPipe and DosQueryNPHState state *)
  3070.  
  3071.       CONST NP_READMODE_BYTE       = 00000H;
  3072.       CONST NP_READMODE_MESSAGE    = 00100H;
  3073.       CONST NP_TYPE_BYTE           = 00000H;
  3074.       CONST NP_TYPE_MESSAGE        = 00400H;
  3075.       CONST NP_END_CLIENT          = 00000H;
  3076.       CONST NP_END_SERVER          = 04000H;
  3077.       CONST NP_WAIT                = 00000H;
  3078.       CONST NP_NOWAIT              = 08000H;
  3079.       CONST NP_UNLIMITED_INSTANCES = 000FFH;
  3080.  
  3081.  
  3082.       PROCEDURE [APIENTRY]  DosCallNPipe(pszName: PCSZ ;
  3083.                                                                   pInbuf:   PVOID ;
  3084.                                                                   cbIn:     ULONG ;
  3085.                                                                   pOutbuf:  PVOID ;
  3086.                                                                   cbOut:    ULONG ;
  3087.                                                                   pcbActual: PULONG ;
  3088.                                                                   msec:     ULONG ): APIRET;
  3089.  
  3090.       PROCEDURE [APIENTRY]  DosConnectNPipe(hpipe:  HPIPE ): APIRET;
  3091.  
  3092.       PROCEDURE [APIENTRY]  DosDisConnectNPipe(hpipe:  HPIPE ): APIRET;
  3093.  
  3094.       PROCEDURE [APIENTRY]  DosCreateNPipe(pszName: PCSZ ;
  3095.                                                                       pHpipe:   PHPIPE ;
  3096.                                                                       openmode: ULONG ;
  3097.                                                                       pipemode: ULONG ;
  3098.                                                                       cbInbuf:  ULONG ;
  3099.                                                                       cbOutbuf: ULONG ;
  3100.                                                                       msec:     ULONG ): APIRET;
  3101.  
  3102.       PROCEDURE [APIENTRY]  DosPeekNPipe(hpipe:    HPIPE ;
  3103.                                                                   pBuf:      PVOID ;
  3104.                                                                   cbBuf:     ULONG ;
  3105.                                                                   pcbActual: PULONG ;
  3106.                                                                   pAvail:    PAVAILDATA ;
  3107.                                                                   pState:    PULONG ): APIRET;
  3108.  
  3109.       PROCEDURE [APIENTRY]  DosQueryNPHState(hpipe:      HPIPE ;
  3110.                                                                           pState:      PULONG ): APIRET;
  3111.  
  3112.       PROCEDURE [APIENTRY]  DosQueryNPipeInfo(hpipe:     HPIPE ;
  3113.                                                                             infolevel:  ULONG ;
  3114.                                                                             pBuf:       PVOID ;
  3115.                                                                             cbBuf:      ULONG ): APIRET;
  3116.  
  3117.       PROCEDURE [APIENTRY]  DosQueryNPipeSemState(hsem:  HSEM ;
  3118.                                                                                     pnpss:  PPIPESEMSTATE ;
  3119.                                                                                     cbBuf:  ULONG ): APIRET;
  3120.  
  3121.       PROCEDURE [APIENTRY]  DosRawReadNPipe(pszName: PCSZ ;
  3122.                                                                         cb:       ULONG ;
  3123.                                                                         pLen:     PULONG ;
  3124.                                                                         pBuf:     PVOID ): APIRET;
  3125.  
  3126.       PROCEDURE [APIENTRY]  DosRawWriteNPipe(pszName:  PCSZ ;
  3127.                                                                           cb:        ULONG ): APIRET;
  3128.  
  3129.       PROCEDURE [APIENTRY]  DosSetNPHState(hpipe:  HPIPE ;
  3130.                                                                       state:   ULONG ): APIRET;
  3131.  
  3132.       PROCEDURE [APIENTRY]  DosSetNPipeSem(hpipe: HPIPE ;
  3133.                                                                       hsem:   HSEM ;
  3134.                                                                       key:    ULONG ): APIRET;
  3135.  
  3136.       PROCEDURE [APIENTRY]  DosTransactNPipe(hpipe:      HPIPE ;
  3137.                                                                           pOutbuf:     PVOID ;
  3138.                                                                           cbOut:       ULONG ;
  3139.                                                                           pInbuf:      PVOID ;
  3140.                                                                           cbIn:        ULONG ;
  3141.                                                                           pcbRead:     PULONG ): APIRET;
  3142.  
  3143.       PROCEDURE [APIENTRY]  DosWaitNPipe(pszName: PCSZ ;
  3144.                                                                   msec:     ULONG ): APIRET;
  3145.  
  3146.       (* values in fStatus *)
  3147.       CONST NPSS_EOI                  = 0;     (* End Of Information    *)
  3148.       CONST NPSS_RDATA                = 1;     (* read data available   *)
  3149.       CONST NPSS_WSPACE               = 2;     (* write space available *)
  3150.       CONST NPSS_CLOSE                = 3;     (* pipe in CLOSING state *)
  3151.  
  3152.       (* values in npss_flag *)
  3153.       CONST NPSS_WAIT                 = 001H;  (* waiting thread on end of pipe *)
  3154.  
  3155.       (* defined bits in pipe mode *)
  3156.       CONST NP_NBLK                   = 08000H; (* non-blocking read/write *)
  3157.       CONST NP_SERVER                 = 04000H; (* set if server end       *)
  3158.       CONST NP_WMESG                  = 00400H; (* write messages          *)
  3159.       CONST NP_RMESG                  = 00100H; (* read as messages        *)
  3160.       CONST NP_ICOUNT                 = 000FFH; (* instance count field    *)
  3161.  
  3162.  
  3163.       (*Named pipes may be in one of several states depending on the actions
  3164.       * that have been taken on it by the server end and client end.  The
  3165.       * following state/action table summarizes the valid state transitions:
  3166.       *
  3167.       * Current state           Action                  Next state
  3168.       *
  3169.       *  <none>             server DosMakeNmPipe        DISCONNECTED
  3170.       *  DISCONNECTED       server connect              LISTENING
  3171.       *  LISTENING          client open                 CONNECTED
  3172.       *  CONNECTED          server disconn              DISCONNECTED
  3173.       *  CONNECTED          client close                CLOSING
  3174.       *  CLOSING            server disconn              DISCONNECTED
  3175.       *  CONNECTED          server close                CLOSING
  3176.       *  <any other>        server close                <pipe deallocated>
  3177.       *
  3178.       * If a server disconnects his end of the pipe; the client end will enter a
  3179.       * special state in which any future operations (except close) on the file
  3180.       * descriptor associated with the pipe will return an error.
  3181.       *)
  3182.  
  3183.       (*
  3184.       *      Values for named pipe state
  3185.       *)
  3186.  
  3187.       CONST NP_DISCONNECTED      = 1;         (* after pipe creation or Disconnect *)
  3188.       CONST NP_LISTENING         = 2;         (* after DosNmPipeConnect            *)
  3189.       CONST NP_CONNECTED         = 3;         (* after Client open                 *)
  3190.       CONST NP_CLOSING           = 4;         (* after Client or Server close      *)
  3191.  
  3192.  
  3193. <* END *>
  3194.  
  3195.  
  3196.  
  3197. (*** DosProfile API support *)
  3198.  
  3199.  <* IF DEFINED(INCL_DOSPROFILE) THEN *>
  3200.  
  3201.       (*** Perfview API support *)
  3202.  
  3203.       PROCEDURE [APIENTRY] DosTmrQueryFreq(pulTmrFreq:  PULONG ): APIRET;
  3204.  
  3205.       PROCEDURE [APIENTRY] DosTmrQueryTime(pqwTmrTime:  PQWORD ): APIRET;
  3206.  
  3207.       PROCEDURE [APIENTRY] DosRegisterPerfCtrs(pbDataBlk:  PBYTE ;
  3208.                                                                               pbTextBlk:   PBYTE ;
  3209.                                                                               flFlags:     ULONG ): APIRET;
  3210.  
  3211.       (* DosProfile ordinal number *)
  3212.  
  3213.       CONST PROF_ORDINAL       = 133;
  3214.  
  3215.       (* DosProfile usType *)
  3216.  
  3217.       CONST PROF_SYSTEM          = 0;
  3218.       CONST PROF_USER            = 1;
  3219.       CONST PROF_USEDD           = 2;
  3220.       CONST PROF_KERNEL          = 4;
  3221.       CONST PROF_VERBOSE         = 8;
  3222.       CONST PROF_ENABLE          =16;
  3223.  
  3224.       (* DosProfile usFunc *)
  3225.  
  3226.       CONST PROF_ALLOC           = 0;
  3227.       CONST PROF_CLEAR           = 1;
  3228.       CONST PROF_ON              = 2;
  3229.       CONST PROF_OFF             = 3;
  3230.       CONST PROF_DUMP            = 4;
  3231.       CONST PROF_FREE            = 5;
  3232.  
  3233.       (* DosProfile tic count granularity (DWORD) *)
  3234.  
  3235.       CONST PROF_SHIFT           = 2;
  3236.  
  3237.       (* DosProfile module name string length *)
  3238.  
  3239.       CONST PROF_MOD_NAME_SIZE   =10;
  3240.  
  3241.       (* DosProfile error code for end of data *)
  3242.  
  3243.       CONST PROF_END_OF_DATA     =13;
  3244.  
  3245. <* END *>
  3246.  
  3247.  
  3248.  
  3249. (* Virtual DOS Machine API support *)
  3250. <* IF DEFINED(INCL_DOSMVDM) THEN *>
  3251.  
  3252.       TYPE HVDD  = LHANDLE;     (* hvdd *)
  3253.       TYPE PHVDD = POINTER TO HVDD;    (* phvdd *)
  3254.  
  3255.       PROCEDURE [APIENTRY]  DosOpenVDD(pszVDD:    PCSZ ;
  3256.                                                               phvdd:      PHVDD ): APIRET;
  3257.  
  3258.       PROCEDURE [APIENTRY]  DosRequestVDD(hvdd:    HVDD ;
  3259.                                                                     sgid:     SGID ;
  3260.                                                                     cmd:      ULONG ;
  3261.                                                                     cbInput:  ULONG ;
  3262.                                                                     pInput:   PVOID ;
  3263.                                                                     cbOutput: ULONG ;
  3264.                                                                     pOutput:  PVOID ): APIRET;
  3265.  
  3266.       PROCEDURE [APIENTRY]  DosCloseVDD(hvdd:  HVDD ): APIRET;
  3267.  
  3268.       PROCEDURE [APIENTRY]  DosQueryDOSProperty(sgid:     SGID ;
  3269.                                                                                 pszName:   PCSZ ;
  3270.                                                                                 cb:        ULONG ;
  3271.                                                                                 pch:       PCSZ ): APIRET;
  3272.  
  3273.       PROCEDURE [APIENTRY]  DosSetDOSProperty(sgid:       SGID ;
  3274.                                                                             pszName:     PCSZ ;
  3275.                                                                             cb:          ULONG ;
  3276.                                                                             pch:         PCSZ ): APIRET;
  3277. <* END *>
  3278.  
  3279.  
  3280. <* IF DEFINED(INCL_BDCALLS) THEN *>
  3281.  
  3282. (*   #include "bdcalls.hm" -- we can't use it *) 
  3283.  
  3284. <* END *>
  3285.  
  3286. (**************************** end of file **********************************)
  3287.  
  3288. (* ------------- End of file:  .\hm\bsedos.hm ------------- *)
  3289.  
  3290.  
  3291. <* IF DEFINED(INCL_DOSDEVIOCTL) THEN *>
  3292.    
  3293. (* ------------- Include file: .\hm\bsedev.hm ------------- *)
  3294. (*static char *SCCSID = "@(#)bsedev.h    6.10 92/03/15";*)
  3295. (**************************************************************************\
  3296. *                                                                         *
  3297. * Module Name: BSEDEV.H                                                   *
  3298. *                                                                         *
  3299. * OS/2 Structures and constants for use with DosDevIOCtl                  *
  3300. *                                                                         *
  3301. * Copyright (c) 1987-1992, IBM Corporation                                *
  3302. *                                                                         *
  3303. \**************************************************************************)
  3304.  
  3305. <* NEW BSEDEV_INCLUDED + *>
  3306.  
  3307. (* Input and Output Control Categories *)
  3308.  
  3309. CONST  IOCTL_ASYNC                        = 00001H;
  3310. CONST  IOCTL_SCR_AND_PTRDRAW              = 00003H;
  3311. CONST  IOCTL_KEYBOARD                     = 00004H;
  3312. CONST  IOCTL_PRINTER                      = 00005H;
  3313. CONST  IOCTL_LIGHTPEN                     = 00006H;
  3314. CONST  IOCTL_POINTINGDEVICE               = 00007H;
  3315. CONST  IOCTL_DISK                         = 00008H;
  3316. CONST  IOCTL_PHYSICALDISK                 = 00009H;
  3317. CONST  IOCTL_MONITOR                      = 0000AH;
  3318. CONST  IOCTL_GENERAL                      = 0000BH;
  3319.  
  3320. (* Serial-Device Control *)
  3321.  
  3322. CONST  ASYNC_SETBAUDRATE                  = 00041H;
  3323. CONST  ASYNC_SETLINECTRL                  = 00042H;
  3324. CONST  ASYNC_TRANSMITIMM                  = 00044H;
  3325. CONST  ASYNC_SETBREAKOFF                  = 00045H;
  3326. CONST  ASYNC_SETMODEMCTRL                 = 00046H;
  3327. CONST  ASYNC_SETBREAKON                   = 0004BH;
  3328. CONST  ASYNC_STOPTRANSMIT                 = 00047H;
  3329. CONST  ASYNC_STARTTRANSMIT                = 00048H;
  3330. CONST  ASYNC_SETDCBINFO                   = 00053H;
  3331. CONST  ASYNC_GETBAUDRATE                  = 00061H;
  3332. CONST  ASYNC_GETLINECTRL                  = 00062H;
  3333. CONST  ASYNC_GETCOMMSTATUS                = 00064H;
  3334. CONST  ASYNC_GETLINESTATUS                = 00065H;
  3335. CONST  ASYNC_GETMODEMOUTPUT               = 00066H;
  3336. CONST  ASYNC_GETMODEMINPUT                = 00067H;
  3337. CONST  ASYNC_GETINQUECOUNT                = 00068H;
  3338. CONST  ASYNC_GETOUTQUECOUNT               = 00069H;
  3339. CONST  ASYNC_GETCOMMERROR                 = 0006DH;
  3340. CONST  ASYNC_GETCOMMEVENT                 = 00072H;
  3341. CONST  ASYNC_GETDCBINFO                   = 00073H;
  3342.  
  3343. (* Screen/Pointer-Draw Control *)
  3344.  
  3345. CONST  SCR_ALLOCLDT                       = 00070H;
  3346. CONST  SCR_DEALLOCLDT                     = 00071H;
  3347. CONST  PTR_GETPTRDRAWADDRESS              = 00072H;
  3348. CONST  SCR_ALLOCLDTOFF                    = 00075H;
  3349.  
  3350. (* Keyboard Control *)
  3351.  
  3352. CONST  KBD_SETTRANSTABLE                  = 00050H;
  3353. CONST  KBD_SETINPUTMODE                   = 00051H;
  3354. CONST  KBD_SETINTERIMFLAG                 = 00052H;
  3355. CONST  KBD_SETSHIFTSTATE                  = 00053H;
  3356. CONST  KBD_SETTYPAMATICRATE               = 00054H;
  3357. CONST  KBD_SETFGNDSCREENGRP               = 00055H;
  3358. CONST  KBD_SETSESMGRHOTKEY                = 00056H;
  3359. CONST  KBD_SETFOCUS                       = 00057H;
  3360. CONST  KBD_SETKCB                         = 00058H;
  3361. CONST  KBD_SETNLS                         = 0005CH;
  3362. CONST  KBD_CREATE                         = 0005DH;
  3363. CONST  KBD_DESTROY                        = 0005EH;
  3364. CONST  KBD_GETINPUTMODE                   = 00071H;
  3365. CONST  KBD_GETINTERIMFLAG                 = 00072H;
  3366. CONST  KBD_GETSHIFTSTATE                  = 00073H;
  3367. CONST  KBD_READCHAR                       = 00074H;
  3368. CONST  KBD_PEEKCHAR                       = 00075H;
  3369. CONST  KBD_GETSESMGRHOTKEY                = 00076H;
  3370. CONST  KBD_GETKEYBDTYPE                   = 00077H;
  3371. CONST  KBD_GETCODEPAGEID                  = 00078H;
  3372. CONST  KBD_XLATESCAN                      = 00079H;
  3373.  
  3374. (* Printer Control *)
  3375.  
  3376. CONST  PRT_QUERYJOBHANDLE                 = 00021H;
  3377. CONST  PRT_SETFRAMECTL                    = 00042H;
  3378. CONST  PRT_SETINFINITERETRY               = 00044H;
  3379. CONST  PRT_INITPRINTER                    = 00046H;
  3380. CONST  PRT_ACTIVATEFONT                   = 00048H;
  3381. CONST  PRT_GETFRAMECTL                    = 00062H;
  3382. CONST  PRT_GETINFINITERETRY               = 00064H;
  3383. CONST  PRT_GETPRINTERSTATUS               = 00066H;
  3384. CONST  PRT_QUERYACTIVEFONT                = 00069H;
  3385. CONST  PRT_VERIFYFONT                     = 0006AH;
  3386.  
  3387. (* Pointing-Device (Mouse) Control *)
  3388.  
  3389. CONST  MOU_ALLOWPTRDRAW                   = 00050H;
  3390. CONST  MOU_UPDATEDISPLAYMODE              = 00051H;
  3391. CONST  MOU_SCREENSWITCH                   = 00052H;
  3392. CONST  MOU_SETSCALEFACTORS                = 00053H;
  3393. CONST  MOU_SETEVENTMASK                   = 00054H;
  3394. CONST  MOU_SETHOTKEYBUTTON                = 00055H;
  3395. CONST  MOU_SETPTRSHAPE                    = 00056H;
  3396. CONST  MOU_DRAWPTR                        = 00057H;
  3397. CONST  MOU_REMOVEPTR                      = 00058H;
  3398. CONST  MOU_SETPTRPOS                      = 00059H;
  3399. CONST  MOU_SETPROTDRAWADDRESS             = 0005AH;
  3400. CONST  MOU_SETREALDRAWADDRESS             = 0005BH;
  3401. CONST  MOU_SETMOUSTATUS                   = 0005CH;
  3402. CONST  MOU_DISPLAYMODECHANGE              = 0005DH;
  3403. CONST  MOU_GETBUTTONCOUNT                 = 00060H;
  3404. CONST  MOU_GETMICKEYCOUNT                 = 00061H;
  3405. CONST  MOU_GETMOUSTATUS                   = 00062H;
  3406. CONST  MOU_READEVENTQUE                   = 00063H;
  3407. CONST  MOU_GETQUESTATUS                   = 00064H;
  3408. CONST  MOU_GETEVENTMASK                   = 00065H;
  3409. CONST  MOU_GETSCALEFACTORS                = 00066H;
  3410. CONST  MOU_GETPTRPOS                      = 00067H;
  3411. CONST  MOU_GETPTRSHAPE                    = 00068H;
  3412. CONST  MOU_GETHOTKEYBUTTON                = 00069H;
  3413. CONST  MOU_VER                            = 0006AH;
  3414.  
  3415. (* Disk/Diskette Control *)
  3416.  
  3417. CONST  DSK_LOCKDRIVE                      = 00000H;
  3418. CONST  DSK_UNLOCKDRIVE                    = 00001H;
  3419. CONST  DSK_REDETERMINEMEDIA               = 00002H;
  3420. CONST  DSK_SETLOGICALMAP                  = 00003H;
  3421. CONST  DSK_BLOCKREMOVABLE                 = 00020H;
  3422. CONST  DSK_GETLOGICALMAP                  = 00021H;
  3423. CONST  DSK_SETDEVICEPARAMS                = 00043H;
  3424. CONST  DSK_WRITETRACK                     = 00044H;
  3425. CONST  DSK_FORMATVERIFY                   = 00045H;
  3426. CONST  DSK_GETDEVICEPARAMS                = 00063H;
  3427. CONST  DSK_READTRACK                      = 00064H;
  3428. CONST  DSK_VERIFYTRACK                    = 00065H;
  3429.  
  3430. (* Physical-Disk Control *)
  3431.  
  3432. CONST  PDSK_LOCKPHYSDRIVE                 = 00000H;
  3433. CONST  PDSK_UNLOCKPHYSDRIVE               = 00001H;
  3434. CONST  PDSK_WRITEPHYSTRACK                = 00044H;
  3435. CONST  PDSK_GETPHYSDEVICEPARAMS           = 00063H;
  3436. CONST  PDSK_READPHYSTRACK                 = 00064H;
  3437. CONST  PDSK_VERIFYPHYSTRACK               = 00065H;
  3438.  
  3439. (* Character-Monitor Control *)
  3440. CONST  MON_REGISTERMONITOR                = 00040H;
  3441.  
  3442. (* General Device Control *)
  3443. CONST  DEV_FLUSHINPUT                     = 00001H;
  3444. CONST  DEV_FLUSHOUTPUT                    = 00002H;
  3445. CONST  DEV_QUERYMONSUPPORT                = 00060H;
  3446.  
  3447.  
  3448. (* ASYNC_GETCOMMERROR, ASYNC_SETBREAKOFF, ASYNC_SETBREAKON,
  3449.   * ASYNC_SETMODEMCTRL
  3450.   *)
  3451.  
  3452. CONST  RX_QUE_OVERRUN                     = 00001H;
  3453. CONST  RX_HARDWARE_OVERRUN                = 00002H;
  3454. CONST  PARITY_ERROR                       = 00004H;
  3455. CONST  FRAMING_ERROR                      = 00008H;
  3456.  
  3457. (* ASYNC_GETCOMMEVENT *)
  3458. CONST  CHAR_RECEIVED                      = 00001H;
  3459. CONST  LAST_CHAR_SENT                     = 00004H;
  3460. CONST  CTS_CHANGED                        = 00008H;
  3461. CONST  DSR_CHANGED                        = 00010H;
  3462. CONST  DCD_CHANGED                        = 00020H;
  3463. CONST  BREAK_DETECTED                     = 00040H;
  3464. CONST  ERROR_OCCURRED                     = 00080H;
  3465. CONST  RI_DETECTED                        = 00100H;
  3466.  
  3467. (* ASYNC_GETCOMMSTATUS *)
  3468. CONST  TX_WAITING_FOR_CTS                 = 00001H;
  3469. CONST  TX_WAITING_FOR_DSR                 = 00002H;
  3470. CONST  TX_WAITING_FOR_DCD                 = 00004H;
  3471. CONST  TX_WAITING_FOR_XON                 = 00008H;
  3472. CONST  TX_WAITING_TO_SEND_XON             = 00010H;
  3473. CONST  TX_WAITING_WHILE_BREAK_ON          = 00020H;
  3474. CONST  TX_WAITING_TO_SEND_IMM             = 00040H;
  3475. CONST  RX_WAITING_FOR_DSR                 = 00080H;
  3476.  
  3477. (* ASYNC_GETLINESTATUS *)
  3478. CONST  WRITE_REQUEST_QUEUED               = 00001H;
  3479. CONST  DATA_IN_TX_QUE                     = 00002H;
  3480. CONST  HARDWARE_TRANSMITTING              = 00004H;
  3481. CONST  CHAR_READY_TO_SEND_IMM             = 00008H;
  3482. CONST  WAITING_TO_SEND_XON                = 00010H;
  3483. CONST  WAITING_TO_SEND_XOFF               = 00020H;
  3484.  
  3485. (* ASYNC_GETMODEMINPUT *)
  3486. CONST  CTS_ON                             = 010H;
  3487. CONST  DSR_ON                             = 020H;
  3488. CONST  RI_ON                              = 040H;
  3489. CONST  DCD_ON                             = 080H;
  3490.  
  3491. (* DSK_SETDEVICEPARAMS *)
  3492. CONST  BUILD_BPB_FROM_MEDIUM              = 000H;
  3493. CONST  REPLACE_BPB_FOR_DEVICE             = 001H;
  3494. CONST  REPLACE_BPB_FOR_MEDIUM             = 002H;
  3495.  
  3496. (* KBD_GETINPUTMODE, KBD_PEEKCHAR, KBD_SETINPUTMODE*)
  3497. CONST  ASCII_MODE                         = 000H;
  3498. CONST  BINARY_MODE                        = 080H;
  3499.  
  3500. (* KBD_GETINTERIMFLAG *)
  3501. CONST  CONVERSION_REQUEST                 = 020H;
  3502. CONST  INTERIM_CHAR                       = 080H;
  3503.  
  3504. (* KBD_GETSESMGRHOTKEY *)
  3505. CONST  HOTKEY_MAX_COUNT                   = 00000H;
  3506. CONST  HOTKEY_CURRENT_COUNT               = 00001H;
  3507.  
  3508. (* KBD_PEEKCHAR *)
  3509. CONST  KBD_DATA_RECEIVED                  = 00001H;
  3510. CONST  KBD_DATA_BINARY                    = 08000H;
  3511.  
  3512. (* KBD_READCHAR *)
  3513. CONST  KBD_READ_WAIT                      = 00000H;
  3514. CONST  KBD_READ_NOWAIT                    = 08000H;
  3515.  
  3516. (* KBD_SETINPUTMODE *)
  3517. CONST  SHIFT_REPORT_MODE                  = 001H;
  3518.  
  3519. <* IF NOT DEFINED (INCL_MOU)  THEN *>
  3520.  
  3521.       CONST  MOUSE_MOTION                    = 00001H;
  3522.       CONST  MOUSE_MOTION_WITH_BN1_DOWN      = 00002H;
  3523.       CONST  MOUSE_BN1_DOWN                  = 00004H;
  3524.       CONST  MOUSE_MOTION_WITH_BN2_DOWN      = 00008H;
  3525.       CONST  MOUSE_BN2_DOWN                  = 00010H;
  3526.       CONST  MOUSE_MOTION_WITH_BN3_DOWN      = 00020H;
  3527.       CONST  MOUSE_BN3_DOWN                  = 00040H;
  3528.  
  3529.       CONST  MHK_BUTTON1                     = 00001H;
  3530.       CONST  MHK_BUTTON2                     = 00002H;
  3531.       CONST  MHK_BUTTON3                     = 00004H;
  3532.  
  3533.       CONST  MOU_NOWAIT                      = 00000H;
  3534.       CONST  MOU_WAIT                        = 00001H;
  3535.  
  3536. <* END *>
  3537.  
  3538. (* MOU_GETHOTKEYBUTTON, MOU_SETHOTKEYBUTTON *)
  3539. CONST  MHK_NO_HOTKEY                      = 00000H;
  3540.  
  3541. (* MOU_GETMOUSTATUS *)
  3542. CONST  MOUSE_QUEUEBUSY                    = 00001H;
  3543. CONST  MOUSE_BLOCKREAD                    = 00002H;
  3544. CONST  MOUSE_FLUSH                        = 00004H;
  3545. CONST  MOUSE_UNSUPPORTED_MODE             = 00008H;
  3546. CONST  MOUSE_DISABLED                     = 00100H;
  3547. CONST  MOUSE_MICKEYS                      = 00200H;
  3548.  
  3549. (* PRT_GETPRINTERSTATUS *)
  3550. CONST  PRINTER_TIMEOUT                    = 00001H;
  3551. CONST  PRINTER_IO_ERROR                   = 00008H;
  3552. CONST  PRINTER_SELECTED                   = 00010H;
  3553. CONST  PRINTER_OUT_OF_PAPER               = 00020H;
  3554. CONST  PRINTER_ACKNOWLEDGED               = 00040H;
  3555. CONST  PRINTER_NOT_BUSY                   = 00080H;
  3556.  
  3557. (* fbCtlHndShake *)
  3558. CONST  MODE_DTR_CONTROL                   = 001H;
  3559. CONST  MODE_DTR_HANDSHAKE                 = 002H;
  3560. CONST  MODE_CTS_HANDSHAKE                 = 008H;
  3561. CONST  MODE_DSR_HANDSHAKE                 = 010H;
  3562. CONST  MODE_DCD_HANDSHAKE                 = 020H;
  3563. CONST  MODE_DSR_SENSITIVITY               = 040H;
  3564.  
  3565. (* fbFlowReplace *)
  3566. CONST  MODE_AUTO_TRANSMIT                 = 001H;
  3567. CONST  MODE_AUTO_RECEIVE                  = 002H;
  3568. CONST  MODE_ERROR_CHAR                    = 004H;
  3569. CONST  MODE_NULL_STRIPPING                = 008H;
  3570. CONST  MODE_BREAK_CHAR                    = 010H;
  3571. CONST  MODE_RTS_CONTROL                   = 040H;
  3572. CONST  MODE_RTS_HANDSHAKE                 = 080H;
  3573. CONST  MODE_TRANSMIT_TOGGLE               = 0C0H;
  3574.  
  3575. (* fbTimeout *)
  3576. CONST  MODE_NO_WRITE_TIMEOUT              = 001H;
  3577. CONST  MODE_READ_TIMEOUT                  = 002H;
  3578. CONST  MODE_WAIT_READ_TIMEOUT             = 004H;
  3579. CONST  MODE_NOWAIT_READ_TIMEOUT           = 006H;
  3580.  
  3581. TYPE DCBINFO = RECORD        (* dcbinf *)
  3582.                 usWriteTimeout:           USHORT;
  3583.                 usReadTimeout:            USHORT;
  3584.                 fbCtlHndShake:            BYTE;
  3585.                 fbFlowReplace:            BYTE;
  3586.                 fbTimeout:                BYTE;
  3587.                 bErrorReplacementChar:    BYTE;
  3588.                 bBreakReplacementChar:    BYTE;
  3589.                 bXONChar:                 BYTE;
  3590.                 bXOFFChar:                BYTE;
  3591. END;
  3592. TYPE PDCBINFO = POINTER TO DCBINFO;
  3593.  
  3594. --#pragma pack(1)
  3595.  
  3596. TYPE TRACKLAYOUT = RECORD     (* trckl *)
  3597.                 bCommand:       BYTE;
  3598.                 usHead:         USHORT;
  3599.                 usCylinder:     USHORT;
  3600.                 usFirstSector:  USHORT;
  3601.                 cSectors:       USHORT;
  3602.                 TrackTable:     POINTER TO ARRAY[0..0] OF
  3603.                                                                     RECORD
  3604.                                                                         usSectorNumber:  USHORT;
  3605.                                                                         usSectorSize:    USHORT;
  3606.                                                                     END;
  3607. END;
  3608. TYPE PTRACKLAYOUT = POINTER TO TRACKLAYOUT;
  3609.  
  3610.  
  3611. CONST  DEVTYPE_48TPI                      = 00000H;
  3612. CONST  DEVTYPE_96TPI                      = 00001H;
  3613. CONST  DEVTYPE_35                         = 00002H;
  3614. CONST  DEVTYPE_8SD                        = 00003H;
  3615. CONST  DEVTYPE_8DD                        = 00004H;
  3616. CONST  DEVTYPE_FIXED                      = 00005H;
  3617. CONST  DEVTYPE_TAPE                       = 00006H;
  3618. CONST  DEVTYPE_UNKNOWN                    = 00007H;
  3619.  
  3620.  
  3621. --#pragma pack(1)
  3622.  
  3623. TYPE BIOSPARAMETERBLOCK = RECORD     (* bspblk *)
  3624.                 usBytesPerSector:     USHORT ;
  3625.                 bSectorsPerCluster:   BYTE   ;
  3626.                 usReservedSectors:    USHORT ;
  3627.                 cFATs:                BYTE   ;
  3628.                 cRootEntries:         USHORT ;
  3629.                 cSectors:             USHORT ;
  3630.                 bMedia:               BYTE   ;
  3631.                 usSectorsPerFAT:      USHORT ;
  3632.                 usSectorsPerTrack:    USHORT ;
  3633.                 cHeads:               USHORT ;
  3634.                 cHiddenSectors:       ULONG  ;
  3635.                 cLargeSectors:        ULONG  ;
  3636.                 abReserved:           ARRAY [0..5] OF BYTE;
  3637.                 cCylinders:           USHORT ;
  3638.                 bDeviceType:          BYTE   ;
  3639.                 fsDeviceAttr:         USHORT ;
  3640. END;
  3641. TYPE PBIOSPARAMETERBLOCK = POINTER TO BIOSPARAMETERBLOCK;
  3642.  
  3643. TYPE SCREENGROUP = RECORD    (* scrgrp *)
  3644.                 idScreenGrp:  USHORT ;
  3645.                 fTerminate:   USHORT ;
  3646. END;
  3647. TYPE PSCREENGROUP = POINTER TO SCREENGROUP;
  3648.  
  3649. TYPE FRAME = RECORD          (* frm *)
  3650.                 bCharsPerLine: BYTE ;
  3651.                 bLinesPerInch: BYTE ;
  3652. END;
  3653. TYPE PFRAME = POINTER TO FRAME;
  3654.  
  3655. TYPE KBDTYPE = RECORD        (* kbdtyp *)
  3656.                 usType:          USHORT ;
  3657.                 reserved1:       USHORT ;
  3658.                 reserved2:       USHORT ;
  3659. END;
  3660. TYPE PKBDTYPE = POINTER TO KBDTYPE;
  3661.  
  3662. TYPE LINECONTROL = RECORD    (* lnctl *)
  3663.                 bDataBits:      BYTE ;
  3664.                 bParity:        BYTE ;
  3665.                 bStopBits:      BYTE ;
  3666.                 fTransBreak:    BYTE ;
  3667. END;
  3668. TYPE PLINECONTROL = POINTER TO LINECONTROL;
  3669.  
  3670. (* MODEMSTATUS.fbModemOn, ASYNC_GETMODEMOUTPUT *)
  3671. CONST  DTR_ON                             = 001H;
  3672. CONST  RTS_ON                             = 002H;
  3673.  
  3674. (* MODEMSTATUS.fbModemOff *)
  3675. CONST  DTR_OFF                            = 0FEH;
  3676. CONST  RTS_OFF                            = 0FDH;
  3677.  
  3678. TYPE MODEMSTATUS = RECORD    (* mdmst *)
  3679.                 fbModemOn:  BYTE ;
  3680.                 fbModemOff: BYTE ;
  3681. END;
  3682. TYPE PMODEMSTATUS = POINTER TO MODEMSTATUS;
  3683.  
  3684. --#pragma pack(1)
  3685.  
  3686. TYPE TRACKFORMAT = RECORD    (* trckfmt *)
  3687.                 bCommand:        BYTE ;
  3688.                 usHead:          USHORT ;
  3689.                 usCylinder:      USHORT ;
  3690.                 usReserved:      USHORT ;
  3691.                 cSectors:        USHORT ;
  3692.                 FormatTable:     ARRAY [0..0] OF
  3693.                                                                                   RECORD
  3694.                                                                                       bCylinder:    BYTE ;
  3695.                                                                                       bHead:        BYTE ;
  3696.                                                                                       idSector:     BYTE ;
  3697.                                                                                       bBytesSector: BYTE ;
  3698.                                                                                   END;
  3699. END;
  3700.  
  3701. TYPE PTRACKFORMAT = POINTER TO TRACKFORMAT;
  3702.  
  3703. TYPE RXQUEUE = RECORD        (* rxq *)
  3704.                 cch:  USHORT ;
  3705.                 cb:   USHORT ;
  3706. END;
  3707. TYPE PRXQUEUE = POINTER TO RXQUEUE;
  3708.  
  3709. TYPE DEVICEPARAMETERBLOCK = RECORD   (* dvpblck *)
  3710.                 reserved1:        USHORT ;
  3711.                 cCylinders:       USHORT ;
  3712.                 cHeads:           USHORT ;
  3713.                 cSectorsPerTrack: USHORT ;
  3714.                 reserved2:        USHORT ;
  3715.                 reserved3:        USHORT ;
  3716.                 reserved4:        USHORT ;
  3717.                 reserved5:        USHORT ;
  3718. END;
  3719. TYPE PDEVICEPARAMETERBLOCK = POINTER TO DEVICEPARAMETERBLOCK;
  3720.  
  3721. (* The following must be packed on 2 bytes boundary *)
  3722. --#pragma pack(2)
  3723.  
  3724. TYPE PTRDRAWFUNCTION = RECORD        (* ptrdfnc *)
  3725.                 usReturnCode: USHORT ;
  3726.                 pfnDraw:      SYSTEM.ADDRESS ;
  3727.                 pchDataSeg:   PCH ;
  3728. END;
  3729. TYPE PPTRDRAWFUNCTION = POINTER TO PTRDRAWFUNCTION;
  3730.  
  3731. TYPE PTRDRAWADDRESS = RECORD         (* ptrdaddr *)
  3732.                 reserved:    USHORT ;
  3733.                 ptrdfnc:     PTRDRAWFUNCTION ;
  3734. END;
  3735. TYPE PPTRDRAWADDRESS  = POINTER TO PTRDRAWADDRESS;
  3736.  
  3737. TYPE SHIFTSTATE = RECORD     (* shftst *)
  3738.                 fsState: USHORT ;
  3739.                 fNLS:    BYTE   ;
  3740. END;
  3741. TYPE PSHIFTSTATE = POINTER TO SHIFTSTATE;
  3742.  
  3743.  
  3744.  
  3745. (* HOTKEY.fsHotKey/SHIFTSTATE.fsState *)
  3746. CONST  RIGHTSHIFT                         = 00001H;
  3747. CONST  LEFTSHIFT                          = 00002H;
  3748. CONST  CONTROL                            = 00004H;
  3749. CONST  ALT                                = 00008H;
  3750. CONST  SCROLLLOCK_ON                      = 00010H;
  3751. CONST  NUMLOCK_ON                         = 00020H;
  3752. CONST  CAPSLOCK_ON                        = 00040H;
  3753. CONST  INSERT_ON                          = 00080H;
  3754. CONST  LEFTCONTROL                        = 00100H;
  3755. CONST  LEFTALT                            = 00200H;
  3756. CONST  RIGHTCONTROL                       = 00400H;
  3757. CONST  RIGHTALT                           = 00800H;
  3758. CONST  SCROLLLOCK                         = 01000H;
  3759. CONST  NUMLOCK                            = 02000H;
  3760. CONST  CAPSLOCK                           = 04000H;
  3761. CONST  SYSREQ                             = 08000H;
  3762.  
  3763. TYPE HOTKEY = RECORD         (* htky *)
  3764.                 fsHotKey:            USHORT ;
  3765.                 uchScancodeMake:     UCHAR  ;
  3766.                 uchScancodeBreak:    UCHAR  ;
  3767.                 idHotKey:            USHORT ;
  3768. END;
  3769. TYPE PHOTKEY = POINTER TO HOTKEY;
  3770.  
  3771. TYPE MONITORPOSITION = RECORD        (* mnpos *)
  3772.                 fPosition:       USHORT ;
  3773.                 index:           USHORT ;
  3774.                 pbInBuf:         ULONG  ;
  3775.                 offOutBuf:       USHORT ;
  3776. END;
  3777. TYPE PMONITORPOSITION = POINTER TO MONITORPOSITION;
  3778.  
  3779. TYPE RATEDELAY = RECORD      (* rtdly *)
  3780.                 usDelay:      USHORT ;
  3781.                 usRate:       USHORT ;
  3782. END;
  3783. TYPE PRATEDELAY = POINTER TO RATEDELAY;
  3784.  
  3785. TYPE CODEPAGEINFO = RECORD   (* cpi *)
  3786.                 pbTransTable:  PBYTE ;
  3787.                 idCodePage:    USHORT ;
  3788.                 idTable:       USHORT ;
  3789. END;
  3790. TYPE PCODEPAGEINFO = POINTER TO CODEPAGEINFO;
  3791.  
  3792. TYPE CPID = RECORD   (* cpid *)
  3793.                 idCodePage:   USHORT ;
  3794.                 Reserved:     USHORT ;
  3795. END;
  3796. TYPE PCPID = POINTER TO CPID;
  3797.  
  3798. TYPE LDTADDRINFO = RECORD     (* ldtaddr *)
  3799.                 pulPhysAddr:   PULONG ;
  3800.                 cb:            USHORT ;
  3801. END;
  3802. TYPE PLDTADDRINFO = POINTER TO LDTADDRINFO;
  3803.  
  3804. TYPE PTRDRAWDATA = RECORD    (* ptrdd *)
  3805.                 cb:         USHORT ;
  3806.                 usConfig:   USHORT ;
  3807.                 usFlag:     USHORT ;
  3808. END;
  3809. ---#pragma pack()                           (*restore default packing *)
  3810.  
  3811. TYPE PPTRDRAWDATA = POINTER TO PTRDRAWDATA;
  3812.  
  3813. (************************** End of file ***************************************)
  3814.  
  3815. (* ------------- End of file:  .\hm\bsedev.hm ------------- *)
  3816. <* END *>
  3817.  
  3818. <* IF DEFINED(__NEWER_DEFINED_NAME) THEN *> (* it was '#if' 0 in the source text *)
  3819.    
  3820. (* ------------- Include file: .\hm\bsesub.hm ------------- *)
  3821. <* IF DEFINED(__NEWER_DEFINED_NAME) THEN *> (* it was '#if' 0 in the source text *)
  3822. (****************************** Module Header ******************************\
  3823. *
  3824. * Module Name: BSESUB.H
  3825. *
  3826. * OS/2 Base include file.
  3827. *
  3828. * Copyright (c) International Business Machines Corporation 1981, 1988-1992
  3829. *
  3830. * ===========================================================================
  3831. *
  3832. * The folowing symbols are used in this file for conditional sections.
  3833. *
  3834. * Subcomponents marked with "+" are partially included by default:
  3835. *
  3836. *   #define:                To include:
  3837. *
  3838. *   INCL_KBD                KBD
  3839. *   INCL_VIO                VIO
  3840. *   INCL_MOU                MOU
  3841. *
  3842. * ===========================================================================
  3843. *
  3844. * Comments at the end of each TYPE  line give the name tags used in
  3845. * the assembler include version of this file.
  3846. *
  3847. * The assembler include version of this file excludes lines between NOINC
  3848. * and INC comments.
  3849. *
  3850. \***************************************************************************)
  3851.  
  3852.  
  3853. <* IF DEFINED (INCL_SUB)  THEN *>
  3854.    <* NEW INCL_KBD + *>
  3855.    <* NEW INCL_VIO + *>
  3856.    <* NEW INCL_MOU + *>
  3857. <* END *>
  3858.  
  3859. <* IF DEFINED (INCL_KBD)  THEN *>
  3860.  
  3861.  
  3862.       TYPE HKBD   = SYSTEM.CARD16;
  3863.       TYPE PHKBD  = POINTER TO HKBD;
  3864.  
  3865.       PROCEDURE [APIENTRY16] KBD16REGISTER (pszModName:  PSZ ;
  3866.                                                                   pszEntryPt:  PSZ ;
  3867.                                                                   FunMask:     ULONG):  APIRET16;
  3868.  
  3869.       CONST KR_KBDCHARIN               = 000000001H;
  3870.       CONST KR_KBDPEEK                 = 000000002H;
  3871.       CONST KR_KBDFLUSHBUFFER          = 000000004H;
  3872.       CONST KR_KBDGETSTATUS            = 000000008H;
  3873.       CONST KR_KBDSETSTATUS            = 000000010H;
  3874.       CONST KR_KBDSTRINGIN             = 000000020H;
  3875.       CONST KR_KBDOPEN                 = 000000040H;
  3876.       CONST KR_KBDCLOSE                = 000000080H;
  3877.       CONST KR_KBDGETFOCUS             = 000000100H;
  3878.       CONST KR_KBDFREEFOCUS            = 000000200H;
  3879.       CONST KR_KBDGETCP                = 000000400H;
  3880.       CONST KR_KBDSETCP                = 000000800H;
  3881.       CONST KR_KBDXLATE                = 000001000H;
  3882.       CONST KR_KBDSETCUSTXT            = 000002000H;
  3883.  
  3884.       CONST IO_WAIT                  =  0;
  3885.       CONST IO_NOWAIT                =  1;
  3886.  
  3887.       PROCEDURE [APIENTRY16] KBD16DEREGISTER (): APIRET16; 
  3888.  
  3889.       (* KBDKEYINFO structure, for KbdCharIn and KbdPeek *)
  3890.       --#pragma pack(2)
  3891.  
  3892.  
  3893.       TYPE KBDKEYINFO = RECORD     (* kbci *)
  3894.             chChar:          UCHAR ;
  3895.             chScan:          UCHAR ;
  3896.             fbStatus:        UCHAR ;
  3897.             bNlsShift:       UCHAR ;
  3898.             fsState:         USHORT;
  3899.             time:            ULONG ;
  3900.       END;
  3901.       TYPE PKBDKEYINFO = POINTER TO KBDKEYINFO;
  3902.  
  3903.  
  3904.       PROCEDURE [APIENTRY16] KBD16CHARIN(pkbci:        PKBDKEYINFO ;
  3905.                                                             fWait:        USHORT ;
  3906.                                                             hkbd:         HKBD):  APIRET16;
  3907.       PROCEDURE [APIENTRY16] KBD16PEEK (pkbci:     PKBDKEYINFO ;
  3908.                                                           hkbd:      HKBD):  APIRET16;
  3909.  
  3910.       (* structure for KBD16STRINGIN() *)
  3911.  
  3912.       TYPE STRINGINBUF = RECORD    (* kbsi *)
  3913.             cb:    USHORT ;
  3914.             cchIn: USHORT ;
  3915.       END;
  3916.       TYPE PSTRINGINBUF = POINTER TO STRINGINBUF;
  3917.  
  3918.       PROCEDURE [APIENTRY16]  KBD16STRINGIN (pch:     PCH ;
  3919.                                                                     pchIn:   PSTRINGINBUF ;
  3920.                                                                     fsWait:  USHORT ;
  3921.                                                                     hkbd:    HKBD): APIRET16;
  3922.  
  3923.       PROCEDURE [APIENTRY16]  KBD16FLUSHBUFFER (hkbd: HKBD): APIRET16;
  3924.  
  3925.       (* KBDINFO.fsMask *)
  3926.  
  3927.       CONST KEYBOARD_ECHO_ON                = 00001H;
  3928.       CONST KEYBOARD_ECHO_OFF               = 00002H;
  3929.       CONST KEYBOARD_BINARY_MODE            = 00004H;
  3930.       CONST KEYBOARD_ASCII_MODE             = 00008H;
  3931.       CONST KEYBOARD_MODIFY_STATE           = 00010H;
  3932.       CONST KEYBOARD_MODIFY_INTERIM         = 00020H;
  3933.       CONST KEYBOARD_MODIFY_TURNAROUND      = 00040H;
  3934.       CONST KEYBOARD_2B_TURNAROUND          = 00080H;
  3935.       CONST KEYBOARD_SHIFT_REPORT           = 00100H;
  3936.  
  3937.    <* IF NOT DEFINED (INCL_DOSDEVIOCTL)  THEN *>
  3938.             (* KBDINFO.fsState/KBDKEYINFO.fsState/KBDTRANS.fsState *)
  3939.             CONST KBDSTF_RIGHTSHIFT               = 00001H;
  3940.             CONST KBDSTF_LEFTSHIFT                = 00002H;
  3941.             CONST KBDSTF_CONTROL                  = 00004H;
  3942.             CONST KBDSTF_ALT                      = 00008H;
  3943.             CONST KBDSTF_SCROLLLOCK_ON            = 00010H;
  3944.             CONST KBDSTF_NUMLOCK_ON               = 00020H;
  3945.             CONST KBDSTF_CAPSLOCK_ON              = 00040H;
  3946.             CONST KBDSTF_INSERT_ON                = 00080H;
  3947.             CONST KBDSTF_LEFTCONTROL              = 00100H;
  3948.             CONST KBDSTF_LEFTALT                  = 00200H;
  3949.             CONST KBDSTF_RIGHTCONTROL             = 00400H;
  3950.             CONST KBDSTF_RIGHTALT                 = 00800H;
  3951.             CONST KBDSTF_SCROLLLOCK               = 01000H;
  3952.             CONST KBDSTF_NUMLOCK                  = 02000H;
  3953.             CONST KBDSTF_CAPSLOCK                 = 04000H;
  3954.             CONST KBDSTF_SYSREQ                   = 08000H;
  3955.    <* END *>
  3956.  
  3957.       (* KBDINFO structure, for KbdSet/GetStatus *)
  3958.       TYPE KBDINFO = RECORD         (* kbst *)
  3959.             cb:                USHORT ;
  3960.             fsMask:            USHORT ;
  3961.             chTurnAround:      USHORT ;
  3962.             fsInterim:         USHORT ;
  3963.             fsState:           USHORT ;
  3964.       END;
  3965.       TYPE  PKBDINFO = POINTER TO KBDINFO;
  3966.  
  3967.  
  3968.       PROCEDURE [APIENTRY16]  KBD16SETSTATUS (pkbdinfo:   PKBDINFO ;
  3969.                                                                       hkbd:       HKBD): APIRET16;
  3970.  
  3971.       PROCEDURE [APIENTRY16]  KBD16GETSTATUS (pkbdinfo:  PKBDINFO ;
  3972.                                                                       hdbd:      HKBD):  APIRET16;
  3973.  
  3974.       PROCEDURE [APIENTRY16]  KBD16SETCP (usReserved:  USHORT ;
  3975.                                                               pidCP:       USHORT ;
  3976.                                                               hdbd:        HKBD): APIRET16;
  3977.  
  3978.       PROCEDURE [APIENTRY16]  KBD16GETCP (ulReserved:  ULONG ;
  3979.                                                               pidCP:       PUSHORT ;
  3980.                                                               hkbd:        HKBD): APIRET16;
  3981.  
  3982.       PROCEDURE [APIENTRY16]  KBD16OPEN (phkbd: PHKBD): APIRET16;
  3983.  
  3984.       PROCEDURE [APIENTRY16]  KBD16CLOSE (hkbd: HKBD ): APIRET16;
  3985.  
  3986.       PROCEDURE [APIENTRY16]  KBD16GETFOCUS (fWait: USHORT ;
  3987.                                                                     hkbd:  HKBD ): APIRET16;
  3988.  
  3989.       PROCEDURE [APIENTRY16]  KBD16FREEFOCUS (hkbd: HKBD ): APIRET16;
  3990.  
  3991.       PROCEDURE [APIENTRY16]  KBD16SYNCH (fsWait: USHORT ): APIRET16;
  3992.  
  3993.       PROCEDURE [APIENTRY16]  KBD16SETFGND(): APIRET16;
  3994.  
  3995.       (* structure for KbdGetHWID() *)
  3996.       TYPE KBDHWID = RECORD        (* kbhw *)
  3997.             cb:          USHORT ;
  3998.             idKbd:       USHORT ;
  3999.             usReserved1: USHORT ;
  4000.             usReserved2: USHORT ;
  4001.       END;
  4002.       TYPE  PKBDHWID = POINTER TO KBDHWID;
  4003.  
  4004.       PROCEDURE [APIENTRY16]  KBD16GETHWID (pkbdhwid:     PKBDHWID ;
  4005.                                                                   hkbd: HKBD ): APIRET16;
  4006.  
  4007.       PROCEDURE [APIENTRY16]  KBD16SETHWID (pkbdhwid:     PKBDHWID ;
  4008.                                                                           hkbd:     HKBD): APIRET16;
  4009.  
  4010.  
  4011.       (* KBDTRANS.fbStatus *)
  4012.  
  4013.       CONST KBDTRF_SHIFT_KEY_IN             = 001H;
  4014.       CONST KBDTRF_CONVERSION_REQUEST       = 020H;
  4015.       CONST KBDTRF_FINAL_CHAR_IN            = 040H;
  4016.       CONST KBDTRF_INTERIM_CHAR_IN          = 080H;
  4017.  
  4018.       (* structure for KbdXlate() *)
  4019.       --#pragma pack(2)
  4020.  
  4021.       TYPE  KBDTRANS = RECORD       (* kbxl *)
  4022.             chChar:         UCHAR ;
  4023.             chScan:         UCHAR ;
  4024.             fbStatus:       UCHAR ;
  4025.             bNlsShift:      UCHAR ;
  4026.             fsState:        USHORT;
  4027.             time:           ULONG ;
  4028.             fsDD:           USHORT;
  4029.             fsXlate:        USHORT;
  4030.             fsShift:        USHORT;
  4031.             sZero:          USHORT;
  4032.       END;
  4033.       TYPE  PKBDTRANS = POINTER TO KBDTRANS;
  4034.  
  4035.       PROCEDURE [APIENTRY16]  KBD16XLATE (pkbdtrans:     PKBDTRANS ;
  4036.                                                               hkbd:          HKBD): APIRET16;
  4037.  
  4038.       PROCEDURE [APIENTRY16]  KBD16SETCUSTXT (usCodePage: PUSHORT ;
  4039.                                                                       hkbd:       HKBD): APIRET16;
  4040.  
  4041.  
  4042.       CONST Kbd16CharIn      =  KBD16CHARIN;
  4043.       CONST Kbd16Close       =  KBD16CLOSE;
  4044.       CONST Kbd16DeRegister  =  KBD16DEREGISTER;
  4045.       CONST Kbd16FlushBuffer =  KBD16FLUSHBUFFER;
  4046.       CONST Kbd16FreeFocus   =  KBD16FREEFOCUS;
  4047.       CONST Kbd16GetCp       =  KBD16GETCP;
  4048.       CONST Kbd16GetFocus    =  KBD16GETFOCUS;
  4049.       CONST Kbd16GetHWID     =  KBD16GETHWID;
  4050.       CONST Kbd16GetStatus   =  KBD16GETSTATUS;
  4051.       CONST Kbd16Open        =  KBD16OPEN;
  4052.       CONST Kbd16Peek        =  KBD16PEEK;
  4053.       CONST Kbd16Register    =  KBD16REGISTER;
  4054.       CONST Kbd16SetCp       =  KBD16SETCP;
  4055.       CONST Kbd16SetCustXt   =  KBD16SETCUSTXT;
  4056.       CONST Kbd16SetFgnd     =  KBD16SETFGND;
  4057.       CONST Kbd16SetHWID     =  KBD16SETHWID;
  4058.       CONST Kbd16SetStatus   =  KBD16SETSTATUS;
  4059.       CONST Kbd16StringIn    =  KBD16STRINGIN;
  4060.       CONST Kbd16Synch       =  KBD16SYNCH;
  4061.       CONST Kbd16Xlate       =  KBD16XLATE;
  4062.  
  4063.       CONST KbdCharIn        =  KBD16CHARIN;
  4064.       CONST KbdClose         =  KBD16CLOSE;
  4065.       CONST KbdDeRegister    =  KBD16DEREGISTER;
  4066.       CONST KbdFlushBuffer   =  KBD16FLUSHBUFFER;
  4067.       CONST KbdFreeFocus     =  KBD16FREEFOCUS;
  4068.       CONST KbdGetCp         =  KBD16GETCP;
  4069.       CONST KbdGetFocus      =  KBD16GETFOCUS;
  4070.       CONST KbdGetHWID       =  KBD16GETHWID;
  4071.       CONST KbdGetStatus     =  KBD16GETSTATUS;
  4072.       CONST KbdOpen          =  KBD16OPEN;
  4073.       CONST KbdPeek          =  KBD16PEEK;
  4074.       CONST KbdRegister      =  KBD16REGISTER;
  4075.       CONST KbdSetCp         =  KBD16SETCP;
  4076.       CONST KbdSetCustXt     =  KBD16SETCUSTXT;
  4077.       CONST KbdSetFgnd       =  KBD16SETFGND;
  4078.       CONST KbdSetHWID       =  KBD16SETHWID;
  4079.       CONST KbdSetStatus     =  KBD16SETSTATUS;
  4080.       CONST KbdStringIn      =  KBD16STRINGIN;
  4081.       CONST KbdSynch         =  KBD16SYNCH;
  4082.       CONST KbdXlate         =  KBD16XLATE;
  4083. <* END *>
  4084.  
  4085. <* IF DEFINED (INCL_VIO)  THEN *>
  4086.  
  4087.       TYPE  HVIO  = SYSTEM.CARD16;
  4088.       TYPE  PHVIO = POINTER TO HVIO;
  4089.  
  4090.       PROCEDURE [APIENTRY16]  VIO16REGISTER (pszModName:       PSZ ;
  4091.                                                                     pszEntryName:     PSZ ;
  4092.                                                                     flFun1:           ULONG ;
  4093.                                                                     flFun2:           ULONG): APIRET16;
  4094.  
  4095.       PROCEDURE [APIENTRY16]  VioGlobalReg(pszModName:       PSZ ;
  4096.                                                                     pszEntryName:     PSZ ;
  4097.                                                                     flFun1:           ULONG ;
  4098.                                                                     flFun2:           ULONG ;
  4099.                                                                     usReturn:         USHORT): APIRET16;
  4100.  
  4101.       (* first parameter registration constants   *)
  4102.       CONST VR_VIOGETCURPOS            = 000000001H;
  4103.       CONST VR_VIOGETCURTYPE           = 000000002H;
  4104.       CONST VR_VIOGETMODE              = 000000004H;
  4105.       CONST VR_VIOGETBUF               = 000000008H;
  4106.       CONST VR_VIOGETPHYSBUF           = 000000010H;
  4107.       CONST VR_VIOSETCURPOS            = 000000020H;
  4108.       CONST VR_VIOSETCURTYPE           = 000000040H;
  4109.       CONST VR_VIOSETMODE              = 000000080H;
  4110.       CONST VR_VIOSHOWBUF              = 000000100H;
  4111.       CONST VR_VIOREADCHARSTR          = 000000200H;
  4112.       CONST VR_VIOREADCELLSTR          = 000000400H;
  4113.       CONST VR_VIOWRTNCHAR             = 000000800H;
  4114.       CONST VR_VIOWRTNATTR             = 000001000H;
  4115.       CONST VR_VIOWRTNCELL             = 000002000H;
  4116.       CONST VR_VIOWRTTTY               = 000004000H;
  4117.       CONST VR_VIOWRTCHARSTR           = 000008000H;
  4118.  
  4119.       CONST VR_VIOWRTCHARSTRATT        = 000010000H;
  4120.       CONST VR_VIOWRTCELLSTR           = 000020000H;
  4121.       CONST VR_VIOSCROLLUP             = 000040000H;
  4122.       CONST VR_VIOSCROLLDN             = 000080000H;
  4123.       CONST VR_VIOSCROLLLF             = 000100000H;
  4124.       CONST VR_VIOSCROLLRT             = 000200000H;
  4125.       CONST VR_VIOSETANSI              = 000400000H;
  4126.       CONST VR_VIOGETANSI              = 000800000H;
  4127.       CONST VR_VIOPRTSC                = 001000000H;
  4128.       CONST VR_VIOSCRLOCK              = 002000000H;
  4129.       CONST VR_VIOSCRUNLOCK            = 004000000H;
  4130.       CONST VR_VIOSAVREDRAWWAIT        = 008000000H;
  4131.       CONST VR_VIOSAVREDRAWUNDO        = 010000000H;
  4132.       CONST VR_VIOPOPUP                = 020000000H;
  4133.       CONST VR_VIOENDPOPUP             = 040000000H;
  4134.       CONST VR_VIOPRTSCTOGGLE          = 080000000H;
  4135.  
  4136.       (* second parameter registration constants  *)
  4137.       CONST VR_VIOMODEWAIT             = 000000001H;
  4138.       CONST VR_VIOMODEUNDO             = 000000002H;
  4139.       CONST VR_VIOGETFONT              = 000000004H;
  4140.       CONST VR_VIOGETCONFIG            = 000000008H;
  4141.       CONST VR_VIOSETCP                = 000000010H;
  4142.       CONST VR_VIOGETCP                = 000000020H;
  4143.       CONST VR_VIOSETFONT              = 000000040H;
  4144.       CONST VR_VIOGETSTATE             = 000000080H;
  4145.       CONST VR_VIOSETSTATE             = 000000100H;
  4146.  
  4147.       PROCEDURE [APIENTRY16]  VIO16DEREGISTER (): APIRET16;
  4148.  
  4149.       PROCEDURE [APIENTRY16]  VIO16GETBUF (pLVB:    PULONG ;
  4150.                                                                 pcbLVB:  PUSHORT ;
  4151.                                                                 hvio:    HVIO): APIRET16;
  4152.  
  4153.       PROCEDURE [APIENTRY16]  VIO16GETCURPOS (pusRow:      PUSHORT;
  4154.                                                                       pusColumn:   PUSHORT;
  4155.                                                                       hvio:        HVIO):  APIRET16;
  4156.  
  4157.       PROCEDURE [APIENTRY16]  VIO16SETCURPOS (usRow:     USHORT ;
  4158.                                                                       usColumn:  USHORT ;
  4159.                                                                       hvio:      HVIO): APIRET16;
  4160.  
  4161.       (* structure for VioSet/GetCurType() *)
  4162.       TYPE VIOCURSORINFO = RECORD  (* vioci *)
  4163.             yStart:  USHORT   ;
  4164.             cEnd:    USHORT   ;
  4165.             cx:      USHORT   ;
  4166.             attr:    USHORT   ;
  4167.       END;
  4168.  
  4169.       TYPE  PVIOCURSORINFO = POINTER TO VIOCURSORINFO;
  4170.  
  4171.       PROCEDURE [APIENTRY16]  VIO16GETCURTYPE (pvioCursorInfo:  PVIOCURSORINFO ;
  4172.                                                                         hvio:            HVIO): APIRET16;
  4173.  
  4174.       PROCEDURE [APIENTRY16]  VIO16SETCURTYPE (pvioCursorInfo:  PVIOCURSORINFO ;
  4175.                                                                         hvio:            HVIO): APIRET16;
  4176.  
  4177.  
  4178.       (* VIOMODEINFO.color constants *)
  4179.  
  4180.       CONST COLORS_2        = 00001H;
  4181.       CONST COLORS_4        = 00002H;
  4182.       CONST COLORS_16       = 00004H;
  4183.  
  4184.       (* structure for VioSet/GetMode() *)
  4185.       --#pragma pack(1)
  4186.  
  4187.  
  4188.       TYPE VIOMODEINFO = RECORD    (* viomi *)
  4189.             cb:             USHORT ;
  4190.             fbType:         UCHAR  ;
  4191.             color:          UCHAR  ;
  4192.             col:            USHORT ;
  4193.             row:            USHORT ;
  4194.             hres:           USHORT ;
  4195.             vres:           USHORT ;
  4196.             fmt_ID:         UCHAR  ;
  4197.             attrib:         UCHAR  ;
  4198.             buf_addr:       ULONG  ;
  4199.             buf_length:     ULONG  ;
  4200.             full_length:    ULONG  ;
  4201.             partial_length: ULONG  ;
  4202.             ext_data_addr:  PCH    ;
  4203.       END;
  4204.       TYPE  PVIOMODEINFO = POINTER TO VIOMODEINFO;
  4205.  
  4206.       CONST VGMT_OTHER                 = 001H;
  4207.       CONST VGMT_GRAPHICS              = 002H;
  4208.       CONST VGMT_DISABLEBURST          = 004H;
  4209.  
  4210.       PROCEDURE [APIENTRY16]  VIO16GETMODE (pvioModeInfo:   PVIOMODEINFO ;
  4211.                                                                   hvio:           HVIO): APIRET16;
  4212.  
  4213.       PROCEDURE [APIENTRY16]  VIO16SETMODE (pvioModeInfo: PVIOMODEINFO ;
  4214.                                                                   hvio:         HVIO): APIRET16;
  4215.  
  4216.       (* structure for VIO16GETPHYSBUF() *)
  4217.       TYPE VIOPHYSBUF = RECORD      (* viopb *)
  4218.             pBuf: PBYTE    ;
  4219.             cb:   ULONG    ;
  4220.             asel: ARRAY [0..0] OF SEL;
  4221.       END;
  4222.  
  4223.       TYPE  PVIOPHYSBUF  = POINTER TO VIOPHYSBUF;
  4224.  
  4225.       PROCEDURE [APIENTRY16]  VIO16GETPHYSBUF (pvioPhysBuf:    PVIOPHYSBUF ;
  4226.                                                                         usReserved:     USHORT): APIRET16;
  4227.  
  4228.       PROCEDURE [APIENTRY16]  VIO16READCELLSTR (pchCellStr:    PCH ;
  4229.                                                                           pcb:           PUSHORT ;
  4230.                                                                           usRow:         USHORT ;
  4231.                                                                           usColumn:      USHORT ;
  4232.                                                                           hvio:          HVIO): APIRET16;
  4233.  
  4234.       PROCEDURE [APIENTRY16]  VIO16READCHARSTR    (pchCellStr: PCH ;
  4235.                                                                                 pcb:        PUSHORT ;
  4236.                                                                                 usRow:      USHORT ;
  4237.                                                                                 usColumn:   USHORT ;
  4238.                                                                                 hvio:       HVIO): APIRET16;
  4239.  
  4240.       PROCEDURE [APIENTRY16]  VIO16WRTCELLSTR    (pchCellStr:  PCH ;
  4241.                                                                               cb:          USHORT ;
  4242.                                                                               usRow:       USHORT ;
  4243.                                                                               usColumn:    USHORT ;
  4244.                                                                               hvio:        HVIO): APIRET16;
  4245.  
  4246.       PROCEDURE [APIENTRY16] VIO16WRTCHARSTR   (pchStr:      PCH ;
  4247.                                                                               cb:          USHORT ;
  4248.                                                                               usRow:       USHORT ;
  4249.                                                                               usColumn:    USHORT ;
  4250.                                                                               hvio:        HVIO): APIRET16;
  4251.  
  4252.       PROCEDURE [APIENTRY16]  VIO16SCROLLDN  (usTopRow:   USHORT ;
  4253.                                                                           usLeftCol:  USHORT ;
  4254.                                                                           usBotRow:   USHORT ;
  4255.                                                                           usRightCol: USHORT ;
  4256.                                                                           cbLines:    USHORT ;
  4257.                                                                           pCell:      PBYTE ;
  4258.                                                                           hvio:       HVIO): APIRET16;
  4259.  
  4260.       PROCEDURE [APIENTRY16]  VIO16SCROLLUP  (usTopRow:   USHORT ;
  4261.                                                                           usLeftCol:  USHORT ;
  4262.                                                                           usBotRow:   USHORT ;
  4263.                                                                           usRightCol: USHORT ;
  4264.                                                                           cbLines:    USHORT ;
  4265.                                                                           pCell:      PBYTE ;
  4266.                                                                           hvio:       HVIO): APIRET16;
  4267.  
  4268.       PROCEDURE [APIENTRY16]  VIO16SCROLLLF  (usTopRow:   USHORT ;
  4269.                                                                           usLeftCol:  USHORT ;
  4270.                                                                           usBotRow:   USHORT ;
  4271.                                                                           usRightCol: USHORT ;
  4272.                                                                           cbCol:      USHORT ;
  4273.                                                                           pCell:      PBYTE ;
  4274.                                                                           hvio:       HVIO): APIRET16;
  4275.  
  4276.       PROCEDURE [APIENTRY16]  VIO16SCROLLRT  (usTopRow:   USHORT ;
  4277.                                                                           usLeftCol:  USHORT ;
  4278.                                                                           usBotRow:   USHORT ;
  4279.                                                                           usRightCol: USHORT ;
  4280.                                                                           cbCol:      USHORT ;
  4281.                                                                           pCell:      PBYTE ;
  4282.                                                                           hvio:       HVIO): APIRET16;
  4283.  
  4284.       PROCEDURE [APIENTRY16]  VIO16WRTNATTR ( pAttr:      PBYTE ;
  4285.                                                                           cb:         USHORT ;
  4286.                                                                           usRow:      USHORT ;
  4287.                                                                           usColumn:   USHORT ;
  4288.                                                                           hvio:       HVIO): APIRET16;
  4289.  
  4290.       PROCEDURE [APIENTRY16]  VIO16WRTNCELL (   pCell:      PBYTE ;
  4291.                                                                           cb:         USHORT ;
  4292.                                                                           usRow:      USHORT ;
  4293.                                                                           usColumn:   USHORT ;
  4294.                                                                           hvio:       HVIO): APIRET16;
  4295.  
  4296.       PROCEDURE [APIENTRY16]  VIO16WRTNCHAR (   pchChar:       PCH ;
  4297.                                                                           cb:            USHORT ;
  4298.                                                                           usRow:         USHORT ;
  4299.                                                                           usColumn:      USHORT ;
  4300.                                                                           hvio:          HVIO): APIRET16;
  4301.  
  4302.       PROCEDURE [APIENTRY16]  VIO16WRTTTY (   pch:     PCH ;
  4303.                                                                       cb:      USHORT ;
  4304.                                                                       hvio:    HVIO): APIRET16;
  4305.  
  4306.       PROCEDURE [APIENTRY16]  VIO16WRTCHARSTRATT (   pch:      PCH ;
  4307.                                                                                     cb:       USHORT ;
  4308.                                                                                     usRow:    USHORT ;
  4309.                                                                                     usColumn: USHORT ;
  4310.                                                                                     pAttr:    PBYTE ;
  4311.                                                                                     hvio:     HVIO): APIRET16;
  4312.  
  4313.       CONST VCC_SBCSCHAR             =  0;
  4314.       CONST VCC_DBCSFULLCHAR         =  1;
  4315.       CONST VCC_DBCS1STHALF          =  2;
  4316.       CONST VCC_DBCS2NDHALF          =  3;
  4317.  
  4318.       PROCEDURE [APIENTRY16]  VIO16CHECKCHARTYPE (   pType:         PUSHORT ;
  4319.                                                                                     usRow:         USHORT ;
  4320.                                                                                     usColumn:      USHORT ;
  4321.                                                                                     hvio:          HVIO): APIRET16;
  4322.  
  4323.       PROCEDURE [APIENTRY16]  VIO16SHOWBUF (   offLVB:  USHORT ;
  4324.                                                                         cb:      USHORT ;
  4325.                                                                         hvio:    HVIO): APIRET16;
  4326.  
  4327.  
  4328.       CONST ANSI_ON                   = 1;
  4329.       CONST ANSI_OFF                  = 0;
  4330.  
  4331.       PROCEDURE [APIENTRY16]  VIO16SETANSI (   fAnsi:   USHORT ;
  4332.                                                                         hvio:    HVIO): APIRET16;
  4333.  
  4334.       PROCEDURE [APIENTRY16]  VIO16GETANSI (   pfAnsi:     PUSHORT ;
  4335.                                                                         hvio:       HVIO): APIRET16;
  4336.  
  4337.       PROCEDURE [APIENTRY16]  VIO16PRTSC ( hvio:       HVIO): APIRET16;
  4338.  
  4339.       PROCEDURE [APIENTRY16]  VIO16PRTSCTOGGLE ( hvio: HVIO): APIRET16;
  4340.  
  4341.       CONST VSRWI_SAVEANDREDRAW       = 0;
  4342.       CONST VSRWI_REDRAW              = 1;
  4343.  
  4344.       CONST VSRWN_SAVE                = 0;
  4345.       CONST VSRWN_REDRAW              = 1;
  4346.  
  4347.       CONST UNDOI_GETOWNER            = 0;
  4348.       CONST UNDOI_RELEASEOWNER        = 1;
  4349.  
  4350.       CONST UNDOK_ERRORCODE           = 0;
  4351.       CONST UNDOK_TERMINATE           = 1;
  4352.  
  4353.       PROCEDURE [APIENTRY16]  VIO16REDRAWSIZE ( pcbRedraw:   PULONG): APIRET16;
  4354.  
  4355.       PROCEDURE [APIENTRY16]  VIO16SAVREDRAWWAIT (   usRedrawInd:    USHORT ;
  4356.                                                                                     pNotifyType:    PUSHORT ;
  4357.                                                                                     usReserved:     USHORT): APIRET16;
  4358.  
  4359.       PROCEDURE [APIENTRY16]  VIO16SAVREDRAWUNDO (   usOwnerInd:    USHORT ;
  4360.                                                                                     usKillInd:     USHORT ;
  4361.                                                                                     usReserved:    USHORT): APIRET16;
  4362.  
  4363.       CONST VMWR_POPUP                = 0;
  4364.       CONST VMWN_POPUP                = 0;
  4365.  
  4366.       PROCEDURE [APIENTRY16]  VIO16MODEWAIT (   usReqType:     USHORT ;
  4367.                                                                           pNotifyType:   PUSHORT ;
  4368.                                                                           usReserved:    USHORT): APIRET16;
  4369.  
  4370.       PROCEDURE [APIENTRY16]  VIO16MODEUNDO (   usOwnerInd: USHORT ;
  4371.                                                                           usKillInd:  USHORT ;
  4372.                                                                           usReserved: USHORT): APIRET16;
  4373.  
  4374.       CONST LOCKIO_NOWAIT            =  0;
  4375.       CONST LOCKIO_WAIT              =  1;
  4376.  
  4377.       CONST LOCK_SUCCESS             =  0;
  4378.       CONST LOCK_FAIL                =  1;
  4379.  
  4380.       PROCEDURE [APIENTRY16]  VIO16SCRLOCK (   fWait:       USHORT ;
  4381.                                                                         pfNotLocked: PUCHAR ;
  4382.                                                                         hvio:        HVIO): APIRET16;
  4383.  
  4384.       PROCEDURE [APIENTRY16]  VIO16SCRUNLOCK ( hvio:   HVIO): APIRET16;
  4385.  
  4386.       CONST VP_NOWAIT                  = 00000H;
  4387.       CONST VP_WAIT                    = 00001H;
  4388.       CONST VP_OPAQUE                  = 00000H;
  4389.       CONST VP_TRANSPARENT             = 00002H;
  4390.  
  4391.       PROCEDURE [APIENTRY16]  VIO16POPUP (   pfWait:       PUSHORT ;
  4392.                                                                     hvio:         HVIO): APIRET16;
  4393.  
  4394.       PROCEDURE [APIENTRY16]  VIO16ENDPOPUP ( hvio:    HVIO): APIRET16;
  4395.  
  4396.  
  4397.       (* VIOCONFIGINFO.adapter constants *)
  4398.  
  4399.       CONST DISPLAY_MONOCHROME      = 00000H;
  4400.       CONST DISPLAY_CGA             = 00001H;
  4401.       CONST DISPLAY_EGA             = 00002H;
  4402.       CONST DISPLAY_VGA             = 00003H;
  4403.       CONST DISPLAY_8514A           = 00007H;
  4404.       CONST DISPLAY_IMAGEADAPTER    = 00008H;
  4405.       CONST DISPLAY_XGA             = 00009H;
  4406.  
  4407.       (* VIOCONFIGINFO.display constants *)
  4408.  
  4409.       CONST MONITOR_MONOCHROME      = 00000H;
  4410.       CONST MONITOR_COLOR           = 00001H;
  4411.       CONST MONITOR_ENHANCED        = 00002H;
  4412.       CONST MONITOR_8503            = 00003H;
  4413.       CONST MONITOR_851X_COLOR      = 00004H;
  4414.       CONST MONITOR_8514            = 00009H;
  4415.       CONST MONITOR_FLATPANEL       = 0000AH;
  4416.       CONST MONITOR_8507_8604       = 0000BH;
  4417.       CONST MONITOR_8515            = 0000CH;
  4418.       CONST MONITOR_9515            = 0000FH;
  4419.       CONST MONITOR_9517            = 00011H;
  4420.       CONST MONITOR_9518            = 00012H;
  4421.  
  4422.       (* structure for VioGetConfig() *)
  4423.       --#pragma pack(2)
  4424.  
  4425.       TYPE  VIOCONFIGINFO = RECORD  (* vioin *)
  4426.             cb:               USHORT  ;
  4427.             adapter:          USHORT  ;
  4428.             display:          USHORT  ;
  4429.             cbMemory:         ULONG   ;
  4430.             Configuration:    USHORT  ;
  4431.             VDHVersion:       USHORT  ;
  4432.             Flags:            USHORT  ;
  4433.             HWBufferSize:     ULONG   ;
  4434.             FullSaveSize:     ULONG   ;
  4435.             PartSaveSize:     ULONG   ;
  4436.             EMAdaptersOFF:    USHORT  ;
  4437.             EMDisplaysOFF:    USHORT  ;
  4438.       END;
  4439.  
  4440.       TYPE  PVIOCONFIGINFO = POINTER TO VIOCONFIGINFO;
  4441.  
  4442.  
  4443.       CONST VIO_CONFIG_CURRENT       =  0;
  4444.       CONST VIO_CONFIG_PRIMARY       =  1;
  4445.       CONST VIO_CONFIG_SECONDARY     =  2;
  4446.  
  4447.       PROCEDURE [APIENTRY16]  VIO16GETCONFIG (   usConfigId:  USHORT ;
  4448.                                                                             pvioin:      PVIOCONFIGINFO ;
  4449.                                                                             hvio:        HVIO): APIRET16;
  4450.  
  4451.       (* structure for VioGet/SetFont() *)
  4452.       TYPE VIOFONTINFO = RECORD    (* viofi *)
  4453.             cb:       USHORT  ;
  4454.             type:     USHORT  ;
  4455.             cxCell:   USHORT  ;
  4456.             cyCell:   USHORT  ;
  4457.             pbData:   PVOID16 ;
  4458.             cbData:   USHORT  ;
  4459.       END;
  4460.       TYPE  PVIOFONTINFO = POINTER TO VIOFONTINFO;
  4461.  
  4462.       CONST VGFI_GETCURFONT          =  0;
  4463.       CONST VGFI_GETROMFONT          =  1;
  4464.  
  4465.       PROCEDURE [APIENTRY16]  VIO16GETFONT (   pviofi:        PVIOFONTINFO ;
  4466.                                                                         hvio:          HVIO): APIRET16;
  4467.  
  4468.       PROCEDURE [APIENTRY16]  VIO16SETFONT (    pviofi:       PVIOFONTINFO ;
  4469.                                                                           hvio:         HVIO): APIRET16;
  4470.  
  4471.       PROCEDURE [APIENTRY16]  VIO16GETCP (   usReserved:   USHORT ;
  4472.                                                                     pIdCodePage:  PUSHORT ;
  4473.                                                                     hvio:         HVIO): APIRET16;
  4474.  
  4475.       PROCEDURE [APIENTRY16]  VIO16SETCP (   usReserved:    USHORT ;
  4476.                                                                     idCodePage:    USHORT ;
  4477.                                                                     hvio:          HVIO): APIRET16;
  4478.  
  4479.       TYPE VIOPALSTATE = RECORD    (* viopal *)
  4480.             cb:       USHORT  ;
  4481.             type:     USHORT  ;
  4482.             iFirst:   USHORT  ;
  4483.             acolor:   ARRAY [0..0] OF USHORT;
  4484.       END;
  4485.       TYPE  PVIOPALSTATE = POINTER TO VIOPALSTATE;
  4486.  
  4487.       TYPE VIOOVERSCAN = RECORD     (* vioos *)
  4488.             cb:       USHORT  ;
  4489.             type:     USHORT  ;
  4490.             color:    USHORT  ;
  4491.       END;
  4492.       TYPE  PVIOOVERSCAN = POINTER TO VIOOVERSCAN;
  4493.  
  4494.       TYPE VIOINTENSITY = RECORD   (* vioint *)
  4495.             cb:    USHORT  ;
  4496.             type:  USHORT  ;
  4497.             fs:    USHORT  ;
  4498.       END;
  4499.       TYPE  PVIOINTENSITY = POINTER TO VIOINTENSITY;
  4500.  
  4501.       TYPE VIOCOLORREG = RECORD   (* viocreg *)
  4502.             cb:               USHORT  ;
  4503.             type:             USHORT  ;
  4504.             firstcolorreg:    USHORT  ;
  4505.             numcolorregs:     USHORT  ;
  4506.             colorregaddr:     PCH;
  4507.       END;
  4508.       TYPE  PVIOCOLORREG = POINTER TO VIOCOLORREG;
  4509.  
  4510.       TYPE VIOSETULINELOC = RECORD   (* viouline *)
  4511.             cb:       USHORT  ;
  4512.             type:     USHORT  ;
  4513.             scanline: USHORT  ;
  4514.       END;
  4515.       TYPE  PVIOSETULINELOC = POINTER TO VIOSETULINELOC;
  4516.  
  4517.       TYPE VIOSETTARGET = RECORD   (* viosett *)
  4518.             cb:               USHORT  ;
  4519.             type:             USHORT  ;
  4520.             defaultalgorithm: USHORT  ;
  4521.       END;
  4522.       TYPE  PVIOSETTARGET = POINTER TO VIOSETTARGET;
  4523.  
  4524.       PROCEDURE [APIENTRY16]  VIO16GETSTATE (   pState:      PVOID ;
  4525.                                                                           hvio:        HVIO): APIRET16;
  4526.       PROCEDURE [APIENTRY16]  VIO16SETSTATE (   pState:      PVOID ;
  4527.                                                                           hvio:        HVIO): APIRET16;
  4528.  
  4529.  
  4530.       CONST VioCheckCharType      =  VIO16CHECKCHARTYPE;
  4531.       CONST VioDeRegister         =  VIO16DEREGISTER;
  4532.       CONST VioEndPopUp           =  VIO16ENDPOPUP;
  4533.       CONST VioGetAnsi            =  VIO16GETANSI;
  4534.       CONST VioGetBuf             =  VIO16GETBUF;
  4535.       CONST VioGetConfig          =  VIO16GETCONFIG;
  4536.       CONST VioGetCp              =  VIO16GETCP;
  4537.       CONST VioGetCurPos          =  VIO16GETCURPOS;
  4538.       CONST VioGetCurType         =  VIO16GETCURTYPE;
  4539.       CONST VioGetFont            =  VIO16GETFONT;
  4540.       CONST VioGetMode            =  VIO16GETMODE;
  4541.       CONST VioGetPhysBuf         =  VIO16GETPHYSBUF;
  4542.       CONST VioGetState           =  VIO16GETSTATE;
  4543.       CONST VioModeUndo           =  VIO16MODEUNDO;
  4544.       CONST VioModeWait           =  VIO16MODEWAIT;
  4545.       CONST VioPopUp              =  VIO16POPUP;
  4546.       CONST VioPrtSc              =  VIO16PRTSC;
  4547.       CONST VioPrtScToggle        =  VIO16PRTSCTOGGLE;
  4548.       CONST VioReadCellStr        =  VIO16READCELLSTR;
  4549.       CONST VioReadCharStr        =  VIO16READCHARSTR;
  4550.       CONST VioRedrawSize         =  VIO16REDRAWSIZE;
  4551.       CONST VioRegister           =  VIO16REGISTER;
  4552.       CONST VioSavRedrawUndo      =  VIO16SAVREDRAWUNDO;
  4553.       CONST VioSavRedrawWait      =  VIO16SAVREDRAWWAIT;
  4554.       CONST VioScrLock            =  VIO16SCRLOCK;
  4555.       CONST VioScrUnLock          =  VIO16SCRUNLOCK;
  4556.       CONST VioScrollDn           =  VIO16SCROLLDN;
  4557.       CONST VioScrollLf           =  VIO16SCROLLLF;
  4558.       CONST VioScrollRt           =  VIO16SCROLLRT;
  4559.       CONST VioScrollUp           =  VIO16SCROLLUP;
  4560.       CONST VioSetAnsi            =  VIO16SETANSI;
  4561.       CONST VioSetCp              =  VIO16SETCP;
  4562.       CONST VioSetCurPos          =  VIO16SETCURPOS;
  4563.       CONST VioSetCurType         =  VIO16SETCURTYPE;
  4564.       CONST VioSetFont            =  VIO16SETFONT;
  4565.       CONST VioSetMode            =  VIO16SETMODE;
  4566.       CONST VioSetState           =  VIO16SETSTATE;
  4567.       CONST VioShowBuf            =  VIO16SHOWBUF;
  4568.       CONST VioWrtCellStr         =  VIO16WRTCELLSTR;
  4569.       CONST VioWrtCharStr         =  VIO16WRTCHARSTR;
  4570.       CONST VioWrtCharStrAtt      =  VIO16WRTCHARSTRATT;
  4571.       CONST VioWrtNAttr           =  VIO16WRTNATTR;
  4572.       CONST VioWrtNCell           =  VIO16WRTNCELL;
  4573.       CONST VioWrtNChar           =  VIO16WRTNCHAR;
  4574.       CONST VioWrtTTY             =  VIO16WRTTTY;
  4575.  
  4576.       CONST Vio16CheckCharType    =  VIO16CHECKCHARTYPE;
  4577.       CONST Vio16DeRegister       =  VIO16DEREGISTER;
  4578.       CONST Vio16EndPopUp         =  VIO16ENDPOPUP;
  4579.       CONST Vio16GetAnsi          =  VIO16GETANSI;
  4580.       CONST Vio16GetBuf           =  VIO16GETBUF;
  4581.       CONST Vio16GetConfig        =  VIO16GETCONFIG;
  4582.       CONST Vio16GetCp            =  VIO16GETCP;
  4583.       CONST Vio16GetCurPos        =  VIO16GETCURPOS;
  4584.       CONST Vio16GetCurType       =  VIO16GETCURTYPE;
  4585.       CONST Vio16GetFont          =  VIO16GETFONT;
  4586.       CONST Vio16GetMode          =  VIO16GETMODE;
  4587.       CONST Vio16GetPhysBuf       =  VIO16GETPHYSBUF;
  4588.       CONST Vio16GetState         =  VIO16GETSTATE;
  4589.       CONST Vio16ModeUndo         =  VIO16MODEUNDO;
  4590.       CONST Vio16ModeWait         =  VIO16MODEWAIT;
  4591.       CONST Vio16PopUp            =  VIO16POPUP;
  4592.       CONST Vio16PrtSc            =  VIO16PRTSC;
  4593.       CONST Vio16PrtScToggle      =  VIO16PRTSCTOGGLE;
  4594.       CONST Vio16ReadCellStr      =  VIO16READCELLSTR;
  4595.       CONST Vio16ReadCharStr      =  VIO16READCHARSTR;
  4596.       CONST Vio16RedrawSize       =  VIO16REDRAWSIZE;
  4597.       CONST Vio16Register         =  VIO16REGISTER;
  4598.       CONST Vio16SavRedrawUndo    =  VIO16SAVREDRAWUNDO;
  4599.       CONST Vio16SavRedrawWait    =  VIO16SAVREDRAWWAIT;
  4600.       CONST Vio16ScrLock          =  VIO16SCRLOCK;
  4601.       CONST Vio16ScrUnLock        =  VIO16SCRUNLOCK;
  4602.       CONST Vio16ScrollDn         =  VIO16SCROLLDN;
  4603.       CONST Vio16ScrollLf         =  VIO16SCROLLLF;
  4604.       CONST Vio16ScrollRt         =  VIO16SCROLLRT;
  4605.       CONST Vio16ScrollUp         =  VIO16SCROLLUP;
  4606.       CONST Vio16SetAnsi          =  VIO16SETANSI;
  4607.       CONST Vio16SetCp            =  VIO16SETCP;
  4608.       CONST Vio16SetCurPos        =  VIO16SETCURPOS;
  4609.       CONST Vio16SetCurType       =  VIO16SETCURTYPE;
  4610.       CONST Vio16SetFont          =  VIO16SETFONT;
  4611.       CONST Vio16SetMode          =  VIO16SETMODE;
  4612.       CONST Vio16SetState         =  VIO16SETSTATE;
  4613.       CONST Vio16ShowBuf          =  VIO16SHOWBUF;
  4614.       CONST Vio16WrtCellStr       =  VIO16WRTCELLSTR;
  4615.       CONST Vio16WrtCharStr       =  VIO16WRTCHARSTR;
  4616.       CONST Vio16WrtCharStrAtt    =  VIO16WRTCHARSTRATT;
  4617.       CONST Vio16WrtNAttr         =  VIO16WRTNATTR;
  4618.       CONST Vio16WrtNCell         =  VIO16WRTNCELL;
  4619.       CONST Vio16WrtNChar         =  VIO16WRTNCHAR;
  4620.       CONST Vio16WrtTTY           =  VIO16WRTTTY;
  4621.  
  4622. <* END *>
  4623.  
  4624.  
  4625.  
  4626. <* IF DEFINED (INCL_MOU)  THEN *>
  4627.  
  4628.       TYPE  HMOU  = SYSTEM.CARD16;
  4629.       TYPE  PHMOU = POINTER TO HMOU;
  4630.  
  4631.       PROCEDURE [APIENTRY16]  MOU16REGISTER (   pszModName:    PSZ ;
  4632.                                                                           pszEntryName:  PSZ ;
  4633.                                                                           flFuns:        ULONG): APIRET16;
  4634.  
  4635.       CONST MR_MOUGETNUMBUTTONS        = 000000001H;
  4636.       CONST MR_MOUGETNUMMICKEYS        = 000000002H;
  4637.       CONST MR_MOUGETDEVSTATUS         = 000000004H;
  4638.       CONST MR_MOUGETNUMQUEEL          = 000000008H;
  4639.       CONST MR_MOUREADEVENTQUE         = 000000010H;
  4640.       CONST MR_MOUGETSCALEFACT         = 000000020H;
  4641.       CONST MR_MOUGETEVENTMASK         = 000000040H;
  4642.       CONST MR_MOUSETSCALEFACT         = 000000080H;
  4643.       CONST MR_MOUSETEVENTMASK         = 000000100H;
  4644.       CONST MR_MOUOPEN                 = 000000800H;
  4645.       CONST MR_MOUCLOSE                = 000001000H;
  4646.       CONST MR_MOUGETPTRSHAPE          = 000002000H;
  4647.       CONST MR_MOUSETPTRSHAPE          = 000004000H;
  4648.       CONST MR_MOUDRAWPTR              = 000008000H;
  4649.       CONST MR_MOUREMOVEPTR            = 000010000H;
  4650.       CONST MR_MOUGETPTRPOS            = 000020000H;
  4651.       CONST MR_MOUSETPTRPOS            = 000040000H;
  4652.       CONST MR_MOUINITREAL             = 000080000H;
  4653.       CONST MR_MOUSETDEVSTATUS         = 000100000H;
  4654.  
  4655.       PROCEDURE [APIENTRY16]  MOU16DEREGISTER (): APIRET16;
  4656.  
  4657.       PROCEDURE [APIENTRY16]  MOU16FLUSHQUE ( hmou:    HMOU): APIRET16;
  4658.  
  4659.       CONST MHK_BUTTON1                = 00001H;
  4660.       CONST MHK_BUTTON2                = 00002H;
  4661.       CONST MHK_BUTTON3                = 00004H;
  4662.  
  4663.       (* structure for MouGet/SetPtrPos() *)
  4664.       TYPE PTRLOC = RECORD     (* moupl *)
  4665.             row:    USHORT ;
  4666.             col:    USHORT ;
  4667.       END;
  4668.       TYPE  PPTRLOC = POINTER TO PTRLOC;
  4669.  
  4670.       PROCEDURE [APIENTRY16]  MOU16GETPTRPOS (   pmouLoc:  PPTRLOC ;
  4671.                                                                             hmou:     HMOU): APIRET16;
  4672.       PROCEDURE [APIENTRY16]  MOU16SETPTRPOS (   pmouLoc: PPTRLOC ;
  4673.                                                                             hmou:    HMOU): APIRET16;
  4674.  
  4675.       (* structure for MouGet/SetPtrShape() *)
  4676.       TYPE PTRSHAPE = RECORD   (* moups *)
  4677.             cb:        USHORT ;
  4678.             col:       USHORT ;
  4679.             row:       USHORT ;
  4680.             colHot:    USHORT ;
  4681.             rowHot:    USHORT ;
  4682.       END;
  4683.       TYPE  PPTRSHAPE = POINTER TO PTRSHAPE;
  4684.  
  4685.       PROCEDURE [APIENTRY16]  MOU16SETPTRSHAPE (   pBuf:         PBYTE ;
  4686.                                                                                 pmoupsInfo:   PPTRSHAPE ;
  4687.                                                                                 hmou:         HMOU): APIRET16;
  4688.  
  4689.       PROCEDURE [APIENTRY16]  MOU16GETPTRSHAPE (   pBuf:         PBYTE ;
  4690.                                                                                 pmoupsInfo:   PPTRSHAPE ;
  4691.                                                                                 hmou:         HMOU): APIRET16;
  4692.  
  4693.       (* MouGetDevStatus/MouSetDevStatus device status constants *)
  4694.  
  4695.       CONST MOUSE_QUEUEBUSY        = 00001H;
  4696.       CONST MOUSE_BLOCKREAD        = 00002H;
  4697.       CONST MOUSE_FLUSH            = 00004H;
  4698.       CONST MOUSE_UNSUPPORTED_MODE = 00008H;
  4699.       CONST MOUSE_DISABLED         = 00100H;
  4700.       CONST MOUSE_MICKEYS          = 00200H;
  4701.  
  4702.  
  4703.       PROCEDURE [APIENTRY16]  MOU16GETDEVSTATUS (   pfsDevStatus:  PUSHORT ;
  4704.                                                                                   hmou:          HMOU): APIRET16;
  4705.  
  4706.       PROCEDURE [APIENTRY16]  MOU16GETNUMBUTTONS (    pcButtons:   PUSHORT ;
  4707.                                                                                       hmou:        HMOU): APIRET16;
  4708.  
  4709.       PROCEDURE [APIENTRY16]  MOU16GETNUMMICKEYS (    pcMickeys:   PUSHORT ;
  4710.                                                                                       hmou:        HMOU): APIRET16;
  4711.  
  4712.       (* MouReadEventQue *)
  4713.  
  4714.       CONST MOU_NOWAIT      = 00000H;
  4715.       CONST MOU_WAIT        = 00001H;
  4716.  
  4717.       (* structure for MouReadEventQue() *)
  4718.  
  4719.       TYPE   MOUEVENTINFO = RECORD   (* mouev *)
  4720.             fs:       USHORT ;
  4721.             time:     ULONG  ;
  4722.             row:      SHORT  ;
  4723.             col:      SHORT  ;
  4724.       END;
  4725.       TYPE  PMOUEVENTINFO = POINTER TO MOUEVENTINFO;
  4726.  
  4727.       PROCEDURE [APIENTRY16]  MOU16READEVENTQUE (   pmouevEvent:  PMOUEVENTINFO ;
  4728.                                                                                   pfWait:       PUSHORT ;
  4729.                                                                                   hmou:         HMOU): APIRET16;
  4730.  
  4731.       (* structure for MouGetNumQueEl() *)
  4732.       TYPE MOUQUEINFO = RECORD     (* mouqi *)
  4733.             cEvents:           USHORT ;
  4734.             cmaxEvents:        USHORT ;
  4735.       END;
  4736.       TYPE  PMOUQUEINFO = POINTER TO MOUQUEINFO;
  4737.  
  4738.       PROCEDURE [APIENTRY16]  MOU16GETNUMQUEEL (   qmouqi:     PMOUQUEINFO ;
  4739.                                                                                 hmou:       HMOU): APIRET16;
  4740.  
  4741.       (* MouGetEventMask/MouSetEventMask events *)
  4742.  
  4743.       CONST MOUSE_MOTION                 = 00001H;
  4744.       CONST MOUSE_MOTION_WITH_BN1_DOWN   = 00002H;
  4745.       CONST MOUSE_BN1_DOWN               = 00004H;
  4746.       CONST MOUSE_MOTION_WITH_BN2_DOWN   = 00008H;
  4747.       CONST MOUSE_BN2_DOWN               = 00010H;
  4748.       CONST MOUSE_MOTION_WITH_BN3_DOWN   = 00020H;
  4749.       CONST MOUSE_BN3_DOWN               = 00040H;
  4750.  
  4751.       PROCEDURE [APIENTRY16]  MOU16GETEVENTMASK (   pfsEvents:     PUSHORT ;
  4752.                                                                                   hmou:          HMOU): APIRET16;
  4753.  
  4754.       PROCEDURE [APIENTRY16]  MOU16SETEVENTMASK (   pfsEvents:     PUSHORT ;
  4755.                                                                                   hmou:          HMOU): APIRET16;
  4756.  
  4757.       (* structure for MouGet/SetScaleFact() *)
  4758.       TYPE  SCALEFACT = RECORD   (* mousc *)
  4759.             rowScale:        USHORT ;
  4760.             colScale:        USHORT ;
  4761.       END;
  4762.       TYPE  PSCALEFACT = POINTER TO SCALEFACT;
  4763.  
  4764.       PROCEDURE [APIENTRY16]  MOU16GETSCALEFACT (   pmouscFactors:      PSCALEFACT ;
  4765.                                                                                   hmou:               HMOU): APIRET16;
  4766.  
  4767.       PROCEDURE [APIENTRY16]  MOU16SETSCALEFACT (   pmouscFactors:      PSCALEFACT ;
  4768.                                                                                   hmou:               HMOU): APIRET16;
  4769.  
  4770.       PROCEDURE [APIENTRY16]  MOU16OPEN (   pszDvrName:        PSZ ;
  4771.                                                                   phmou:             PHMOU): APIRET16;
  4772.  
  4773.       PROCEDURE [APIENTRY16]  MOU16CLOSE (hmou:      HMOU): APIRET16;
  4774.  
  4775.       (* structure for MouRemovePtr() *)
  4776.       TYPE NOPTRRECT = RECORD   (* mourt *)
  4777.             row:       USHORT ;
  4778.             col:       USHORT ;
  4779.             cRow:      USHORT ;
  4780.             cCol:      USHORT ;
  4781.       END;
  4782.       TYPE  PNOPTRRECT = POINTER TO NOPTRRECT;
  4783.  
  4784.       PROCEDURE [APIENTRY16]  MOU16REMOVEPTR (   pmourtRect:    PNOPTRRECT ;
  4785.                                                                             hmou:          HMOU): APIRET16;
  4786.  
  4787.       PROCEDURE [APIENTRY16]  MOU16DRAWPTR ( hmou:     HMOU): APIRET16;
  4788.  
  4789.       CONST MOU_NODRAW                 = 00001H;
  4790.       CONST MOU_DRAW                   = 00000H;
  4791.       CONST MOU_MICKEYS                = 00002H;
  4792.       CONST MOU_PELS                   = 00000H;
  4793.  
  4794.       PROCEDURE [APIENTRY16]  MOU16SETDEVSTATUS (   pfsDevStatus:  PUSHORT ;
  4795.                                                                                   hmou:          HMOU): APIRET16;
  4796.  
  4797.       PROCEDURE [APIENTRY16]  MOU16INITREAL (psz: PSZ): APIRET16;
  4798.  
  4799.       PROCEDURE [APIENTRY16]  MOU16SYNCH (pszDvrName:   USHORT): APIRET16;
  4800.  
  4801.       TYPE THRESHOLD = RECORD       (* threshold *)
  4802.             Length:   USHORT;   (* Length Field            *)
  4803.             Level1:   USHORT;   (* First movement level    *)
  4804.             Lev1Mult: USHORT;   (* First level multiplier  *)
  4805.             Level2:   USHORT;   (* Second movement level   *)
  4806.             lev2Mult: USHORT;   (* Second level multiplier *)
  4807.       END;
  4808.       TYPE  PTHRESHOLD = POINTER TO THRESHOLD;
  4809.  
  4810.       PROCEDURE [APIENTRY16]  MOU16GETTHRESHOLD ( pthreshold:  PTHRESHOLD ;
  4811.                                                                                 hmou:        HMOU): APIRET16;
  4812.  
  4813.       PROCEDURE [APIENTRY16]  MOU16SETTHRESHOLD ( pthreshold:  PTHRESHOLD ;
  4814.                                                                                 hmou:        HMOU): APIRET16;
  4815.  
  4816.  
  4817.       CONST MouClose              =  MOU16CLOSE;
  4818.       CONST MouDeRegister         =  MOU16DEREGISTER;
  4819.       CONST MouDrawPtr            =  MOU16DRAWPTR;
  4820.       CONST MouFlushQue           =  MOU16FLUSHQUE;
  4821.       CONST MouGetDevStatus       =  MOU16GETDEVSTATUS;
  4822.       CONST MouGetEventMask       =  MOU16GETEVENTMASK;
  4823.       CONST MouGetNumButtons      =  MOU16GETNUMBUTTONS;
  4824.       CONST MouGetNumMickeys      =  MOU16GETNUMMICKEYS;
  4825.       CONST MouGetNumQueEl        =  MOU16GETNUMQUEEL;
  4826.       CONST MouGetPtrPos          =  MOU16GETPTRPOS;
  4827.       CONST MouGetPtrShape        =  MOU16GETPTRSHAPE;
  4828.       CONST MouGetScaleFact       =  MOU16GETSCALEFACT;
  4829.       CONST MouGetThreshold       =  MOU16GETTHRESHOLD;
  4830.       CONST MouInitReal           =  MOU16INITREAL;
  4831.       CONST MouOpen               =  MOU16OPEN;
  4832.       CONST MouReadEventQue       =  MOU16READEVENTQUE;
  4833.       CONST MouRegister           =  MOU16REGISTER;
  4834.       CONST MouRemovePtr          =  MOU16REMOVEPTR;
  4835.       CONST MouSetDevStatus       =  MOU16SETDEVSTATUS;
  4836.       CONST MouSetEventMask       =  MOU16SETEVENTMASK;
  4837.       CONST MouSetPtrPos          =  MOU16SETPTRPOS;
  4838.       CONST MouSetPtrShape        =  MOU16SETPTRSHAPE;
  4839.       CONST MouSetScaleFact       =  MOU16SETSCALEFACT;
  4840.       CONST MouSetThreshold       =  MOU16SETTHRESHOLD;
  4841.       CONST MouSynch              =  MOU16SYNCH;
  4842.  
  4843.       CONST Mou16Close            =  MOU16CLOSE;
  4844.       CONST Mou16DeRegister       =  MOU16DEREGISTER;
  4845.       CONST Mou16DrawPtr          =  MOU16DRAWPTR;
  4846.       CONST Mou16FlushQue         =  MOU16FLUSHQUE;
  4847.       CONST Mou16GetDevStatus     =  MOU16GETDEVSTATUS;
  4848.       CONST Mou16GetEventMask     =  MOU16GETEVENTMASK;
  4849.       CONST Mou16GetNumButtons    =  MOU16GETNUMBUTTONS;
  4850.       CONST Mou16GetNumMickeys    =  MOU16GETNUMMICKEYS;
  4851.       CONST Mou16GetNumQueEl      =  MOU16GETNUMQUEEL;
  4852.       CONST Mou16GetPtrPos        =  MOU16GETPTRPOS;
  4853.       CONST Mou16GetPtrShape      =  MOU16GETPTRSHAPE;
  4854.       CONST Mou16GetScaleFact     =  MOU16GETSCALEFACT;
  4855.       CONST Mou16GetThreshold     =  MOU16GETTHRESHOLD;
  4856.       CONST Mou16InitReal         =  MOU16INITREAL;
  4857.       CONST Mou16Open             =  MOU16OPEN;
  4858.       CONST Mou16ReadEventQue     =  MOU16READEVENTQUE;
  4859.       CONST Mou16Register         =  MOU16REGISTER;
  4860.       CONST Mou16RemovePtr        =  MOU16REMOVEPTR;
  4861.       CONST Mou16SetDevStatus     =  MOU16SETDEVSTATUS;
  4862.       CONST Mou16SetEventMask     =  MOU16SETEVENTMASK;
  4863.       CONST Mou16SetPtrPos        =  MOU16SETPTRPOS;
  4864.       CONST Mou16SetPtrShape      =  MOU16SETPTRSHAPE;
  4865.       CONST Mou16SetScaleFact     =  MOU16SETSCALEFACT;
  4866.       CONST Mou16SetThreshold     =  MOU16SETTHRESHOLD;
  4867.       CONST Mou16Synch            =  MOU16SYNCH;
  4868.  
  4869.  
  4870. <* END *>
  4871.  
  4872. (**************************** end of file **********************************)
  4873. <* END *>
  4874.  
  4875. (* ------------- End of file:  .\hm\bsesub.hm ------------- *)
  4876. <* END *>
  4877.  
  4878.    
  4879. (* ------------- Include file: .\hm\bseerr.hm ------------- *)
  4880. (*static char *SCCSID = "@(#)bseerr.h    6.8 92/03/24";*)
  4881. (****************************** Module Header ******************************\
  4882. *
  4883. * Module Name: BSEERR.H
  4884. *
  4885. * This file includes the error codes for Base OS/2 applications.
  4886. *
  4887. * Copyright (c) 1987  Microsoft Corporation
  4888. * Copyright (c) 1987  IBM Corporation
  4889. *
  4890. * ===========================================================================
  4891. *
  4892. * The following symbols are used in this file for conditional sections.
  4893. *
  4894. *   INCL_DOSERRORS -  OS/2 Errors         - only included if symbol defined
  4895. *   INCL_ERROR_H   -  Set from error.h  - to be deleted when error.h deleted
  4896. *   INCL_ERROR2_H  -  Set from error2.h - to be deleted when error.h deleted
  4897. *
  4898. * Note that the message id's for the first 1000 error codes (in basemid.h)
  4899. * are constructed from the comment on the #define for those error codes.
  4900. * See h.mak and basemid.skl for further information.  Note that some message
  4901. * id's conflict with error codes, so some error codes are unusable.  In
  4902. * other words, if there is a message id defined in a certain location,
  4903. * that position may not, in general, be used for an error id.
  4904. *
  4905. * There are three formats of these special comments:
  4906. *       #define ERROR_NO <nnn>  <opencomment> <MSG>%<none> <closecomment>
  4907. *       #define ERROR_NO <nnn>  <opencomment> <MSG>%<message_name> <closecomment>
  4908. *       <opencomment>           <nnn>%<msg>%<message_name> <closecomment>
  4909. * The first version is used when there is an error id, but no message id
  4910. * associated with it.  This is the case when the error is an internal error
  4911. * and is never seen by the user, or it is incorrect and there really should
  4912. * be a message.
  4913. *
  4914. * The second format is used when there is both an error id and message id.
  4915. *
  4916. * The third case is used when there is a message id in that position, but no
  4917. * error id.  It may also be used when there is more than one message id for
  4918. * a particular error id.
  4919. *
  4920. * Whenever a new error id is defined, the person defining that error MUST
  4921. * decide if it is to be a user-seeable error or not.  If it is, a message
  4922. * id MUST be declared, and the appropriate message added to oso001.txt.
  4923. * This should be coordinated with the IBM Instructional Design people.
  4924. * The current contact is Kathleen Hamill.
  4925. *
  4926. \***************************************************************************)
  4927.  
  4928. <* IF DEFINED (INCL_ERRORS)  THEN *>
  4929.  
  4930. <* NEW INCL_DOSERRORS + *>
  4931. <* NEW INCL_ERROR_H + *>
  4932. <* NEW INCL_ERROR2_H + *>
  4933.  
  4934. <* END *>
  4935.  
  4936. <* IF DEFINED (INCL_DOSERRORS) OR DEFINED (INCL_ERROR_H)  THEN *>
  4937.  
  4938. CONST NO_ERROR       = 0;       (* MSG%RESPONSE_DATA *)
  4939. CONST ERROR_INVALID_FUNCTION = 1;       (* MSG%INVALID_FUNCTION *)
  4940. CONST ERROR_FILE_NOT_FOUND   = 2;       (* MSG%FILE_NOT_FOUND *)
  4941. CONST ERROR_PATH_NOT_FOUND   = 3;       (* MSG%PATH_NOT_FOUND *)
  4942. CONST ERROR_TOO_MANY_OPEN_FILES = 4;    (* MSG%OUT_OF_HANDLES *)
  4943. CONST ERROR_ACCESS_DENIED    = 5;       (* MSG%ACCESS_DENIED *)
  4944. CONST ERROR_INVALID_HANDLE   = 6;       (* MSG%INVALID_HANDLE *)
  4945. CONST ERROR_ARENA_TRASHED    = 7;       (* MSG%MEMORY_BLOCKS_BAD *)
  4946. CONST ERROR_NOT_ENOUGH_MEMORY= 8;       (* MSG%NO_MEMORY *)
  4947. CONST ERROR_INVALID_BLOCK    = 9;       (* MSG%INVALID_MEM_ADDR *)
  4948. CONST ERROR_BAD_ENVIRONMENT  = 10;      (* MSG%INVALID_ENVIRON *)
  4949. CONST ERROR_BAD_FORMAT       = 11;      (* MSG%INVALID_FORMAT *)
  4950. CONST ERROR_INVALID_ACCESS   = 12;      (* MSG%INVALID_ACC_CODE *)
  4951. CONST ERROR_INVALID_DATA     = 13;      (* MSG%INVALID_DATA *)
  4952. CONST ERROR_INVALID_DRIVE    = 15;      (* MSG%INVALID_DRIVE *)
  4953. CONST ERROR_CURRENT_DIRECTORY= 16;      (* MSG%ATT_RD_CURDIR *)
  4954. CONST ERROR_NOT_SAME_DEVICE  = 17;      (* MSG%NOT_SAME_DEVICE *)
  4955. CONST ERROR_NO_MORE_FILES    = 18;      (* MSG%NO_MORE_FILES *)
  4956. CONST ERROR_WRITE_PROTECT    = 19;      (* MSG%ATT_WRITE_PROT *)
  4957. CONST ERROR_BAD_UNIT = 20;      (* MSG%UNKNOWN_UNIT *)
  4958. CONST ERROR_NOT_READY= 21;      (* MSG%DRIVE_NOT_READY *)
  4959. CONST ERROR_BAD_COMMAND      = 22;      (* MSG%UNKNOWN_COMMAND *)
  4960. CONST ERROR_CRC      = 23;      (* MSG%DATA_ERROR *)
  4961. CONST ERROR_BAD_LENGTH       = 24;      (* MSG%BAD_REQ_STRUCTURE *)
  4962. CONST ERROR_SEEK     = 25;      (* MSG%SEEK_ERROR *)
  4963. CONST ERROR_NOT_DOS_DISK     = 26;      (* MSG%UNKNOWN_MEDIA *)
  4964. CONST ERROR_SECTOR_NOT_FOUND = 27;      (* MSG%SECTOR_NOT_FOUND *)
  4965. CONST ERROR_OUT_OF_PAPER     = 28;      (* MSG%OUT_OF_PAPER *)
  4966. CONST ERROR_WRITE_FAULT      = 29;      (* MSG%WRITE_FAULT *)
  4967. CONST ERROR_READ_FAULT       = 30;      (* MSG%READ_FAULT *)
  4968. CONST ERROR_GEN_FAILURE      = 31;      (* MSG%GENERAL_FAILURE *)
  4969. CONST ERROR_SHARING_VIOLATION= 32;      (* MSG%SHARING_VIOLATION *)
  4970. (*                                      32%msg%SHAR_VIOLAT_FIND *)
  4971. CONST ERROR_LOCK_VIOLATION   = 33;      (* MSG%LOCK_VIOLATION *)
  4972. CONST ERROR_WRONG_DISK       = 34;      (* MSG%INVALID_DISK_CHANGE *)
  4973. CONST ERROR_FCB_UNAVAILABLE  = 35;      (* MSG%35 *)
  4974. CONST ERROR_SHARING_BUFFER_EXCEEDED  = 36;      (* MSG%SHARING_BUFF_OFLOW *)
  4975. CONST ERROR_CODE_PAGE_MISMATCHED     = 37;      (* MSG%ERROR_WRITE_PROTECT *)
  4976. CONST ERROR_HANDLE_EOF       = 38;      (* MSG%ERROR_BAD_UNIT *)
  4977. CONST ERROR_HANDLE_DISK_FULL = 39;      (* MSG%ERROR_NOT_READY *)
  4978. (*                                      40%msg%ERROR_BAD_COMMAND *)
  4979. (*                                      41%msg%ERROR_CRC *)
  4980. (*                                      42%msg%ERROR_BAD_LENGTH *)
  4981. (*                                      43%msg%ERROR_SEEK *)
  4982. (*                                      44%msg%ERROR_NOT_DOS_DISK *)
  4983. (*                                      45%msg%ERROR_SECTOR_NOT_FOUND *)
  4984. (*                                      46%msg%ERROR_OUT_OF_PAPER *)
  4985. (*                                      47%msg%ERROR_WRITE_FAULT *)
  4986. (*                                      48%msg%ERROR_READ_FAULT *)
  4987. (*                                      49%msg%ERROR_GEN_FAILURE *)
  4988. CONST ERROR_NOT_SUPPORTED    = 50;      (* MSG%NET_REQ_NOT_SUPPORT *)
  4989. CONST ERROR_REM_NOT_LIST     = 51;      (* MSG%NET_REMOTE_NOT_ONLINE *)
  4990. CONST ERROR_DUP_NAME = 52;      (* MSG%NET_DUP_FILENAME *)
  4991. CONST ERROR_BAD_NETPATH      = 53;      (* MSG%NET_PATH_NOT_FOUND *)
  4992. CONST ERROR_NETWORK_BUSY     = 54;      (* MSG%NET_BUSY *)
  4993. CONST ERROR_DEV_NOT_EXIST    = 55;      (* MSG%NET_DEV_NOT_INSTALLED *)
  4994. CONST ERROR_TOO_MANY_CMDS    = 56;      (* MSG%NET_BIOS_LIMIT_REACHED *)
  4995. CONST ERROR_ADAP_HDW_ERR     = 57;      (* MSG%NET_ADAPT_HRDW_ERROR *)
  4996. CONST ERROR_BAD_NET_RESP     = 58;      (* MSG%NET_INCORRECT_RESPONSE *)
  4997. CONST ERROR_UNEXP_NET_ERR    = 59;      (* MSG%NET_UNEXPECT_ERROR *)
  4998. CONST ERROR_BAD_REM_ADAP     = 60;      (* MSG%NET_REMOT_ADPT_INCOMP *)
  4999. CONST ERROR_PRINTQ_FULL      = 61;      (* MSG%NET_PRINT_Q_FULL *)
  5000. CONST ERROR_NO_SPOOL_SPACE   = 62;      (* MSG%NET_NO_SPACE_TO_PRINT_FL *)
  5001. CONST ERROR_PRINT_CANCELLED  = 63;      (* MSG%NET_PRINT_FILE_DELETED *)
  5002. CONST ERROR_NETNAME_DELETED  = 64;      (* MSG%NET_NAME_DELETED *)
  5003. CONST ERROR_NETWORK_ACCESS_DENIED    = 65;      (* MSG%NET_ACCESS_DENIED *)
  5004. CONST ERROR_BAD_DEV_TYPE     = 66;      (* MSG%NET_DEV_TYPE_INVALID *)
  5005. CONST ERROR_BAD_NET_NAME     = 67;      (* MSG%NET_NAME_NOT_FOUND *)
  5006. CONST ERROR_TOO_MANY_NAMES   = 68;      (* MSG%NET_NAME_LIMIT_EXCEED *)
  5007. CONST ERROR_TOO_MANY_SESS    = 69;      (* MSG%NET_BIOS_LIMIT_EXCEED *)
  5008. CONST ERROR_SHARING_PAUSED   = 70;      (* MSG%NET_TEMP_PAUSED *)
  5009. CONST ERROR_REQ_NOT_ACCEP    = 71;      (* MSG%NET_REQUEST_DENIED *)
  5010. CONST ERROR_REDIR_PAUSED     = 72;      (* MSG%NET_PRT_DSK_REDIR_PAUSE *)
  5011. CONST ERROR_SBCS_ATT_WRITE_PROT = 73;   (* Attempted write on protected disk *)
  5012. CONST ERROR_SBCS_GENERAL_FAILURE= 74;   (* General failure *)
  5013. CONST ERROR_XGA_OUT_MEMORY   = 75;      (* MSG%XGA_OUT_MEMORY *)
  5014. CONST ERROR_FILE_EXISTS      = 80;      (* MSG%FILE_EXISTS *)
  5015. CONST ERROR_DUP_FCB  = 81;      (* MSG%none *)
  5016. CONST ERROR_CANNOT_MAKE      = 82;      (* MSG%CANNOT_MAKE *)
  5017. CONST ERROR_FAIL_I24 = 83;      (* MSG%NET_FAIL_INT_TWO_FOUR *)
  5018. CONST ERROR_OUT_OF_STRUCTURES= 84;      (* MSG%NET_TOO_MANY_REDIRECT *)
  5019. CONST ERROR_ALREADY_ASSIGNED = 85;      (* MSG%NET_DUP_REDIRECTION *)
  5020. CONST ERROR_INVALID_PASSWORD = 86;      (* MSG%NET_INVALID_PASSWORD *)
  5021. CONST ERROR_INVALID_PARAMETER= 87;      (* MSG%NET_INCORR_PARAMETER *)
  5022. CONST ERROR_NET_WRITE_FAULT  = 88;      (* MSG%NET_DATA_FAULT *)
  5023. CONST ERROR_NO_PROC_SLOTS    = 89;      (* MSG%NO_PROC_SLOTS *)
  5024. CONST ERROR_NOT_FROZEN       = 90;      (* MSG%none *)
  5025. CONST ERROR_SYS_COMP_NOT_LOADED      = ERROR_NOT_FROZEN;
  5026. CONST ERR_TSTOVFL    = 91;      (* MSG%none *)
  5027. CONST ERR_TSTDUP     = 92;      (* MSG%none *)
  5028. CONST ERROR_NO_ITEMS = 93;      (* MSG%none *)
  5029. CONST ERROR_INTERRUPT= 95;      (* MSG%none *)
  5030. CONST ERROR_DEVICE_IN_USE    = 99;      (* MSG%DEVICE_IN_USE *)
  5031. CONST ERROR_TOO_MANY_SEMAPHORES      = 100;     (* MSG%TOO_MANY_SEMAPHORES *)
  5032. CONST ERROR_EXCL_SEM_ALREADY_OWNED   = 101;     (* MSG%EXCL_SEM_ALREADY_OWNED *)
  5033. CONST ERROR_SEM_IS_SET       = 102;     (* MSG%SEM_IS_SET *)
  5034. CONST ERROR_TOO_MANY_SEM_REQUESTS    = 103;     (* MSG%TOO_MANY_SEM_REQUESTS *)
  5035. CONST ERROR_INVALID_AT_INTERRUPT_TIME= 104;     (* MSG%INVALID_AT_INTERRUPT_TIME *)
  5036. CONST ERROR_SEM_OWNER_DIED   = 105;     (* MSG%SEM_OWNER_DIED *)
  5037. CONST ERROR_SEM_USER_LIMIT   = 106;     (* MSG%ERROR_DISK_CHANGE *)
  5038. CONST ERROR_DISK_CHANGE      = 107;     (* MSG%DISK_CHANGE *)
  5039. CONST ERROR_DRIVE_LOCKED     = 108;     (* MSG%DRIVE_LOCKED *)
  5040. CONST ERROR_BROKEN_PIPE      = 109;     (* MSG%BROKEN_PIPE *)
  5041. CONST ERROR_OPEN_FAILED      = 110;     (* MSG%ERROR_OPEN_FAILED *)
  5042. CONST ERROR_BUFFER_OVERFLOW  = 111;     (* MSG%ERROR_FILENAME_LONG *)
  5043. CONST ERROR_DISK_FULL= 112;     (* MSG%DISK_FULL *)
  5044. CONST ERROR_NO_MORE_SEARCH_HANDLES   = 113;     (* MSG%NO_SEARCH_HANDLES *)
  5045. CONST ERROR_INVALID_TARGET_HANDLE    = 114;     (* MSG%ERR_INV_TAR_HANDLE *)
  5046. CONST ERROR_PROTECTION_VIOLATION     = 115;     (* MSG%none *)
  5047. CONST ERROR_VIOKBD_REQUEST   = 116;     (* MSG%none *)
  5048. CONST ERROR_INVALID_CATEGORY = 117;     (* MSG%INVALID_CATEGORY *)
  5049. CONST ERROR_INVALID_VERIFY_SWITCH    = 118;     (* MSG%INVALID_VERIFY_SWITCH *)
  5050. CONST ERROR_BAD_DRIVER_LEVEL = 119;     (* MSG%BAD_DRIVER_LEVEL *)
  5051. CONST ERROR_CALL_NOT_IMPLEMENTED     = 120;     (* MSG%BAD_DYNALINK *)
  5052. CONST ERROR_SEM_TIMEOUT      = 121;     (* MSG%SEM_TIMEOUT *)
  5053. CONST ERROR_INSUFFICIENT_BUFFER      = 122;     (* MSG%INSUFFICIENT_BUFFER *)
  5054. CONST ERROR_INVALID_NAME     = 123;     (* MSG%INVALID_NAME *)
  5055. (*                                      123%msg%HPFS_INVALID_VOLUME_CHAR *)
  5056. CONST ERROR_INVALID_LEVEL    = 124;     (* MSG%INVALID_LEVEL *)
  5057. CONST ERROR_NO_VOLUME_LABEL  = 125;     (* MSG%NO_VOLUME_LABEL *)
  5058. CONST ERROR_MOD_NOT_FOUND    = 126;     (* MSG%MOD_NOT_FOUND *)
  5059. CONST ERROR_PROC_NOT_FOUND   = 127;     (* MSG%PROC_NOT_FOUND *)
  5060. CONST ERROR_WAIT_NO_CHILDREN = 128;     (* MSG%none *)
  5061. CONST ERROR_CHILD_NOT_COMPLETE       = 129;     (* MSG%PROT_MODE_ONLY *)
  5062. CONST ERROR_DIRECT_ACCESS_HANDLE     = 130;     (* MSG%APPL_SINGLEFRAMECHAR *)
  5063. CONST ERROR_NEGATIVE_SEEK    = 131;     (* MSG%APPL_DOUBLEFRAMECHAR *)
  5064. CONST ERROR_SEEK_ON_DEVICE   = 132;     (* MSG%APPL_ARROWCHAR *)
  5065. CONST ERROR_IS_JOIN_TARGET   = 133;     (* MSG%JOIN_ON_DRIV_IS_TAR *)
  5066. CONST ERROR_IS_JOINED= 134;     (* MSG%JOIN_DRIVE_IS *)
  5067. CONST ERROR_IS_SUBSTED       = 135;     (* MSG%SUB_DRIVE_IS *)
  5068. CONST ERROR_NOT_JOINED       = 136;     (* MSG%DRIVE_IS_NOT_JOINED *)
  5069. CONST ERROR_NOT_SUBSTED      = 137;     (* MSG%DRIVE_NOT_SUBSTED *)
  5070. CONST ERROR_JOIN_TO_JOIN     = 138;     (* MSG%JOIN_CANNOT_JOIN_DRIVE *)
  5071. CONST ERROR_SUBST_TO_SUBST   = 139;     (* MSG%SUB_CANNOT_SUBST_DRIVE *)
  5072. CONST ERROR_JOIN_TO_SUBST    = 140;     (* MSG%JOIN_CANNOT_SUB_DRIVE *)
  5073. CONST ERROR_SUBST_TO_JOIN    = 141;     (* MSG%SUB_CANNOT_JOIN_DRIVE *)
  5074. CONST ERROR_BUSY_DRIVE       = 142;     (* MSG%DRIVE_IS_BUSY *)
  5075. CONST ERROR_SAME_DRIVE       = 143;     (* MSG%JOIN_SUB_SAME_DRIVE *)
  5076. CONST ERROR_DIR_NOT_ROOT     = 144;     (* MSG%DIRECT_IS_NOT_SUBDIR *)
  5077. CONST ERROR_DIR_NOT_EMPTY    = 145;     (* MSG%DIRECT_IS_NOT_EMPTY *)
  5078. CONST ERROR_IS_SUBST_PATH    = 146;     (* MSG%PATH_USED_SUBST_JOIN *)
  5079. CONST ERROR_IS_JOIN_PATH     = 147;     (* MSG%NO_NEEDED_RESOURCES *)
  5080. CONST ERROR_PATH_BUSY= 148;     (* MSG%PATH_BUSY *)
  5081. CONST ERROR_IS_SUBST_TARGET  = 149;     (* MSG%SUB_ON_DRIVE_IS_JOIN *)
  5082. CONST ERROR_SYSTEM_TRACE     = 150;     (* MSG%SYSTEM_TRACE *)
  5083. CONST ERROR_INVALID_EVENT_COUNT      = 151;     (* MSG%INVALID_EVENT_COUNT *)
  5084. CONST ERROR_TOO_MANY_MUXWAITERS      = 152;     (* MSG%TOO_MANY_MUXWAITERS *)
  5085. CONST ERROR_INVALID_LIST_FORMAT      = 153;     (* MSG%INVALID_LIST_FORMAT *)
  5086. CONST ERROR_LABEL_TOO_LONG   = 154;     (* MSG%VOLUME_TOO_LONG *)
  5087. (*                                      154%msg%HPFS_VOL_LABEL_LONG *)
  5088. CONST ERROR_TOO_MANY_TCBS    = 155;     (* MSG%TOO_MANY_TCBS *)
  5089. CONST ERROR_SIGNAL_REFUSED   = 156;     (* MSG%SIGNAL_REFUSED *)
  5090. CONST ERROR_DISCARDED= 157;     (* MSG%DISCARDED *)
  5091. CONST ERROR_NOT_LOCKED       = 158;     (* MSG%NOT_LOCKED *)
  5092. CONST ERROR_BAD_THREADID_ADDR= 159;     (* MSG%BAD_THREADID_ADDR *)
  5093. CONST ERROR_BAD_ARGUMENTS    = 160;     (* MSG%BAD_ARGUMENTS *)
  5094. CONST ERROR_BAD_PATHNAME     = 161;     (* MSG%none *)
  5095. CONST ERROR_SIGNAL_PENDING   = 162;     (* MSG%SIGNAL_PENDING *)
  5096. CONST ERROR_UNCERTAIN_MEDIA  = 163;     (* MSG%none *)
  5097. CONST ERROR_MAX_THRDS_REACHED= 164;     (* MSG%MAX_THRDS_REACHED *)
  5098. CONST ERROR_MONITORS_NOT_SUPPORTED   = 165;     (* MSG%none *)
  5099. CONST ERROR_UNC_DRIVER_NOT_INSTALLED = 166;     (* MSG%UNC_DRIVER_NOT_INSTALLED *)
  5100. CONST ERROR_LOCK_FAILED      = 167;     (* MSG%LOCK_FAILED *)
  5101. CONST ERROR_SWAPIO_FAILED    = 168;     (* MSG%SWAPIO_FAILED *)
  5102. CONST ERROR_SWAPIN_FAILED    = 169;     (* MSG%SWAPIN_ATTEMPT_FAILED *)
  5103. CONST ERROR_BUSY             = 170;     (* MSG%SEGMENT_BUSY *)
  5104. (*                                      171%msg%INT_TOO_LONG *)
  5105. CONST ERROR_CANCEL_VIOLATION    = 173;     (* MSG%UNLOCK_VIOLATION *)
  5106. CONST ERROR_ATOMIC_LOCK_NOT_SUPPORTED= 174; (* MSG%none *)
  5107. CONST ERROR_READ_LOCKS_NOT_SUPPORTED = 175; (* MSG%none *)
  5108. CONST ERROR_INVALID_SEGMENT_NUMBER   = 180;     (* MSG%INVALID_SEGMENT_NUM *)
  5109. CONST ERROR_INVALID_CALLGATE = 181;     (* MSG%none *)
  5110. CONST ERROR_INVALID_ORDINAL  = 182;     (* MSG%INVALID_ORDINAL *)
  5111. CONST ERROR_ALREADY_EXISTS   = 183;     (* MSG%none *)
  5112. CONST ERROR_NO_CHILD_PROCESS = 184;     (* MSG%none *)
  5113. CONST ERROR_CHILD_ALIVE_NOWAIT       = 185;     (* MSG%none *)
  5114. CONST ERROR_INVALID_FLAG_NUMBER      = 186;     (* MSG%INVALID_FLAG_NUMBER *)
  5115. CONST ERROR_SEM_NOT_FOUND    = 187;     (* MSG%SEM_NOT_FOUND *)
  5116. CONST ERROR_INVALID_STARTING_CODESEG = 188;     (* MSG%INVALID_STARTING_CODESEG *)
  5117. CONST ERROR_INVALID_STACKSEG = 189;     (* MSG%INVALID_STACKSEG *)
  5118. CONST ERROR_INVALID_MODULETYPE       = 190;     (* MSG%INVALID_MODULETYPE *)
  5119. CONST ERROR_INVALID_EXE_SIGNATURE    = 191;     (* MSG%INVALID_EXE_SIGNATURE *)
  5120. CONST ERROR_EXE_MARKED_INVALID       = 192;     (* MSG%EXE_MARKED_INVALID *)
  5121. CONST ERROR_BAD_EXE_FORMAT   = 193;     (* MSG%BAD_EXE_FORMAT *)
  5122. CONST ERROR_ITERATED_DATA_EXCEEDS_64k= 194;     (* MSG%ITERATED_DATA_EXCEEDS_64K *)
  5123. CONST ERROR_INVALID_MINALLOCSIZE     = 195;     (* MSG%INVALID_MINALLOCSIZE *)
  5124. CONST ERROR_DYNLINK_FROM_INVALID_RING= 196;     (* MSG%DYNLINK_FROM_INVALID_RING *)
  5125. CONST ERROR_IOPL_NOT_ENABLED = 197;     (* MSG%IOPL_NOT_ENABLED *)
  5126. CONST ERROR_INVALID_SEGDPL   = 198;     (* MSG%INVALID_SEGDPL *)
  5127. CONST ERROR_AUTODATASEG_EXCEEDS_64k  = 199;     (* MSG%AUTODATASEG_EXCEEDS_64K *)
  5128. CONST ERROR_RING2SEG_MUST_BE_MOVABLE = 200;     (* MSG%CODESEG_CANNOT_BE_64K *)
  5129. CONST ERROR_RELOC_CHAIN_XEEDS_SEGLIM = 201;     (* MSG%RELOC_CHAIN_XEEDS_SEGMENT *)
  5130. CONST ERROR_INFLOOP_IN_RELOC_CHAIN   = 202;     (* MSG%INFLOOP_IN_RELOC_CHAIN *)
  5131. CONST ERROR_ENVVAR_NOT_FOUND = 203;     (* MSG%ENVVAR_NOT_FOUND *)
  5132. CONST ERROR_NOT_CURRENT_CTRY = 204;     (* MSG%none *)
  5133. CONST ERROR_NO_SIGNAL_SENT   = 205;     (* MSG%SIGNAL_NOT_SENT *)
  5134. CONST ERROR_FILENAME_EXCED_RANGE     = 206;     (* MSG%NAME_TOO_LONG *)
  5135. CONST ERROR_RING2_STACK_IN_USE       = 207;     (* MSG%RING2_STACK_IN_USE *)
  5136. CONST ERROR_META_EXPANSION_TOO_LONG  = 208;     (* MSG%WILD_CARD_NAME *)
  5137. CONST ERROR_INVALID_SIGNAL_NUMBER    = 209;     (* MSG%INVALID_SIGNAL_NUMBER *)
  5138. CONST ERROR_THREAD_1_INACTIVE= 210;     (* MSG%THREAD_1_INACTIVE *)
  5139. CONST ERROR_INFO_NOT_AVAIL   = 211;     (* MSG%none *)
  5140. CONST ERROR_LOCKED   = 212;     (* MSG%LOCKED *)
  5141. CONST ERROR_BAD_DYNALINK     = 213;     (* MSG%none *)
  5142. CONST ERROR_TOO_MANY_MODULES = 214;     (* MSG%TOO_MANY_MODULES *)
  5143. CONST ERROR_NESTING_NOT_ALLOWED      = 215;     (* MSG%none *)
  5144. CONST ERROR_CANNOT_SHRINK    = 216;     (* MSG%CANNOT_SHRINK *)
  5145. CONST ERROR_ZOMBIE_PROCESS   = 217;     (* MSG%none *)
  5146. CONST ERROR_STACK_IN_HIGH_MEMORY     = 218;     (* MSG%none *)
  5147. CONST ERROR_INVALID_EXITROUTINE_RING = 219;     (* MSG%INVALID_EXITROUTINE_RING *)
  5148. CONST ERROR_GETBUF_FAILED    = 220;     (* MSG%none *)
  5149. CONST ERROR_FLUSHBUF_FAILED  = 221;     (* MSG%none *)
  5150. CONST ERROR_TRANSFER_TOO_LONG= 222;     (* MSG%none *)
  5151. CONST ERROR_FORCENOSWAP_FAILED       = 223;     (* MSG%none *)
  5152. CONST ERROR_SMG_NO_TARGET_WINDOW     = 224;     (* PM ID can't be selected *)
  5153. CONST ERROR_NO_CHILDREN      = 228;     (* MSG%NO_CHILDREN *)
  5154. CONST ERROR_INVALID_SCREEN_GROUP     = 229;     (* MSG%none *)
  5155. CONST ERROR_BAD_PIPE = 230;     (* MSG%ERROR_BAD_PIPE *)
  5156. CONST ERROR_PIPE_BUSY= 231;     (* MSG%ERROR_PIPE_BUSY *)
  5157. CONST ERROR_NO_DATA  = 232;     (* MSG%ERROR_NO_DATA *)
  5158. CONST ERROR_PIPE_NOT_CONNECTED       = 233;     (* MSG%ERROR_PIPE_NOT_CONNECTED *)
  5159. CONST ERROR_MORE_DATA= 234;     (* MSG%ERROR_MORE_DATA *)
  5160. CONST ERROR_VC_DISCONNECTED  = 240;     (* MSG%ERROR_VC_DISCONNECTED *)
  5161. CONST ERROR_CIRCULARITY_REQUESTED    = 250;     (* MSG%CIRCULARITY_REQUESTED *)
  5162. CONST ERROR_DIRECTORY_IN_CDS = 251;     (* MSG%DIRECTORY_IN_CDS *)
  5163. CONST ERROR_INVALID_FSD_NAME = 252;     (* MSG%INVALID_FSD_NAME *)
  5164. CONST ERROR_INVALID_PATH     = 253;     (* MSG%INVALID_PATH *)
  5165. CONST ERROR_INVALID_EA_NAME  = 254;     (* MSG%INVALID_EA_NAME *)
  5166. CONST ERROR_EA_LIST_INCONSISTENT     = 255;     (* MSG%EA_LIST_INCONSISTENT *)
  5167. CONST ERROR_EA_LIST_TOO_LONG = 256;     (* MSG%EA_LIST_TOO_LONG *)
  5168. CONST ERROR_NO_META_MATCH    = 257;     (* MSG%NO_META_MATCH *)
  5169. CONST ERROR_FINDNOTIFY_TIMEOUT       = 258;     (* MSG%FINDNOTIFY_TIMEOUT *)
  5170. CONST ERROR_NO_MORE_ITEMS    = 259;     (* MSG%NO_MORE_ITEMS *)
  5171. CONST ERROR_SEARCH_STRUC_REUSED      = 260;     (* MSG%SEARCH_STRUC_REUSED *)
  5172. CONST ERROR_CHAR_NOT_FOUND   = 261;     (* MSG%CHAR_NOT_FOUND *)
  5173. CONST ERROR_TOO_MUCH_STACK   = 262;     (* MSG%TOO_MUCH_STACK *)
  5174. CONST ERROR_INVALID_ATTR     = 263;     (* MSG%INVALID_ATTR *)
  5175. CONST ERROR_INVALID_STARTING_RING    = 264;     (* MSG%INVALID_STARTING_RING *)
  5176. CONST ERROR_INVALID_DLL_INIT_RING    = 265;     (* MSG%INVALID_DLL_INIT_RING *)
  5177. CONST ERROR_CANNOT_COPY      = 266;     (* MSG%CANNOT_COPY *)
  5178. CONST ERROR_DIRECTORY= 267;     (* MSG%DIRECTORY *)
  5179. CONST ERROR_OPLOCKED_FILE    = 268;     (* MSG%OPLOCKED_FILE *)
  5180. CONST ERROR_OPLOCK_THREAD_EXISTS     = 269;     (* MSG%OPLOCK_THREAD_EXISTS *)
  5181. CONST ERROR_VOLUME_CHANGED   = 270;     (* MSG%none *)
  5182. CONST ERROR_FINDNOTIFY_HANDLE_IN_USE = 271;     (* MSG%none *)
  5183. CONST ERROR_FINDNOTIFY_HANDLE_CLOSED = 272;     (* MSG%none *)
  5184. CONST ERROR_NOTIFY_OBJECT_REMOVED    = 273;     (* MSG%none *)
  5185. CONST ERROR_ALREADY_SHUTDOWN = 274;     (* MSG%none *)
  5186. CONST ERROR_EAS_DIDNT_FIT    = 275;     (* MSG%none *)
  5187. CONST ERROR_EA_FILE_CORRUPT  = 276;     (* MSG%ERROR_EAS_CORRUPT *)
  5188. CONST ERROR_EA_TABLE_FULL    = 277;     (* MSG%EA_TABLE_FULL *)
  5189. CONST ERROR_INVALID_EA_HANDLE= 278;     (* MSG%INVALID_EA_HANDLE *)
  5190. CONST ERROR_NO_CLUSTER       = 279;     (* MSG%NO_CLUSTER *)
  5191. CONST ERROR_CREATE_EA_FILE   = 280;     (* MSG%ERROR_CREATE_EA_FILE *)
  5192. CONST ERROR_CANNOT_OPEN_EA_FILE      = 281;     (* MSG%CANNOT_OPEN_FILE *)
  5193. CONST ERROR_EAS_NOT_SUPPORTED= 282;     (* MSG%EAS_NOT_SUPPORTED *)
  5194. CONST ERROR_NEED_EAS_FOUND   = 283;     (* MSG%NEED_EAS_FOUND *)
  5195. CONST ERROR_DUPLICATE_HANDLE = 284;     (* MSG%EAS_DISCARDED *)
  5196. CONST ERROR_DUPLICATE_NAME   = 285;     (* MSG%DUPLICATE_SEM_NAME *)
  5197. CONST ERROR_EMPTY_MUXWAIT    = 286;     (* MSG%EMPTY_MUXWAIT_SEM *)
  5198. CONST ERROR_MUTEX_OWNED      = 287;     (* MSG%MUTEX_SEM_OWNED *)
  5199. CONST ERROR_NOT_OWNER        = 288;     (* MSG%NOT_MUTEX_SEM_OWNER *)
  5200. CONST ERROR_PARAM_TOO_SMALL  = 289;     (* MSG%QUERY_MUX_PARAM_TOO_SMALL *)
  5201. CONST ERROR_TOO_MANY_HANDLES = 290;     (* MSG%TOO_MANY_SEM_HANDLES *)
  5202. CONST ERROR_TOO_MANY_OPENS   = 291;     (* MSG%TOO_MANY_SEM_OPENS *)
  5203. CONST ERROR_WRONG_TYPE       = 292;     (* MSG%SEM_WRONG_TYPE *)
  5204. CONST ERROR_UNUSED_CODE              = 293;     (* MSG%none *)
  5205. CONST ERROR_THREAD_NOT_TERMINATED    = 294;     (* MSG%none *)
  5206. CONST ERROR_INIT_ROUTINE_FAILED      = 295;     (* MSG%none *)
  5207. CONST ERROR_MODULE_IN_USE            = 296;     (* MSG%none *)
  5208. CONST ERROR_NOT_ENOUGH_WATCHPOINTS   = 297;     (* MSG%none *)
  5209. CONST ERROR_TOO_MANY_POSTS   = 298;     (* MSG%TOO_MANY_EVENT_SEM_POSTS *)
  5210. CONST ERROR_ALREADY_POSTED   = 299;     (* MSG%EVENT_SEM_ALREADY_POSTED *)
  5211. CONST ERROR_ALREADY_RESET    = 300;     (* MSG%EVENT_SEM_ALREADY_RESET *)
  5212. CONST ERROR_SEM_BUSY         = 301;     (* MSG%SEM_BUSY *)
  5213.  
  5214. (* end of set 0 - 302 *)
  5215.  
  5216. CONST ERROR_USER_DEFINED_BASE        = 0FF00H;
  5217.  
  5218. CONST ERROR_I24_WRITE_PROTECT        = 0;
  5219. CONST ERROR_I24_BAD_UNIT             = 1;
  5220. CONST ERROR_I24_NOT_READY            = 2;
  5221. CONST ERROR_I24_BAD_COMMAND          = 3;
  5222. CONST ERROR_I24_CRC                  = 4;
  5223. CONST ERROR_I24_BAD_LENGTH           = 5;
  5224. CONST ERROR_I24_SEEK                 = 6;
  5225. CONST ERROR_I24_NOT_DOS_DISK         = 7;
  5226. CONST ERROR_I24_SECTOR_NOT_FOUND     = 8;
  5227. CONST ERROR_I24_OUT_OF_PAPER         = 9;
  5228. CONST ERROR_I24_WRITE_FAULT          = 10;
  5229. CONST ERROR_I24_READ_FAULT           = 11;
  5230. CONST ERROR_I24_GEN_FAILURE          = 12;
  5231. CONST ERROR_I24_DISK_CHANGE          = 13;
  5232. CONST ERROR_I24_WRONG_DISK           = 15;
  5233. CONST ERROR_I24_UNCERTAIN_MEDIA      = 16;
  5234. CONST ERROR_I24_CHAR_CALL_INTERRUPTED= 17;
  5235. CONST ERROR_I24_NO_MONITOR_SUPPORT   = 18;
  5236. CONST ERROR_I24_INVALID_PARAMETER    = 19;
  5237. CONST ERROR_I24_DEVICE_IN_USE        = 20;
  5238. CONST ERROR_I24_QUIET_INIT_FAIL      = 21;
  5239.  
  5240. CONST ALLOWED_FAIL                   = 0001H;
  5241. CONST ALLOWED_ABORT                  = 0002H;
  5242. CONST ALLOWED_RETRY                  = 0004H;
  5243. CONST ALLOWED_IGNORE                 = 0008H;
  5244. CONST ALLOWED_ACKNOWLEDGE            = 0010H;
  5245. CONST ALLOWED_DISPATCH               = 8000H;
  5246. CONST ALLOWED_REGDUMP                = 0020H;
  5247. CONST ALLOWED_DETACHED               = ALLOWED_DISPATCH;
  5248. CONST ALLOWED_RESERVED = 0-1-(ALLOWED_FAIL+ALLOWED_ABORT+ALLOWED_RETRY+ALLOWED_IGNORE+ALLOWED_ACKNOWLEDGE);
  5249. CONST I24_OPERATION                  = 01H;
  5250. CONST I24_AREA                       = 06H;
  5251. CONST I24_CLASS                      = 80H;
  5252.  
  5253. (* Values for error CLASS *)
  5254. CONST ERRCLASS_OUTRES                = 1;   (* Out of Resource                *)
  5255. CONST ERRCLASS_TEMPSIT               = 2;   (* Temporary Situation            *)
  5256. CONST ERRCLASS_AUTH                  = 3;   (* Permission problem             *)
  5257. CONST ERRCLASS_INTRN                 = 4;   (* Internal System Error          *)
  5258. CONST ERRCLASS_HRDFAIL               = 5;   (* Hardware Failure               *)
  5259. CONST ERRCLASS_SYSFAIL               = 6;   (* System Failure                 *)
  5260. CONST ERRCLASS_APPERR                = 7;   (* Application Error              *)
  5261. CONST ERRCLASS_NOTFND                = 8;   (* Not Found                      *)
  5262. CONST ERRCLASS_BADFMT                = 9;   (* Bad Format                     *)
  5263. CONST ERRCLASS_LOCKED                = 10;  (* Locked                         *)
  5264. CONST ERRCLASS_MEDIA                 = 11;  (* Media Failure                  *)
  5265. CONST ERRCLASS_ALREADY               = 12;  (* Collision with Existing Item   *)
  5266. CONST ERRCLASS_UNK                   = 13;  (* Unknown/other                  *)
  5267. CONST ERRCLASS_CANT                  = 14;
  5268. CONST ERRCLASS_TIME                  = 15;
  5269.  
  5270. (* Values for error ACTION *)
  5271. CONST ERRACT_RETRY                   = 1;   (* Retry                          *)
  5272. CONST ERRACT_DLYRET                  = 2;   (* Delay Retry, retry after pause *)
  5273. CONST ERRACT_USER                    = 3;   (* Ask user to regive information *)
  5274. CONST ERRACT_ABORT                   = 4;   (* abort with clean up            *)
  5275. CONST ERRACT_PANIC                   = 5;   (* abort immediately              *)
  5276. CONST ERRACT_IGNORE                  = 6;   (* ignore                         *)
  5277. CONST ERRACT_INTRET                  = 7;   (* Retry after User Intervention  *)
  5278.  
  5279. (* Values for error LOCUS *)
  5280. CONST ERRLOC_UNK                     = 1;   (* No appropriate value           *)
  5281. CONST ERRLOC_DISK                    = 2;   (* Random Access Mass Storage     *)
  5282. CONST ERRLOC_NET                     = 3;   (* Network                        *)
  5283. CONST ERRLOC_SERDEV                  = 4;   (* Serial Device                  *)
  5284. CONST ERRLOC_MEM                     = 5;   (* Memory                         *)
  5285.  
  5286. (* Abnormal termination codes *)
  5287. CONST TC_NORMAL                      = 0;
  5288. CONST TC_HARDERR                     = 1;
  5289. CONST TC_GP_TRAP                     = 2;
  5290. CONST TC_SIGNAL                      = 3;
  5291. CONST TC_XCPT                        = 4;
  5292.  
  5293. <* END *>
  5294.  
  5295. <* IF DEFINED (INCL_DOSERRORS) OR DEFINED (INCL_ERROR2_H)  THEN *>
  5296.  
  5297. CONST ERROR_INVALID_PROCID   = 303;     (* MSG%none *)
  5298. CONST ERROR_INVALID_PDELTA   = 304;     (* MSG%none *)
  5299. CONST ERROR_NOT_DESCENDANT   = 305;     (* MSG%none *)
  5300. CONST ERROR_NOT_SESSION_MANAGER      = 306;     (* MSG%none *)
  5301. CONST ERROR_INVALID_PCLASS   = 307;     (* MSG%none *)
  5302. CONST ERROR_INVALID_SCOPE    = 308;     (* MSG%none *)
  5303. CONST ERROR_INVALID_THREADID = 309;     (* MSG%none *)
  5304. CONST ERROR_DOSSUB_SHRINK    = 310;     (* MSG%none *)
  5305. CONST ERROR_DOSSUB_NOMEM     = 311;     (* MSG%none *)
  5306. CONST ERROR_DOSSUB_OVERLAP   = 312;     (* MSG%none *)
  5307. CONST ERROR_DOSSUB_BADSIZE   = 313;     (* MSG%none *)
  5308. CONST ERROR_DOSSUB_BADFLAG   = 314;     (* MSG%none *)
  5309. CONST ERROR_DOSSUB_BADSELECTOR       = 315;     (* MSG%none *)
  5310. CONST ERROR_MR_MSG_TOO_LONG  = 316;     (* MSG%MR_MSG_TOO_LONG *)
  5311. CONST MGS_MR_MSG_TOO_LONG    = 316;
  5312. CONST ERROR_MR_MID_NOT_FOUND = 317;     (* MSG%MR_CANT_FORMAT *)
  5313. CONST ERROR_MR_UN_ACC_MSGF   = 318;     (* MSG%MR_NOT_FOUND *)
  5314. CONST ERROR_MR_INV_MSGF_FORMAT       = 319;     (* MSG%MR_READ_ERROR *)
  5315. CONST ERROR_MR_INV_IVCOUNT   = 320;     (* MSG%MR_IVCOUNT_ERROR *)
  5316. CONST ERROR_MR_UN_PERFORM    = 321;     (* MSG%MR_UN_PERFORM *)
  5317. CONST ERROR_TS_WAKEUP= 322;     (* MSG%none *)
  5318. CONST ERROR_TS_SEMHANDLE     = 323;     (* MSG%none *)
  5319. CONST ERROR_TS_NOTIMER       = 324;     (* MSG%none *)
  5320. CONST ERROR_TS_HANDLE= 326;     (* MSG%none *)
  5321. CONST ERROR_TS_DATETIME      = 327;     (* MSG%none *)
  5322. CONST ERROR_SYS_INTERNAL     = 328;     (* MSG%none *)
  5323. CONST ERROR_QUE_CURRENT_NAME = 329;     (* MSG%none *)
  5324. CONST ERROR_QUE_PROC_NOT_OWNED       = 330;     (* MSG%QUE_PROC_NOT_OWNED *)
  5325. CONST ERROR_QUE_PROC_OWNED   = 331;     (* MSG%none *)
  5326. CONST ERROR_QUE_DUPLICATE    = 332;     (* MSG%QUE_DUPLICATE *)
  5327. CONST ERROR_QUE_ELEMENT_NOT_EXIST    = 333;     (* MSG%QUE_ELEMENT_NOT_EXIST *)
  5328. CONST ERROR_QUE_NO_MEMORY    = 334;     (* MSG%QUE_NO_MEMORY *)
  5329. CONST ERROR_QUE_INVALID_NAME = 335;     (* MSG%none *)
  5330. CONST ERROR_QUE_INVALID_PRIORITY     = 336;     (* MSG%none *)
  5331. CONST ERROR_QUE_INVALID_HANDLE       = 337;     (* MSG%none *)
  5332. CONST ERROR_QUE_LINK_NOT_FOUND       = 338;     (* MSG%none *)
  5333. CONST ERROR_QUE_MEMORY_ERROR = 339;     (* MSG%none *)
  5334. CONST ERROR_QUE_PREV_AT_END  = 340;     (* MSG%none *)
  5335. CONST ERROR_QUE_PROC_NO_ACCESS       = 341;     (* MSG%none *)
  5336. CONST ERROR_QUE_EMPTY= 342;     (* MSG%none *)
  5337. CONST ERROR_QUE_NAME_NOT_EXIST       = 343;     (* MSG%none *)
  5338. CONST ERROR_QUE_NOT_INITIALIZED      = 344;     (* MSG%none *)
  5339. CONST ERROR_QUE_UNABLE_TO_ACCESS     = 345;     (* MSG%none *)
  5340. CONST ERROR_QUE_UNABLE_TO_ADD= 346;     (* MSG%none *)
  5341. CONST ERROR_QUE_UNABLE_TO_INIT       = 347;     (* MSG%none *)
  5342. CONST ERROR_VIO_INVALID_MASK = 349;     (* MSG%VIO_INVALID_MASK *)
  5343. CONST ERROR_VIO_PTR  = 350;     (* MSG%VIO_PTR *)
  5344. CONST ERROR_VIO_APTR = 351;     (* MSG%none *)
  5345. CONST ERROR_VIO_RPTR = 352;     (* MSG%none *)
  5346. CONST ERROR_VIO_CPTR = 353;     (* MSG%none *)
  5347. CONST ERROR_VIO_LPTR = 354;     (* MSG%none *)
  5348. CONST ERROR_VIO_MODE = 355;     (* MSG%DIS_ERROR *)
  5349. CONST ERROR_VIO_WIDTH= 356;     (* MSG%VIO_WIDTH *)
  5350. CONST ERROR_VIO_ATTR = 357;     (* MSG%none *)
  5351. CONST ERROR_VIO_ROW  = 358;     (* MSG%VIO_ROW *)
  5352. CONST ERROR_VIO_COL  = 359;     (* MSG%VIO_COL *)
  5353. CONST ERROR_VIO_TOPROW       = 360;     (* MSG%none *)
  5354. CONST ERROR_VIO_BOTROW       = 361;     (* MSG%none *)
  5355. CONST ERROR_VIO_RIGHTCOL     = 362;     (* MSG%none *)
  5356. CONST ERROR_VIO_LEFTCOL      = 363;     (* MSG%none *)
  5357. CONST ERROR_SCS_CALL = 364;     (* MSG%none *)
  5358. CONST ERROR_SCS_VALUE= 365;     (* MSG%none *)
  5359. CONST ERROR_VIO_WAIT_FLAG    = 366;     (* MSG%VIO_WAIT_FLAG *)
  5360. CONST ERROR_VIO_UNLOCK       = 367;     (* MSG%VIO_UNLOCK *)
  5361. CONST ERROR_SGS_NOT_SESSION_MGR      = 368;     (* MSG%none *)
  5362. CONST ERROR_SMG_INVALID_SGID = 369;     (* MSG%SMG_INVALID_SESSION_ID *)
  5363. CONST ERROR_SMG_INVALID_SESSION_ID   = ERROR_SMG_INVALID_SGID;
  5364. CONST ERROR_SMG_NOSG = 370;     (* MSG%none *)
  5365. CONST ERROR_SMG_NO_SESSIONS  = 370;     (* MSG%none *)
  5366. CONST ERROR_SMG_GRP_NOT_FOUND= 371;     (* MSG%SMG_GRP_NOT_FOUND *)
  5367. CONST ERROR_SMG_SESSION_NOT_FOUND    = ERROR_SMG_GRP_NOT_FOUND;
  5368. (*                                      371%msg%SMG_SESSION_NOT_FOUND *)
  5369. CONST ERROR_SMG_SET_TITLE    = 372;     (* MSG%SMG_SET_TITLE *)
  5370. CONST ERROR_KBD_PARAMETER    = 373;     (* MSG%KBD_PARAMETER *)
  5371. CONST ERROR_KBD_NO_DEVICE    = 374;     (* MSG%none *)
  5372. CONST ERROR_KBD_INVALID_IOWAIT       = 375;     (* MSG%KBD_INVALID_IOWAIT *)
  5373. CONST ERROR_KBD_INVALID_LENGTH       = 376;     (* MSG%KBD_INVALID_LENGTH *)
  5374. CONST ERROR_KBD_INVALID_ECHO_MASK    = 377;     (* MSG%KBD_INVALID_ECHO_MASK *)
  5375. (*                                      377%msg%KBD_INVALID_INPUT_MASK *)
  5376. CONST ERROR_KBD_INVALID_INPUT_MASK   = 378;     (* MSG%none *)
  5377. CONST ERROR_MON_INVALID_PARMS= 379;     (* MSG%MON_INVALID_PARMS *)
  5378. CONST ERROR_MON_INVALID_DEVNAME      = 380;     (* MSG%MON_INVALID_DEVNAME *)
  5379. CONST ERROR_MON_INVALID_HANDLE       = 381;     (* MSG%MON_INVALID_HANDLE *)
  5380. CONST ERROR_MON_BUFFER_TOO_SMALL     = 382;     (* MSG%MON_BUFFER_TOO_SMALL *)
  5381. CONST ERROR_MON_BUFFER_EMPTY = 383;     (* MSG%MON_BUFFER_EMPTY *)
  5382. CONST ERROR_MON_DATA_TOO_LARGE       = 384;     (* MSG%MON_DATA_TOO_LARGE *)
  5383. CONST ERROR_MOUSE_NO_DEVICE  = 385;     (* MSG%MOUSE_NO_DEVICE *)
  5384. CONST ERROR_MOUSE_INV_HANDLE = 386;     (* MSG%MOUSE_INV_HANDLE *)
  5385. CONST ERROR_MOUSE_INV_PARMS  = 387;     (* MSG%MOUSE_CALLER_NOT_SYBSYS *)
  5386. CONST ERROR_MOUSE_CANT_RESET = 388;     (* MSG%none *)
  5387. CONST ERROR_MOUSE_DISPLAY_PARMS      = 389;     (* MSG%none *)
  5388. CONST ERROR_MOUSE_INV_MODULE = 390;     (* MSG%none *)
  5389. CONST ERROR_MOUSE_INV_ENTRY_PT       = 391;     (* MSG%none *)
  5390. CONST ERROR_MOUSE_INV_MASK   = 392;     (* MSG%none *)
  5391. CONST NO_ERROR_MOUSE_NO_DATA = 393;     (* MSG%none *)
  5392. CONST NO_ERROR_MOUSE_PTR_DRAWN       = 394;     (* MSG%none *)
  5393. CONST ERROR_INVALID_FREQUENCY= 395;     (* MSG%none *)
  5394. CONST ERROR_NLS_NO_COUNTRY_FILE      = 396;     (* MSG%NLS_NO_COUNTRY_FILE *)
  5395. (*                                      396%msg%NO_COUNTRY_SYS *)
  5396. CONST ERROR_NLS_OPEN_FAILED  = 397;     (* MSG%NLS_OPEN_FAILED *)
  5397. (*                                      397%msg%OPEN_COUNTRY_SYS *)
  5398. CONST ERROR_NLS_NO_CTRY_CODE = 398;     (* MSG%NLS_NO_CTRY_CODE *)
  5399. CONST ERROR_NO_COUNTRY_OR_CODEPAGE   = 398;     (* MSG%NO_COUNTRY_OR_CODEPAGE *)
  5400. CONST ERROR_NLS_TABLE_TRUNCATED      = 399;     (* MSG%NLS_TABLE_TRUNCATED *)
  5401. CONST ERROR_NLS_BAD_TYPE     = 400;     (* MSG%NLS_BAD_TYPE *)
  5402. CONST ERROR_NLS_TYPE_NOT_FOUND       = 401;     (* MSG%NLS_TYPE_NOT_FOUND *)
  5403. (*                                      401%msg%COUNTRY_NO_TYPE *)
  5404. CONST ERROR_VIO_SMG_ONLY     = 402;     (* MSG%SWAPIN_FAILED *)
  5405. CONST ERROR_VIO_INVALID_ASCIIZ       = 403;     (* MSG%SEGVALIDATE_FAILURE *)
  5406. CONST ERROR_VIO_DEREGISTER   = 404;     (* MSG%VIO_DEREGISTER *)
  5407. CONST ERROR_VIO_NO_POPUP     = 405;     (* MSG%VIO_NO_POPUP *)
  5408. CONST ERROR_VIO_EXISTING_POPUP       = 406;     (* MSG%VIO_EXISTING_POPUP *)
  5409. CONST ERROR_KBD_SMG_ONLY     = 407;     (* MSG%KBD_SMG_ONLY *)
  5410. CONST ERROR_KBD_INVALID_ASCIIZ       = 408;     (* MSG%KBD_INVALID_ASCIIZ *)
  5411. CONST ERROR_KBD_INVALID_MASK = 409;     (* MSG%KBD_INVALID_MASK *)
  5412. CONST ERROR_KBD_REGISTER     = 410;     (* MSG%KBD_REGISTER *)
  5413. CONST ERROR_KBD_DEREGISTER   = 411;     (* MSG%KBD_DEREGISTER *)
  5414. CONST ERROR_MOUSE_SMG_ONLY   = 412;     (* MSG%MOUSE_SMG_ONLY *)
  5415. CONST ERROR_MOUSE_INVALID_ASCIIZ     = 413;     (* MSG%MOUSE_INVALID_ASCIIZ *)
  5416. CONST ERROR_MOUSE_INVALID_MASK       = 414;     (* MSG%MOUSE_INVALID_MASK *)
  5417. CONST ERROR_MOUSE_REGISTER   = 415;     (* MSG%MOUSE_REGISTER *)
  5418. CONST ERROR_MOUSE_DEREGISTER = 416;     (* MSG%MOUSE_DEREGISTER *)
  5419. CONST ERROR_SMG_BAD_ACTION   = 417;     (* MSG%SMG_BAD_ACTION *)
  5420. CONST ERROR_SMG_INVALID_CALL = 418;     (* MSG%SMG_INVALID_CALL *)
  5421. CONST ERROR_SCS_SG_NOTFOUND  = 419;     (* MSG%none *)
  5422. CONST ERROR_SCS_NOT_SHELL    = 420;     (* MSG%none *)
  5423. CONST ERROR_VIO_INVALID_PARMS= 421;     (* MSG%VIO_INVALID_PARMS *)
  5424. CONST ERROR_VIO_FUNCTION_OWNED       = 422;     (* MSG%VIO_FUNCTION_OWNED *)
  5425. CONST ERROR_VIO_RETURN       = 423;     (* MSG%none *)
  5426. CONST ERROR_SCS_INVALID_FUNCTION     = 424;     (* MSG%none *)
  5427. CONST ERROR_SCS_NOT_SESSION_MGR      = 425;     (* MSG%none *)
  5428. CONST ERROR_VIO_REGISTER     = 426;     (* MSG%VIO_REGISTER *)
  5429. CONST ERROR_VIO_NO_MODE_THREAD       = 427;     (* MSG%none *)
  5430. CONST ERROR_VIO_NO_SAVE_RESTORE_THD  = 428;     (* MSG%VIO_NO_SAVE_RESTORE_THD *)
  5431. CONST ERROR_VIO_IN_BG= 429;     (* MSG%VIO_IN_BG *)
  5432. CONST ERROR_VIO_ILLEGAL_DURING_POPUP = 430;     (* MSG%VIO_ILLEGAL_DURING_POPUP *)
  5433. CONST ERROR_SMG_NOT_BASESHELL= 431;     (* MSG%SMG_NOT_BASESHELL *)
  5434. CONST ERROR_SMG_BAD_STATUSREQ= 432;     (* MSG%SMG_BAD_STATUSREQ *)
  5435. CONST ERROR_QUE_INVALID_WAIT = 433;     (* MSG%none *)
  5436. CONST ERROR_VIO_LOCK = 434;     (* MSG%VIO_LOCK *)
  5437. CONST ERROR_MOUSE_INVALID_IOWAIT     = 435;     (* MSG%MOUSE_INVALID_IOWAIT *)
  5438. CONST ERROR_VIO_INVALID_HANDLE       = 436;     (* MSG%VIO_INVALID_HANDLE *)
  5439. CONST ERROR_VIO_ILLEGAL_DURING_LOCK  = 437;     (* MSG%none *)
  5440. CONST ERROR_VIO_INVALID_LENGTH       = 438;     (* MSG%VIO_INVALID_LENGTH *)
  5441. CONST ERROR_KBD_INVALID_HANDLE       = 439;     (* MSG%KBD_INVALID_HANDLE *)
  5442. CONST ERROR_KBD_NO_MORE_HANDLE       = 440;     (* MSG%KBD_NO_MORE_HANDLE *)
  5443. CONST ERROR_KBD_CANNOT_CREATE_KCB    = 441;     (* MSG%KBD_CANNOT_CREATE_KCB *)
  5444. CONST ERROR_KBD_CODEPAGE_LOAD_INCOMPL= 442;     (* MSG%KBD_CODEPAGE_LOAD_INCOMPL *)
  5445. CONST ERROR_KBD_INVALID_CODEPAGE_ID  = 443;     (* MSG%KBD_INVALID_CODEPAGE_ID *)
  5446. CONST ERROR_KBD_NO_CODEPAGE_SUPPORT  = 444;     (* MSG%KBD_NO_CODEPAGE_SUPPORT *)
  5447. CONST ERROR_KBD_FOCUS_REQUIRED       = 445;     (* MSG%KBD_FOCUS_REQUIRED *)
  5448. CONST ERROR_KBD_FOCUS_ALREADY_ACTIVE = 446;     (* MSG%KBD_FOCUS_ALREADY_ACTIVE *)
  5449. CONST ERROR_KBD_KEYBOARD_BUSY= 447;     (* MSG%KBD_KEYBOARD_BUSY *)
  5450. CONST ERROR_KBD_INVALID_CODEPAGE     = 448;     (* MSG%KBD_INVALID_CODEPAGE *)
  5451. CONST ERROR_KBD_UNABLE_TO_FOCUS      = 449;     (* MSG%KBD_UNABLE_TO_FOCUS *)
  5452. CONST ERROR_SMG_SESSION_NON_SELECT   = 450;     (* MSG%SMG_SESSION_NON_SELECT *)
  5453. CONST ERROR_SMG_SESSION_NOT_FOREGRND = 451;     (* MSG%SMG_SESSION_NOT_FOREGRND *)
  5454. CONST ERROR_SMG_SESSION_NOT_PARENT   = 452;     (* MSG%SMG_SESSION_NOT_PARENT *)
  5455. CONST ERROR_SMG_INVALID_START_MODE   = 453;     (* MSG%SMG_INVALID_START_MODE *)
  5456. CONST ERROR_SMG_INVALID_RELATED_OPT  = 454;     (* MSG%SMG_INVALID_RELATED_OPT *)
  5457. CONST ERROR_SMG_INVALID_BOND_OPTION  = 455;     (* MSG%SMG_INVALID_BOND_OPTION *)
  5458. CONST ERROR_SMG_INVALID_SELECT_OPT   = 456;     (* MSG%SMG_INVALID_SELECT_OPT *)
  5459. CONST ERROR_SMG_START_IN_BACKGROUND  = 457;     (* MSG%SMG_START_IN_BACKGROUND *)
  5460. CONST ERROR_SMG_INVALID_STOP_OPTION  = 458;     (* MSG%SMG_INVALID_STOP_OPTION *)
  5461. CONST ERROR_SMG_BAD_RESERVE  = 459;     (* MSG%SMG_BAD_RESERVE *)
  5462. CONST ERROR_SMG_PROCESS_NOT_PARENT   = 460;     (* MSG%SMG_PROCESS_NOT_PARENT *)
  5463. CONST ERROR_SMG_INVALID_DATA_LENGTH  = 461;     (* MSG%SMG_INVALID_DATA_LENGTH *)
  5464. CONST ERROR_SMG_NOT_BOUND    = 462;     (* MSG%SMG_NOT_BOUND *)
  5465. CONST ERROR_SMG_RETRY_SUB_ALLOC      = 463;     (* MSG%SMG_RETRY_SUB_ALLOC *)
  5466. CONST ERROR_KBD_DETACHED     = 464;     (* MSG%KBD_DETACHED *)
  5467. CONST ERROR_VIO_DETACHED     = 465;     (* MSG%VIO_DETACHED *)
  5468. CONST ERROR_MOU_DETACHED     = 466;     (* MSG%MOU_DETACHED *)
  5469. CONST ERROR_VIO_FONT = 467;     (* MSG%VIO_FONT *)
  5470. CONST ERROR_VIO_USER_FONT    = 468;     (* MSG%VIO_USER_FONT *)
  5471. CONST ERROR_VIO_BAD_CP       = 469;     (* MSG%VIO_BAD_CP *)
  5472. CONST ERROR_VIO_NO_CP= 470;     (* MSG%none *)
  5473. CONST ERROR_VIO_NA_CP= 471;     (* MSG%VIO_NA_CP *)
  5474. CONST ERROR_INVALID_CODE_PAGE= 472;     (* MSG%none *)
  5475. CONST ERROR_CPLIST_TOO_SMALL = 473;     (* MSG%none *)
  5476. CONST ERROR_CP_NOT_MOVED     = 474;     (* MSG%none *)
  5477. CONST ERROR_MODE_SWITCH_INIT = 475;     (* MSG%none *)
  5478. CONST ERROR_CODE_PAGE_NOT_FOUND      = 476;     (* MSG%none *)
  5479. CONST ERROR_UNEXPECTED_SLOT_RETURNED = 477;     (* MSG%none *)
  5480. CONST ERROR_SMG_INVALID_TRACE_OPTION = 478;     (* MSG%SMG_INVALID_TRACE_OPTION *)
  5481. CONST ERROR_VIO_INTERNAL_RESOURCE    = 479;     (* MSG%none *)
  5482. CONST ERROR_VIO_SHELL_INIT   = 480;     (* MSG%VIO_SHELL_INIT *)
  5483. CONST ERROR_SMG_NO_HARD_ERRORS       = 481;     (* MSG%SMG_NO_HARD_ERRORS *)
  5484. CONST ERROR_CP_SWITCH_INCOMPLETE     = 482;     (* MSG%none *)
  5485. CONST ERROR_VIO_TRANSPARENT_POPUP    = 483;     (* MSG%VIO_TRANSPARENT_POPUP *)
  5486. CONST ERROR_CRITSEC_OVERFLOW = 484;     (* MSG%none *)
  5487. CONST ERROR_CRITSEC_UNDERFLOW= 485;     (* MSG%none *)
  5488. CONST ERROR_VIO_BAD_RESERVE  = 486;     (* MSG%VIO_BAD_RESERVE *)
  5489. CONST ERROR_INVALID_ADDRESS  = 487;     (* MSG%INVALID_ADDRESS *)
  5490. CONST ERROR_ZERO_SELECTORS_REQUESTED = 488;     (* MSG%ZERO_SELECTORS_REQUESTED *)
  5491. CONST ERROR_NOT_ENOUGH_SELECTORS_AVA = 489;     (* MSG%NOT_ENOUGH_SELECTORS_AVA *)
  5492. CONST ERROR_INVALID_SELECTOR = 490;     (* MSG%INVALID_SELECTOR *)
  5493. CONST ERROR_SMG_INVALID_PROGRAM_TYPE = 491;     (* MSG%SMG_INVALID_PROGRAM_TYPE *)
  5494. CONST ERROR_SMG_INVALID_PGM_CONTROL  = 492;     (* MSG%SMG_INVALID_PGM_CONTROL *)
  5495. CONST ERROR_SMG_INVALID_INHERIT_OPT  = 493;     (* MSG%SMG_INVALID_INHERIT_OPT *)
  5496. CONST ERROR_VIO_EXTENDED_SG  = 494;     (* MSG%VIO_EXTENDED_SG *)
  5497. CONST ERROR_VIO_NOT_PRES_MGR_SG      = 495;     (* MSG%VIO_NOT_PRES_MGR_SG *)
  5498. CONST ERROR_VIO_SHIELD_OWNED = 496;     (* MSG%VIO_SHIELD_OWNED *)
  5499. CONST ERROR_VIO_NO_MORE_HANDLES      = 497;     (* MSG%VIO_NO_MORE_HANDLES *)
  5500. CONST ERROR_VIO_SEE_ERROR_LOG= 498;     (* MSG%none *)
  5501. CONST ERROR_VIO_ASSOCIATED_DC= 499;     (* MSG%none *)
  5502. CONST ERROR_KBD_NO_CONSOLE   = 500;     (* MSG%KBD_NO_CONSOLE *)
  5503. CONST ERROR_MOUSE_NO_CONSOLE = 501;     (* MSG%DOS_STOPPED *)
  5504. CONST ERROR_MOUSE_INVALID_HANDLE     = 502;     (* MSG%MOUSE_INVALID_HANDLE *)
  5505. CONST ERROR_SMG_INVALID_DEBUG_PARMS  = 503;     (* MSG%SMG_INVALID_DEBUG_PARMS *)
  5506. CONST ERROR_KBD_EXTENDED_SG  = 504;     (* MSG%KBD_EXTENDED_SG *)
  5507. CONST ERROR_MOU_EXTENDED_SG  = 505;     (* MSG%MOU_EXTENDED_SG *)
  5508. CONST ERROR_SMG_INVALID_ICON_FILE    = 506;     (* MSG%none *)
  5509. CONST ERROR_TRC_PID_NON_EXISTENT     = 507;     (* MSG%TRC_PID_NON_EXISTENT *)
  5510. CONST ERROR_TRC_COUNT_ACTIVE = 508;     (* MSG%TRC_COUNT_ACTIVE *)
  5511. CONST ERROR_TRC_SUSPENDED_BY_COUNT   = 509;     (* MSG%TRC_SUSPENDED_BY_COUNT *)
  5512. CONST ERROR_TRC_COUNT_INACTIVE       = 510;     (* MSG%TRC_COUNT_INACTIVE *)
  5513. CONST ERROR_TRC_COUNT_REACHED= 511;     (* MSG%TRC_COUNT_REACHED *)
  5514. CONST ERROR_NO_MC_TRACE      = 512;     (* MSG%NO_MC_TRACE *)
  5515. CONST ERROR_MC_TRACE = 513;     (* MSG%MC_TRACE *)
  5516. CONST ERROR_TRC_COUNT_ZERO   = 514;     (* MSG%TRC_COUNT_ZERO *)
  5517. CONST ERROR_SMG_TOO_MANY_DDS = 515;     (* MSG%SMG_TOO_MANY_DDS *)
  5518. CONST ERROR_SMG_INVALID_NOTIFICATION = 516;     (* MSG%SMG_INVALID_NOTIFICATION *)
  5519. CONST ERROR_LF_INVALID_FUNCTION      = 517;     (* MSG%LF_INVALID_FUNCTION *)
  5520. CONST ERROR_LF_NOT_AVAIL     = 518;     (* MSG%LF_NOT_AVAIL *)
  5521. CONST ERROR_LF_SUSPENDED     = 519;     (* MSG%LF_SUSPENDED *)
  5522. CONST ERROR_LF_BUF_TOO_SMALL = 520;     (* MSG%LF_BUF_TOO_SMALL *)
  5523. CONST ERROR_LF_BUFFER_CORRUPTED      = 521;     (* MSG%none *)
  5524. CONST ERROR_LF_BUFFER_FULL           = 521; (* MSG%LF_BUF_FULL *)
  5525. CONST ERROR_LF_INVALID_DAEMON= 522;     (* MSG%none *)
  5526. CONST ERROR_LF_INVALID_RECORD        = 522; (* MSG%LF_INVAL_RECORD *)
  5527. CONST ERROR_LF_INVALID_TEMPL = 523;     (* MSG%none *)
  5528. CONST ERROR_LF_INVALID_SERVICE       = 523; (* MSG%LF_INVAL_SERVICE *)
  5529. CONST ERROR_LF_GENERAL_FAILURE       = 524;     (* MSG%LF_GENERAL_FAILURE *)
  5530. CONST ERROR_LF_INVALID_ID    = 525;     (* MSG%HPFS_DISK_ALREADY_INUSE *)
  5531. CONST ERROR_LF_INVALID_HANDLE= 526;     (* MSG%HPFS_CANNOT_FORMAT_DISK *)
  5532. CONST ERROR_LF_NO_ID_AVAIL   = 527;     (* MSG%HPFS_CANNOT_COPY_SYS_DATA *)
  5533. CONST ERROR_LF_TEMPLATE_AREA_FULL    = 528;     (* MSG%HPFS_FORMAT_NOT_DONE *)
  5534. CONST ERROR_LF_ID_IN_USE     = 529;     (* MSG%HPFS_FMT_NOT_ENOUGH_MEM *)
  5535. CONST ERROR_MOU_NOT_INITIALIZED      = 530;     (* MSG%HPFS_SPECIFY_FIXDSK *)
  5536. CONST ERROR_MOUINITREAL_DONE = 531;     (* MSG%HPFS_SPECIFY_ONE_DRIVE *)
  5537. CONST ERROR_DOSSUB_CORRUPTED = 532;     (* MSG%HPFS_UNKNOWN_ERR_NO_FORMAT *)
  5538. CONST ERROR_MOUSE_CALLER_NOT_SUBSYS  = 533;     (* MSG%HPFS_SYNTAX_HELP *)
  5539. CONST ERROR_ARITHMETIC_OVERFLOW      = 534;     (* MSG%HPFS_DISK_FORMATING *)
  5540. CONST ERROR_TMR_NO_DEVICE    = 535;     (* MSG%HPFS_AVAIL_DISK_SPACE *)
  5541. CONST ERROR_TMR_INVALID_TIME = 536;     (* MSG%HPFS_BAD_BLOCKS *)
  5542. CONST ERROR_PVW_INVALID_ENTITY       = 537;     (* MSG%HPFS_DISK_SPACE_AVAIL *)
  5543. CONST ERROR_PVW_INVALID_ENTITY_TYPE  = 538;     (* MSG%HPFS_SPACE_FORMATTED *)
  5544. CONST ERROR_PVW_INVALID_SPEC = 539;     (* MSG%HPFS_TYPE_CUR_VOLUME_LABEL *)
  5545. CONST ERROR_PVW_INVALID_RANGE_TYPE   = 540;     (* MSG%HPFS_DRIVER_NOT_LOADED *)
  5546. CONST ERROR_PVW_INVALID_COUNTER_BLK  = 541;     (* MSG%HPFS_DRIVER_LOADER *)
  5547. CONST ERROR_PVW_INVALID_TEXT_BLK     = 542;     (* MSG%HPFS_CACHE_BUF_SPECIFIED *)
  5548. CONST ERROR_PRF_NOT_INITIALIZED      = 543;     (* MSG%HPFS_CHKDSK_PARM_ERROR *)
  5549. CONST ERROR_PRF_ALREADY_INITIALIZED  = 544;     (* MSG%HPFS_CHKDSK_NOACCESS_DRIVE *)
  5550. CONST ERROR_PRF_NOT_STARTED  = 545;     (* MSG%HPFS_UNKNOWN_ERR_NO_CHKDSK *)
  5551. CONST ERROR_PRF_ALREADY_STARTED      = 546;     (* MSG%HPFS_CHKDSK_NOT_ENOUGH_MEM *)
  5552. CONST ERROR_PRF_TIMER_OUT_OF_RANGE   = 547;     (* MSG%HPFS_CHKDSK_NOWRITEODATA *)
  5553. CONST ERROR_PRF_TIMER_RESET  = 548;     (* MSG%HPFS_CHKDSK_NORECOVER_DATA *)
  5554. (*                                      549%msg%HPFS_CHKDSK_NO_PARM_SPACE *)
  5555. (*                                      550%msg%HPFS_CHKDSK_NORECOGNIZE *)
  5556. (*                                      551%msg%HPFS_CHKDSK_NOROOT_FIND *)
  5557. (*                                      552%msg%HPFS_CHKDSK_NOFIX_FS_ERROR *)
  5558. (*                                      553%msg%HPFS_CHKDSK_CORRECT_FS_ERR *)
  5559. (*                                      554%msg%HPFS_CHKDSK_ORGAN_FIX *)
  5560. (*                                      555%msg%HPFS_CHKDSK_RELOC_BBPDATA *)
  5561. (*                                      556%msg%HPFS_CHKDSK_REM_CORRU_BLOC *)
  5562. (*                                      557%msg%HPFS_CHKDSK_REM_CORRUP_FIL *)
  5563. (*                                      558%msg%HPFS_CHKDSK_FIX_SPACE_ALLO *)
  5564. (*                                      559%msg%HPFS_NOT_FORMATTED_DISK *)
  5565. (*                                      560%msg%HPFS_CHKDSK_COR_ALLOC *)
  5566. (*                                      561%msg%HPFS_CHKDSK_SEARC_UNALLOC *)
  5567. (*                                      562%msg%HPFS_CHKDSK_DET_LOST_DATA *)
  5568. (*                                      563%msg%HPFS_CHKDSK_PERCENT_SEARC *)
  5569. (*                                      564%msg%HPFS_CHKDSK_LOST_DATASEARC *)
  5570. (*                                      565%msg%HPFS_CHKDSK_CRIT_NOREAD *)
  5571. (*                                      566%msg%HPFS_CHKDSK_DISK_INUSE *)
  5572. (*                                      567%msg%HPFS_CHKDSK_RECOVTEMP_RELOC *)
  5573. (*                                      568%msg%HPFS_TOTAL_DISK_SPACE *)
  5574. (*                                      569%msg%HPFS_DIR_KBYTES *)
  5575. (*                                      570%msg%HPFS_FILE_KBYTES *)
  5576. (*                                      571%msg%HPFS_KBYTES_AVAILABLE *)
  5577. (*                                      572%msg%HPFS_CHKDSK_PLACE_REC_FILE *)
  5578. (*                                      573%msg%HPFS_CHKDSK_RECO_DIR_AS *)
  5579. (*                                      574%msg%HPFS_CHKDSK_PLACEED_DATA *)
  5580. (*                                      575%msg%HPFS_CHKDSK_RECOV_EA *)
  5581. (*                                      576%msg%HPFS_CHKDSK_FIND_EA_INTEM *)
  5582. (*                                      577%msg%HPFS_CHKDSK_RELOC_TEMP_EA *)
  5583. (*                                      578%msg%HPFS_CHKDSK_RELOC_AC_LIST *)
  5584. (*                                      579%msg%HPFS_CHKDSK_LIST_NORELOC *)
  5585. (*                                      580%msg%HPFS_CHKDSK_TRUN_EA_LIST *)
  5586. (*                                      581%msg%HPFS_CHKDSK_TRUN_EA_NAME *)
  5587. (*                                      582%msg%HPFS_CHKDSK_TRUN_EA_BBLOCK *)
  5588. (*                                      583%msg%HPFS_CHKDSK_REM_INVALID_EA *)
  5589. (*                                      584%msg%HPFS_CHKDSK_FIX_EA_ALLOC *)
  5590. (*                                      585%msg%HPFS_CHKDSK_FIX_ALACCCTRL *)
  5591. (*                                      586%msg%HPFS_CHKDSK_ACCTR_LIST_BBL *)
  5592. (*                                      587%msg%HPFS_CHKDSK_REM_ACLIST *)
  5593. (*                                      588%msg%HPFS_CHKDSK_FOUND_DATANORL *)
  5594. (*                                      589%msg%HPFS_WRONG_VERSION *)
  5595. (*                                      590%msg%HPFS_CHKDSK_FOUND_DATATEMP *)
  5596. (*                                      591%msg%HPFS_CHKDSK_FIX_TEMPSTATUS *)
  5597. (*                                      592%msg%HPFS_CHKDSK_FIX_NEEDEADATA *)
  5598. (*                                      593%msg%HPFS_RECOVER_PARM_ERROR *)
  5599. (*                                      594%msg%HPFS_RECOV_FILE_NOT_FOUND *)
  5600. (*                                      595%msg%HPFS_RECOV_UNKNOWN_ERROR *)
  5601. (*                                      596%msg%HPFS_RECOV_NOT_ENOUGH_MEM *)
  5602. (*                                      597%msg%HPFS_RECOV_NOWRITE_DATA *)
  5603. (*                                      598%msg%HPFS_RECOV_NOTEMP_CREATE *)
  5604. (*                                      599%msg%HPFS_RECOV_EA_NOREAD *)
  5605. (*                                      600%msg%HPFS_RECOV_FILE_BYTES *)
  5606. (*                                      601%msg%HPFS_RECOV_BAD_BYTES_RECOV *)
  5607. (*                                      602%msg%HPFS_RECOV_FILEBYTES_NOREC *)
  5608. (*                                      603%msg%HPFS_RECOV_DISK_INUSE *)
  5609. (*                                      604%msg%HPFS_RECOV_FILE_NODELETE *)
  5610. (*                                      605%msg%HPFS_RECOV_NOCREATE_NEWFILE *)
  5611. (*                                      606%msg%HPFS_RECOV_SYSTEM_ERROR *)
  5612. (*                                      607%msg%HPFS_SYS_PARM_ERROR *)
  5613. (*                                      608%msg%HPFS_SYS_CANNOT_INSTALL *)
  5614. (*                                      609%msg%HPFS_SYS_DRIVE_NOTFORMATED *)
  5615. (*                                      610%msg%HPFS_SYS_FILE_NOCREATE *)
  5616. (*                                      611%msg%HPFS_SIZE_EXCEED *)
  5617. (*                                      612%msg%HPFS_SYNTAX_ERR *)
  5618. (*                                      613%msg%HPFS_NOTENOUGH_MEM *)
  5619. (*                                      614%msg%HPFS_WANT_MEM *)
  5620. (*                                      615%msg%HPFS_GET_RETURNED *)
  5621. (*                                      616%msg%HPFS_SET_RETURNED *)
  5622. (*                                      617%msg%HPFS_BOTH_RETURNED *)
  5623. (*                                      618%msg%HPFS_STOP_RETURNED *)
  5624. (*                                      619%msg%HPFS_SETPRTYRETURNED *)
  5625. (*                                      620%msg%HPFS_ALCSG_RETURNED *)
  5626. (*                                      621%msg%HPFS_MSEC_SET *)
  5627. (*                                      622%msg%HPFS_OPTIONS *)
  5628. (*                                      623%msg%HPFS_POS_NUM_VALUE *)
  5629. (*                                      624%msg%HPFS_VALUE_TOO_LARGE *)
  5630. (*                                      625%msg%HPFS_LAZY_NOT_VALID *)
  5631. (*                                      626%msg%HPFS_VOLUME_ERROR *)
  5632. (*                                      627%msg%HPFS_VOLUME_DIRTY *)
  5633. (*                                      628%msg%HPFS_NEW_SECTOR *)
  5634. (*                                      629%msg%HPFS_FORMAT_PARM_ERROR *)
  5635. (*                                      630%msg%HPFS_CANNOT_ACCESS_CONFIG *)
  5636. (*                                      631%msg%HPFS_RECOV_FILE *)
  5637. (*                                      632%msg%HPFS_CHKDSK_KBYTES_RESERVE *)
  5638. (*                                      633%msg%HPFS_CHKDSK_KBYTES_IN_EA *)
  5639. (*                                      634%msg%HPFS_BYTEBUF_SET *)
  5640. (*                                      635%msg%HPFS_FORMATTING_COMPLETE *)
  5641. (*                                      636%msg%HPFS_WRONG_VOLUME_LABEL *)
  5642. (*                                      637%msg%HPFS_FMAT_TOO_MANY_DRS *)
  5643. (*                                      638%msg%VDD_UNSUPPORTED_ACCESS *)
  5644. CONST ERROR_VDD_LOCK_USEAGE_DENIED   = 639; (* KP.COM not supported in DOS *)
  5645. CONST ERROR_TIMEOUT  = 640;     (* MSG%none *)
  5646. CONST ERROR_VDM_DOWN = 641;     (* MSG%none *)
  5647. CONST ERROR_VDM_LIMIT= 642;     (* MSG%none *)
  5648. CONST ERROR_VDD_NOT_FOUND    = 643;     (* MSG%none *)
  5649. CONST ERROR_INVALID_CALLER   = 644;     (* MSG%none *)
  5650. CONST ERROR_PID_MISMATCH     = 645;     (* MSG%none *)
  5651. CONST ERROR_INVALID_VDD_HANDLE       = 646;     (* MSG%none *)
  5652. CONST ERROR_VLPT_NO_SPOOLER  = 647;     (* MSG%none *)
  5653. CONST ERROR_VCOM_DEVICE_BUSY = 648;     (* MSG%none *)
  5654. CONST ERROR_VLPT_DEVICE_BUSY = 649;     (* MSG%none *)
  5655. CONST ERROR_NESTING_TOO_DEEP = 650;     (* MSG%none *)
  5656. CONST ERROR_VDD_MISSING      = 651;     (* MSG%VDD_MISSING *)
  5657.  
  5658. (* INVALID BIDI API PARAMETERS 671 - 684 no msg's required *)
  5659.  
  5660. CONST ERROR_BIDI_INVALID_LENGTH      = 671;    (* MSG%none *)
  5661. CONST ERROR_BIDI_INVALID_INCREMENT   = 672;    (* MSG%none *)
  5662. CONST ERROR_BIDI_INVALID_COMBINATION = 673;    (* MSG%none *)
  5663. CONST ERROR_BIDI_INVALID_RESERVED    = 674;    (* MSG%none *)
  5664. CONST ERROR_BIDI_INVALID_EFFECT      = 675;    (* MSG%none *)
  5665. CONST ERROR_BIDI_INVALID_CSDREC      = 676;    (* MSG%none *)
  5666. CONST ERROR_BIDI_INVALID_CSDSTATE    = 677;    (* MSG%none *)
  5667. CONST ERROR_BIDI_INVALID_LEVEL       = 678;    (* MSG%none *)
  5668. CONST ERROR_BIDI_INVALID_TYPE_SUPPORT= 679;    (* MSG%none *)
  5669. CONST ERROR_BIDI_INVALID_ORIENTATION = 680;    (* MSG%none *)
  5670. CONST ERROR_BIDI_INVALID_NUM_SHAPE   = 681;    (* MSG%none *)
  5671. CONST ERROR_BIDI_INVALID_CSD         = 682;    (* MSG%none *)
  5672. CONST ERROR_BIDI_NO_SUPPORT          = 683;    (* MSG%none *)
  5673. CONST NO_ERROR_BIDI_RW_INCOMPLETE    = 684;    (* MSG%none *)
  5674.  
  5675. (*                                      689%msg%HPFS_LAZY_ON *)
  5676. (*                                      690%msg%HPFS_LAZY_OFF *)
  5677. CONST ERROR_IMP_INVALID_PARM   = 691;     (* MSG%none *)
  5678. CONST ERROR_IMP_INVALID_LENGTH = 692;     (* MSG%none *)
  5679. CONST MSG_HPFS_DISK_ERROR_WARN = 693;     (* MSG%HPFS_DISK_ERROR_WARN *)
  5680. CONST ERROR_MON_BAD_BUFFER           = 730;     (* MSG%BAD_MON_BUFFER *)
  5681.  
  5682. CONST ERROR_MODULE_CORRUPTED = 731;     (* MSG%MODULE_CORRUPTED *)
  5683.  
  5684. CONST ERROR_SM_OUTOF_SWAPFILE         = 1477;   (* MSG%SM_OUT_OF_SWAFILE *)
  5685.  
  5686. CONST ERROR_LF_TIMEOUT                = 2055;   (* MSG%LF_TIMEOUT *)
  5687. CONST ERROR_LF_SUSPEND_SUCCESS        = 2057;   (* MSG%LF_SUSP_SUCCESS *)
  5688. CONST ERROR_LF_RESUME_SUCCESS         = 2058;   (* MSG%LF_RESUM_SUCCESS *)
  5689. CONST ERROR_LF_REDIRECT_SUCCESS       = 2059;   (* MSG%LF_REDIR_SUCCESS *)
  5690. CONST ERROR_LF_REDIRECT_FAILURE       = 2060;   (* MSG%LF_REDIR_FAILURE *)
  5691.  
  5692.  
  5693. CONST ERROR_SWAPPER_NOT_ACTIVE       = 32768;
  5694. CONST ERROR_INVALID_SWAPID           = 32769;
  5695. CONST ERROR_IOERR_SWAP_FILE          = 32770;
  5696. CONST ERROR_SWAP_TABLE_FULL          = 32771;
  5697. CONST ERROR_SWAP_FILE_FULL           = 32772;
  5698. CONST ERROR_CANT_INIT_SWAPPER        = 32773;
  5699. CONST ERROR_SWAPPER_ALREADY_INIT     = 32774;
  5700. CONST ERROR_PMM_INSUFFICIENT_MEMORY  = 32775;
  5701. CONST ERROR_PMM_INVALID_FLAGS        = 32776;
  5702. CONST ERROR_PMM_INVALID_ADDRESS      = 32777;
  5703. CONST ERROR_PMM_LOCK_FAILED          = 32778;
  5704. CONST ERROR_PMM_UNLOCK_FAILED        = 32779;
  5705. CONST ERROR_PMM_MOVE_INCOMPLETE      = 32780;
  5706. CONST ERROR_UCOM_DRIVE_RENAMED       = 32781;
  5707. CONST ERROR_UCOM_FILENAME_TRUNCATED  = 32782;
  5708. CONST ERROR_UCOM_BUFFER_LENGTH       = 32783;
  5709. CONST ERROR_MON_CHAIN_HANDLE         = 32784;
  5710. CONST ERROR_MON_NOT_REGISTERED       = 32785;
  5711. CONST ERROR_SMG_ALREADY_TOP          = 32786;
  5712. CONST ERROR_PMM_ARENA_MODIFIED       = 32787;
  5713. CONST ERROR_SMG_PRINTER_OPEN         = 32788;
  5714. CONST ERROR_PMM_SET_FLAGS_FAILED     = 32789;
  5715. CONST ERROR_INVALID_DOS_DD           = 32790;
  5716. CONST ERROR_BLOCKED                  = 32791;
  5717. CONST ERROR_NOBLOCK                  = 32792;
  5718. CONST ERROR_INSTANCE_SHARED          = 32793;
  5719. CONST ERROR_NO_OBJECT                = 32794;
  5720. CONST ERROR_PARTIAL_ATTACH           = 32795;
  5721. CONST ERROR_INCACHE                  = 32796;
  5722. CONST ERROR_SWAP_IO_PROBLEMS         = 32797;
  5723. CONST ERROR_CROSSES_OBJECT_BOUNDARY  = 32798;
  5724. CONST ERROR_LONGLOCK                 = 32799;
  5725. CONST ERROR_SHORTLOCK                = 32800;
  5726. CONST ERROR_UVIRTLOCK                = 32801;
  5727. CONST ERROR_ALIASLOCK                = 32802;
  5728. CONST ERROR_ALIAS                    = 32803;
  5729. CONST ERROR_NO_MORE_HANDLES          = 32804;
  5730. CONST ERROR_SCAN_TERMINATED          = 32805;
  5731. CONST ERROR_TERMINATOR_NOT_FOUND     = 32806;
  5732. CONST ERROR_NOT_DIRECT_CHILD         = 32807;
  5733. CONST ERROR_DELAY_FREE               = 32808;
  5734. CONST ERROR_GUARDPAGE                = 32809;
  5735. CONST ERROR_SWAPERROR                = 32900;
  5736. CONST ERROR_LDRERROR                 = 32901;
  5737. CONST ERROR_NOMEMORY                 = 32902;
  5738. CONST ERROR_NOACCESS                 = 32903;
  5739. CONST ERROR_NO_DLL_TERM              = 32904;
  5740. CONST ERROR_CPSIO_CODE_PAGE_INVALID  = 65026;
  5741. CONST ERROR_CPSIO_NO_SPOOLER         = 65027;
  5742. CONST ERROR_CPSIO_FONT_ID_INVALID    = 65028;
  5743. CONST ERROR_CPSIO_INTERNAL_ERROR     = 65033;
  5744. CONST ERROR_CPSIO_INVALID_PTR_NAME   = 65034;
  5745. CONST ERROR_CPSIO_NOT_ACTIVE         = 65037;
  5746. CONST ERROR_CPSIO_PID_FULL           = 65039;
  5747. CONST ERROR_CPSIO_PID_NOT_FOUND      = 65040;
  5748. CONST ERROR_CPSIO_READ_CTL_SEQ       = 65043;
  5749. CONST ERROR_CPSIO_READ_FNT_DEF       = 65045;
  5750. CONST ERROR_CPSIO_WRITE_ERROR        = 65047;
  5751. CONST ERROR_CPSIO_WRITE_FULL_ERROR   = 65048;
  5752. CONST ERROR_CPSIO_WRITE_HANDLE_BAD   = 65049;
  5753. CONST ERROR_CPSIO_SWIT_LOAD          = 65074;
  5754. CONST ERROR_CPSIO_INV_COMMAND        = 65077;
  5755. CONST ERROR_CPSIO_NO_FONT_SWIT       = 65078;
  5756. CONST ERROR_ENTRY_IS_CALLGATE        = 65079;
  5757.  
  5758. <* END *>
  5759. (************************** End of file ***************************************)
  5760.  
  5761. (* ------------- End of file:  .\hm\bseerr.hm ------------- *)
  5762.  
  5763. <* IF DEFINED(INCL_ORDINALS) THEN *>
  5764.    
  5765. (* ------------- Include file: .\hm\bseord.hm ------------- *)
  5766. (*static char *SCCSID = "@(#)bseord.h    6.7 92/03/15";*)
  5767. (* bseord.h *)
  5768.  
  5769.   (******************************************************************************\
  5770.   *                                                                             *
  5771.   * Module Name: BSEORD.H                                                       *
  5772.   *                                                                             *
  5773.   * OS/2 Base MEMory Flags include file                                         *
  5774.   *                                                                             *
  5775.   * Copyright (c) 1989  - 1992 IBM Corporation                                  *
  5776.   *                                                                             *
  5777.   *******************************************************************************)
  5778.  
  5779. (* ANSICALL *)
  5780. CONST ORD_ANSIINJECT= 1;
  5781. CONST ORD_ANSIKEYDEF= 2;
  5782. CONST ORD_ANSIINTERP= 3;
  5783. (* BDCALLS *)
  5784. CONST ORD_NLSCONVERTBIDINUMERICS = 1;
  5785. CONST ORD_NLSCONVERTBIDISTRING   = 2;
  5786. CONST ORD_NLSSETBIDIATT          = 5;
  5787. CONST ORD_NLSQUERYBIDIATT        = 6;
  5788. CONST ORD_NLSINVERSESTRING       = 7;
  5789. CONST ORD_NLSSETBIDIPRINT        = 8;
  5790. CONST ORD_NLSEDITSHAPE           = 9;
  5791. CONST ORD_NLSSHAPEBIDISTRING     = 10;(* 16:Nls%ShapeBidiString *)
  5792. CONST ORD_NLSINTSETBIDIATT       = 3;
  5793. CONST ORD_NLSINTQUERYBIDIATT     = 4;
  5794. CONST ORD_NLPOPUP               = 11;
  5795. (* BKSCALLS *)
  5796. CONST ORD_BKSMAIN    = 1;
  5797. (* BMSCALLS *)
  5798. --CONST ORD_BKSMAIN    = 1;
  5799. (* BVSCALLS *)
  5800. --CONST ORD_BKSMAIN    = 1;
  5801. (* PMDRAG *)
  5802. CONST ORD_DRGACCESSDRAGINFO               = 1;
  5803. CONST ORD_DRGADDSTRHANDLE                 = 2;
  5804. CONST ORD_DRGALLOCDRAGINFO                = 3;
  5805. CONST ORD_DRGALLOCDRAGTRANSFER            = 4;
  5806. CONST ORD_DRGDELETEDRAGINFOSTRHANDLES     = 5;
  5807. CONST ORD_DRGDELETESTRHANDLE              = 6;
  5808. CONST ORD_DRGDRAG                         = 7;
  5809. CONST ORD_DRGFREEDRAGINFO                 = 8;
  5810. CONST ORD_DRGFREEDRAGTRANSFER             = 9;
  5811. CONST ORD_DRGGETPS                       = 10;
  5812. CONST ORD_DRGPOSTTRANSFERMSG             = 11;
  5813. CONST ORD_DRGPUSHDRAGINFO                = 12;
  5814. CONST ORD_DRGQUERYDRAGITEM               = 13;
  5815. CONST ORD_DRGQUERYDRAGITEMCOUNT          = 14;
  5816. CONST ORD_DRGQUERYDRAGITEMPTR            = 15;
  5817. CONST ORD_DRGQUERYNATIVERMF              = 16;
  5818. CONST ORD_DRGQUERYNATIVERMFLEN           = 17;
  5819. CONST ORD_DRGQUERYSTRNAME                = 18;
  5820. CONST ORD_DRGQUERYSTRNAMELEN             = 19;
  5821. CONST ORD_DRGQUERYTRUETYPE               = 20;
  5822. CONST ORD_DRGQUERYTRUETYPELEN            = 21;
  5823. CONST ORD_DRGRELEASEPS                   = 22;
  5824. CONST ORD_DRGSENDTRANSFERMSG             = 23;
  5825. CONST ORD_DRGSETDRAGPOINTER              = 24;
  5826. CONST ORD_DRGSETDRAGIMAGE                = 25;
  5827. CONST ORD_DRGSETDRAGITEM                 = 26;
  5828. CONST ORD_DRGVERIFYNATIVERMF             = 27;
  5829. CONST ORD_DRGVERIFYRMF                   = 28;
  5830. CONST ORD_DRGVERIFYTRUETYPE              = 29;
  5831. CONST ORD_DRGVERIFYTYPE                  = 30;
  5832. CONST ORD_DRGVERIFYTYPESET               = 31;
  5833. CONST ORD_DRGDRAGFILES                   = 63;
  5834. CONST ORD_DRGACCEPTDROPPEDFILES          = 64;
  5835. CONST ORD_DRG32ACCESSDRAGINFO            = 32;
  5836. CONST ORD_DRG32ADDSTRHANDLE              = 33;
  5837. CONST ORD_DRG32ALLOCDRAGINFO             = 34;
  5838. CONST ORD_DRG32ALLOCDRAGTRANSFER         = 35;
  5839. CONST ORD_DRG32DELETEDRAGINFOSTRHANDLES  = 36;
  5840. CONST ORD_DRG32DELETESTRHANDLE           = 37;
  5841. CONST ORD_DRG32DRAG                      = 38;
  5842. CONST ORD_DRG32FREEDRAGINFO              = 39;
  5843. CONST ORD_DRG32FREEDRAGTRANSFER          = 40;
  5844. CONST ORD_DRG32GETPS                     = 41;
  5845. CONST ORD_DRG32POSTTRANSFERMSG           = 42;
  5846. CONST ORD_DRG32PUSHDRAGINFO              = 43;
  5847. CONST ORD_DRG32QUERYDRAGITEM             = 44;
  5848. CONST ORD_DRG32QUERYDRAGITEMCOUNT        = 45;
  5849. CONST ORD_DRG32QUERYDRAGITEMPTR          = 46;
  5850. CONST ORD_DRG32QUERYNATIVERMF            = 47;
  5851. CONST ORD_DRG32QUERYNATIVERMFLEN         = 48;
  5852. CONST ORD_DRG32QUERYSTRNAME              = 49;
  5853. CONST ORD_DRG32QUERYSTRNAMELEN           = 50;
  5854. CONST ORD_DRG32QUERYTRUETYPE             = 51;
  5855. CONST ORD_DRG32QUERYTRUETYPELEN          = 52;
  5856. CONST ORD_DRG32RELEASEPS                 = 53;
  5857. CONST ORD_DRG32SENDTRANSFERMSG           = 54;
  5858. CONST ORD_DRG32SETDRAGPOINTER            = 55;
  5859. CONST ORD_DRG32SETDRAGIMAGE              = 56;
  5860. CONST ORD_DRG32SETDRAGITEM               = 57;
  5861. CONST ORD_DRG32VERIFYNATIVERMF           = 58;
  5862. CONST ORD_DRG32VERIFYRMF                 = 59;
  5863. CONST ORD_DRG32VERIFYTRUETYPE            = 60;
  5864. CONST ORD_DRG32VERIFYTYPE                = 61;
  5865. CONST ORD_DRG32VERIFYTYPESET             = 62;
  5866. CONST ORD_DRG32DRAGFILES                 = 65;
  5867. CONST ORD_DRG32ACCEPTDROPPEDFILES        = 66;
  5868. (* FKA *)
  5869. CONST ORD_FKAINIT                = 64;
  5870. CONST ORD_QUERYFKADISPLAYDETAILS = 65;
  5871. CONST ORD_WINFKAWNDPROC          = 66;
  5872. CONST ORD_WINLOADFKA             = 67;
  5873. CONST ORD_WINCREATEFKA           = 68;
  5874. CONST ORD_WINSETFKAFORM          = 69;
  5875. CONST ORD_WINQUERYFKAFORM        = 70;
  5876. CONST ORD_WINGOTOFKA             = 71;
  5877. CONST ORD_WINGOFROMFKA           = 72;
  5878. (* HELPMGR *)
  5879. CONST ORD_WINCREATEHELPINSTANCE       = 1;
  5880. CONST ORD_WINDESTROYHELPINSTANCE      = 2;
  5881. CONST ORD_WINQUERYHELPINSTANCE        = 3;
  5882. CONST ORD_WINASSOCIATEHELPINSTANCE    = 4;
  5883. CONST ORD_WINLOADHELPTABLE            = 5;
  5884. CONST ORD_WINCREATEHELPTABLE          = 6;
  5885. CONST ORD_WIN32CREATEHELPINSTANCE    = 51;
  5886. CONST ORD_WIN32DESTROYHELPINSTANCE   = 52;
  5887. CONST ORD_WIN32QUERYHELPINSTANCE     = 53;
  5888. CONST ORD_WIN32ASSOCIATEHELPINSTANCE = 54;
  5889. CONST ORD_WIN32LOADHELPTABLE         = 55;
  5890. CONST ORD_WIN32CREATEHELPTABLE       = 56;
  5891. CONST ORD_DDFINITIALIZE              = 74;
  5892. CONST ORD_DDFPARA                    = 75;
  5893. CONST ORD_DDFSETFORMAT               = 76;
  5894. CONST ORD_DDFSETTEXTALIGN            = 77;
  5895. CONST ORD_DDFSETCOLOR                = 78;
  5896. CONST ORD_DDFINFORM                  = 79;
  5897. CONST ORD_DDFSETFONTSTYLE            = 80;
  5898. CONST ORD_DDFHYPERTEXT               = 81;
  5899. CONST ORD_DDFBEGINLIST               = 82;
  5900. CONST ORD_DDFLISTITEM                = 83;
  5901. CONST ORD_DDFENDLIST                 = 84;
  5902. CONST ORD_DDFTEXT                    = 85;
  5903. CONST ORD_DDFMETAFILE                = 86;
  5904. CONST ORD_DDFSETFONT                 = 87;
  5905. CONST ORD_DDFBITMAP                  = 88;
  5906. (* KBDCALLS *)
  5907. CONST ORD_KBDSETCUSTXT   = 1;
  5908. CONST ORD_KBDGETCP       = 3;
  5909. CONST ORD_KBDCHARIN      = 4;
  5910. CONST ORD_KBDSETCP       = 5;
  5911. CONST ORD_KBDSYNCH       = 7;
  5912. CONST ORD_KBDREGISTER    = 8;
  5913. CONST ORD_KBDSTRINGIN    = 9;
  5914. CONST ORD_KBDGETSTATUS   = 10;
  5915. CONST ORD_KBDSETSTATUS   = 11;
  5916. CONST ORD_KBDGETFOCUS    = 12;
  5917. CONST ORD_KBDFLUSHBUFFER = 13;
  5918. CONST ORD_KBDXLATE       = 14;
  5919. CONST ORD_KBDCLOSE       = 17;
  5920. CONST ORD_KBDFREEFOCUS   = 18;
  5921. CONST ORD_KBDDEREGISTER  = 20;
  5922. CONST ORD_KBDSETFGND     = 21;
  5923. CONST ORD_KBDPEEK        = 22;
  5924. CONST ORD_KBDOPEN        = 23;
  5925. CONST ORD_KBDGETHWID     = 24;
  5926. CONST ORD_KBDSETHWID     = 25;
  5927. (* MONCALLS *)
  5928. CONST ORD_DOSMONOPEN = 4;
  5929. CONST ORD_DOSMONCLOSE= 3;
  5930. CONST ORD_DOSMONREAD = 2;
  5931. CONST ORD_DOSMONWRITE= 1;
  5932. CONST ORD_DOSMONREG  = 5;
  5933. (* MOUCALLS *)
  5934. CONST ORD_MOUGETPTRSHAPE  = 1;
  5935. CONST ORD_MOUSETPTRSHAPE  = 2;
  5936. CONST ORD_MOUGETNUMMICKEYS= 3;
  5937. CONST ORD_MOUGETHOTKEY    = 4;
  5938. CONST ORD_MOUGETSCALEFACT = 6;
  5939. CONST ORD_MOUFLUSHQUE     = 7;
  5940. CONST ORD_MOUGETNUMBUTTONS= 8;
  5941. CONST ORD_MOUCLOSE        = 9;
  5942. CONST ORD_MOUSETHOTKEY    = 10;
  5943. CONST ORD_MOUSETSCALEFACT = 11;
  5944. CONST ORD_MOUGETNUMQUEEL  = 13;
  5945. CONST ORD_MOUDEREGISTER   = 14;
  5946. CONST ORD_MOUGETEVENTMASK = 15;
  5947. CONST ORD_MOUSETEVENTMASK = 16;
  5948. CONST ORD_MOUOPEN         = 17;
  5949. CONST ORD_MOUREMOVEPTR    = 18;
  5950. CONST ORD_MOUGETPTRPOS    = 19;
  5951. CONST ORD_MOUREADEVENTQUE = 20;
  5952. CONST ORD_MOUSETPTRPOS    = 21;
  5953. CONST ORD_MOUGETDEVSTATUS = 22;
  5954. CONST ORD_MOUSYNCH        = 23;
  5955. CONST ORD_MOUREGISTER     = 24;
  5956. CONST ORD_MOUSETDEVSTATUS = 25;
  5957. CONST ORD_MOUDRAWPTR      = 26;
  5958. CONST ORD_MOUINITREAL     = 27;
  5959. CONST ORD_MOUGETTHRESHOLD = 29;
  5960. CONST ORD_MOUSETTHRESHOLD = 30;
  5961. (* MSG *)
  5962. CONST ORD_DOSPUTMESSAGE       = 1;
  5963. CONST ORD_DOSTRUEGETMESSAGE   = 2;
  5964. CONST ORD_DOSINSMESSAGE       = 3;
  5965. CONST ORD_DOS32INSERTMESSAGE  = 4;
  5966. CONST ORD_DOS32PUTMESSAGE     = 5;
  5967. CONST ORD_DOS32TRUEGETMESSAGE = 6;
  5968. CONST ORD_DOSIQUERYMESSAGECP  = 7;
  5969. CONST ORD_DOS32IQUERYMESSAGECP= 8;
  5970. (* NLS *)
  5971. CONST ORD_DOSCASEMAP         = 1;
  5972. CONST ORD_DOSGETCOLLATE      = 2;
  5973. CONST ORD_DOSGETCTRYINFO     = 3;
  5974. CONST ORD_DOSGETDBCSEV       = 4;
  5975. CONST ORD_DOS32QUERYCTRYINFO = 5;
  5976. CONST ORD_DOS32QUERYDBCSENV  = 6;
  5977. CONST ORD_DOS32MAPCASE       = 7;
  5978. CONST ORD_DOS32QUERYCOLLATE  = 8;
  5979. (* NAMPIPES *)
  5980. CONST ORD_DOSMAKENMPIPE      = 1;
  5981. CONST ORD_DOSQNMPIPEINFO     = 2;
  5982. CONST ORD_DOSCONNECTNMPIPE   = 3;
  5983. CONST ORD_DOSDISCONNECTNMPIPE= 4;
  5984. CONST ORD_DOSQNMPHANDSTATE   = 5;
  5985. CONST ORD_DOSSETNMPHANDSTATE = 6;
  5986. CONST ORD_DOSPEEKNMPIPE      = 7;
  5987. CONST ORD_DOSWAITNMPIPE      = 8;
  5988. CONST ORD_DOSTRANSACTNMPIPE  = 9;
  5989. CONST ORD_DOSCALLNMPIPE     = 10;
  5990. CONST ORD_DOSRAWREADNMPIPE  = 11;
  5991. CONST ORD_DOSRAWWRITENMPIPE = 12;
  5992. CONST ORD_DOSSETNMPIPESEM   = 13;
  5993. CONST ORD_DOSQNMPIPESEMSTATE= 14;
  5994. (* DOSCALLS *)
  5995. CONST ORD_DOSCWAIT                   = 2;
  5996. CONST ORD_DOSENTERCRITSEC            = 3;
  5997. CONST ORD_DOSEXIT                    = 5;
  5998. CONST ORD_DOSEXITCRITSEC             = 6;
  5999. CONST ORD_DOSEXITLIST                = 7;
  6000. CONST ORD_DOSGETINFOSEG              = 8;
  6001. CONST ORD_DOSGETPRTY                 = 9;
  6002. CONST ORD_DOSKILLPROCESS             = 10;
  6003. CONST ORD_DOSSETPRTY                 = 11;
  6004. CONST ORD_DOSPTRACE                  = 12;
  6005. CONST ORD_DOSHOLDSIGNAL              = 13;
  6006. CONST ORD_DOSSETSIGHANDLER           = 14;
  6007. CONST ORD_DOSFLAGPROCESS             = 15;
  6008. CONST ORD_DOSMAKEPIPE                = 16;
  6009. CONST ORD_DOSSEMSETWAIT              = 20;
  6010. CONST ORD_DOSMUXSEMWAIT              = 22;
  6011. CONST ORD_DOSCLOSESEM                = 23;
  6012. CONST ORD_DOSCREATESEM               = 24;
  6013. CONST ORD_DOSOPENSEM                 = 25;
  6014. CONST ORD_DOSRESUMETHREAD            = 26;
  6015. CONST ORD_DOSSUSPENDTHREAD           = 27;
  6016. CONST ORD_DOSSETDATETIME             = 28;
  6017. CONST ORD_DOSTIMERASYNC              = 29;
  6018. CONST ORD_DOSTIMERSTART              = 30;
  6019. CONST ORD_DOSTIMERSTOP               = 31;
  6020. CONST ORD_DOSSLEEP                   = 32;
  6021. CONST ORD_DOSGETDATETIME             = 33;
  6022. CONST ORD_DOSALLOCSEG                = 34;
  6023. CONST ORD_DOSALLOCSHRSEG             = 35;
  6024. CONST ORD_DOSGETSHRSEG               = 36;
  6025. CONST ORD_DOSGIVESEG                 = 37;
  6026. CONST ORD_DOSREALLOCSEG              = 38;
  6027. CONST ORD_DOSFREESEG                 = 39;
  6028. CONST ORD_DOSALLOCHUGE               = 40;
  6029. CONST ORD_DOSGETHUGESHIFT            = 41;
  6030. CONST ORD_DOSREALLOCHUGE             = 42;
  6031. CONST ORD_DOSCREATECSALIAS           = 43;
  6032. CONST ORD_DOSLOADMODULE              = 44;
  6033. CONST ORD_DOSGETPROCADDR             = 45;
  6034. CONST ORD_DOSFREEMODULE              = 46;
  6035. CONST ORD_DOSGETMODHANDLE            = 47;
  6036. CONST ORD_DOSGETMODNAME              = 48;
  6037. CONST ORD_DOSGETMACHINEMODE          = 49;
  6038. CONST ORD_DOSBEEP                    = 50;
  6039. CONST ORD_DOSCLIACCESS               = 51;
  6040. CONST ORD_DOSDEVCONFIG               = 52;
  6041. CONST ORD_DOSDEVIOCTL                = 53;
  6042. CONST ORD_DOSBUFRESET                = 56;
  6043. CONST ORD_DOSCHDIR                   = 57;
  6044. CONST ORD_DOSCHGFILEPTR              = 58;
  6045. CONST ORD_DOSCLOSE                   = 59;
  6046. CONST ORD_DOSDELETE                  = 60;
  6047. CONST ORD_DOSDUPHANDLE               = 61;
  6048. CONST ORD_DOSFILELOCKS               = 62;
  6049. CONST ORD_DOSFINDCLOSE               = 63;
  6050. CONST ORD_DOSFINDFIRST               = 64;
  6051. CONST ORD_DOSFINDNEXT                = 65;
  6052. CONST ORD_DOSMKDIR                   = 66;
  6053. CONST ORD_DOSMOVE                    = 67;
  6054. CONST ORD_DOSNEWSIZE                 = 68;
  6055. CONST ORD_DOSPORTACCESS              = 69;
  6056. CONST ORD_DOSOPEN                    = 70;
  6057. CONST ORD_DOSQCURDIR                 = 71;
  6058. CONST ORD_DOSQCURDISK                = 72;
  6059. CONST ORD_DOSQFHANDSTATE             = 73;
  6060. CONST ORD_DOSQFILEINFO               = 74;
  6061. CONST ORD_DOSQFILEMODE               = 75;
  6062. CONST ORD_DOSQFSINFO                 = 76;
  6063. CONST ORD_DOSQHANDTYPE               = 77;
  6064. CONST ORD_DOSQVERIFY                 = 78;
  6065. CONST ORD_DOSRMDIR                   = 80;
  6066. CONST ORD_DOSSELECTDISK              = 81;
  6067. CONST ORD_DOSSETFHANDSTATE           = 82;
  6068. CONST ORD_DOSSETFILEINFO             = 83;
  6069. CONST ORD_DOSSETFILEMODE             = 84;
  6070. CONST ORD_DOSSETMAXFH                = 85;
  6071. CONST ORD_DOSSETVERIFY               = 86;
  6072. CONST ORD_DOSSYSTEMSERVICE           = 88;
  6073. CONST ORD_DOSSETVEC                  = 89;
  6074. CONST ORD_DOSSYSTRACE                = 90;
  6075. CONST ORD_DOSGETENV                  = 91;
  6076. CONST ORD_DOSGETVERSION              = 92;
  6077. CONST ORD_DOSGETPID                  = 94;
  6078. CONST ORD_DOSOPEN2                   = 95;
  6079. CONST ORD_DOSLIBINIT                 = 96;
  6080. CONST ORD_DOSSETFSINFO               = 97;
  6081. CONST ORD_DOSQPATHINFO               = 98;
  6082. CONST ORD_DOSDEVIOCTL2               = 99;
  6083. CONST ORD_DOSSETPATHINFO             = 104;
  6084. CONST ORD_DOSISETRELMAXFH            = 108;
  6085. CONST ORD_DOSIDEVIOCTL               = 109;
  6086. CONST ORD_DOS32FORCEDELETE           = 110;
  6087. CONST ORD_DOS32KILLTHREAD            = 111;
  6088. CONST ORD_DOSQUERYRASINFO            = 112;
  6089. CONST ORD_DOSERROR                   = 120;
  6090. CONST ORD_DOSGETSEG                  = 121;
  6091. CONST ORD_DOSLOCKSEG                 = 122;
  6092. CONST ORD_DOSUNLOCKSEG               = 123;
  6093. CONST ORD_DOSSIZESEG                 = 126;
  6094. CONST ORD_DOSMEMAVAIL                = 127;
  6095. CONST ORD_DOSPHYSICALDISK            = 129;
  6096. CONST ORD_DOSGETCP                   = 130;
  6097. CONST ORD_DOSSENDSIGNAL              = 134;
  6098. CONST ORD_DOSHUGESHIFT               = 135;
  6099. CONST ORD_DOSHUGEINCR                = 136;
  6100. CONST ORD_DOSREAD                    = 137;
  6101. CONST ORD_DOSWRITE                   = 138;
  6102. CONST ORD_DOSERRCLASS                = 139;
  6103. CONST ORD_DOSSEMREQUEST              = 140;
  6104. CONST ORD_DOSSEMCLEAR                = 141;
  6105. CONST ORD_DOSSEMWAIT                 = 142;
  6106. CONST ORD_DOSSEMSET                  = 143;
  6107. CONST ORD_DOSEXECPGM                 = 144;
  6108. CONST ORD_DOSCREATETHREAD            = 145;
  6109. CONST ORD_DOSSUBSET                  = 146;
  6110. CONST ORD_DOSSUBALLOC                = 147;
  6111. CONST ORD_DOSSUBFREE                 = 148;
  6112. CONST ORD_DOSREADASYNC               = 149;
  6113. CONST ORD_DOSWRITEASYNC              = 150;
  6114. CONST ORD_DOSSEARCHPATH              = 151;
  6115. CONST ORD_DOSSCANENV                 = 152;
  6116. CONST ORD_DOSSETCP                   = 153;
  6117. CONST ORD_DOSGETRESOURCE             = 155;
  6118. CONST ORD_DOSGETPPID                 = 156;
  6119. CONST ORD_DOSCALLBACK                = 157;
  6120. CONST ORD_DOSR2STACKREALLOC          = 160;
  6121. CONST ORD_DOSFSRAMSEMREQUEST         = 161;
  6122. CONST ORD_DOSFSRAMSEMCLEAR           = 162;
  6123. CONST ORD_DOSQAPPTYPE                = 163;
  6124. CONST ORD_DOSSETPROCCP               = 164;
  6125. CONST ORD_DOSDYNAMICTRACE            = 165;
  6126. CONST ORD_DOSQSYSINFO                = 166;
  6127. CONST ORD_DOSFSATTACH                = 181;
  6128. CONST ORD_DOSQFSATTACH               = 182;
  6129. CONST ORD_DOSFSCTL                   = 183;
  6130. CONST ORD_DOSFINDFIRST2              = 184;
  6131. CONST ORD_DOSMKDIR2                  = 185;
  6132. CONST ORD_DOSFILEIO                  = 186;
  6133. CONST ORD_DOSFINDNOTIFYCLOSE         = 187;
  6134. CONST ORD_DOSFINDNOTIFYFIRST         = 188;
  6135. CONST ORD_DOSFINDNOTIFYNEXT          = 189;
  6136. CONST ORD_DOSEDITNAME                = 191;
  6137. CONST ORD_DOSCOPY                    = 201;
  6138. CONST ORD_DOSFORCEDELETE             = 203;
  6139. CONST ORD_DOSENUMATTRIBUTE           = 204;
  6140. CONST ORD_DOSSHUTDOWN                = 206;
  6141. CONST ORD_DOSGETRESOURCE2            = 207;
  6142. CONST ORD_DOSFREERESOURCE            = 208;
  6143. CONST ORD_DOS32SETMAXFH              = 209;
  6144. CONST ORD_DOS32SETVERIFY             = 210;
  6145. CONST ORD_DOS32ERRCLASS              = 211;
  6146. CONST ORD_DOS32ERROR                 = 212;
  6147. CONST ORD_DOSMAXPATHLEN              = 214;
  6148. CONST ORD_DOSPAGESIZE                = 215;
  6149. CONST ORD_DOSLOCALINFO               = 216;
  6150. CONST ORD_DOSGLOBALINFO              = 217;
  6151. CONST ORD_DOS32SETFILEINFO           = 218;
  6152. CONST ORD_DOS32SETPATHINFO           = 219;
  6153. CONST ORD_DOS32SETDEFAULTDISK        = 220;
  6154. CONST ORD_DOS32SETFHSTATE            = 221;
  6155. CONST ORD_DOS32SETFSINFO             = 222;
  6156. CONST ORD_DOS32QUERYPATHINFO         = 223;
  6157. CONST ORD_DOS32QUERYHTYPE            = 224;
  6158. CONST ORD_DOS32QUERYVERIFY           = 225;
  6159. CONST ORD_DOS32DELETEDIR             = 226;
  6160. CONST ORD_DOS32SCANENV               = 227;
  6161. CONST ORD_DOS32SEARCHPATH            = 228;
  6162. CONST ORD_DOS32SLEEP                 = 229;
  6163. CONST ORD_DOS32GETDATETIME           = 230;
  6164. CONST ORD_DOS32DEVCONFIG             = 231;
  6165. CONST ORD_DOS32ENTERCRITSEC          = 232;
  6166. CONST ORD_DOS32EXITCRITSEC           = 233;
  6167. CONST ORD_DOS32EXIT                  = 234;
  6168. CONST ORD_DOS32KILLPROCESS           = 235;
  6169. CONST ORD_DOS32SETPRIORITY           = 236;
  6170. CONST ORD_DOS32RESUMETHREAD          = 237;
  6171. CONST ORD_DOS32SUSPENDTHREAD         = 238;
  6172. CONST ORD_DOS32CREATEPIPE            = 239;
  6173. CONST ORD_DOS32CALLNPIPE             = 240;
  6174. CONST ORD_DOS32CONNECTNPIPE          = 241;
  6175. CONST ORD_DOS32DISCONNECTNPIPE       = 242;
  6176. CONST ORD_DOS32CREATENPIPE           = 243;
  6177. CONST ORD_DOS32PEEKNPIPE             = 244;
  6178. CONST ORD_DOS32QUERYNPHSTATE         = 245;
  6179. CONST ORD_DOS32RAWREADNPIPE          = 246;
  6180. CONST ORD_DOS32RAWWRITENPIPE         = 247;
  6181. CONST ORD_DOS32QUERYNPIPEINFO        = 248;
  6182. CONST ORD_DOS32QUERYNPIPESEMSTATE    = 249;
  6183. CONST ORD_DOS32SETNPHSTATE           = 250;
  6184. CONST ORD_DOS32SETNPIPESEM           = 251;
  6185. CONST ORD_DOS32TRANSACTNPIPE         = 252;
  6186. CONST ORD_DOS32WAITNPIPE             = 253;
  6187. CONST ORD_DOS32RESETBUFFER           = 254;
  6188. CONST ORD_DOS32SETCURRENTDIR         = 255;
  6189. CONST ORD_DOS32SETFILEPTR            = 256;
  6190. CONST ORD_DOS32CLOSE                 = 257;
  6191. CONST ORD_DOS32COPY                  = 258;
  6192. CONST ORD_DOS32DELETE                = 259;
  6193. CONST ORD_DOS32DUPHANDLE             = 260;
  6194. CONST ORD_DOS32EDITNAME              = 261;
  6195. CONST ORD_DOS32FINDCLOSE             = 263;
  6196. CONST ORD_DOS32FINDFIRST             = 264;
  6197. CONST ORD_DOS32FINDNEXT              = 265;
  6198. CONST ORD_DOSOPENVDD                 = 266;
  6199. CONST ORD_DOSREQUESTVDD              = 267;
  6200. CONST ORD_DOSCLOSEVDD                = 268;
  6201. CONST ORD_DOS32FSATTACH              = 269;
  6202. CONST ORD_DOS32CREATEDIR             = 270;
  6203. CONST ORD_DOS32MOVE                  = 271;
  6204. CONST ORD_DOS32SETFILESIZE           = 272;
  6205. CONST ORD_DOS32OPEN                  = 273;
  6206. CONST ORD_DOS32QUERYCURRENTDIR       = 274;
  6207. CONST ORD_DOS32QUERYCURRENTDISK      = 275;
  6208. CONST ORD_DOS32QUERYFHSTATE          = 276;
  6209. CONST ORD_DOS32QUERYFSATTACH         = 277;
  6210. CONST ORD_DOS32QUERYFSINFO           = 278;
  6211. CONST ORD_DOS32QUERYFILEINFO         = 279;
  6212. CONST ORD_DOS32WAITCHILD             = 280;
  6213. CONST ORD_DOS32READ                  = 281;
  6214. CONST ORD_DOS32WRITE                 = 282;
  6215. CONST ORD_DOS32EXECPGM               = 283;
  6216. CONST ORD_DOS32DEVIOCTL              = 284;
  6217. CONST ORD_DOS32FSCTL                 = 285;
  6218. CONST ORD_DOS32BEEP                  = 286;
  6219. CONST ORD_DOS32PHYSICALDISK          = 287;
  6220. CONST ORD_DOS32SETCP                 = 288;
  6221. CONST ORD_DOS32SETPROCESSCP          = 289;
  6222. CONST ORD_DOS32STOPTIMER             = 290;
  6223. CONST ORD_DOS32QUERYCP               = 291;
  6224. CONST ORD_DOS32SETDATETIME           = 292;
  6225. CONST ORD_DOS32EXITLIST              = 296;
  6226. CONST ORD_DOS32ALLOCMEM              = 299;
  6227. CONST ORD_DOS32ALLOCSHAREDMEM        = 300;
  6228. CONST ORD_DOS32GETNAMEDSHAREDMEM     = 301;
  6229. CONST ORD_DOS32GETSHAREDMEM          = 302;
  6230. CONST ORD_DOS32GIVESHAREDMEM         = 303;
  6231. CONST ORD_DOS32FREEMEM               = 304;
  6232. CONST ORD_DOS32SETMEM                = 305;
  6233. CONST ORD_DOS32QUERYMEM              = 306;
  6234. CONST ORD_DOS32OPENVDD               = 308;
  6235. CONST ORD_DOS32REQUESTVDD            = 309;
  6236. CONST ORD_DOS32CLOSEVDD              = 310;
  6237. CONST ORD_DOS32CREATETHREAD          = 311;
  6238. CONST ORD_DOS32GETINFOBLOCKS         = 312;
  6239. CONST ORD_DOS32DYNAMICTRACE          = 316;
  6240. CONST ORD_DOS32DEBUG                 = 317;
  6241. CONST ORD_DOS32LOADMODULE            = 318;
  6242. CONST ORD_DOS32QUERYMODULEHANDLE     = 319;
  6243. CONST ORD_DOS32QUERYMODULENAME       = 320;
  6244. CONST ORD_DOS32QUERYPROCADDR         = 321;
  6245. CONST ORD_DOS32FREEMODULE            = 322;
  6246. CONST ORD_DOS32QUERYAPPTYPE          = 323;
  6247. CONST ORD_DOS32CREATEEVENTSEM        = 324;
  6248. CONST ORD_DOS32OPENEVENTSEM          = 325;
  6249. CONST ORD_DOS32CLOSEEVENTSEM         = 326;
  6250. CONST ORD_DOS32RESETEVENTSEM         = 327;
  6251. CONST ORD_DOS32POSTEVENTSEM          = 328;
  6252. CONST ORD_DOS32WAITEVENTSEM          = 329;
  6253. CONST ORD_DOS32QUERYEVENTSEM         = 330;
  6254. CONST ORD_DOS32CREATEMUTEXSEM        = 331;
  6255. CONST ORD_DOS32OPENMUTEXSEM          = 332;
  6256. CONST ORD_DOS32CLOSEMUTEXSEM         = 333;
  6257. CONST ORD_DOS32REQUESTMUTEXSEM       = 334;
  6258. CONST ORD_DOS32RELEASEMUTEXSEM       = 335;
  6259. CONST ORD_DOS32QUERYMUTEXSEM         = 336;
  6260. CONST ORD_DOS32CREATEMUXWAITSEM      = 337;
  6261. CONST ORD_DOS32OPENMUXWAITSEM        = 338;
  6262. CONST ORD_DOS32CLOSEMUXWAITSEM       = 339;
  6263. CONST ORD_DOS32WAITMUXWAITSEM        = 340;
  6264. CONST ORD_DOS32ADDMUXWAITSEM         = 341;
  6265. CONST ORD_DOS32DELETEMUXWAITSEM      = 342;
  6266. CONST ORD_DOS32QUERYMUXWAITSEM       = 343;
  6267. CONST ORD_DOS32SUBSETMEM             = 344;
  6268. CONST ORD_DOS32SUBALLOCMEM           = 345;
  6269. CONST ORD_DOS32SUBFREEMEM            = 346;
  6270. CONST ORD_DOS32SUBUNSETMEM           = 347;
  6271. CONST ORD_DOS32QUERYSYSINFO          = 348;
  6272. CONST ORD_DOS32WAITTHREAD            = 349;
  6273. CONST ORD_DOS32ASYNCTIMER            = 350;
  6274. CONST ORD_DOS32STARTTIMER            = 351;
  6275. CONST ORD_DOS32GETRESOURCE           = 352;
  6276. CONST ORD_DOS32FREERESOURCE          = 353;
  6277. CONST ORD_DOS32SETEXCEPTIONHANDLER   = 354;
  6278. CONST ORD_DOS32UNSETEXCEPTIONHANDLER = 355;
  6279. CONST ORD_DOS32RAISEEXCEPTION        = 356;
  6280. CONST ORD_DOS32UNWINDEXCEPTION       = 357;
  6281. CONST ORD_DOS32TMRQUERYFREQ          = 362;
  6282. CONST ORD_DOS32TMRQUERYTIME          = 363;
  6283. CONST ORD_DOS32REGISTERPERFCTRS      = 367;
  6284. CONST ORD_DOS32ENUMATTRIBUTE         = 372;
  6285. CONST ORD_DOS32QUERYDOSPROPERTY      = 373;
  6286. CONST ORD_DOS32SETDOSPROPERTY        = 374;
  6287. CONST ORD_DOSQUERYDOSPROPERTY        = 375;
  6288. CONST ORD_DOSSETDOSPROPERTY          = 376;
  6289. CONST ORD_DOS32PROFILE               = 377;
  6290. CONST ORD_DOS32SETSIGNALEXCEPTIONFOC = 378;
  6291. CONST ORD_DOS32SENDSIGNALEXCEPTION   = 379;
  6292. CONST ORD_DOS32ENTERMUSTCOMPLETE     = 380;
  6293. CONST ORD_DOS32EXITMUSTCOMPLETE      = 381;
  6294. CONST ORD_DOS32SETRELMAXFH           = 382;
  6295. CONST ORD_DOS32SHUTDOWN              = 415;
  6296. CONST ORD_DOS32REPLACEMODULE         = 417;
  6297. CONST ORD_DOS32ACKNOWLEDGESIGNALEXC  = 418;
  6298. CONST ORD_DOS32TIB                   = 419;
  6299. CONST ORD_DOSTMRQUERYFREQ            = 420;
  6300. CONST ORD_DOSTMRQUERYTIME            = 421;
  6301. CONST ORD_DOSREGISTERPERFCTRS        = 422;
  6302. CONST ORD_DOSFLATTOSEL               = 423;
  6303. CONST ORD_DOSSELTOFLAT               = 424;
  6304. CONST ORD_DOS32FLATTOSEL             = 425;
  6305. CONST ORD_DOS32SELTOFLAT             = 426;
  6306. CONST ORD_DOS32SETFILELOCKS            = 428;
  6307. CONST ORD_DOS32CANCELLOCKREQUEST       = 429;
  6308. CONST ORD_DOSOPENCHANGENOTIFY        = 437;
  6309. CONST ORD_DOSRESETCHANGENOTIFY       = 438;
  6310. CONST ORD_DOSCLOSECHANGENOTIFY       = 439;
  6311. CONST ORD_DOS32OPENCHANGENOTIFY      = 440;
  6312. CONST ORD_DOS32RESETCHANGENOTIFY     = 441;
  6313. CONST ORD_DOS32CLOSECHANGENOTIFY     = 442;
  6314. CONST ORD_DOS32QUERYRESOURCESIZE     = 572;
  6315. CONST ORD_DOSQUERYRESOURCESIZE       = 573;
  6316. CONST ORD_DOS32INITIALIZEPORTHOLE    = 580;
  6317. CONST ORD_DOS32QUERYHEADERINFO       = 582;
  6318. CONST ORD_DOSINITIALIZEPORTHOLE      = 583;
  6319. CONST ORD_DOSQUERYHEADERINFO         = 584;
  6320. CONST ORD_DOS32QUERYPROCTYPE         = 586;
  6321. CONST ORD_DOSQUERYPROCTYPE           = 587;
  6322. CONST ORD_DOS32PROTECTSETFILEPTR     = 621;
  6323. CONST ORD_DOSPROTECTCLOSE            = 622;
  6324. CONST ORD_DOSPROTECTFILEIO           = 623;
  6325. CONST ORD_DOSPROTECTFILELOCKS        = 624;
  6326. CONST ORD_DOSPROTECTNEWSIZE          = 627;
  6327. CONST ORD_DOSPROTECTOPEN             = 628;
  6328. CONST ORD_DOSPROTECTQFHANDSTATE      = 629;
  6329. CONST ORD_DOSPROTECTSETFHANDSTATE    = 630;
  6330. CONST ORD_DOSPROTECTQFILEINFO        = 631;
  6331. CONST ORD_DOSPROTECTSETFILEINFO      = 632;
  6332. CONST ORD_DOSPROTECTCHGFILEPTR       = 634;
  6333. CONST ORD_DOSPROTECTENUMATTRIBUTE    = 635;
  6334. CONST ORD_DOS32PROTECTENUMATTRIBUTE  = 636;
  6335. CONST ORD_DOS32PROTECTOPEN           = 637;
  6336. CONST ORD_DOS32PROTECTCLOSE          = 638;
  6337. CONST ORD_DOS32PROTECTSETFILELOCKS   = 639;
  6338. CONST ORD_DOS32PROTECTSETFILESIZE    = 640;
  6339. CONST ORD_DOS32PROTECTREAD           = 641;
  6340. CONST ORD_DOS32PROTECTWRITE          = 642;
  6341. CONST ORD_DOS32PROTECTSETFILEINFO    = 643;
  6342. CONST ORD_DOS32PROTECTSETFHSTATE     = 644;
  6343. CONST ORD_DOS32PROTECTQUERYFHSTATE   = 645;
  6344. CONST ORD_DOS32PROTECTQUERYFILEINFO  = 646;
  6345. (* PMGPI *)
  6346. CONST ORD_DEVOPENDC                     = 1;
  6347. CONST ORD_DEVCLOSEDC                    = 2;
  6348. CONST ORD_DEVPOSTDEVICEMODES            = 3;
  6349. CONST ORD_DEVESCAPE                     = 4;
  6350. CONST ORD_DEVQUERYHARDCOPYCAPS          = 5;
  6351. CONST ORD_DEVQUERYCAPS                  = 6;
  6352. CONST ORD_GPICREATEPS                   = 7;
  6353. CONST ORD_GPIQUERYPS                    = 9;
  6354. CONST ORD_GPIDESTROYPS                  = 10;
  6355. CONST ORD_GPIRESETPS                    = 11;
  6356. CONST ORD_GPISAVEPS                     = 12;
  6357. CONST ORD_GPIRESTOREPS                  = 13;
  6358. CONST ORD_GPIASSOCIATE                  = 14;
  6359. CONST ORD_GPIERRORSEGMENTDATA           = 15;
  6360. CONST ORD_GPIERASE                      = 16;
  6361. CONST ORD_GPISETDRAWCONTROL             = 17;
  6362. CONST ORD_GPIQUERYDRAWCONTROL           = 18;
  6363. CONST ORD_GPIDRAWCHAIN                  = 19;
  6364. CONST ORD_GPIDRAWFROM                   = 20;
  6365. CONST ORD_GPIDRAWSEGMENT                = 21;
  6366. CONST ORD_GPISETSTOPDRAW                = 22;
  6367. CONST ORD_GPIQUERYSTOPDRAW              = 23;
  6368. CONST ORD_GPIREMOVEDYNAMICS             = 24;
  6369. CONST ORD_GPIDRAWDYNAMICS               = 25;
  6370. CONST ORD_GPISETDRAWINGMODE             = 26;
  6371. CONST ORD_GPIQUERYDRAWINGMODE           = 27;
  6372. CONST ORD_GPIGETDATA                    = 28;
  6373. CONST ORD_GPIPUTDATA                    = 29;
  6374. CONST ORD_GPISETPICKAPERTURESIZE        = 30;
  6375. CONST ORD_GPIQUERYPICKAPERTURESIZE      = 31;
  6376. CONST ORD_GPISETPICKAPERTUREPOSITION    = 32;
  6377. CONST ORD_GPIQUERYPICKAPERTUREPOSITION  = 33;
  6378. CONST ORD_GPISETTAG                     = 34;
  6379. CONST ORD_GPIQUERYTAG                   = 35;
  6380. CONST ORD_GPICORRELATECHAIN             = 36;
  6381. CONST ORD_GPICORRELATEFROM              = 37;
  6382. CONST ORD_GPICORRELATESEGMENT           = 38;
  6383. CONST ORD_GPIRESETBOUNDARYDATA          = 42;
  6384. CONST ORD_GPIQUERYBOUNDARYDATA          = 43;
  6385. CONST ORD_GPIOPENSEGMENT                = 44;
  6386. CONST ORD_GPICLOSESEGMENT               = 46;
  6387. CONST ORD_GPIDELETESEGMENT              = 47;
  6388. CONST ORD_GPIDELETESEGMENTS             = 48;
  6389. CONST ORD_GPIQUERYSEGMENTNAMES          = 49;
  6390. CONST ORD_GPISETINITIALSEGMENTATTRS     = 51;
  6391. CONST ORD_GPIQUERYINITIALSEGMENTATTRS   = 52;
  6392. CONST ORD_GPISETSEGMENTATTRS            = 53;
  6393. CONST ORD_GPIQUERYSEGMENTATTRS          = 54;
  6394. CONST ORD_GPISETSEGMENTPRIORITY         = 55;
  6395. CONST ORD_GPIQUERYSEGMENTPRIORITY       = 56;
  6396. CONST ORD_GPISETEDITMODE                = 57;
  6397. CONST ORD_GPIQUERYEDITMODE              = 58;
  6398. CONST ORD_GPISETELEMENTPOINTER          = 59;
  6399. CONST ORD_GPIQUERYELEMENTPOINTER        = 60;
  6400. CONST ORD_GPIOFFSETELEMENTPOINTER       = 61;
  6401. CONST ORD_GPIDELETEELEMENT              = 62;
  6402. CONST ORD_GPIDELETEELEMENTRANGE         = 63;
  6403. CONST ORD_GPILABEL                      = 64;
  6404. CONST ORD_GPISETELEMENTPOINTERATLABEL   = 65;
  6405. CONST ORD_GPIDELETEELEMENTSBETWEENLABELS= 66;
  6406. CONST ORD_GPIQUERYELEMENTTYPE           = 67;
  6407. CONST ORD_GPIQUERYELEMENT               = 68;
  6408. CONST ORD_GPIELEMENT                    = 69;
  6409. CONST ORD_GPIBEGINELEMENT               = 70;
  6410. CONST ORD_GPIENDELEMENT                 = 71;
  6411. CONST ORD_GPISETSEGMENTTRANSFORMMATRIX  = 78;
  6412. CONST ORD_GPIQUERYSEGMENTTRANSFORMMATRIX= 79;
  6413. CONST ORD_GPISETMODELTRANSFORMMATRIX    = 80;
  6414. CONST ORD_GPIQUERYMODELTRANSFORMMATRIX  = 81;
  6415. CONST ORD_GPICALLSEGMENTMATRIX          = 82;
  6416. CONST ORD_GPISETDEFAULTVIEWMATRIX       = 83;
  6417. CONST ORD_GPIQUERYDEFAULTVIEWMATRIX     = 84;
  6418. CONST ORD_GPISETPAGEVIEWPORT            = 85;
  6419. CONST ORD_GPIQUERYPAGEVIEWPORT          = 86;
  6420. CONST ORD_GPISETVIEWINGTRANSFORMMATRIX  = 87;
  6421. CONST ORD_GPIQUERYVIEWINGTRANSFORMMATRIX= 88;
  6422. CONST ORD_GPISETGRAPHICSFIELD           = 89;
  6423. CONST ORD_GPIQUERYGRAPHICSFIELD         = 90;
  6424. CONST ORD_GPISETVIEWINGLIMITS           = 91;
  6425. CONST ORD_GPIQUERYVIEWINGLIMITS         = 92;
  6426. CONST ORD_GPICONVERT                    = 93;
  6427. CONST ORD_GPISETATTRMODE                = 94;
  6428. CONST ORD_GPIQUERYATTRMODE              = 95;
  6429. CONST ORD_GPIPOP                        = 96;
  6430. CONST ORD_GPISETATTRS                   = 97;
  6431. CONST ORD_GPIQUERYATTRS                 = 98;
  6432. CONST ORD_GPICREATELOGCOLORTABLE        = 99;
  6433. CONST ORD_GPIREALIZECOLORTABLE          = 100;
  6434. CONST ORD_GPIUNREALIZECOLORTABLE        = 101;
  6435. CONST ORD_GPIQUERYCOLORDATA             = 102;
  6436. CONST ORD_GPIQUERYLOGCOLORTABLE         = 103;
  6437. CONST ORD_GPIQUERYREALCOLORS            = 104;
  6438. CONST ORD_GPIQUERYNEARESTCOLOR          = 105;
  6439. CONST ORD_GPIQUERYCOLORINDEX            = 106;
  6440. CONST ORD_GPIQUERYRGBCOLOR              = 107;
  6441. CONST ORD_GPISETCOLOR                   = 108;
  6442. CONST ORD_GPIQUERYCOLOR                 = 109;
  6443. CONST ORD_GPISETBACKCOLOR               = 110;
  6444. CONST ORD_GPIQUERYBACKCOLOR             = 111;
  6445. CONST ORD_GPISETMIX                     = 112;
  6446. CONST ORD_GPIQUERYMIX                   = 113;
  6447. CONST ORD_GPISETBACKMIX                 = 114;
  6448. CONST ORD_GPIQUERYBACKMIX               = 115;
  6449. CONST ORD_GPISETLINETYPE                = 116;
  6450. CONST ORD_GPIQUERYLINETYPE              = 117;
  6451. CONST ORD_GPISETLINEWIDTH               = 118;
  6452. CONST ORD_GPIQUERYLINEWIDTH             = 119;
  6453. CONST ORD_GPISETLINEWIDTHGEOM           = 120;
  6454. CONST ORD_GPIQUERYLINEWIDTHGEOM         = 121;
  6455. CONST ORD_GPISETLINEEND                 = 122;
  6456. CONST ORD_GPIQUERYLINEEND               = 123;
  6457. CONST ORD_GPISETLINEJOIN                = 124;
  6458. CONST ORD_GPIQUERYLINEJOIN              = 125;
  6459. CONST ORD_GPISETCURRENTPOSITION         = 126;
  6460. CONST ORD_GPIQUERYCURRENTPOSITION       = 127;
  6461. CONST ORD_GPIMOVE                       = 128;
  6462. CONST ORD_GPILINE                       = 129;
  6463. CONST ORD_GPIPOLYLINE                   = 130;
  6464. CONST ORD_GPIBOX                        = 131;
  6465. CONST ORD_GPIPTVISIBLE                  = 132;
  6466. CONST ORD_GPIRECTVISIBLE                = 133;
  6467. CONST ORD_GPISETARCPARAMS               = 134;
  6468. CONST ORD_GPIQUERYARCPARAMS             = 135;
  6469. CONST ORD_GPIPOINTARC                   = 136;
  6470. CONST ORD_GPIFULLARC                    = 137;
  6471. CONST ORD_GPIPARTIALARC                 = 138;
  6472. CONST ORD_GPIPOLYFILLET                 = 139;
  6473. CONST ORD_GPIPOLYFILLETSHARP            = 140;
  6474. CONST ORD_GPIPOLYSPLINE                 = 141;
  6475. CONST ORD_GPISETBITMAPID                = 142;
  6476. CONST ORD_GPIQUERYBITMAPHANDLE          = 143;
  6477. CONST ORD_GPISETPATTERNSET              = 144;
  6478. CONST ORD_GPIQUERYPATTERNSET            = 145;
  6479. CONST ORD_GPISETPATTERN                 = 146;
  6480. CONST ORD_GPIQUERYPATTERN               = 147;
  6481. CONST ORD_GPISETPATTERNREFPOINT         = 148;
  6482. CONST ORD_GPIQUERYPATTERNREFPOINT       = 149;
  6483. CONST ORD_GPIBEGINAREA                  = 150;
  6484. CONST ORD_GPIENDAREA                    = 151;
  6485. CONST ORD_GPILOADFONTS                  = 152;
  6486. CONST ORD_GPIUNLOADFONTS                = 153;
  6487. CONST ORD_GPICREATELOGFONT              = 154;
  6488. CONST ORD_GPIDELETESETID                = 155;
  6489. CONST ORD_GPIQUERYNUMBERSETIDS          = 156;
  6490. CONST ORD_GPIQUERYSETIDS                = 157;
  6491. CONST ORD_GPIQUERYFONTS                 = 158;
  6492. CONST ORD_GPIQUERYFONTMETRICS           = 159;
  6493. CONST ORD_GPIQUERYKERNINGPAIRS          = 160;
  6494. CONST ORD_GPIQUERYWIDTHTABLE            = 161;
  6495. CONST ORD_GPISETCP                      = 162;
  6496. CONST ORD_GPIQUERYCP                    = 163;
  6497. CONST ORD_GPIQUERYTEXTBOX               = 164;
  6498. CONST ORD_DEVQUERYDEVICENAMES           = 165;
  6499. CONST ORD_GPIQUERYDEFCHARBOX            = 166;
  6500. CONST ORD_GPIQUERYFONTFILEDESCRIPTIONS  = 167;
  6501. CONST ORD_GPISETCHARSET                 = 168;
  6502. CONST ORD_GPIQUERYCHARSET               = 169;
  6503. CONST ORD_GPISETCHARBOX                 = 170;
  6504. CONST ORD_GPIQUERYCHARBOX               = 171;
  6505. CONST ORD_GPISETCHARANGLE               = 172;
  6506. CONST ORD_GPIQUERYCHARANGLE             = 173;
  6507. CONST ORD_GPISETCHARSHEAR               = 174;
  6508. CONST ORD_GPIQUERYCHARSHEAR             = 175;
  6509. CONST ORD_GPISETCHARDIRECTION           = 176;
  6510. CONST ORD_GPIQUERYCHARDIRECTION         = 177;
  6511. CONST ORD_GPISETCHARMODE                = 178;
  6512. CONST ORD_GPIQUERYCHARMODE              = 179;
  6513. CONST ORD_GPICHARSTRING                 = 180;
  6514. CONST ORD_GPICHARSTRINGAT               = 181;
  6515. CONST ORD_GPICHARSTRINGPOS              = 182;
  6516. CONST ORD_GPICHARSTRINGPOSAT            = 183;
  6517. CONST ORD_GPISETMARKERSET               = 184;
  6518. CONST ORD_GPIQUERYMARKERSET             = 185;
  6519. CONST ORD_GPISETMARKER                  = 186;
  6520. CONST ORD_GPIQUERYMARKER                = 187;
  6521. CONST ORD_GPISETMARKERBOX               = 188;
  6522. CONST ORD_GPIQUERYMARKERBOX             = 189;
  6523. CONST ORD_GPIMARKER                     = 190;
  6524. CONST ORD_GPIPOLYMARKER                 = 191;
  6525. CONST ORD_GPIIMAGE                      = 192;
  6526. CONST ORD_GPICREATEBITMAP               = 196;
  6527. CONST ORD_GPIDELETEBITMAP               = 197;
  6528. CONST ORD_GPISETBITMAP                  = 198;
  6529. CONST ORD_GPISETBITMAPDIMENSION         = 199;
  6530. CONST ORD_GPIQUERYBITMAPDIMENSION       = 200;
  6531. CONST ORD_GPIQUERYDEVICEBITMAPFORMATS   = 201;
  6532. CONST ORD_GPIQUERYBITMAPPARAMETERS      = 202;
  6533. CONST ORD_GPISETBITMAPBITS              = 203;
  6534. CONST ORD_GPIQUERYBITMAPBITS            = 204;
  6535. CONST ORD_GPIBITBLT                     = 205;
  6536. CONST ORD_GPISETPEL                     = 206;
  6537. CONST ORD_GPIQUERYPEL                   = 207;
  6538. CONST ORD_GPICREATEREGION               = 208;
  6539. CONST ORD_GPISETREGION                  = 209;
  6540. CONST ORD_GPIDESTROYREGION              = 210;
  6541. CONST ORD_GPICOMBINEREGION              = 211;
  6542. CONST ORD_GPIEQUALREGION                = 212;
  6543. CONST ORD_GPIOFFSETREGION               = 213;
  6544. CONST ORD_GPIPTINREGION                 = 214;
  6545. CONST ORD_GPIRECTINREGION               = 215;
  6546. CONST ORD_GPIQUERYREGIONBOX             = 216;
  6547. CONST ORD_GPIQUERYREGIONRECTS           = 217;
  6548. CONST ORD_GPISETCLIPREGION              = 218;
  6549. CONST ORD_GPIQUERYCLIPREGION            = 219;
  6550. CONST ORD_GPIQUERYCLIPBOX               = 220;
  6551. CONST ORD_GPIINTERSECTCLIPRECTANGLE     = 221;
  6552. CONST ORD_GPIEXCLUDECLIPRECTANGLE       = 222;
  6553. CONST ORD_GPIOFFSETCLIPREGION           = 223;
  6554. CONST ORD_GPIPAINTREGION                = 224;
  6555. CONST ORD_GPILOADMETAFILE               = 225;
  6556. CONST ORD_GPICOPYMETAFILE               = 226;
  6557. CONST ORD_GPIPLAYMETAFILE               = 227;
  6558. CONST ORD_GPISAVEMETAFILE               = 228;
  6559. CONST ORD_GPIDELETEMETAFILE             = 229;
  6560. CONST ORD_GPIQUERYMETAFILEBITS          = 230;
  6561. CONST ORD_GPISETMETAFILEBITS            = 231;
  6562. CONST ORD_GPIQUERYMETAFILELENGTH        = 232;
  6563. CONST ORD_GPISETCLIPPATH                = 233;
  6564. CONST ORD_GPIBEGINPATH                  = 234;
  6565. CONST ORD_GPIENDPATH                    = 235;
  6566. CONST ORD_GPICLOSEFIGURE                = 236;
  6567. CONST ORD_GPIMODIFYPATH                 = 237;
  6568. CONST ORD_GPIFILLPATH                   = 238;
  6569. CONST ORD_GPISTARTREQUEST               = 239;
  6570. CONST ORD_GPIQUERYDEVICE                = 240;
  6571. CONST ORD_DEVSTDOPEN                    = 244;
  6572. CONST ORD_GPIQUERYCHARSTRINGPOS         = 245;
  6573. CONST ORD_GPIQUERYCHARSTRINGPOSAT       = 246;
  6574. CONST ORD_GPISETPS                      = 248;
  6575. CONST ORD_SEGSGWOPENSEGMENTWINDOW       = 249;
  6576. CONST ORD_MTENDREADREQUEST              = 250;
  6577. CONST ORD_MTGETDESCRIPTION              = 251;
  6578. CONST ORD_FMTORDERTABLE                 = 252;
  6579. CONST ORD_MTGETCODEPAGE                 = 253;
  6580. CONST ORD_MTGETLCT                      = 254;
  6581. CONST ORD_MTGETGDDINFO                  = 255;
  6582. CONST ORD_FMTCONVERTGOCAPOLY            = 256;
  6583. CONST ORD_MTGETFIRSTFONT                = 257;
  6584. CONST ORD_SEGSGWNEWPARTDATA             = 258;
  6585. CONST ORD_MTSTARTREADREQUEST            = 259;
  6586. CONST ORD_MTGETFIRSTGRAPHICSDATA        = 260;
  6587. CONST ORD_MTGETNEXTFONT                 = 261;
  6588. CONST ORD_MTGETNEXTGRAPHICSDATA         = 262;
  6589. CONST ORD_GPILOADPUBLICFONTS            = 263;
  6590. CONST ORD_GPIUNLOADPUBLICFONTS          = 264;
  6591. CONST ORD_GPICOMMENT                    = 268;
  6592. CONST ORD_GPIWCBITBLT                   = 269;
  6593. CONST ORD_GPISTROKEPATH                 = 270;
  6594. CONST ORD_SEGSGWNEXTORDERF              = 271;
  6595. CONST ORD_GPIOUTLINEPATH                = 274;
  6596. CONST ORD_GPISETDEFTAG                  = 275;
  6597. CONST ORD_GPIQUERYDEFTAG                = 276;
  6598. CONST ORD_GPISETDEFATTRS                = 277;
  6599. CONST ORD_GPIQUERYDEFATTRS              = 278;
  6600. CONST ORD_GPISETDEFVIEWINGLIMITS        = 279;
  6601. CONST ORD_GPIQUERYDEFVIEWINGLIMITS      = 280;
  6602. CONST ORD_GPISETDEFARCPARAMS            = 281;
  6603. CONST ORD_GPIQUERYDEFARCPARAMS          = 282;
  6604. CONST ORD_GPITRANSLATE                  = 283;
  6605. CONST ORD_GPISCALE                      = 284;
  6606. CONST ORD_GPIROTATE                     = 285;
  6607. CONST ORD_GPIPOLYLINEDISJOINT           = 286;
  6608. CONST ORD_GPIPATHTOREGION               = 287;
  6609. CONST ORD_GPIFLOODFILL                  = 289;
  6610. CONST ORD_GPIDRAWBITS                   = 290;
  6611. CONST ORD_GPIQUERYBITMAPINFOHEADER      = 291;
  6612. CONST ORD_GPIQUERYLOGICALFONT           = 292;
  6613. CONST ORD_GPIQUERYFACESTRING            = 293;
  6614. CONST ORD_GPIQUERYFONTACTION            = 294;
  6615. CONST ORD_GPICREATEPALETTE              = 295;
  6616. CONST ORD_GPIDELETEPALETTE              = 296;
  6617. CONST ORD_GPISELECTPALETTE              = 297;
  6618. CONST ORD_GPIANIMATEPALETTE             = 298;
  6619. CONST ORD_GPISETPALETTEENTRIES          = 299;
  6620. CONST ORD_GPIQUERYPALETTE               = 300;
  6621. CONST ORD_GPIQUERYPALETTEINFO           = 301;
  6622. CONST ORD_GPIQUERYCHAREXTRA             = 302;
  6623. CONST ORD_GPISETCHAREXTRA               = 303;
  6624. CONST ORD_GPIQUERYCHARBREAKEXTRA        = 304;
  6625. CONST ORD_GPISETCHARBREAKEXTRA          = 305;
  6626. CONST ORD_GPIFRAMEREGION                = 306;
  6627. CONST ORD_GPICONVERTWITHMATRIX          = 307;
  6628. CONST ORD_GPI32ASSOCIATE                = 351;
  6629. CONST ORD_GPI32BEGINAREA                = 352;
  6630. CONST ORD_GPI32BEGINELEMENT             = 353;
  6631. CONST ORD_GPI32BEGINPATH                = 354;
  6632. CONST ORD_GPI32BITBLT                   = 355;
  6633. CONST ORD_GPI32BOX                      = 356;
  6634. CONST ORD_GPI32CALLSEGMENTMATRIX        = 357;
  6635. CONST ORD_GPI32CHARSTRING               = 358;
  6636. CONST ORD_GPI32CHARSTRINGAT             = 359;
  6637. CONST ORD_GPI32CLOSEFIGURE              = 360;
  6638. CONST ORD_GPI32CLOSESEGMENT             = 361;
  6639. CONST ORD_GPI32COMBINEREGION            = 362;
  6640. CONST ORD_GPI32COMMENT                  = 363;
  6641. CONST ORD_GPI32CONVERT                  = 364;
  6642. CONST ORD_GPI32COPYMETAFILE             = 365;
  6643. CONST ORD_GPI32CORRELATECHAIN           = 366;
  6644. CONST ORD_GPI32CORRELATEFROM            = 367;
  6645. CONST ORD_GPI32CREATELOGFONT            = 368;
  6646. CONST ORD_GPI32CREATEPS                 = 369;
  6647. CONST ORD_GPI32CREATEREGION             = 370;
  6648. CONST ORD_GPI32DELETEBITMAP             = 371;
  6649. CONST ORD_GPI32DELETEELEMENT            = 372;
  6650. CONST ORD_GPI32DELETEELEMENTRANGE       = 373;
  6651. CONST ORD_GPI32DELETEELEMENTSBETWEENLABE= 374;
  6652. CONST ORD_GPI32DELETEMETAFILE           = 375;
  6653. CONST ORD_GPI32DELETESEGMENT            = 376;
  6654. CONST ORD_GPI32DELETESEGMENTS           = 377;
  6655. CONST ORD_GPI32DELETESETID              = 378;
  6656. CONST ORD_GPI32DESTROYPS                = 379;
  6657. CONST ORD_GPI32DRAWCHAIN                = 380;
  6658. CONST ORD_GPI32DRAWDYNAMICS             = 381;
  6659. CONST ORD_GPI32DRAWFROM                 = 382;
  6660. CONST ORD_GPI32DRAWSEGMENT              = 383;
  6661. CONST ORD_GPI32ELEMENT                  = 384;
  6662. CONST ORD_GPI32ENDAREA                  = 385;
  6663. CONST ORD_GPI32ENDELEMENT               = 386;
  6664. CONST ORD_GPI32ENDPATH                  = 387;
  6665. CONST ORD_GPI32EQUALREGION              = 388;
  6666. CONST ORD_GPI32ERASE                    = 389;
  6667. CONST ORD_GPI32ERRORSEGMENTDATA         = 390;
  6668. CONST ORD_GPI32EXCLUDECLIPRECTANGLE     = 391;
  6669. CONST ORD_GPI32FILLPATH                 = 392;
  6670. CONST ORD_GPI32FULLARC                  = 393;
  6671. CONST ORD_GPI32GETDATA                  = 394;
  6672. CONST ORD_GPI32IMAGE                    = 395;
  6673. CONST ORD_GPI32INTERSECTCLIPRECTANGLE   = 396;
  6674. CONST ORD_GPI32LABEL                    = 397;
  6675. CONST ORD_GPI32LINE                     = 398;
  6676. CONST ORD_GPI32LOADBITMAP               = 399;
  6677. CONST ORD_GPI32LOADFONTS                = 400;
  6678. CONST ORD_GPI32LOADMETAFILE             = 401;
  6679. CONST ORD_GPI32MARKER                   = 402;
  6680. CONST ORD_GPI32MODIFYPATH               = 403;
  6681. CONST ORD_GPI32MOVE                     = 404;
  6682. CONST ORD_GPI32OFFSETCLIPREGION         = 405;
  6683. CONST ORD_GPI32OFFSETELEMENTPOINTER     = 406;
  6684. CONST ORD_GPI32OFFSETREGION             = 407;
  6685. CONST ORD_GPI32OPENSEGMENT              = 408;
  6686. CONST ORD_GPI32PAINTREGION              = 409;
  6687. CONST ORD_GPI32PLAYMETAFILE             = 411;
  6688. CONST ORD_GPI32POINTARC                 = 412;
  6689. CONST ORD_GPI32POLYFILLET               = 413;
  6690. CONST ORD_GPI32POLYFILLETSHARP          = 414;
  6691. CONST ORD_GPI32POLYLINE                 = 415;
  6692. CONST ORD_GPI32POLYMARKER               = 416;
  6693. CONST ORD_GPI32POLYSPLINE               = 417;
  6694. CONST ORD_GPI32POP                      = 418;
  6695. CONST ORD_GPI32PTINREGION               = 419;
  6696. CONST ORD_GPI32PTVISIBLE                = 420;
  6697. CONST ORD_GPI32PUTDATA                  = 421;
  6698. CONST ORD_GPI32QUERYARCPARAMS           = 422;
  6699. CONST ORD_GPI32QUERYATTRMODE            = 423;
  6700. CONST ORD_GPI32QUERYBACKCOLOR           = 424;
  6701. CONST ORD_GPI32QUERYBACKMIX             = 425;
  6702. CONST ORD_GPI32QUERYBITMAPDIMENSION     = 426;
  6703. CONST ORD_GPI32QUERYBITMAPHANDLE        = 427;
  6704. CONST ORD_GPI32QUERYBOUNDARYDATA        = 428;
  6705. CONST ORD_GPI32QUERYCHARANGLE           = 429;
  6706. CONST ORD_GPI32QUERYCHARBOX             = 430;
  6707. CONST ORD_GPI32QUERYCHARDIRECTION       = 431;
  6708. CONST ORD_GPI32QUERYCHARMODE            = 432;
  6709. CONST ORD_GPI32QUERYCHARSET             = 433;
  6710. CONST ORD_GPI32QUERYCHARSHEAR           = 434;
  6711. CONST ORD_GPI32QUERYCLIPBOX             = 435;
  6712. CONST ORD_GPI32QUERYCLIPREGION          = 436;
  6713. CONST ORD_GPI32QUERYCOLOR               = 437;
  6714. CONST ORD_GPI32QUERYCOLORDATA           = 438;
  6715. CONST ORD_GPI32QUERYCOLORINDEX          = 439;
  6716. CONST ORD_GPI32QUERYCP                  = 440;
  6717. CONST ORD_GPI32QUERYCURRENTPOSITION     = 441;
  6718. CONST ORD_GPI32QUERYDEFCHARBOX          = 442;
  6719. CONST ORD_GPI32QUERYDEFAULTVIEWMATRIX   = 443;
  6720. CONST ORD_GPI32QUERYDEVICE              = 444;
  6721. CONST ORD_GPI32QUERYDEVICEBITMAPFORMATS = 445;
  6722. CONST ORD_GPI32QUERYDRAWCONTROL         = 446;
  6723. CONST ORD_GPI32QUERYDRAWINGMODE         = 447;
  6724. CONST ORD_GPI32QUERYEDITMODE            = 448;
  6725. CONST ORD_GPI32QUERYELEMENT             = 449;
  6726. CONST ORD_GPI32QUERYELEMENTPOINTER      = 450;
  6727. CONST ORD_GPI32QUERYELEMENTTYPE         = 451;
  6728. CONST ORD_GPI32QUERYFONTFILEDESCRIPTIONS= 452;
  6729. CONST ORD_GPI32QUERYFONTMETRICS         = 453;
  6730. CONST ORD_GPI32QUERYGRAPHICSFIELD       = 454;
  6731. CONST ORD_GPI32QUERYINITIALSEGMENTATTRS = 455;
  6732. CONST ORD_GPI32QUERYKERNINGPAIRS        = 456;
  6733. CONST ORD_GPI32QUERYLINEEND             = 457;
  6734. CONST ORD_GPI32QUERYLINEJOIN            = 458;
  6735. CONST ORD_GPI32QUERYLINETYPE            = 459;
  6736. CONST ORD_GPI32QUERYLINEWIDTH           = 460;
  6737. CONST ORD_GPI32QUERYLINEWIDTHGEOM       = 461;
  6738. CONST ORD_GPI32QUERYMARKER              = 462;
  6739. CONST ORD_GPI32QUERYMARKERBOX           = 463;
  6740. CONST ORD_GPI32QUERYMARKERSET           = 464;
  6741. CONST ORD_GPI32QUERYMETAFILEBITS        = 465;
  6742. CONST ORD_GPI32QUERYMETAFILELENGTH      = 466;
  6743. CONST ORD_GPI32QUERYMIX                 = 467;
  6744. CONST ORD_GPI32QUERYMODELTRANSFORMMATRIX= 468;
  6745. CONST ORD_GPI32QUERYNEARESTCOLOR        = 469;
  6746. CONST ORD_GPI32QUERYNUMBERSETIDS        = 470;
  6747. CONST ORD_GPI32QUERYPS                  = 471;
  6748. CONST ORD_GPI32QUERYPAGEVIEWPORT        = 472;
  6749. CONST ORD_GPI32QUERYPATTERN             = 473;
  6750. CONST ORD_GPI32QUERYPATTERNREFPOINT     = 474;
  6751. CONST ORD_GPI32QUERYPATTERNSET          = 475;
  6752. CONST ORD_GPI32QUERYPEL                 = 476;
  6753. CONST ORD_GPI32QUERYPICKAPERTUREPOSITION= 477;
  6754. CONST ORD_GPI32QUERYPICKAPERTURESIZE    = 478;
  6755. CONST ORD_GPI32QUERYRGBCOLOR            = 479;
  6756. CONST ORD_GPI32QUERYREALCOLORS          = 480;
  6757. CONST ORD_GPI32QUERYREGIONBOX           = 481;
  6758. CONST ORD_GPI32QUERYSEGMENTATTRS        = 482;
  6759. CONST ORD_GPI32QUERYSEGMENTNAMES        = 483;
  6760. CONST ORD_GPI32QUERYSEGMENTPRIORITY     = 484;
  6761. CONST ORD_GPI32QUERYSEGMENTTRANSFORMMATR= 485;
  6762. CONST ORD_GPI32QUERYSETIDS              = 486;
  6763. CONST ORD_GPI32QUERYSTOPDRAW            = 487;
  6764. CONST ORD_GPI32QUERYTAG                 = 488;
  6765. CONST ORD_GPI32QUERYTEXTBOX             = 489;
  6766. CONST ORD_GPI32QUERYVIEWINGLIMITS       = 490;
  6767. CONST ORD_GPI32QUERYVIEWINGTRANSFORMMATR= 491;
  6768. CONST ORD_GPI32QUERYWIDTHTABLE          = 492;
  6769. CONST ORD_GPI32RECTINREGION             = 494;
  6770. CONST ORD_GPI32RECTVISIBLE              = 495;
  6771. CONST ORD_GPI32REMOVEDYNAMICS           = 496;
  6772. CONST ORD_GPI32RESETBOUNDARYDATA        = 497;
  6773. CONST ORD_GPI32RESETPS                  = 498;
  6774. CONST ORD_GPI32RESTOREPS                = 499;
  6775. CONST ORD_GPI32SAVEMETAFILE             = 500;
  6776. CONST ORD_GPI32SAVEPS                   = 501;
  6777. CONST ORD_GPI32SETARCPARAMS             = 502;
  6778. CONST ORD_GPI32SETATTRMODE              = 503;
  6779. CONST ORD_GPI32SETBACKCOLOR             = 504;
  6780. CONST ORD_GPI32SETBACKMIX               = 505;
  6781. CONST ORD_GPI32SETBITMAP                = 506;
  6782. CONST ORD_GPI32SETBITMAPDIMENSION       = 507;
  6783. CONST ORD_GPI32SETBITMAPID              = 508;
  6784. CONST ORD_GPI32SETCHARANGLE             = 509;
  6785. CONST ORD_GPI32SETCHARBOX               = 510;
  6786. CONST ORD_GPI32SETCHARDIRECTION         = 511;
  6787. CONST ORD_GPI32SETCHARMODE              = 512;
  6788. CONST ORD_GPI32SETCHARSET               = 513;
  6789. CONST ORD_GPI32SETCHARSHEAR             = 514;
  6790. CONST ORD_GPI32SETCLIPPATH              = 515;
  6791. CONST ORD_GPI32SETCLIPREGION            = 516;
  6792. CONST ORD_GPI32SETCOLOR                 = 517;
  6793. CONST ORD_GPI32SETCP                    = 518;
  6794. CONST ORD_GPI32SETCURRENTPOSITION       = 519;
  6795. CONST ORD_GPI32SETDEFAULTVIEWMATRIX     = 520;
  6796. CONST ORD_GPI32SETDRAWCONTROL           = 521;
  6797. CONST ORD_GPI32SETDRAWINGMODE           = 522;
  6798. CONST ORD_GPI32SETEDITMODE              = 523;
  6799. CONST ORD_GPI32SETELEMENTPOINTER        = 524;
  6800. CONST ORD_GPI32SETELEMENTPOINTERATLABEL = 525;
  6801. CONST ORD_GPI32SETGRAPHICSFIELD         = 526;
  6802. CONST ORD_GPI32SETINITIALSEGMENTATTRS   = 527;
  6803. CONST ORD_GPI32SETLINEEND               = 528;
  6804. CONST ORD_GPI32SETLINEJOIN              = 529;
  6805. CONST ORD_GPI32SETLINETYPE              = 530;
  6806. CONST ORD_GPI32SETLINEWIDTH             = 531;
  6807. CONST ORD_GPI32SETLINEWIDTHGEOM         = 532;
  6808. CONST ORD_GPI32SETMARKER                = 533;
  6809. CONST ORD_GPI32SETMARKERBOX             = 534;
  6810. CONST ORD_GPI32SETMARKERSET             = 535;
  6811. CONST ORD_GPI32SETMETAFILEBITS          = 536;
  6812. CONST ORD_GPI32SETMIX                   = 537;
  6813. CONST ORD_GPI32SETMODELTRANSFORMMATRIX  = 538;
  6814. CONST ORD_GPI32SETPS                    = 539;
  6815. CONST ORD_GPI32SETPAGEVIEWPORT          = 540;
  6816. CONST ORD_GPI32SETPATTERN               = 541;
  6817. CONST ORD_GPI32SETPATTERNREFPOINT       = 542;
  6818. CONST ORD_GPI32SETPATTERNSET            = 543;
  6819. CONST ORD_GPI32SETPEL                   = 544;
  6820. CONST ORD_GPI32SETPICKAPERTUREPOSITION  = 545;
  6821. CONST ORD_GPI32SETREGION                = 546;
  6822. CONST ORD_GPI32SETSEGMENTATTRS          = 547;
  6823. CONST ORD_GPI32SETSEGMENTPRIORITY       = 548;
  6824. CONST ORD_GPI32SETSEGMENTTRANSFORMMATRIX= 549;
  6825. CONST ORD_GPI32SETSTOPDRAW              = 550;
  6826. CONST ORD_GPI32SETTAG                   = 551;
  6827. CONST ORD_GPI32SETVIEWINGLIMITS         = 552;
  6828. CONST ORD_GPI32SETVIEWINGTRANSFORMMATRIX= 553;
  6829. CONST ORD_GPI32STROKEPATH               = 554;
  6830. CONST ORD_GPI32UNLOADFONTS              = 555;
  6831. CONST ORD_GPI32WCBITBLT                 = 557;
  6832. CONST ORD_GPI32POLYLINEDISJOINT         = 558;
  6833. CONST ORD_GPI32PATHTOREGION             = 559;
  6834. CONST ORD_GPI32FLOODFILL                = 560;
  6835. CONST ORD_GPI32SUSPENDPLAY              = 561;
  6836. CONST ORD_GPI32RESUMEPLAY               = 562;
  6837. CONST ORD_GPI32OUTLINEPATH              = 563;
  6838. CONST ORD_GPI32TRANSLATE                = 564;
  6839. CONST ORD_GPI32SCALE                    = 565;
  6840. CONST ORD_GPI32ROTATE                   = 566;
  6841. CONST ORD_GPI32QUERYDEFARCPARAMS        = 567;
  6842. CONST ORD_GPI32QUERYDEFTAG              = 568;
  6843. CONST ORD_GPI32QUERYDEFVIEWINGLIMITS    = 569;
  6844. CONST ORD_GPI32SETDEFARCPARAMS          = 570;
  6845. CONST ORD_GPI32SETDEFTAG                = 571;
  6846. CONST ORD_GPI32SETDEFVIEWINGLIMITS      = 572;
  6847. CONST ORD_GPI32QUERYBITMAPPARAMETERS    = 573;
  6848. CONST ORD_GPI32QUERYLOGICALFONT         = 574;
  6849. CONST ORD_GPI32QUERYFACESTRING          = 575;
  6850. CONST ORD_GPI32QUERYFONTACTION          = 576;
  6851. CONST ORD_GPI32DELETEPALETTE            = 577;
  6852. CONST ORD_GPI32SELECTPALETTE            = 578;
  6853. CONST ORD_GPI32QUERYPALETTE             = 579;
  6854. CONST ORD_GPI32CHARSTRINGPOS            = 580;
  6855. CONST ORD_GPI32CHARSTRINGPOSAT          = 581;
  6856. CONST ORD_GPI32CORRELATESEGMENT         = 582;
  6857. CONST ORD_GPI32QUERYATTRS               = 583;
  6858. CONST ORD_GPI32QUERYCHARSTRINGPOS       = 584;
  6859. CONST ORD_GPI32QUERYCHARSTRINGPOSAT     = 585;
  6860. CONST ORD_GPI32QUERYFONTS               = 586;
  6861. CONST ORD_GPI32QUERYREGIONRECTS         = 587;
  6862. CONST ORD_GPI32SETATTRS                 = 588;
  6863. CONST ORD_GPI32SETPICKAPERTURESIZE      = 589;
  6864. CONST ORD_GPI32QUERYDEFATTRS            = 590;
  6865. CONST ORD_GPI32SETDEFATTRS              = 591;
  6866. CONST ORD_GPI32CREATELOGCOLORTABLE      = 592;
  6867. CONST ORD_GPI32QUERYLOGCOLORTABLE       = 593;
  6868. CONST ORD_GPI32CREATEPALETTE            = 594;
  6869. CONST ORD_GPI32ANIMATEPALETTE           = 595;
  6870. CONST ORD_GPI32SETPALETTEENTRIES        = 596;
  6871. CONST ORD_GPI32QUERYPALETTEINFO         = 597;
  6872. CONST ORD_GPI32CREATEBITMAP             = 598;
  6873. CONST ORD_GPI32QUERYBITMAPBITS          = 599;
  6874. CONST ORD_GPI32QUERYBITMAPINFOHEADER    = 601;
  6875. CONST ORD_GPI32SETBITMAPBITS            = 602;
  6876. CONST ORD_GPI32DRAWBITS                 = 603;
  6877. CONST ORD_DEV32CLOSEDC                  = 604;
  6878. CONST ORD_DEV32ESCAPE                   = 605;
  6879. CONST ORD_DEV32QUERYCAPS                = 606;
  6880. CONST ORD_DEV32QUERYDEVICENAMES         = 607;
  6881. CONST ORD_DEV32QUERYHARDCOPYCAPS        = 608;
  6882. CONST ORD_DEV32POSTDEVICEMODES          = 609;
  6883. CONST ORD_DEV32OPENDC                   = 610;
  6884. CONST ORD_GPI32DESTROYREGION            = 611;
  6885. CONST ORD_GPI32PARTIALARC               = 612;
  6886. CONST ORD_GPI32QUERYCHAREXTRA           = 613;
  6887. CONST ORD_GPI32SETCHAREXTRA             = 614;
  6888. CONST ORD_GPI32QUERYCHARBREAKEXTRA      = 615;
  6889. CONST ORD_GPI32SETCHARBREAKEXTRA        = 616;
  6890. CONST ORD_GPI32FRAMEREGION              = 617;
  6891. CONST ORD_GPI32CONVERTWITHMATRIX        = 618;
  6892. CONST ORD_GPI32LOADPUBLICFONTS          = 622;
  6893. CONST ORD_GPI32UNLOADPUBLICFONTS        = 623;
  6894. (* PMWIN *)
  6895. CONST ORD_WINQUERYDESKTOPWINDOW       = 1;
  6896. CONST ORD_WINQUERYOBJECTWINDOW        = 2;
  6897. CONST ORD_WINREGISTERCLASS            = 3;
  6898. CONST ORD_WINQUERYCLASSNAME           = 4;
  6899. CONST ORD_WINQUERYCLASSINFO           = 5;
  6900. CONST ORD_WINCREATEWINDOW             = 6;
  6901. CONST ORD_WINDESTROYWINDOW            = 7;
  6902. CONST ORD_WINSETWINDOWPOS             = 8;
  6903. CONST ORD_WINSETMULTWINDOWPOS         = 9;
  6904. CONST ORD_WINQUERYWINDOWPOS           = 10;
  6905. CONST ORD_WINENABLEWINDOW             = 11;
  6906. CONST ORD_WINISWINDOWENABLED          = 12;
  6907. CONST ORD_WINSHOWWINDOW               = 13;
  6908. CONST ORD_WINENABLEWINDOWUPDATE       = 14;
  6909. CONST ORD_WINISWINDOWVISIBLE          = 15;
  6910. CONST ORD_WINSETWINDOWTEXT            = 16;
  6911. CONST ORD_WINQUERYWINDOWTEXT          = 17;
  6912. CONST ORD_WINQUERYWINDOWTEXTLENGTH    = 18;
  6913. CONST ORD_WINWINDOWFROMID             = 19;
  6914. CONST ORD_WINMULTWINDOWFROMIDS        = 20;
  6915. CONST ORD_WINISWINDOW                 = 21;
  6916. CONST ORD_WINISCHILD                  = 22;
  6917. CONST ORD_WINSETPARENT                = 23;
  6918. CONST ORD_WINSETOWNER                 = 24;
  6919. CONST ORD_WINQUERYWINDOW              = 25;
  6920. CONST ORD_WINQUERYWINDOWRECT          = 26;
  6921. CONST ORD_WINQUERYWINDOWPROCESS       = 27;
  6922. CONST ORD_WINSETWINDOWUSHORT          = 28;
  6923. CONST ORD_WINQUERYWINDOWUSHORT        = 29;
  6924. CONST ORD_WINSETWINDOWULONG           = 30;
  6925. CONST ORD_WINQUERYWINDOWULONG         = 31;
  6926. CONST ORD_WINBEGINENUMWINDOWS         = 32;
  6927. CONST ORD_WINGETNEXTWINDOW            = 33;
  6928. CONST ORD_WINENDENUMWINDOWS           = 34;
  6929. CONST ORD_WINWINDOWFROMPOINT          = 35;
  6930. CONST ORD_WINMAPWINDOWPOINTS          = 36;
  6931. CONST ORD_WINSUBCLASSWINDOW           = 37;
  6932. CONST ORD_WINLOCKWINDOW               = 38;
  6933. CONST ORD_WINQUERYWINDOWLOCKCOUNT     = 39;
  6934. CONST ORD_WINREGISTERWINDOWDESTROY    = 40;
  6935. CONST ORD_WINOPENWINDOWDC             = 41;
  6936. CONST ORD_WINGETSCREENPS              = 42;
  6937. CONST ORD_WINGETPS                    = 43;
  6938. CONST ORD_WINRELEASEPS                = 44;
  6939. CONST ORD_WINBEGINPAINT               = 45;
  6940. CONST ORD_WINENDPAINT                 = 46;
  6941. CONST ORD_WININVALIDATERECT           = 47;
  6942. CONST ORD_WININVALIDATEREGION         = 48;
  6943. CONST ORD_WINVALIDATERECT             = 49;
  6944. CONST ORD_WINVALIDATEREGION           = 50;
  6945. CONST ORD_WINQUERYUPDATERECT          = 51;
  6946. CONST ORD_WINQUERYUPDATEREGION        = 52;
  6947. CONST ORD_WINUPDATEWINDOW             = 53;
  6948. CONST ORD_WINEXCLUDEUPDATEREGION      = 54;
  6949. CONST ORD_WINLOCKWINDOWUPDATE         = 55;
  6950. CONST ORD_WINLOCKVISREGIONS           = 56;
  6951. CONST ORD_WINWINDOWFROMDC             = 57;
  6952. CONST ORD_WINCREATEMSGQUEUE           = 58;
  6953. CONST ORD_WINDESTROYMSGQUEUE          = 59;
  6954. CONST ORD_WINQUERYQUEUESTATUS         = 60;
  6955. CONST ORD_WINSENDMSG                  = 61;
  6956. CONST ORD_WINBROADCASTMSG             = 63;
  6957. CONST ORD_WININSENDMSG                = 64;
  6958. CONST ORD_WINGETMSG                   = 65;
  6959. CONST ORD_WINPEEKMSG                  = 66;
  6960. CONST ORD_WINWAITMSG                  = 67;
  6961. CONST ORD_WINDISPATCHMSG              = 68;
  6962. CONST ORD_WINPOSTMSG                  = 69;
  6963. CONST ORD_WINPOSTQUEUEMSG             = 70;
  6964. CONST ORD_WINQUERYMSGPOS              = 71;
  6965. CONST ORD_WINQUERYMSGTIME             = 72;
  6966. CONST ORD_WINCALLMSGFILTER            = 73;
  6967. CONST ORD_WINSETMSGINTEREST           = 74;
  6968. CONST ORD_WINSETCAPTURE               = 75;
  6969. CONST ORD_WINQUERYCAPTURE             = 76;
  6970. CONST ORD_WINSETFOCUS                 = 77;
  6971. CONST ORD_WINQUERYFOCUS               = 78;
  6972. CONST ORD_WINSETACTIVEWINDOW          = 79;
  6973. CONST ORD_WINQUERYACTIVEWINDOW        = 80;
  6974. CONST ORD_WINSETSYSMODALWINDOW        = 81;
  6975. CONST ORD_WINQUERYSYSMODALWINDOW      = 82;
  6976. CONST ORD_WINISTHREADACTIVE           = 83;
  6977. CONST ORD_WINSTARTTIMER               = 84;
  6978. CONST ORD_WINSTOPTIMER                = 85;
  6979. CONST ORD_WINGETCURRENTTIME           = 86;
  6980. CONST ORD_WINLOADPOINTER              = 87;
  6981. CONST ORD_WINCREATEPOINTER            = 88;
  6982. CONST ORD_WINDESTROYPOINTER           = 89;
  6983. CONST ORD_OLDWINQUERYPOINTERINFO      = 90;
  6984. CONST ORD_WINQUERYSYSPOINTER          = 91;
  6985. CONST ORD_WINSETPOINTER               = 92;
  6986. CONST ORD_WINQUERYPOINTER             = 93;
  6987. CONST ORD_WINSHOWPOINTER              = 94;
  6988. CONST ORD_WINSETPOINTERPOS            = 95;
  6989. CONST ORD_WINQUERYPOINTERPOS          = 96;
  6990. CONST ORD_WINGETSYSBITMAP             = 97;
  6991. CONST ORD_WINCREATECURSOR             = 98;
  6992. CONST ORD_WINDESTROYCURSOR            = 99;
  6993. CONST ORD_WINSHOWCURSOR               = 100;
  6994. CONST ORD_WINQUERYCURSORINFO          = 101;
  6995. CONST ORD_WINLOADACCELTABLE           = 102;
  6996. CONST ORD_WINCREATEACCELTABLE         = 103;
  6997. CONST ORD_WINDESTROYACCELTABLE        = 104;
  6998. CONST ORD_WINTRANSLATEACCEL           = 105;
  6999. CONST ORD_WINSETACCELTABLE            = 106;
  7000. CONST ORD_WINQUERYACCELTABLE          = 107;
  7001. CONST ORD_WINCOPYACCELTABLE           = 108;
  7002. CONST ORD_WINSETHOOK                  = 109;
  7003. CONST ORD_WINRELEASEHOOK              = 110;
  7004. CONST ORD_WINOPENCLIPBRD              = 111;
  7005. CONST ORD_WINCLOSECLIPBRD             = 112;
  7006. CONST ORD_WINEMPTYCLIPBRD             = 113;
  7007. CONST ORD_WINSETCLIPBRDOWNER          = 114;
  7008. CONST ORD_WINQUERYCLIPBRDOWNER        = 115;
  7009. CONST ORD_WINSETCLIPBRDDATA           = 116;
  7010. CONST ORD_WINQUERYCLIPBRDDATA         = 117;
  7011. CONST ORD_WINENUMCLIPBRDFMTS          = 118;
  7012. CONST ORD_WINQUERYCLIPBRDFMTINFO      = 119;
  7013. CONST ORD_WINSETCLIPBRDVIEWER         = 120;
  7014. CONST ORD_WINQUERYCLIPBRDVIEWER       = 121;
  7015. CONST ORD_WINLOADDLG                  = 122;
  7016. CONST ORD_WINCREATEDLG                = 123;
  7017. CONST ORD_WINPROCESSDLG               = 124;
  7018. CONST ORD_WINDLGBOX                   = 125;
  7019. CONST ORD_WINDISMISSDLG               = 126;
  7020. CONST ORD_WINSENDDLGITEMMSG           = 127;
  7021. CONST ORD_WINSETDLGITEMSHORT          = 128;
  7022. CONST ORD_WINQUERYDLGITEMSHORT        = 129;
  7023. CONST ORD_WINMAPDLGPOINTS             = 130;
  7024. CONST ORD_WINSUBSTITUTESTRINGS        = 132;
  7025. CONST ORD_WINENUMDLGITEM              = 133;
  7026. CONST ORD_WINSETDLGITEMTEXT           = 134;
  7027. CONST ORD_WINQUERYDLGITEMTEXT         = 135;
  7028. CONST ORD_WINLOADMENU                 = 136;
  7029. CONST ORD_WINCREATEMENU               = 137;
  7030. CONST ORD_WINALARM                    = 138;
  7031. CONST ORD_WINMESSAGEBOX               = 139;
  7032. CONST ORD_WINCREATESTDWINDOW          = 140;
  7033. CONST ORD_WINCREATEFRAMECONTROLS      = 141;
  7034. CONST ORD_WINCALCFRAMERECT            = 143;
  7035. CONST ORD_WINFLASHWINDOW              = 144;
  7036. CONST ORD_WINGETMINPOSITION           = 146;
  7037. CONST ORD_WINGETMAXPOSITION           = 147;
  7038. CONST ORD_WINQUERYSYSVALUE            = 149;
  7039. CONST ORD_WINSETSYSVALUE              = 150;
  7040. CONST ORD_WINSETSYSCOLORS             = 151;
  7041. CONST ORD_WINQUERYSYSCOLOR            = 152;
  7042. CONST ORD_WINSCROLLWINDOW             = 153;
  7043. CONST ORD_WINTRACKRECT                = 154;
  7044. CONST ORD_WINSHOWTRACKRECT            = 155;
  7045. CONST ORD_GPILOADBITMAP               = 156;
  7046. CONST ORD_WINLOADSTRING               = 157;
  7047. CONST ORD_WINLOADMESSAGE              = 158;
  7048. CONST ORD_WINSETRECTEMPTY             = 159;
  7049. CONST ORD_WINSETRECT                  = 160;
  7050. CONST ORD_WINCOPYRECT                 = 161;
  7051. CONST ORD_WINISRECTEMPTY              = 162;
  7052. CONST ORD_WINEQUALRECT                = 163;
  7053. CONST ORD_WINPTINRECT                 = 164;
  7054. CONST ORD_WINOFFSETRECT               = 165;
  7055. CONST ORD_WININFLATERECT              = 166;
  7056. CONST ORD_WININTERSECTRECT            = 167;
  7057. CONST ORD_WINUNIONRECT                = 168;
  7058. CONST ORD_WINSUBTRACTRECT             = 169;
  7059. CONST ORD_WINMAKERECT                 = 170;
  7060. CONST ORD_WINMAKEPOINTS               = 171;
  7061. CONST ORD_WININVERTRECT               = 172;
  7062. CONST ORD_WINFILLRECT                 = 173;
  7063. CONST ORD_KBDPACKET                   = 174;
  7064. CONST ORD_WINDRAWPOINTER              = 177;
  7065. CONST ORD_WINDEFWINDOWPROC            = 178;
  7066. CONST ORD_WINDEFDLGPROC               = 179;
  7067. CONST ORD_WINGETKEYSTATE              = 211;
  7068. CONST ORD_WINGETPHYSKEYSTATE          = 212;
  7069. CONST ORD_WINSETKEYBOARDSTATETABLE    = 213;
  7070. CONST ORD_WINENABLEPHYSINPUT          = 214;
  7071. CONST ORD_WINSETCP                    = 215;
  7072. CONST ORD_WINQUERYCP                  = 216;
  7073. CONST ORD_WINQUERYCPLIST              = 217;
  7074. CONST ORD_WINCPTRANSLATESTRING        = 218;
  7075. CONST ORD_WINCPTRANSLATECHAR          = 219;
  7076. CONST ORD_WINCOMPARESTRINGS           = 220;
  7077. CONST ORD_WINUPPER                    = 221;
  7078. CONST ORD_WINUPPERCHAR                = 222;
  7079. CONST ORD_WINNEXTCHAR                 = 223;
  7080. CONST ORD_WINPREVCHAR                 = 224;
  7081. CONST ORD_WINCREATEHEAP               = 225;
  7082. CONST ORD_WINDESTROYHEAP              = 226;
  7083. CONST ORD_WINAVAILMEM                 = 227;
  7084. CONST ORD_WINALLOCMEM                 = 228;
  7085. CONST ORD_WINREALLOCMEM               = 229;
  7086. CONST ORD_WINFREEMEM                  = 230;
  7087. CONST ORD_WINLOCKHEAP                 = 231;
  7088. CONST ORD_WINCREATEATOMTABLE          = 233;
  7089. CONST ORD_WINDESTROYATOMTABLE         = 234;
  7090. CONST ORD_WINADDATOM                  = 235;
  7091. CONST ORD_WINFINDATOM                 = 236;
  7092. CONST ORD_WINDELETEATOM               = 237;
  7093. CONST ORD_WINQUERYATOMUSAGE           = 238;
  7094. CONST ORD_WINQUERYATOMLENGTH          = 239;
  7095. CONST ORD_WINQUERYATOMNAME            = 240;
  7096. CONST ORD_WINQUERYSYSTEMATOMTABLE     = 241;
  7097. CONST ORD_WINGETLASTERROR             = 243;
  7098. CONST ORD_WINGETERRORINFO             = 244;
  7099. CONST ORD_WINFREEERRORINFO            = 245;
  7100. CONST ORD_WININITIALIZE               = 246;
  7101. CONST ORD_WINTERMINATE                = 247;
  7102. CONST ORD_WINCATCH                    = 248;
  7103. CONST ORD_WINTHROW                    = 249;
  7104. CONST ORD_WINQUERYVERSION             = 250;
  7105. CONST ORD__WINSETERRORINFO            = 263;
  7106. CONST ORD_WINISPHYSINPUTENABLED       = 264;
  7107. CONST ORD_WINQUERYWINDOWDC            = 265;
  7108. CONST ORD_WINDRAWBORDER               = 266;
  7109. CONST ORD_WINDRAWTEXT                 = 267;
  7110. CONST ORD_WINDRAWBITMAP               = 268;
  7111. CONST ORD_WINQUERYWINDOWPTR           = 269;
  7112. CONST ORD_WINSETWINDOWPTR             = 270;
  7113. CONST ORD_WINMSGSEMWAIT               = 274;
  7114. CONST ORD_WINMSGMUXSEMWAIT            = 275;
  7115. CONST ORD_WINCANCELSHUTDOWN           = 277;
  7116. CONST ORD_WINSETWINDOWBITS            = 278;
  7117. CONST ORD_WINGETCLIPPS                = 279;
  7118. CONST ORD_WINSAVEWINDOWPOS            = 285;
  7119. CONST ORD_WINFOCUSCHANGE              = 286;
  7120. CONST ORD_WINQUERYQUEUEINFO           = 287;
  7121. CONST ORD_WINSETCLASSMSGINTEREST      = 292;
  7122. CONST ORD_WINQUERYDLGITEMTEXTLENGTH   = 294;
  7123. CONST ORD_WINDDEINITIATE              = 297;
  7124. CONST ORD_WINDDERESPOND               = 298;
  7125. CONST ORD_WINDDEPOSTMSG               = 299;
  7126. CONST ORD_WINSETPRESPARAM             = 301;
  7127. CONST ORD_WINQUERYPRESPARAM           = 302;
  7128. CONST ORD_WINREMOVEPRESPARAM          = 303;
  7129. CONST  ORD_DUMWINCREATEHELPINSTANCE   = 311;
  7130. CONST  ORD_DUMWINDESTROYHELPINSTANCE  = 312;
  7131. CONST  ORD_DUMWINASSOCIATEHELPINSTANCE= 313;
  7132. CONST  ORD_DUMWINCREATEHELPTABLE      = 314;
  7133. CONST  ORD_DUMWINLOADHELPTABLE        = 315;
  7134. CONST  ORD_DUMWINQUERYHELPINSTANCE    = 316;
  7135. CONST  ORD_DUMMYHELPENTRY             = 322;
  7136. CONST  ORD_WINSETCLASSTHUNKPROC       = 959;
  7137. CONST  ORD_WINQUERYCLASSTHUNKPROC     = 960;
  7138. CONST  ORD_WINSETWINDOWTHUNKPROC      = 961;
  7139. CONST  ORD_WINQUERYWINDOWTHUNKPROC    = 962;
  7140. CONST ORD_WINQUERYWINDOWMODEL         = 317;
  7141. CONST ORD_WINSETDESKTOPBKGND          = 318;
  7142. CONST ORD_WINQUERYDESKTOPBKGND        = 319;
  7143. CONST ORD_WINPOPUPMENU                = 320;
  7144. CONST ORD_WINREALIZEPALETTE           = 321;
  7145. CONST ORD_WINDELETELIBRARY            = 602;
  7146. CONST ORD_WINLOADPROCEDURE            = 603;
  7147. CONST ORD_WINDELETEPROCEDURE          = 604;
  7148. CONST ORD_WINSETMSGMODE               = 605;
  7149. CONST ORD_WINSETSYNCHROMODE           = 606;
  7150. CONST ORD_WINGETDLGMSG                = 607;
  7151. CONST ORD_WINREGISTERUSERMSG          = 608;
  7152. CONST ORD_WINQUERYANCHORBLOCK         = 609;
  7153. CONST ORD_WINREGISTERUSERDATATYPE     = 612;
  7154. CONST ORD_WINISWINDOWSHOWING          = 614;
  7155. CONST ORD_WINLOADLIBRARY              = 615;
  7156. CONST ORD_WINCREATEPOINTERINDIRECT    = 616;
  7157. CONST ORD_WINQUERYPOINTERINFO         = 617;
  7158. CONST ORD_WINGETERASEPS               = 624;
  7159. CONST ORD_WINRELEASEERASEPS           = 625;
  7160. CONST ORD_WINSTRETCHPOINTER           = 632;
  7161. CONST ORD_WINSETPOINTEROWNER          = 633;
  7162. CONST ORD_WIN32ADDATOM                = 700;
  7163. CONST ORD_WIN32ALARM                  = 701;
  7164. CONST ORD_WIN32BEGINENUMWINDOWS       = 702;
  7165. CONST ORD_WIN32BEGINPAINT             = 703;
  7166. CONST ORD_WIN32CALCFRAMERECT          = 704;
  7167. CONST ORD_WIN32CANCELSHUTDOWN         = 705;
  7168. CONST ORD_WIN32CLOSECLIPBRD           = 707;
  7169. CONST ORD_WIN32COMPARESTRINGS         = 708;
  7170. CONST ORD_WIN32COPYACCELTABLE         = 709;
  7171. CONST ORD_WIN32COPYRECT               = 710;
  7172. CONST ORD_WIN32CPTRANSLATECHAR        = 711;
  7173. CONST ORD_WIN32CPTRANSLATESTRING      = 712;
  7174. CONST ORD_WIN32CREATEACCELTABLE       = 713;
  7175. CONST ORD_WIN32CREATEATOMTABLE        = 714;
  7176. CONST ORD_WIN32CREATECURSOR           = 715;
  7177. CONST ORD_WIN32CREATEMSGQUEUE         = 716;
  7178. CONST ORD_WIN32CREATEPOINTER          = 717;
  7179. CONST ORD_WIN32DDEINITIATE            = 718;
  7180. CONST ORD_WIN32DDEPOSTMSG             = 719;
  7181. CONST ORD_WIN32DDERESPOND             = 720;
  7182. CONST ORD_WIN32DELETEATOM             = 721;
  7183. CONST ORD_WIN32DELETELIBRARY          = 722;
  7184. CONST ORD_WIN32DESTROYACCELTABLE      = 723;
  7185. CONST ORD_WIN32DESTROYATOMTABLE       = 724;
  7186. CONST ORD_WIN32DESTROYCURSOR          = 725;
  7187. CONST ORD_WIN32DESTROYMSGQUEUE        = 726;
  7188. CONST ORD_WIN32DESTROYPOINTER         = 727;
  7189. CONST ORD_WIN32DESTROYWINDOW          = 728;
  7190. CONST ORD_WIN32DISMISSDLG             = 729;
  7191. CONST ORD_WIN32DRAWBITMAP             = 730;
  7192. CONST ORD_WIN32DRAWBORDER             = 731;
  7193. CONST ORD_WIN32DRAWPOINTER            = 732;
  7194. CONST ORD_WIN32EMPTYCLIPBRD           = 733;
  7195. CONST ORD_WIN32ENABLEPHYSINPUT        = 734;
  7196. CONST ORD_WIN32ENABLEWINDOW           = 735;
  7197. CONST ORD_WIN32ENABLEWINDOWUPDATE     = 736;
  7198. CONST ORD_WIN32ENDENUMWINDOWS         = 737;
  7199. CONST ORD_WIN32ENDPAINT               = 738;
  7200. CONST ORD_WIN32ENUMCLIPBRDFMTS        = 739;
  7201. CONST ORD_WIN32ENUMDLGITEM            = 740;
  7202. CONST ORD_WIN32EQUALRECT              = 741;
  7203. CONST ORD_WIN32EXCLUDEUPDATEREGION    = 742;
  7204. CONST ORD_WIN32FILLRECT               = 743;
  7205. CONST ORD_WIN32FINDATOM               = 744;
  7206. CONST ORD_WIN32FLASHWINDOW            = 745;
  7207. CONST ORD_WIN32FOCUSCHANGE            = 746;
  7208. CONST ORD_WIN32FREEERRORINFO          = 748;
  7209. CONST ORD_WIN32GETCLIPPS              = 749;
  7210. CONST ORD_WIN32GETCURRENTTIME         = 750;
  7211. CONST ORD_WIN32GETERRORINFO           = 751;
  7212. CONST ORD_WIN32GETKEYSTATE            = 752;
  7213. CONST ORD_WIN32GETLASTERROR           = 753;
  7214. CONST ORD_WIN32GETMAXPOSITION         = 754;
  7215. CONST ORD_WIN32GETMINPOSITION         = 755;
  7216. CONST ORD_WIN32GETNEXTWINDOW          = 756;
  7217. CONST ORD_WIN32GETPS                  = 757;
  7218. CONST ORD_WIN32GETPHYSKEYSTATE        = 758;
  7219. CONST ORD_WIN32GETSCREENPS            = 759;
  7220. CONST ORD_WIN32GETSYSBITMAP           = 760;
  7221. CONST ORD_WIN32INSENDMSG              = 761;
  7222. CONST ORD_WIN32INFLATERECT            = 762;
  7223. CONST ORD_WIN32INITIALIZE             = 763;
  7224. CONST ORD_WIN32INTERSECTRECT          = 764;
  7225. CONST ORD_WIN32INVALIDATERECT         = 765;
  7226. CONST ORD_WIN32INVALIDATEREGION       = 766;
  7227. CONST ORD_WIN32INVERTRECT             = 767;
  7228. CONST ORD_WIN32ISCHILD                = 768;
  7229. CONST ORD_WIN32ISPHYSINPUTENABLED     = 769;
  7230. CONST ORD_WIN32ISRECTEMPTY            = 770;
  7231. CONST ORD_WIN32ISTHREADACTIVE         = 771;
  7232. CONST ORD_WIN32ISWINDOW               = 772;
  7233. CONST ORD_WIN32ISWINDOWENABLED        = 773;
  7234. CONST ORD_WIN32ISWINDOWSHOWING        = 774;
  7235. CONST ORD_WIN32ISWINDOWVISIBLE        = 775;
  7236. CONST ORD_WIN32LOADACCELTABLE         = 776;
  7237. CONST ORD_WIN32LOADLIBRARY            = 777;
  7238. CONST ORD_WIN32LOADMENU               = 778;
  7239. CONST ORD_WIN32LOADMESSAGE            = 779;
  7240. CONST ORD_WIN32LOADPOINTER            = 780;
  7241. CONST ORD_WIN32LOADSTRING             = 781;
  7242. CONST ORD_WIN32LOCKVISREGIONS         = 782;
  7243. CONST ORD_WIN32LOCKWINDOWUPDATE       = 784;
  7244. CONST ORD_WIN32MAKEPOINTS             = 785;
  7245. CONST ORD_WIN32MAKERECT               = 786;
  7246. CONST ORD_WIN32MAPDLGPOINTS           = 787;
  7247. CONST ORD_WIN32MAPWINDOWPOINTS        = 788;
  7248. CONST ORD_WIN32MESSAGEBOX             = 789;
  7249. CONST ORD_WIN32MSGSEMWAIT             = 790;
  7250. CONST ORD_WIN32NEXTCHAR               = 791;
  7251. CONST ORD_WIN32OFFSETRECT             = 792;
  7252. CONST ORD_WIN32OPENCLIPBRD            = 793;
  7253. CONST ORD_WIN32OPENWINDOWDC           = 794;
  7254. CONST ORD_WIN32PREVCHAR               = 795;
  7255. CONST ORD_WIN32PROCESSDLG             = 796;
  7256. CONST ORD_WIN32PTINRECT               = 797;
  7257. CONST ORD_WIN32QUERYACCELTABLE        = 798;
  7258. CONST ORD_WIN32QUERYACTIVEWINDOW      = 799;
  7259. CONST ORD_WIN32QUERYANCHORBLOCK       = 800;
  7260. CONST ORD_WIN32QUERYATOMLENGTH        = 801;
  7261. CONST ORD_WIN32QUERYATOMNAME          = 802;
  7262. CONST ORD_WIN32QUERYATOMUSAGE         = 803;
  7263. CONST ORD_WIN32QUERYCAPTURE           = 804;
  7264. CONST ORD_WIN32QUERYCLASSNAME         = 805;
  7265. CONST ORD_WIN32QUERYCLIPBRDDATA       = 806;
  7266. CONST ORD_WIN32QUERYCLIPBRDFMTINFO    = 807;
  7267. CONST ORD_WIN32QUERYCLIPBRDOWNER      = 808;
  7268. CONST ORD_WIN32QUERYCLIPBRDVIEWER     = 809;
  7269. CONST ORD_WIN32QUERYCP                = 810;
  7270. CONST ORD_WIN32QUERYCPLIST            = 811;
  7271. CONST ORD_WIN32QUERYCURSORINFO        = 812;
  7272. CONST ORD_WIN32QUERYDESKTOPWINDOW     = 813;
  7273. CONST ORD_WIN32QUERYDLGITEMSHORT      = 814;
  7274. CONST ORD_WIN32QUERYDLGITEMTEXT       = 815;
  7275. CONST ORD_WIN32QUERYDLGITEMTEXTLENGTH = 816;
  7276. CONST ORD_WIN32QUERYFOCUS             = 817;
  7277. CONST ORD_WIN32QUERYMSGPOS            = 818;
  7278. CONST ORD_WIN32QUERYMSGTIME           = 819;
  7279. CONST ORD_WIN32QUERYOBJECTWINDOW      = 820;
  7280. CONST ORD_WIN32QUERYPOINTER           = 821;
  7281. CONST ORD_WIN32QUERYPOINTERINFO       = 822;
  7282. CONST ORD_WIN32QUERYPOINTERPOS        = 823;
  7283. CONST ORD_WIN32QUERYQUEUEINFO         = 824;
  7284. CONST ORD_WIN32QUERYQUEUESTATUS       = 825;
  7285. CONST ORD_WIN32QUERYSYSCOLOR          = 826;
  7286. CONST ORD_WIN32QUERYSYSMODALWINDOW    = 827;
  7287. CONST ORD_WIN32QUERYSYSPOINTER        = 828;
  7288. CONST ORD_WIN32QUERYSYSVALUE          = 829;
  7289. CONST ORD_WIN32QUERYSYSTEMATOMTABLE   = 830;
  7290. CONST ORD_WIN32QUERYUPDATERECT        = 831;
  7291. CONST ORD_WIN32QUERYUPDATEREGION      = 832;
  7292. CONST ORD_WIN32QUERYVERSION           = 833;
  7293. CONST ORD_WIN32QUERYWINDOW            = 834;
  7294. CONST ORD_WIN32QUERYWINDOWDC          = 835;
  7295. CONST ORD_WIN32QUERYWINDOWPOS         = 837;
  7296. CONST ORD_WIN32QUERYWINDOWPROCESS     = 838;
  7297. CONST ORD_WIN32QUERYWINDOWPTR         = 839;
  7298. CONST ORD_WIN32QUERYWINDOWRECT        = 840;
  7299. CONST ORD_WIN32QUERYWINDOWTEXT        = 841;
  7300. CONST ORD_WIN32QUERYWINDOWTEXTLENGTH  = 842;
  7301. CONST ORD_WIN32QUERYWINDOWULONG       = 843;
  7302. CONST ORD_WIN32QUERYWINDOWUSHORT      = 844;
  7303. CONST ORD_WIN32REGISTERUSERDATATYPE   = 845;
  7304. CONST ORD_WIN32REGISTERUSERMSG        = 846;
  7305. CONST ORD_WIN32RELEASEPS              = 848;
  7306. CONST ORD_WIN32SCROLLWINDOW           = 849;
  7307. CONST ORD_WIN32SETACCELTABLE          = 850;
  7308. CONST ORD_WIN32SETACTIVEWINDOW        = 851;
  7309. CONST ORD_WIN32SETCAPTURE             = 852;
  7310. CONST ORD_WIN32SETCLASSMSGINTEREST    = 853;
  7311. CONST ORD_WIN32SETCLIPBRDDATA         = 854;
  7312. CONST ORD_WIN32SETCLIPBRDOWNER        = 855;
  7313. CONST ORD_WIN32SETCLIPBRDVIEWER       = 856;
  7314. CONST ORD_WIN32SETCP                  = 857;
  7315. CONST ORD_WIN32SETDLGITEMSHORT        = 858;
  7316. CONST ORD_WIN32SETDLGITEMTEXT         = 859;
  7317. CONST ORD_WIN32SETFOCUS               = 860;
  7318. CONST ORD_WIN32SETMSGINTEREST         = 861;
  7319. CONST ORD_WIN32SETMSGMODE             = 862;
  7320. CONST ORD_WIN32SETMULTWINDOWPOS       = 863;
  7321. CONST ORD_WIN32SETOWNER               = 864;
  7322. CONST ORD_WIN32SETPARENT              = 865;
  7323. CONST ORD_WIN32SETPOINTER             = 866;
  7324. CONST ORD_WIN32SETPOINTERPOS          = 867;
  7325. CONST ORD_WIN32SETRECT                = 868;
  7326. CONST ORD_WIN32SETRECTEMPTY           = 869;
  7327. CONST ORD_WIN32SETSYNCHROMODE         = 870;
  7328. CONST ORD_WIN32SETSYSCOLORS           = 871;
  7329. CONST ORD_WIN32SETSYSMODALWINDOW      = 872;
  7330. CONST ORD_WIN32SETSYSVALUE            = 873;
  7331. CONST ORD_WIN32SETWINDOWBITS          = 874;
  7332. CONST ORD_WIN32SETWINDOWPOS           = 875;
  7333. CONST ORD_WIN32SETWINDOWPTR           = 876;
  7334. CONST ORD_WIN32SETWINDOWTEXT          = 877;
  7335. CONST ORD_WIN32SETWINDOWULONG         = 878;
  7336. CONST ORD_WIN32SETWINDOWUSHORT        = 879;
  7337. CONST ORD_WIN32SHOWCURSOR             = 880;
  7338. CONST ORD_WIN32SHOWPOINTER            = 881;
  7339. CONST ORD_WIN32SHOWTRACKRECT          = 882;
  7340. CONST ORD_WIN32SHOWWINDOW             = 883;
  7341. CONST ORD_WIN32STARTTIMER             = 884;
  7342. CONST ORD_WIN32STOPTIMER              = 885;
  7343. CONST ORD_WIN32SUBSTITUTESTRINGS      = 886;
  7344. CONST ORD_WIN32SUBTRACTRECT           = 887;
  7345. CONST ORD_WIN32TERMINATE              = 888;
  7346. CONST ORD_WIN32TRACKRECT              = 890;
  7347. CONST ORD_WIN32UNIONRECT              = 891;
  7348. CONST ORD_WIN32UPDATEWINDOW           = 892;
  7349. CONST ORD_WIN32UPPER                  = 893;
  7350. CONST ORD_WIN32UPPERCHAR              = 894;
  7351. CONST ORD_WIN32VALIDATERECT           = 895;
  7352. CONST ORD_WIN32VALIDATEREGION         = 896;
  7353. CONST ORD_WIN32WAITMSG                = 897;
  7354. CONST ORD_WIN32WINDOWFROMDC           = 898;
  7355. CONST ORD_WIN32WINDOWFROMID           = 899;
  7356. CONST ORD_WIN32WINDOWFROMPOINT        = 900;
  7357. CONST ORD_WIN32BROADCASTMSG           = 901;
  7358. CONST ORD_WIN32POSTQUEUEMSG           = 902;
  7359. CONST ORD_WIN32SENDDLGITEMMSG         = 903;
  7360. CONST ORD_WIN32TRANSLATEACCEL         = 904;
  7361. CONST ORD_WIN32CALLMSGFILTER          = 905;
  7362. CONST ORD_WIN32CREATEFRAMECONTROLS    = 906;
  7363. CONST ORD_WIN32CREATEMENU             = 907;
  7364. CONST ORD_WIN32CREATESTDWINDOW        = 908;
  7365. CONST ORD_WIN32CREATEWINDOW           = 909;
  7366. CONST ORD_WIN32DEFDLGPROC             = 910;
  7367. CONST ORD_WIN32DEFWINDOWPROC          = 911;
  7368. CONST ORD_WIN32DISPATCHMSG            = 912;
  7369. CONST ORD_WIN32DRAWTEXT               = 913;
  7370. CONST ORD_WIN32GETDLGMSG              = 914;
  7371. CONST ORD_WIN32GETMSG                 = 915;
  7372. CONST ORD_WIN32MSGMUXSEMWAIT          = 916;
  7373. CONST ORD_WIN32MULTWINDOWFROMIDS      = 917;
  7374. CONST ORD_WIN32PEEKMSG                = 918;
  7375. CONST ORD_WIN32POSTMSG                = 919;
  7376. CONST ORD_WIN32SENDMSG                = 920;
  7377. CONST ORD_WIN32SETKEYBOARDSTATETABLE  = 921;
  7378. CONST ORD_WIN32CREATEDLG              = 922;
  7379. CONST ORD_WIN32DLGBOX                 = 923;
  7380. CONST ORD_WIN32LOADDLG                = 924;
  7381. CONST ORD_WIN32QUERYCLASSINFO         = 925;
  7382. CONST ORD_WIN32REGISTERCLASS          = 926;
  7383. CONST ORD_WIN32RELEASEHOOK            = 927;
  7384. CONST ORD_WIN32SETHOOK                = 928;
  7385. CONST ORD_WIN32SUBCLASSWINDOW         = 929;
  7386. CONST ORD_WIN32SETCLASSTHUNKPROC      = 930;
  7387. CONST ORD_WIN32QUERYCLASSTHUNKPROC    = 931;
  7388. CONST ORD_WIN32SETWINDOWTHUNKPROC     = 932;
  7389. CONST ORD_WIN32QUERYWINDOWTHUNKPROC   = 933;
  7390. CONST ORD_WIN32QUERYWINDOWMODEL       = 934;
  7391. CONST ORD_WIN32SETDESKTOPBKGND        = 935;
  7392. CONST ORD_WIN32QUERYDESKTOPBKGND      = 936;
  7393. CONST ORD_WIN32POPUPMENU              = 937;
  7394. CONST ORD_WIN32SETPRESPARAM           = 938;
  7395. CONST ORD_WIN32QUERYPRESPARAM         = 939;
  7396. CONST ORD_WIN32REMOVEPRESPARAM        = 940;
  7397. CONST ORD_WIN32REALIZEPALETTE         = 941;
  7398. CONST ORD_WIN32CREATEPOINTERINDIRECT  = 942;
  7399. CONST ORD_WIN32SAVEWINDOWPOS          = 943;
  7400. CONST ORD_WIN32GETERASEPS             = 952;
  7401. CONST ORD_WIN32RELEASEERASEPS         = 953;
  7402. CONST ORD_WIN32SETPOINTEROWNER        = 971;
  7403. CONST ORD_WIN32STRETCHPOINTER         = 968;
  7404. CONST ORD_WIN32SETERRORINFO           = 977;
  7405. CONST ORD_WIN32WAITEVENTSEM           = 978;
  7406. CONST ORD_WIN32REQUESTMUTEXSEM        = 979;
  7407. CONST ORD_WIN32WAITMUXWAITSEM         = 980;
  7408. (* PMPIC *)
  7409. CONST ORD_PICPRINT           = 1;
  7410. CONST ORD_PICICHG            = 2;
  7411. CONST ORD_PIC32PRINT         = 11;
  7412. CONST ORD_PIC32ICHG          = 12;
  7413. CONST ORD_PRF32PIF2MET       = 13;
  7414. (* PMSHAPI *)
  7415. CONST ORD_WINQUERYPROFILEINT           = 2;
  7416. CONST ORD_WINQUERYPROFILESTRING        = 3;
  7417. CONST ORD_WINWRITEPROFILESTRING        = 4;
  7418. CONST ORD_WINQUERYPROFILESIZE          = 5;
  7419. CONST ORD_WINQUERYPROFILEDATA          = 6;
  7420. CONST ORD_WINWRITEPROFILEDATA          = 7;
  7421. CONST ORD_WININITSESSIONMGR            = 8;
  7422. CONST ORD_WINSETFGNDWINDOW             = 9;
  7423. CONST ORD_WINADDPROGRAM                = 12;
  7424. CONST ORD_WINREMOVEPROGRAM             = 13;
  7425. CONST ORD_WINCHANGEPROGRAM             = 14;
  7426. CONST ORD_WINQUERYDEFINITION           = 15;
  7427. CONST ORD_WINQUERYPROGRAMTITLES        = 16;
  7428. CONST ORD_WINCREATEGROUP               = 17;
  7429. CONST ORD_WINADDTOGROUP                = 19;
  7430. CONST ORD_WINQUERYPROGRAMUSE           = 20;
  7431. CONST ORD_WINREMOVEFROMGROUP           = 21;
  7432. CONST ORD_WINDESTROYGROUP              = 23;
  7433. CONST ORD_WINQUERYFILEEXTOPTS          = 24;
  7434. CONST ORD_WINSETFILEEXTOPTS            = 25;
  7435. CONST ORD_WINQUERYPROGRAMTYPE          = 26;
  7436. CONST ORD_PRFQUERYPROFILEINT           = 32;
  7437. CONST ORD_PRFQUERYPROFILESTRING        = 33;
  7438. CONST ORD_PRFWRITEPROFILESTRING        = 34;
  7439. CONST ORD_PRFQUERYPROFILESIZE          = 35;
  7440. CONST ORD_PRFQUERYPROFILEDATA          = 36;
  7441. CONST ORD_PRFWRITEPROFILEDATA          = 37;
  7442. CONST ORD_PRFOPENPROFILE               = 38;
  7443. CONST ORD_PRFCLOSEPROFILE              = 39;
  7444. CONST ORD_PRFRESET                     = 42;
  7445. CONST ORD_PRFQUERYPROFILE              = 43;
  7446. CONST ORD_WININSTSTARTAPP              = 44;
  7447. CONST ORD_WINTERMINATEAPP              = 45;
  7448. CONST ORD_WINCREATESWITCHENTRY         = 46;
  7449. CONST ORD_WINQUERYSESSIONTITLE         = 47;
  7450. CONST ORD_WINADDSWITCHENTRY            = 48;
  7451. CONST ORD_WINCHANGESWITCHENTRY         = 49;
  7452. CONST ORD_PRFADDPROGRAM                = 50;
  7453. CONST ORD_PRFREMOVEPROGRAM             = 51;
  7454. CONST ORD_PRFCHANGEPROGRAM             = 52;
  7455. CONST ORD_PRFQUERYDEFINITION           = 53;
  7456. CONST ORD_PRFQUERYPROGRAMTITLES        = 54;
  7457. CONST ORD_PRFCREATEGROUP               = 55;
  7458. CONST ORD_WINQUERYSWITCHENTRY          = 56;
  7459. CONST ORD_WINQUERYSWITCHHANDLE         = 57;
  7460. CONST ORD_PRFQUERYPROGRAMHANDLE        = 58;
  7461. CONST ORD_PRFQUERYPROGRAMCATEGORY      = 59;
  7462. CONST ORD_PRFDESTROYGROUP              = 60;
  7463. CONST ORD_WINQUERYTASKTITLE            = 65;
  7464. CONST ORD_WINQUERYTASKSIZEPOS          = 66;
  7465. CONST ORD_WINQUERYSWITCHLIST           = 67;
  7466. CONST ORD_WINREMOVESWITCHENTRY         = 68;
  7467. CONST ORD_WINSWITCHTOPROGRAM           = 69;
  7468. CONST ORD_WINSWITCHPROGRAMREGISTER     = 70;
  7469. CONST ORD_WINENDPROGRAM                = 73;
  7470. CONST ORD_WINSTOPPROGRAM               = 74;
  7471. CONST ORD_WINENDWINDOWSESSION          = 75;
  7472. CONST ORD_WINSWITCHTOTASKMANAGER       = 78;
  7473. CONST ORD_WINSWITCHTOPROGRAM2          = 80;
  7474. CONST ORD_WINPROCESSHOTKEY             = 81;
  7475. CONST ORD_WININITSESSION               = 82;
  7476. CONST ORD_WINENDSESSION                = 83;
  7477. CONST ORD_WININITSWENTRY               = 84;
  7478. CONST ORD_WINSETSWENTRY                = 85;
  7479. CONST ORD_WINQUERYEXTIDFOCUS           = 86;
  7480. CONST ORD_WINSETEXTIDFOCUS             = 87;
  7481. CONST ORD_WINNOSHUTDOWN                = 91;
  7482. CONST ORD_WINSETTITLE                  = 93;
  7483. CONST ORD_WINSETTITLEANDICON           = 97;
  7484. CONST ORD_PRF32QUERYPROFILESIZE        = 101;
  7485. CONST ORD_PRF32OPENPROFILE             = 102;
  7486. CONST ORD_PRF32CLOSEPROFILE            = 103;
  7487. CONST ORD_PRF32REMOVEPROGRAM           = 104;
  7488. CONST ORD_PRF32DESTROYGROUP            = 106;
  7489. CONST ORD_PRF32QUERYPROFILE            = 107;
  7490. CONST ORD_PRF32RESET                   = 108;
  7491. CONST ORD_PRF32ADDPROGRAM              = 109;
  7492. CONST ORD_PRF32CHANGEPROGRAM           = 110;
  7493. CONST ORD_PRF32QUERYDEFINITION         = 111;
  7494. CONST ORD_PRF32QUERYPROGRAMTITLES      = 113;
  7495. CONST ORD_PRF32QUERYPROFILEINT         = 114;
  7496. CONST ORD_PRF32QUERYPROFILESTRING      = 115;
  7497. CONST ORD_PRF32WRITEPROFILESTRING      = 116;
  7498. CONST ORD_PRF32QUERYPROFILEDATA        = 117;
  7499. CONST ORD_PRF32WRITEPROFILEDATA        = 118;
  7500. CONST ORD_WIN32STARTAPP                = 119;
  7501. CONST ORD_WIN32ADDSWITCHENTRY          = 120;
  7502. CONST ORD_WIN32CREATESWITCHENTRY       = 121;
  7503. CONST ORD_WIN32QUERYSESSIONTITLE       = 122;
  7504. CONST ORD_WIN32CHANGESWITCHENTRY       = 123;
  7505. CONST ORD_WIN32QUERYSWITCHENTRY        = 124;
  7506. CONST ORD_WIN32QUERYSWITCHHANDLE       = 125;
  7507. CONST ORD_WIN32QUERYSWITCHLIST         = 126;
  7508. CONST ORD_WIN32QUERYTASKSIZEPOS        = 127;
  7509. CONST ORD_WIN32QUERYTASKTITLE          = 128;
  7510. CONST ORD_WIN32REMOVESWITCHENTRY       = 129;
  7511. CONST ORD_WIN32TERMINATEAPP            = 130;
  7512. CONST ORD_WIN32SWITCHTOPROGRAM         = 131;
  7513. CONST ORD_WIN32SWITCHPROGRAMREGISTER   = 156;
  7514. CONST ORD_WINSTARTAPP                  = 201;
  7515. CONST ORD_WINHAPPFROMPID               = 208;
  7516. CONST ORD_WINHSWITCHFROMHAPP           = 209;
  7517. (* QUECALLS *)
  7518. CONST ORD_DOSREADQUEUE     = 1;
  7519. CONST ORD_DOSPURGEQUEUE    = 2;
  7520. CONST ORD_DOSCLOSEQUEUE    = 3;
  7521. CONST ORD_DOSQUERYQUEUE    = 4;
  7522. CONST ORD_DOSPEEKQUEUE     = 5;
  7523. CONST ORD_DOSWRITEQUEUE    = 6;
  7524. CONST ORD_DOSOPENQUEUE     = 7;
  7525. CONST ORD_DOSCREATEQUEUE   = 8;
  7526. CONST ORD_DOS32READQUEUE   = 9;
  7527. CONST ORD_DOS32PURGEQUEUE = 10;
  7528. CONST ORD_DOS32CLOSEQUEUE = 11;
  7529. CONST ORD_DOS32QUERYQUEUE = 12;
  7530. CONST ORD_DOS32PEEKQUEUE  = 13;
  7531. CONST ORD_DOS32WRITEQUEUE = 14;
  7532. CONST ORD_DOS32OPENQUEUE  = 15;
  7533. CONST ORD_DOS32CREATEQUEUE= 16;
  7534. (* SESMGR *)
  7535. CONST ORD_DOSSTOPSESSION          = 8;
  7536. CONST ORD_DOSSELECTSESSION        = 9;
  7537. CONST ORD_DOSSETSESSION          = 14;
  7538. CONST ORD_DOSSTARTSESSION        = 17;
  7539. CONST ORD_DOSSMREGISTERDD        = 29;
  7540. CONST ORD_DOS32STARTSESSION      = 37;
  7541. CONST ORD_DOS32SELECTSESSION     = 38;
  7542. CONST ORD_DOS32SETSESSION        = 39;
  7543. CONST ORD_DOS32STOPSESSION       = 40;
  7544. (* PMSTDDLG *)
  7545. CONST ORD_WINFONTDLG             = 2;
  7546. CONST ORD_WINDEFFONTDLGPROC      = 3;
  7547. CONST ORD_WINFILEDLG             = 4;
  7548. CONST ORD_WINDEFFILEDLGPROC      = 5;
  7549. CONST ORD_WINFREEFILEDLGLIST     = 6;
  7550. (* VIOCALLS *)
  7551. CONST ORD_VIOENDPOPUP         = 1;
  7552. CONST ORD_VIOGETPHYSBUF       = 2;
  7553. CONST ORD_VIOGETANSI          = 3;
  7554. CONST ORD_VIOSETANSI          = 5;
  7555. CONST ORD_VIODEREGISTER       = 6;
  7556. CONST ORD_VIOSCROLLUP         = 7;
  7557. CONST ORD_VIOPRTSC            = 8;
  7558. CONST ORD_VIOGETCURPOS        = 9;
  7559. CONST ORD_VIOWRTCELLSTR       = 10;
  7560. CONST ORD_VIOPOPUP            = 11;
  7561. CONST ORD_VIOSCROLLRT         = 12;
  7562. CONST ORD_VIOWRTCHARSTR       = 13;
  7563. CONST ORD_VIOSETCURPOS        = 15;
  7564. CONST ORD_VIOSCRUNLOCK        = 18;
  7565. CONST ORD_VIOWRTTTY           = 19;
  7566. CONST ORD_VIOGETMODE          = 21;
  7567. CONST ORD_VIOSETMODE          = 22;
  7568. CONST ORD_VIOSCRLOCK          = 23;
  7569. CONST ORD_VIOREADCELLSTR      = 24;
  7570. CONST ORD_VIOSAVREDRAWWAIT    = 25;
  7571. CONST ORD_VIOWRTNATTR         = 26;
  7572. CONST ORD_VIOGETCURTYPE       = 27;
  7573. CONST ORD_VIOSAVREDRAWUNDO    = 28;
  7574. CONST ORD_VIOGETFONT          = 29;
  7575. CONST ORD_VIOREADCHARSTR      = 30;
  7576. CONST ORD_VIOGETBUF           = 31;
  7577. CONST ORD_VIOSETCURTYPE       = 32;
  7578. CONST ORD_VIOSETFONT          = 33;
  7579. CONST ORD_VIOMODEUNDO         = 35;
  7580. CONST ORD_VIOMODEWAIT         = 37;
  7581. CONST ORD_VIOGETCP            = 40;
  7582. CONST ORD_VIOSETCP            = 42;
  7583. CONST ORD_VIOSHOWBUF          = 43;
  7584. CONST ORD_VIOSCROLLLF         = 44;
  7585. CONST ORD_VIOREGISTER         = 45;
  7586. CONST ORD_VIOGETCONFIG        = 46;
  7587. CONST ORD_VIOSCROLLDN         = 47;
  7588. CONST ORD_VIOWRTCHARSTRATT    = 48;
  7589. CONST ORD_VIOGETSTATE         = 49;
  7590. CONST ORD_VIOPRTSCTOGGLE      = 50;
  7591. CONST ORD_VIOSETSTATE         = 51;
  7592. CONST ORD_VIOWRTNCELL         = 52;
  7593. CONST ORD_VIOWRTNCHAR         = 53;
  7594. CONST ORD_VIOASSOCIATE        = 55;
  7595. CONST ORD_VIOCREATEPS         = 56;
  7596. CONST ORD_VIODELETESETID      = 57;
  7597. CONST ORD_VIOGETDEVICECELLSIZE= 58;
  7598. CONST ORD_VIOGETORG           = 59;
  7599. CONST ORD_VIOCREATELOGFONT    = 60;
  7600. CONST ORD_VIODESTROYPS        = 61;
  7601. CONST ORD_VIOQUERYSETIDS      = 62;
  7602. CONST ORD_VIOSETORG           = 63;
  7603. CONST ORD_VIOQUERYFONTS       = 64;
  7604. CONST ORD_VIOSETDEVICECELLSIZE= 65;
  7605. CONST ORD_VIOSHOWPS           = 66;
  7606. CONST ORD_VIOGETPSADDRESS     = 67;
  7607. CONST ORD_VIOGLOBALREG        = 70;
  7608. CONST ORD_XVIOSETCASTATE      = 71;
  7609. CONST ORD_XVIOCHECKCHARTYPE   = 72;
  7610. CONST ORD_XVIODESTROYCA       = 73;
  7611. CONST ORD_XVIOCREATECA        = 74;
  7612. CONST ORD_VIOCHECKCHARTYPE    = 75;
  7613. CONST ORD_XVIOGETCASTATE      = 76;
  7614. (* PMVIOP *)
  7615. CONST ORD_WINDEFAVIOWINDOWPROC       = 30;
  7616.  
  7617. (************************** End of file ***************************************)
  7618.  
  7619. (* ------------- End of file:  .\hm\bseord.hm ------------- *)
  7620. <* END *>
  7621.  
  7622.  
  7623. (************************** End of file ***************************************)
  7624.  
  7625. (* ------------- End of file:  .\hm\bse.hm ------------- *)
  7626. <* END *>
  7627.  
  7628. (* OS/2 Presentation Manager Include File *)
  7629. <* IF NOT DEFINED (INCL_NOPMAPI)  THEN *>
  7630.    
  7631. (* ------------- Include file: .\hm\pm.hm ------------- *)
  7632. (****************************** Module Header ******************************\
  7633. *
  7634. * Module Name: PM.H
  7635. *
  7636. * OS/2 Presentation Manager top level include file.
  7637. *
  7638. * Copyright (c) International Business Machines Corporation 1981, 1988-1992
  7639. *
  7640. * ===========================================================================
  7641. *
  7642. * The following symbols are used in this file for conditional sections.
  7643. *
  7644. *   CONST:                To include:
  7645. *
  7646. *   INCL_PM                  ALL of OS/2 Presentation Manager
  7647. *   INCL_AVIO                OS/2 Advanced VIO (16-Bit only)
  7648. *   INCL_BITMAPFILEFORMAT    OS/2 Bitmap File Format
  7649. *   INCL_DEV                 OS/2 Device Support
  7650. *   INCL_ERRORS              OS/2 Errors
  7651. *   INCL_FONTFILEFORMAT      OS/2 Font File Format
  7652. *   INCL_GPI                 OS/2 GPI
  7653. *   INCL_ORDERS              OS/2 Graphical Order Formats
  7654. *   INCL_PIC                 OS/2 Picture utilities
  7655. *   INCL_SPL                 OS/2 Spooler
  7656. *   INCL_WINSTDDLGS          CUA controls and dialogs
  7657. *   INCL_WIN                 OS/2 Window Manager
  7658. *   INCL_WINWORKPLACE        OS/2 Workplace Shell
  7659. *
  7660. * ===========================================================================
  7661. *
  7662. * Comments at the end of each typedef line give the name tags used in
  7663. * the assembler include version of this file.
  7664. *
  7665. * The assembler include version of this file excludes lines between NOINC
  7666. * and INC comments.
  7667. *
  7668. \***************************************************************************)
  7669.  
  7670. <* NEW PM_INCLUDED + *>
  7671.  
  7672.  
  7673. (*** if INCL_PM defined then define all the symbols ************************)
  7674. <* IF DEFINED (INCL_PM)  THEN *>
  7675.    <* NEW INCL_AVIO + *>
  7676.    <* NEW INCL_BITMAPFILEFORMAT + *>
  7677.    <* NEW INCL_DEV + *>
  7678.    <* NEW INCL_ERRORS + *>
  7679.    <* NEW INCL_FONTFILEFORMAT + *>
  7680.    <* NEW INCL_GPI + *>
  7681.    <* NEW INCL_ORDERS + *>
  7682.    <* NEW INCL_PIC + *>
  7683.    <* NEW INCL_SPL + *>
  7684.    <* NEW INCL_WIN + *>
  7685.    <* NEW INCL_WINSTDDLGS + *>
  7686.    <* NEW INCL_WINWORKPLACE + *>
  7687. <* END *>
  7688.  
  7689.  
  7690.  
  7691. (* ------------- Include file: .\hm\pmwin.hm ------------- *)
  7692. (****************************** Module Header ******************************\
  7693. *
  7694. * Module Name: PMWIN.H
  7695. *
  7696. * OS/2 Presentation Manager Window Manager include file.
  7697. *
  7698. * Copyright (c) International Business Machines Corporation 1981; 1988-1993
  7699. *
  7700. * ===========================================================================
  7701. *
  7702. * The folowing symbols are used in this file for conditional sections.
  7703. *
  7704. * If INCL_WIN is defined; all subcomponents are included.
  7705. *
  7706. * Subcomponents marked with "+" are partially included by default:
  7707. *
  7708. *   CONST:                To include:
  7709. *
  7710. * + INCL_WINWINDOWMGR       General window management
  7711. * + INCL_WINMESSAGEMGR      Message management
  7712. * + INCL_WININPUT           Mouse and keyboard input
  7713. * + INCL_WINDIALOGS         Dialog boxes
  7714. * + INCL_WINSTATICS         Static controls
  7715. * + INCL_WINBUTTONS         Button controls
  7716. * + INCL_WINENTRYFIELDS     Entry Fields
  7717. *   INCL_WINMLE             Multiple Line Entry Fields
  7718. * + INCL_WINLISTBOXES       List box controls
  7719. * + INCL_WINMENUS           Menu controls
  7720. * + INCL_WINSCROLLBARS      Scroll bar controls
  7721. * + INCL_WINFRAMEMGR        Frame manager
  7722. *   INCL_WINFRAMECTLS       Frame controls (title bars & size border)
  7723. *   INCL_WINRECTANGLES      Rectangle routines
  7724. *   INCL_WINSYS             System values (and colors)
  7725. *   INCL_WINTIMER           Timer routines
  7726. * + INCL_WINACCELERATORS    Keyboard accelerators
  7727. *   INCL_WINTRACKRECT       WinTrackRect() function
  7728. *   INCL_WINCLIPBOARD       Clipboard manager
  7729. * + INCL_WINCURSORS         Text cursors
  7730. * + INCL_WINPOINTERS        Mouse pointers
  7731. *   INCL_WINHOOKS           Hook manager
  7732. * + INCL_WINSWITCHLIST      Shell Switch List API
  7733. *   INCL_WINPROGRAMLIST     Shell Program List API
  7734. *   INCL_WINSHELLDATA       Shell Data (?)
  7735. *   INCL_WINCOUNTRY         Country support
  7736. *   INCL_WINHEAP            Heap Manager
  7737. *   INCL_WINATOM            Atom Manager
  7738. *   INCL_WINERRORS          Error code definitions
  7739. *   INCL_NLS                DBCS window manager definition
  7740. * + INCL_WINHELP            Help Manager definitions
  7741. *   INCL_WINSEI             Set Error Info API
  7742. *   INCL_WINLOAD            Load/Delete Library/Procedure
  7743. *   INCL_WINTYPES           Definitions for Datatypes
  7744. *   INCL_WINTHUNKAPI        Thunk Procedure API
  7745. *   INCL_WINDESKTOP         Desktop API
  7746. *
  7747. * ===========================================================================
  7748. *
  7749. * Comments at the end of each TYPE line give the name tags used in
  7750. * the assembler include version of this file.
  7751. *
  7752. * The assembler include version of this file excludes lines between NOINC
  7753. * and INC comments.
  7754. *
  7755. \***************************************************************************)
  7756.  
  7757. <* NEW WIN_INCLUDED + *>
  7758.  
  7759. (*** include everything if requested ***************************************)
  7760. <* IF DEFINED (INCL_WIN)  THEN *>
  7761.    <* NEW INCL_WINWINDOWMGR + *>
  7762.    <* NEW INCL_WINMESSAGEMGR + *>
  7763.    <* NEW INCL_WININPUT + *>
  7764.    <* NEW INCL_WINDIALOGS + *>
  7765.    <* NEW INCL_WINSTATICS + *>
  7766.    <* NEW INCL_WINBUTTONS + *>
  7767.    <* NEW INCL_WINENTRYFIELDS + *>
  7768.    <* NEW INCL_WINMLE + *>
  7769.    <* NEW INCL_WINLISTBOXES + *>
  7770.    <* NEW INCL_WINMENUS + *>
  7771.    <* NEW INCL_WINSCROLLBARS + *>
  7772.    <* NEW INCL_WINFRAMEMGR + *>
  7773.    <* NEW INCL_WINFRAMECTLS + *>
  7774.    <* NEW INCL_WINRECTANGLES + *>
  7775.    <* NEW INCL_WINSYS + *>
  7776.    <* NEW INCL_WINTIMER + *>
  7777.    <* NEW INCL_WINACCELERATORS + *>
  7778.    <* NEW INCL_WINTRACKRECT + *>
  7779.    <* NEW INCL_WINCLIPBOARD + *>
  7780.    <* NEW INCL_WINCURSORS + *>
  7781.    <* NEW INCL_WINPOINTERS + *>
  7782.    <* NEW INCL_WINHOOKS + *>
  7783.    <* NEW INCL_WINSWITCHLIST + *>
  7784.    <* NEW INCL_WINPROGRAMLIST + *>
  7785.    <* NEW INCL_WINSHELLDATA + *>
  7786.    <* NEW INCL_WINCOUNTRY + *>
  7787.    <* NEW INCL_WINHEAP + *>
  7788.    <* NEW INCL_WINATOM + *>
  7789.    <* NEW INCL_WINERRORS + *>
  7790.    <* NEW INCL_WINDDE + *>
  7791.    <* NEW INCL_WINHELP + *>
  7792.    <* NEW INCL_WINSEI + *>
  7793.    <* NEW INCL_WINLOAD + *>
  7794.    <* NEW INCL_WINTYPES + *>
  7795.    <* NEW INCL_WINDESKTOP + *>
  7796.    <* NEW INCL_WINPALETTE + *>
  7797.    <* NEW INCL_WINTHUNKAPI + *>
  7798.    <* NEW INCL_WINSTDDLGS + *>
  7799. <* ELSE *>
  7800.       (*** include resource compiler required sections ************************)
  7801.    <* IF DEFINED (RC_INVOKED)  THEN *>
  7802.       <* NEW INCL_WININPUT + *>
  7803.       <* NEW INCL_WINDIALOGS + *>
  7804.       <* NEW INCL_WINSTATICS + *>
  7805.       <* NEW INCL_WINBUTTONS + *>
  7806.       <* NEW INCL_WINENTRYFIELDS + *>
  7807.       <* NEW INCL_WINLISTBOXES + *>
  7808.       <* NEW INCL_WINMENUS + *>
  7809.       <* NEW INCL_WINSCROLLBARS + *>
  7810.       <* NEW INCL_WINFRAMEMGR + *>
  7811.       <* NEW INCL_WINFRAMECTLS + *>
  7812.       <* NEW INCL_WINACCELERATORS + *>
  7813.       <* NEW INCL_WINPOINTERS + *>
  7814.       <* NEW INCL_WINMESSAGEMGR + *>
  7815.       <* NEW INCL_WINMLE + *>
  7816.       <* NEW INCL_WINHELP + *>
  7817.       <* NEW INCL_WINSTDDLGS + *>
  7818.       <* NEW INCL_WINSYS + *>
  7819.    <* END *>
  7820. <* END *>
  7821.  
  7822. (*** ensure standard entry field defintions if MLE is defined **************)
  7823. <* IF DEFINED (INCL_WINMLE)  THEN *>
  7824.    <* IF NOT DEFINED (INCL_WINENTRYFIELDS)  THEN *>
  7825.       <* NEW INCL_WINENTRYFIELDS + *>
  7826.    <* END *>
  7827. <* END *>
  7828.  
  7829. (*** INCL_WINCOMMON compatability ******************************************)
  7830. <* IF DEFINED (INCL_WINCOMMON)  THEN *>
  7831.    <* NEW INCL_WINWINDOWMGR + *>
  7832. <* END *>
  7833.  
  7834. (*** include PMWIN errors if all errors requested **************************)
  7835. <* IF DEFINED (INCL_ERRORS)  THEN *>
  7836.    <* NEW INCL_WINERRORS + *>
  7837. <* END *>
  7838.  
  7839. (***************************************************************************)
  7840. (***        General Window Management types; constants and macros        ***)
  7841. (***************************************************************************)
  7842.  
  7843. TYPE MPARAM   = POINTER TO VOID;    (* mp    *)
  7844. TYPE PMPARAM  = POINTER TO MPARAM;   (* pmp   *)
  7845. TYPE MRESULT  = POINTER TO VOID;   (* mres  *)
  7846. TYPE PMRESULT = POINTER TO MRESULT;  (* pmres *)
  7847.  
  7848. (*** Macros to make an MPARAM from standard types. *************************)
  7849.  
  7850. CONST MPVOID                       = MPARAM(0);
  7851. --CONST MPFROMP(p)                 = MPARAM(((ULONG)(p)))
  7852. --CONST MPFROMHWND(hwnd)           = MPARAM((HWND)(hwnd))
  7853. --CONST MPFROMCHAR(ch)             = MPARAM((USHORT)(ch))
  7854. --CONST MPFROMSHORT(s)             = MPARAM((USHORT)(s))
  7855. --CONST MPFROM2SHORT(s1; s2)       = MPARAM(MAKELONG(s1; s2))
  7856. --CONST MPFROMSH2CH(s; uch1; uch2) = MPARAM(MAKELONG(s; MAKESHORT(uch1; uch2)))
  7857. --CONST MPFROMLONG(l)              = MPARAM((ULONG)(l))
  7858.  
  7859. (*** Macros to extract standard types from an MPARAM ***********************)
  7860.  
  7861. --CONST PVOIDFROMMP(mp)            ((VOID *)(mp))
  7862. --CONST HWNDFROMMP(mp)             ((HWND)(mp))
  7863. --CONST CHAR1FROMMP(mp)            ((UCHAR)(mp))
  7864. --CONST CHAR2FROMMP(mp)            ((UCHAR)((ULONG)mp >> 8))
  7865. --CONST CHAR3FROMMP(mp)            ((UCHAR)((ULONG)mp >> 16))
  7866. --CONST CHAR4FROMMP(mp)            ((UCHAR)((ULONG)mp >> 24))
  7867. --CONST SHORT1FROMMP(mp)           ((USHORT)(ULONG)(mp))
  7868. --CONST SHORT2FROMMP(mp)           ((USHORT)((ULONG)mp >> 16))
  7869. --CONST LONGFROMMP(mp)             ((ULONG)(mp))
  7870.  
  7871. (*** Macros to make an MRESULT from standard types. ************************)
  7872.  
  7873. --CONST MRFROMP(p)                 ((MRESULT)(VOID *)(p))
  7874. --CONST MRFROMSHORT(s)             ((MRESULT)(USHORT)(s))
  7875. --CONST MRFROM2SHORT(s1; s2)       ((MRESULT)MAKELONG(s1; s2))
  7876. --CONST MRFROMLONG(l)              ((MRESULT)(ULONG)(l))
  7877.  
  7878. (*** Macros to extract standard types from an MRESULT **********************)
  7879.  
  7880. --CONST PVOIDFROMMR(mr)            ((VOID *)(mr))
  7881. --CONST SHORT1FROMMR(mr)           ((USHORT)((ULONG)mr))
  7882. --CONST SHORT2FROMMR(mr)           ((USHORT)((ULONG)mr >> 16))
  7883. --CONST LONGFROMMR(mr)             ((ULONG)(mr))
  7884.  
  7885.  
  7886. (****************************************************************************
  7887. * This is the standard function definition for window procedures.
  7888. * Typically they are names like "XxxxxxxxWndProc"; where the prefix
  7889. * "Xxxxxxxxx" is replaced by some name descriptive of the window procedure
  7890. * being declared.  Window procedures must be EXPORTED in the definitions
  7891. * file used by the linker.
  7892. *
  7893. * MRESULT PROCEDURE [EXPENTRY] MyclassWndProc(HWND hwnd;   * window handle        *
  7894. *                                 ULONG msg;   * message number       *
  7895. *                                 MPARAM mp1;  * 1st (packed) parms   *
  7896. *                                 MPARAM mp2); * 2nd (packed) parms   *
  7897. *
  7898. ****************************************************************************)
  7899.  
  7900. (*** Pointer to a window procedure function ********************************)
  7901. TYPE PFNWP = PROCEDURE [EXPENTRY] (HWND, ULONG, MPARAM, MPARAM): MRESULT;
  7902.  
  7903. (*** Predefined window handles *********************************************)
  7904. <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  7905.       CONST HWND_DESKTOP             =  HWND(1);
  7906.       CONST HWND_OBJECT              =  HWND(2);
  7907. <* END *>
  7908.  
  7909. CONST HWND_TOP                    =  HWND(3);
  7910. CONST HWND_BOTTOM                 =  HWND(4);
  7911.  
  7912. <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  7913.       CONST HWND_THREADCAPTURE       =  HWND(5);
  7914. <* END *>
  7915.  
  7916.  
  7917. (*** Standard Window Classes ***********************************************)
  7918.  
  7919. CONST WC_FRAME            = PSZ(0ffff0001H);
  7920. CONST WC_COMBOBOX         = PSZ(0ffff0002H);
  7921. CONST WC_BUTTON           = PSZ(0ffff0003H);
  7922. CONST WC_MENU             = PSZ(0ffff0004H);
  7923. CONST WC_STATIC           = PSZ(0ffff0005H);
  7924. CONST WC_ENTRYFIELD       = PSZ(0ffff0006H);
  7925. CONST WC_LISTBOX          = PSZ(0ffff0007H);
  7926. CONST WC_SCROLLBAR        = PSZ(0ffff0008H);
  7927. CONST WC_TITLEBAR         = PSZ(0ffff0009H);
  7928. CONST WC_MLE              = PSZ(0ffff000AH);
  7929. (* 000B to 000F reserved *)
  7930. CONST WC_APPSTAT          = PSZ(0ffff0010H);
  7931. CONST WC_KBDSTAT          = PSZ(0ffff0011H);
  7932. CONST WC_PECIC            = PSZ(0ffff0012H);
  7933. CONST WC_DBE_KKPOPUP      = PSZ(0ffff0013H);
  7934. (* 0014 to 001F reserved *)
  7935. CONST WC_SPINBUTTON       = PSZ(0ffff0020H);
  7936. (* 0021 to 0024 reserved *)
  7937. CONST WC_CONTAINER        = PSZ(0ffff0025H);
  7938. CONST WC_SLIDER           = PSZ(0ffff0026H);
  7939. CONST WC_VALUESET         = PSZ(0ffff0027H);
  7940. CONST WC_NOTEBOOK         = PSZ(0ffff0028H);
  7941. (* 0029 to 002C used by PEN *)
  7942. CONST WC_PENFIRST         = PSZ(0ffff0029H);
  7943. CONST WC_PENLAST          = PSZ(0ffff002CH);
  7944. (* 002D to 0030 reserved *)
  7945. (* 0030 to 003F reserved *)
  7946. CONST WC_MMPMFIRST        = PSZ(0ffff0040H);
  7947. CONST WC_MMPMLAST         = PSZ(0ffff004fH);
  7948.  
  7949. (*** Standard Window Styles ************************************************)
  7950.  
  7951. CONST WS_VISIBLE                 = 080000000H;
  7952. CONST WS_DISABLED                = 040000000H;
  7953. CONST WS_CLIPCHILDREN            = 020000000H;
  7954. CONST WS_CLIPSIBLINGS            = 010000000H;
  7955. CONST WS_PARENTCLIP              = 008000000H;
  7956. CONST WS_SAVEBITS                = 004000000H;
  7957. CONST WS_SYNCPAINT               = 002000000H;
  7958. CONST WS_MINIMIZED               = 001000000H;
  7959. CONST WS_MAXIMIZED               = 000800000H;
  7960. CONST WS_ANIMATE                 = 000400000H;
  7961.  
  7962. (*** Dialog manager styles *************************************************)
  7963.  
  7964. CONST WS_GROUP                   = 000010000H;
  7965. CONST WS_TABSTOP                 = 000020000H;
  7966. CONST WS_MULTISELECT             = 000040000H;
  7967.  
  7968. (*** Class styles *********************************************************)
  7969.  
  7970. CONST CS_MOVENOTIFY              = 000000001H;
  7971. CONST CS_SIZEREDRAW              = 000000004H;
  7972. CONST CS_HITTEST                 = 000000008H;
  7973. CONST CS_PUBLIC                  = 000000010H;
  7974. CONST CS_FRAME                   = 000000020H;
  7975. CONST CS_CLIPCHILDREN            = 020000000H;
  7976. CONST CS_CLIPSIBLINGS            = 010000000H;
  7977. CONST CS_PARENTCLIP              = 008000000H;
  7978. CONST CS_SAVEBITS                = 004000000H;
  7979. CONST CS_SYNCPAINT               = 002000000H;
  7980.  
  7981. (***************************************************************************)
  7982. (*** Window Manager Subsection part 1 **************************************)
  7983. (***************************************************************************)
  7984.  
  7985. <* IF (DEFINED (INCL_WINWINDOWMGR) OR NOT DEFINED (INCL_NOCOMMON) ) THEN *>
  7986.  
  7987.       PROCEDURE [APIENTRY] WinRegisterClass(hab:   HAB;
  7988.                                                                           pszClassName: PCSZ;
  7989.                                                                           pfnWndProc:   PFNWP;
  7990.                                                                           flStyle:      ULONG;
  7991.                                                                           cbWindowData: ULONG): BOOL;
  7992.  
  7993.       PROCEDURE [APIENTRY] WinDefWindowProc(hwnd: HWND;
  7994.                                                                           msg:  ULONG;
  7995.                                                                           mp1:  MPARAM;
  7996.                                                                           mp2:  MPARAM): MRESULT;
  7997.  
  7998.       PROCEDURE [APIENTRY] WinDestroyWindow(hwnd: HWND): BOOL;
  7999.  
  8000.       PROCEDURE [APIENTRY] WinShowWindow(hwnd:    HWND;
  8001.                                                                     fShow:   BOOL): BOOL;
  8002.  
  8003.       PROCEDURE [APIENTRY] WinQueryWindowRect(hwnd:       HWND;
  8004.                                                                               prclDest:   PRECTL): BOOL;
  8005.  
  8006.       PROCEDURE [APIENTRY] WinGetPS(hwnd: HWND): HPS;
  8007.  
  8008.       PROCEDURE [APIENTRY] WinReleasePS(hps: HPS): BOOL;
  8009.  
  8010.       PROCEDURE [APIENTRY] WinEndPaint(hps: HPS): BOOL;
  8011.  
  8012.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  8013.  
  8014.           PROCEDURE [APIENTRY] WinGetClipPS(hwnd:    HWND;
  8015.                                                                     hwndClip: HWND;
  8016.                                                                     fl:       ULONG): HPS;
  8017.  
  8018.           PROCEDURE [APIENTRY] WinIsWindowShowing(hwnd: HWND): BOOL;
  8019.  
  8020.    <* END *>
  8021.  
  8022.       PROCEDURE [APIENTRY] WinBeginPaint(hwnd:    HWND;
  8023.                                                                 hps:       HPS;
  8024.                                                                 prclPaint: PRECTL): HPS;
  8025.       PROCEDURE [APIENTRY] WinOpenWindowDC(hwnd: HWND): HDC;
  8026.  
  8027.       PROCEDURE [APIENTRY] WinScrollWindow(hwnd:        HWND;
  8028.                                                                   dx:             LONG;
  8029.                                                                   dy:             LONG;
  8030.                                                                   prclScroll:     PRECTL;
  8031.                                                                   prclClip:       PRECTL;
  8032.                                                                   hrgnUpdate:     HRGN;
  8033.                                                                   prclUpdate:     PRECTL;
  8034.                                                                   rgfsw:          ULONG): LONG;
  8035.  
  8036.       (*** WinGetClipPS() flags ***********************************************)
  8037.  
  8038.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  8039.             CONST PSF_LOCKWINDOWUPDATE       = 00001H;
  8040.             CONST PSF_CLIPUPWARDS            = 00002H;
  8041.             CONST PSF_CLIPDOWNWARDS          = 00004H;
  8042.             CONST PSF_CLIPSIBLINGS           = 00008H;
  8043.             CONST PSF_CLIPCHILDREN           = 00010H;
  8044.             CONST PSF_PARENTCLIP             = 00020H;
  8045.    <* END *>
  8046.  
  8047.       (*** WinScrollWindow() flags ********************************************)
  8048.  
  8049.       CONST SW_SCROLLCHILDREN          = 00001H;
  8050.       CONST SW_INVALIDATERGN           = 00002H;
  8051.  
  8052.       PROCEDURE [APIENTRY] WinFillRect(hps:  HPS;
  8053.                                                             prcl:   PRECTL;
  8054.                                                             lColor: LONG): BOOL;
  8055.  
  8056.       (*** WinInitialize/WinTerminate Interface declarations ******************)
  8057.  
  8058.       TYPE QVERSDATA = RECORD   (* qver *)
  8059.             environment:  USHORT;
  8060.             version:      USHORT;
  8061.       END;
  8062.       TYPE PQVERSDATA = POINTER TO QVERSDATA;
  8063.  
  8064.       CONST QV_OS2                     = 00000H;
  8065.       CONST QV_CMS                     = 00001H;
  8066.       CONST QV_TSO                     = 00002H;
  8067.       CONST QV_TSOBATCH                = 00003H;
  8068.       CONST QV_OS400                   = 00004H;
  8069.  
  8070.  
  8071.       PROCEDURE [APIENTRY] WinQueryVersion(hab: HAB): ULONG;
  8072.  
  8073.       PROCEDURE [APIENTRY] WinInitialize(flOptions: ULONG): HAB;
  8074.  
  8075.       PROCEDURE [APIENTRY] WinTerminate(hab: HAB): BOOL;
  8076.  
  8077.       PROCEDURE [APIENTRY] WinQueryAnchorBlock(hwnd: HWND): HAB;
  8078.  
  8079. <* END *>
  8080.  
  8081. (***************************************************************************)
  8082. (***  End of Window Manager COMMON section *********************************)
  8083. (***************************************************************************)
  8084.  
  8085.  
  8086. PROCEDURE [APIENTRY] WinCreateWindow(hwndParent:  HWND;
  8087.                                                                   pszClass:    PCSZ;
  8088.                                                                   pszName:     PCSZ;
  8089.                                                                   flStyle:     ULONG;
  8090.                                                                   x:           LONG;
  8091.                                                                   y:           LONG;
  8092.                                                                   cx:          LONG;
  8093.                                                                   cy:          LONG;
  8094.                                                                   hwndOwner:   HWND;
  8095.                                                                   hwndInsertBehind: HWND;
  8096.                                                                   id:          ULONG;
  8097.                                                                   pCtlData:    PVOID;
  8098.                                                                   pPresParams: PVOID): HWND;
  8099.  
  8100. PROCEDURE [APIENTRY] WinEnableWindow(hwnd:     HWND;
  8101.                                                                   fEnable:  BOOL): BOOL;
  8102.  
  8103. PROCEDURE [APIENTRY] WinIsWindowEnabled(hwnd: HWND): BOOL;
  8104.  
  8105. PROCEDURE [APIENTRY] WinEnableWindowUpdate(hwnd:       HWND;
  8106.                                                                               fEnable:    BOOL): BOOL;
  8107.  
  8108. PROCEDURE [APIENTRY] WinIsWindowVisible(hwnd: HWND): BOOL;
  8109.  
  8110. PROCEDURE [APIENTRY] WinQueryWindowText(hwnd:          HWND;
  8111.                                                                         cchBufferMax:  LONG;
  8112.                                                                         pchBuffer:     PCH): LONG;
  8113.  
  8114. PROCEDURE [APIENTRY] WinSetWindowText(hwnd:    HWND;
  8115.                                                                     pszText: PCSZ): BOOL;
  8116.  
  8117. PROCEDURE [APIENTRY] WinQueryWindowTextLength(hwnd: HWND): LONG;
  8118.  
  8119. PROCEDURE [APIENTRY] WinWindowFromID(hwndParent: HWND;
  8120.                                                                   id:         ULONG): HWND;
  8121.  
  8122. PROCEDURE [APIENTRY] WinIsWindow(hab:   HAB;
  8123.                                                           hwnd:  HWND): BOOL;
  8124.  
  8125. PROCEDURE [APIENTRY] WinQueryWindow(hwnd:  HWND;
  8126.                                                                 cmd:   LONG): HWND;
  8127.  
  8128. PROCEDURE [APIENTRY] WinMultWindowFromIDs(hwndParent: HWND;
  8129.                                                                             prghwnd:    PHWND;
  8130.                                                                             idFirst:    ULONG;
  8131.                                                                             idLast:     ULONG): LONG;
  8132.  
  8133. (*** WinQueryWindow() codes ************************************************)
  8134.  
  8135. CONST QW_NEXT        = 0;
  8136. CONST QW_PREV        = 1;
  8137. CONST QW_TOP         = 2;
  8138. CONST QW_BOTTOM      = 3;
  8139. CONST QW_OWNER       = 4;
  8140. CONST QW_PARENT      = 5;
  8141. CONST QW_NEXTTOP     = 6;
  8142. CONST QW_PREVTOP     = 7;
  8143. CONST QW_FRAMEOWNER  = 8;
  8144.  
  8145. PROCEDURE [APIENTRY] WinSetParent(hwnd:         HWND;
  8146.                                                           hwndNewParent: HWND;
  8147.                                                           fRedraw:       BOOL): BOOL;
  8148.  
  8149. PROCEDURE [APIENTRY] WinIsChild(hwnd:      HWND;
  8150.                                                       hwndParent: HWND): BOOL;
  8151. PROCEDURE [APIENTRY] WinSetOwner(hwnd:        HWND;
  8152.                                                         hwndNewOwner: HWND): BOOL;
  8153. <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  8154.       PROCEDURE [APIENTRY] WinQueryWindowProcess(hwnd:    HWND;
  8155.                                                                                   ppid:     PPID;
  8156.                                                                                   ptid:     PTID): BOOL;
  8157. <* END *>
  8158.  
  8159. PROCEDURE [APIENTRY] WinQueryObjectWindow(hwndDesktop: HWND): HWND;
  8160. PROCEDURE [APIENTRY] WinQueryDesktopWindow(hab: HAB;
  8161.                                                                             hdc:  HDC): HWND;
  8162.  
  8163. (*** Window positioning functions *)
  8164.  
  8165. (* WinSetMultWindowPos() structure *)
  8166.  
  8167. TYPE SWP = RECORD   (* swp *)
  8168.       fl:          ULONG;
  8169.       cy:          LONG;
  8170.       cx:          LONG;
  8171.       y:           LONG;
  8172.       x:           LONG;
  8173.       hwndInsertBehind:  HWND;
  8174.       hwnd:        HWND;
  8175.       ulReserved1: ULONG;
  8176.       ulReserved2: ULONG;
  8177. END;
  8178. TYPE PSWP = POINTER TO SWP;
  8179.  
  8180. PROCEDURE [APIENTRY] WinSetWindowPos(hwnd:   HWND;
  8181.                                                                 hwndInsertBehind:  HWND;
  8182.                                                                 x:       LONG;
  8183.                                                                 y:       LONG;
  8184.                                                                 cx:      LONG;
  8185.                                                                 cy:      LONG;
  8186.                                                                 fl:      ULONG): BOOL;
  8187. PROCEDURE [APIENTRY] WinSetMultWindowPos(hab:  HAB;
  8188.                                                                         pswp:  PSWP;
  8189.                                                                         cswp:  ULONG): BOOL;
  8190. PROCEDURE [APIENTRY] WinQueryWindowPos(hwnd:    HWND;
  8191.                                                                     pswp:     PSWP): BOOL;
  8192.  
  8193. (* Values returned from WM_ADJUSTWINDOWPOS and passed to WM_WINDOWPOSCHANGED *)
  8194.  
  8195. CONST AWP_MINIMIZED              = 000010000H;
  8196. CONST AWP_MAXIMIZED              = 000020000H;
  8197. CONST AWP_RESTORED               = 000040000H;
  8198. CONST AWP_ACTIVATE               = 000080000H;
  8199. CONST AWP_DEACTIVATE             = 000100000H;
  8200.  
  8201. (* WinSetWindowPos() flags *)
  8202.  
  8203. CONST SWP_SIZE                   = 00001H;
  8204. CONST SWP_MOVE                   = 00002H;
  8205. CONST SWP_ZORDER                 = 00004H;
  8206. CONST SWP_SHOW                   = 00008H;
  8207. CONST SWP_HIDE                   = 00010H;
  8208. CONST SWP_NOREDRAW               = 00020H;
  8209. CONST SWP_NOADJUST               = 00040H;
  8210. CONST SWP_ACTIVATE               = 00080H;
  8211. CONST SWP_DEACTIVATE             = 00100H;
  8212. CONST SWP_EXTSTATECHANGE         = 00200H;
  8213. CONST SWP_MINIMIZE               = 00400H;
  8214. CONST SWP_MAXIMIZE               = 00800H;
  8215. CONST SWP_RESTORE                = 01000H;
  8216. CONST SWP_FOCUSACTIVATE          = 02000H;
  8217. CONST SWP_FOCUSDEACTIVATE        = 04000H;
  8218. CONST SWP_NOAUTOCLOSE            = 08000H;  (* Valid in PROGDETAILS struct only *)
  8219.  
  8220. (* Window painting *)
  8221.  
  8222. PROCEDURE [APIENTRY] WinUpdateWindow(hwnd: HWND): BOOL;
  8223.  
  8224. PROCEDURE [APIENTRY] WinInvalidateRect(hwnd:   HWND;
  8225.                                                                   pwrc:     PRECTL;
  8226.                                                                   fIncludeChildren: BOOL): BOOL;
  8227.  
  8228. PROCEDURE [APIENTRY] WinInvalidateRegion(hwnd: HWND;
  8229.                                                                       hrgn:   HRGN;
  8230.                                                                       fIncludeChildren: BOOL): BOOL;
  8231.  
  8232.  
  8233. (* Drawing helpers *)
  8234.  
  8235. PROCEDURE [APIENTRY] WinInvertRect(hps: HPS;
  8236.                                                           prcl:  PRECTL): BOOL;
  8237. PROCEDURE [APIENTRY] WinDrawBitmap(hpsDst:   HPS;
  8238.                                                           hbm:        HBITMAP;
  8239.                                                           pwrcSrc:    PRECTL;
  8240.                                                           pptlDst:    PPOINTL;
  8241.                                                           clrFore:    LONG;
  8242.                                                           clrBack:    LONG;
  8243.                                                           fl:         ULONG): BOOL;
  8244.  
  8245. (* WinDrawBitmap() flags *)
  8246.  
  8247. CONST DBM_NORMAL                 = 00000H;
  8248. CONST DBM_INVERT                 = 00001H;
  8249. CONST DBM_HALFTONE               = 00002H;
  8250. CONST DBM_STRETCH                = 00004H;
  8251. CONST DBM_IMAGEATTRS             = 00008H;
  8252.  
  8253.  
  8254.  
  8255. PROCEDURE [APIENTRY] WinDrawText(hps:      HPS;
  8256.                                                           cchText:  LONG;
  8257.                                                           lpchText: PCH;
  8258.                                                           prcl:     PRECTL;
  8259.                                                           clrFore:  LONG;
  8260.                                                           clrBack:  LONG;
  8261.                                                           flCmd:    ULONG): LONG;
  8262.  
  8263.  
  8264. (*
  8265. * WinDrawText() codes:
  8266. * From DT_LEFT to DT_EXTERNALLEADING; the codes are designed to be ||'ed with
  8267. * SS_TEXT to create variations of the basic text static item.
  8268. *)
  8269. CONST DT_LEFT                    = 00000H;
  8270. CONST DT_QUERYEXTENT             = 00002H;
  8271. CONST DT_UNDERSCORE              = 00010H;
  8272. CONST DT_STRIKEOUT               = 00020H;
  8273. CONST DT_TEXTATTRS               = 00040H;
  8274. CONST DT_EXTERNALLEADING         = 00080H;
  8275. CONST DT_CENTER                  = 00100H;
  8276. CONST DT_RIGHT                   = 00200H;
  8277. CONST DT_TOP                     = 00000H;
  8278. CONST DT_VCENTER                 = 00400H;
  8279. CONST DT_BOTTOM                  = 00800H;
  8280. CONST DT_HALFTONE                = 01000H;
  8281. CONST DT_MNEMONIC                = 02000H;
  8282. CONST DT_WORDBREAK               = 04000H;
  8283. CONST DT_ERASERECT               = 08000H;
  8284.  
  8285.  
  8286.  
  8287. PROCEDURE [APIENTRY] WinDrawBorder(hps:   HPS;
  8288.                                                         prcl:     PRECTL;
  8289.                                                         cx:       LONG;
  8290.                                                         cy:       LONG;
  8291.                                                         clrFore:  LONG;
  8292.                                                         clrBack:  LONG;
  8293.                                                         flCmd:    ULONG): BOOL;
  8294.  
  8295.  
  8296. (* WinDrawBorder() flags *)
  8297.  
  8298. CONST DB_PATCOPY                 = 00000H;
  8299. CONST DB_PATINVERT               = 00001H;
  8300. CONST DB_DESTINVERT              = 00002H;
  8301. CONST DB_AREAMIXMODE             = 00003H;
  8302.  
  8303. CONST DB_ROP                     = 00007H;
  8304. CONST DB_INTERIOR                = 00008H;
  8305. CONST DB_AREAATTRS               = 00010H;
  8306. CONST DB_STANDARD                = 00100H;
  8307. CONST DB_DLGBORDER               = 00200H;
  8308.  
  8309.  
  8310.  
  8311. (** Resource loading functions *)
  8312.  
  8313. PROCEDURE [APIENTRY] WinLoadString(hab:       HAB;
  8314.                                                               hmod:      HMODULE;
  8315.                                                               id:        ULONG;
  8316.                                                               cchMax:    LONG;
  8317.                                                               pchBuffer: PCSZ): LONG;
  8318. <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  8319.       PROCEDURE [APIENTRY] WinLoadMessage(hab:       HAB;
  8320.                                                                       hmod:      HMODULE;
  8321.                                                                       id:        ULONG;
  8322.                                                                       cchMax:    LONG;
  8323.                                                                       pchBuffer: PCSZ): LONG;
  8324.  
  8325.  
  8326. <* END *>
  8327.  
  8328. (***************************************************************************)
  8329. (****                 Window Manager Subsection part 2                  ****)
  8330. <* IF DEFINED (INCL_WINWINDOWMGR) OR NOT DEFINED (INCL_NOCOMMON)  THEN *>
  8331.  
  8332.       PROCEDURE [APIENTRY] WinSetActiveWindow(hwndDesktop: HWND;
  8333.                                                                               hwnd:        HWND): BOOL;
  8334.  
  8335. <* END *>
  8336.  
  8337. <* IF DEFINED (INCL_WINWINDOWMGR)  THEN *>
  8338.       (* WM_CREATE structure *)
  8339.  
  8340.       TYPE CREATESTRUCT = RECORD   (* crst *)
  8341.             pPresParams:      PVOID;
  8342.             pCtlData:         PVOID;
  8343.             id:               ULONG;
  8344.             hwndInsertBehind: HWND;
  8345.             hwndOwner:        HWND;
  8346.             cy:               LONG;
  8347.             cx:               LONG;
  8348.             y:                LONG;
  8349.             x:                LONG;
  8350.             flStyle:          ULONG;
  8351.             pszText:          PSZ;
  8352.             pszClass:         PSZ;
  8353.             hwndParent:       HWND;
  8354.       END;
  8355.       TYPE PCREATESTRUCT = POINTER TO CREATESTRUCT;
  8356.  
  8357.       (* WinQueryClassInfo() structure *)
  8358.  
  8359.       TYPE CLASSINFO = RECORD   (* clsi *)
  8360.             flClassStyle:  ULONG;
  8361.             pfnWindowProc: PFNWP;
  8362.             cbWindowData:  ULONG;
  8363.       END;
  8364.       TYPE PCLASSINFO = POINTER TO CLASSINFO;
  8365.  
  8366.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  8367.             PROCEDURE [APIENTRY] WinSubclassWindow(hwnd:     HWND;
  8368.                                                                                 pfnwp:     PFNWP): PFNWP;
  8369.    <* END *>
  8370.  
  8371.       PROCEDURE [APIENTRY] WinQueryClassName(hwnd:   HWND;
  8372.                                                                             cchMax: LONG;
  8373.                                                                             pch:    PCH): LONG;
  8374.       PROCEDURE [APIENTRY] WinQueryClassInfo(hab:         HAB;
  8375.                                                                           pszClassName: PCSZ;
  8376.                                                                           pClassInfo:   PCLASSINFO): BOOL;
  8377.  
  8378.       PROCEDURE [APIENTRY] WinQueryActiveWindow(hwndDesktop: HWND): HWND;
  8379.  
  8380.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  8381.             PROCEDURE [APIENTRY] WinIsThreadActive(hab: HAB): BOOL;
  8382.    <* END *>
  8383.       PROCEDURE [APIENTRY] WinQuerySysModalWindow(hwndDesktop: HWND): HWND;
  8384.  
  8385.  
  8386.       PROCEDURE [APIENTRY] WinSetSysModalWindow(hwndDesktop: HWND;
  8387.                                                                                 hwnd:         HWND): BOOL;
  8388.  
  8389.  
  8390.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  8391.             PROCEDURE [APIENTRY] WinQueryWindowUShort(hwnd:  HWND;
  8392.                                                                                       index:  LONG): USHORT;
  8393.             PROCEDURE [APIENTRY] WinSetWindowUShort(hwnd:    HWND;
  8394.                                                                                   index:    LONG;
  8395.                                                                                   us:       USHORT): BOOL;
  8396.             PROCEDURE [APIENTRY] WinQueryWindowULong(hwnd: HWND;
  8397.                                                                                     index: LONG): ULONG;
  8398.             PROCEDURE [APIENTRY] WinSetWindowULong(hwnd:   HWND;
  8399.                                                                                 index:   LONG;
  8400.                                                                                 ul:      ULONG): BOOL;
  8401.             PROCEDURE [APIENTRY] WinQueryWindowPtr(hwnd: HWND;
  8402.                                                                                 index: LONG): PVOID;
  8403.             PROCEDURE [APIENTRY] WinSetWindowPtr(hwnd:   HWND;
  8404.                                                                             index:   LONG;
  8405.                                                                             p:       PVOID): BOOL;
  8406.             PROCEDURE [APIENTRY] WinSetWindowBits(hwnd:  HWND;
  8407.                                                                               index:  LONG;
  8408.                                                                               flData: ULONG;
  8409.                                                                               flMask: ULONG): BOOL;
  8410.  
  8411.             (*** Standard WinQueryWindowUShort/ULong() indices *******************)
  8412.             CONST QWS_USER                  = 0;
  8413.             CONST QWS_ID                    = (-1);
  8414.             CONST QWS_MIN                   = (-1);
  8415.  
  8416.             CONST QWL_USER                  = 0;
  8417.             CONST QWL_STYLE                 = (-2);
  8418.             CONST QWP_PFNWP                 = (-3);
  8419.             CONST QWL_HMQ                   = (-4);
  8420.             CONST QWL_RESERVED              = (-5);
  8421.  
  8422.             CONST QWL_PENDATA               = (-7);
  8423.             CONST QWL_MIN                   = (-7);
  8424.  
  8425.             (*** WC_FRAME WinQueryWindowUShort/ULong() indices *******************)
  8426.             CONST QWL_HHEAP                  = 00004H;
  8427.             CONST QWL_HWNDFOCUSSAVE          = 00018H;
  8428.             CONST QWL_DEFBUTTON              = 00040H;
  8429.             CONST QWL_PSSCBLK                = 00048H;
  8430.             CONST QWL_PFEPBLK                = 0004cH;
  8431.             CONST QWL_PSTATBLK               = 00050H;
  8432.  
  8433.             CONST QWS_FLAGS                  = 00008H;
  8434.             CONST QWS_RESULT                 = 0000aH;
  8435.             CONST QWS_XRESTORE               = 0000cH;
  8436.             CONST QWS_YRESTORE               = 0000eH;
  8437.             CONST QWS_CXRESTORE              = 00010H;
  8438.             CONST QWS_CYRESTORE              = 00012H;
  8439.             CONST QWS_XMINIMIZE              = 00014H;
  8440.             CONST QWS_YMINIMIZE              = 00016H;
  8441.  
  8442.  
  8443.             (*** Window enumeration **********************************************)
  8444.             TYPE HENUM = LHANDLE;  (* henum *)
  8445.  
  8446.             PROCEDURE [APIENTRY] WinBeginEnumWindows(hwnd: HWND): HENUM;
  8447.             PROCEDURE [APIENTRY] WinGetNextWindow(henum: HENUM): HWND;
  8448.             PROCEDURE [APIENTRY] WinEndEnumWindows(henum: HENUM): BOOL;
  8449.  
  8450.    <* END *>
  8451.  
  8452.       PROCEDURE [APIENTRY] WinWindowFromPoint(hwnd:    HWND;
  8453.                                                                           pptl:      PPOINTL;
  8454.                                                                           fChildren: BOOL): HWND;
  8455.  
  8456.       PROCEDURE [APIENTRY] WinMapWindowPoints(hwndFrom: HWND;
  8457.                                                                           hwndTo:     HWND;
  8458.                                                                           prgptl:     PPOINTL;
  8459.                                                                           cwpt:       LONG): BOOL;
  8460.  
  8461.  
  8462.       (* More window painting functions *)
  8463.  
  8464.       PROCEDURE [APIENTRY] WinValidateRect(hwnd:     HWND;
  8465.                                                                     prcl:       PRECTL;
  8466.                                                                     fIncludeChildren: BOOL): BOOL;
  8467.  
  8468.       PROCEDURE [APIENTRY] WinValidateRegion(hwnd:     HWND;
  8469.                                                                         hrgn:       HRGN;
  8470.                                                                         fIncludeChildren: BOOL): BOOL;
  8471.  
  8472.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  8473.             PROCEDURE [APIENTRY] WinWindowFromDC(hdc: HDC): HWND;
  8474.  
  8475.             PROCEDURE [APIENTRY] WinQueryWindowDC(hwnd: HWND): HDC;
  8476.  
  8477.             PROCEDURE [APIENTRY] WinGetScreenPS(hwndDesktop: HWND): HPS;
  8478.  
  8479.             PROCEDURE [APIENTRY] WinLockWindowUpdate(hwndDesktop:  HWND;
  8480.                                                                                   hwndLockUpdate: HWND): BOOL;
  8481.  
  8482.             PROCEDURE [APIENTRY] WinLockVisRegions(hwndDesktop: HWND;
  8483.                                                                               fLock:         BOOL): BOOL;
  8484.    <* END *>
  8485.  
  8486.       PROCEDURE [APIENTRY] WinQueryUpdateRect(hwnd: HWND;
  8487.                                                                           prcl:   PRECTL): BOOL;
  8488.  
  8489.       PROCEDURE [APIENTRY] WinQueryUpdateRegion(hwnd: HWND;
  8490.                                                                             hrgn:    HRGN): LONG;
  8491.  
  8492.       PROCEDURE [APIENTRY] WinExcludeUpdateRegion(hps: HPS;
  8493.                                                                                 hwnd:   HWND): LONG;
  8494.  
  8495. <* END *>
  8496.  
  8497. <* IF DEFINED (INCL_WINMESSAGEMGR) OR NOT DEFINED (INCL_NOCOMMON)  THEN *>
  8498.  
  8499.       (* QMSG structure *)
  8500.       TYPE QMSG = RECORD   (* qmsg *)
  8501.             hwnd:     HWND;
  8502.             msg:      ULONG;
  8503.             mp1:      MPARAM;
  8504.             mp2:      MPARAM;
  8505.             time:     ULONG;
  8506.             ptl:      POINTL;
  8507.             reserved: ULONG;
  8508.       END;
  8509.       TYPE PQMSG = POINTER TO QMSG;
  8510.  
  8511.       (*** Standard Window Messages *******************************************)
  8512.       CONST WM_NULL                    = 00000H;
  8513.       CONST WM_CREATE                  = 00001H;
  8514.       CONST WM_DESTROY                 = 00002H;
  8515.  
  8516.  
  8517.       CONST WM_ENABLE                  = 00004H;
  8518.       CONST WM_SHOW                    = 00005H;
  8519.       CONST WM_MOVE                    = 00006H;
  8520.       CONST WM_SIZE                    = 00007H;
  8521.       CONST WM_ADJUSTWINDOWPOS         = 00008H;
  8522.  
  8523.       CONST WM_CALCVALIDRECTS          = 00009H;
  8524.  
  8525.       CONST WM_SETWINDOWPARAMS         = 0000aH;
  8526.       CONST WM_QUERYWINDOWPARAMS       = 0000bH;
  8527.       CONST WM_HITTEST                 = 0000cH;
  8528.       CONST WM_ACTIVATE                = 0000dH;
  8529.       CONST WM_SETFOCUS                = 0000fH;
  8530.       CONST WM_SETSELECTION            = 00010H;
  8531.  
  8532.       (* language support Winproc *)
  8533.       CONST WM_PPAINT                  = 00011H;
  8534.       CONST WM_PSETFOCUS               = 00012H;
  8535.       CONST WM_PSYSCOLORCHANGE         = 00013H;
  8536.       CONST WM_PSIZE                   = 00014H;
  8537.       CONST WM_PACTIVATE               = 00015H;
  8538.       CONST WM_PCONTROL                = 00016H;
  8539.  
  8540.       CONST WM_COMMAND                 = 00020H;
  8541.       CONST WM_SYSCOMMAND              = 00021H;
  8542.       CONST WM_HELP                    = 00022H;
  8543.       CONST WM_PAINT                   = 00023H;
  8544.  
  8545.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  8546.             CONST WM_TIMER                = 00024H;
  8547.             CONST WM_SEM1                 = 00025H;
  8548.             CONST WM_SEM2                 = 00026H;
  8549.             CONST WM_SEM3                 = 00027H;
  8550.             CONST WM_SEM4                 = 00028H;
  8551.    <* END *>
  8552.  
  8553.       CONST WM_CLOSE                   = 00029H;
  8554.       CONST WM_QUIT                    = 0002aH;
  8555.       CONST WM_SYSCOLORCHANGE          = 0002bH;
  8556.       CONST WM_SYSVALUECHANGED         = 0002dH;
  8557.       CONST WM_APPTERMINATENOTIFY      = 0002eH;
  8558.       CONST WM_PRESPARAMCHANGED        = 0002fH;
  8559.  
  8560.       (* Control notification messages *)
  8561.       CONST WM_CONTROL                 = 00030H;
  8562.       CONST WM_VSCROLL                 = 00031H;
  8563.       CONST WM_HSCROLL                 = 00032H;
  8564.       CONST WM_INITMENU                = 00033H;
  8565.       CONST WM_MENUSELECT              = 00034H;
  8566.       CONST WM_MENUEND                 = 00035H;
  8567.       CONST WM_DRAWITEM                = 00036H;
  8568.       CONST WM_MEASUREITEM             = 00037H;
  8569.       CONST WM_CONTROLPOINTER          = 00038H;
  8570.       CONST WM_QUERYDLGCODE            = 0003aH;
  8571.       CONST WM_INITDLG                 = 0003bH;
  8572.       CONST WM_SUBSTITUTESTRING        = 0003cH;
  8573.       CONST WM_MATCHMNEMONIC           = 0003dH;
  8574.       CONST WM_SAVEAPPLICATION         = 0003eH;
  8575.  
  8576.  
  8577.       (*************************************************************************
  8578.       * Reserve a range of messages for help manager.  This range includes
  8579.       * public messages; defined below; and private ones; which need to be
  8580.       * reserved here to prevent clashing with application messages
  8581.       *************************************************************************)
  8582.  
  8583.       CONST WM_HELPBASE                = 00F00H; (* Start of msgs for help manager   *)
  8584.       CONST WM_HELPTOP                 = 00FFFH; (* End of msgs for help manager     *)
  8585.  
  8586.       CONST WM_USER                    = 01000H;
  8587.  
  8588.       (*** WM_COMMAND msg source codes ****************************************)
  8589.       CONST CMDSRC_PUSHBUTTON     = 1;
  8590.       CONST CMDSRC_MENU           = 2;
  8591.       CONST CMDSRC_ACCELERATOR    = 3;
  8592.       CONST CMDSRC_FONTDLG        = 4;
  8593.       CONST CMDSRC_FILEDLG        = 5;
  8594.       CONST CMDSRC_PRINTDLG       = 6;
  8595.       CONST CMDSRC_COLORDLG       = 7;
  8596.       CONST CMDSRC_OTHER          = 0;
  8597.  
  8598.       -- #pragma pack(1) (* force structure alignment packing *)
  8599.  
  8600.       (*
  8601.       * The following structure and macro are used to access the
  8602.       * WM_COMMAND; WM_HELP; and WM_SYSCOMMAND message parameters:
  8603.       *)
  8604.       TYPE CMDMSG = RECORD    (* commandmsg *)
  8605.             cmd:     USHORT;           (* mp1 *)
  8606.             unused:  USHORT;
  8607.             source:  USHORT;           (* mp2 *)
  8608.             fMouse:  USHORT;
  8609.       END;
  8610.       TYPE PCMDMSG = POINTER TO CMDMSG;
  8611.  
  8612.       --CONST COMMANDMSG(pmsg) \
  8613.       --((PCMDMSG)((PBYTE)pmsg + sizeof(MPARAM)))
  8614.  
  8615.       --#pragma pack()  (* restore packing to default *)
  8616.  
  8617.       (*** The following structure is used by the WinQueryQueueInfo() routine *)
  8618.       TYPE MQINFO = RECORD   (* mqi *)
  8619.             cb:         ULONG;
  8620.             pid:        PID;
  8621.             tid:        TID;
  8622.             cmsgs:      ULONG;
  8623.             pReserved:  PVOID;
  8624.       END;
  8625.       TYPE PMQINFO = POINTER TO MQINFO;
  8626.  
  8627.       PROCEDURE [APIENTRY] WinSendMsg(hwnd: HWND;
  8628.                                                               msg:  ULONG;
  8629.                                                               mp1:  MPARAM;
  8630.                                                               mp2:  MPARAM): MRESULT;
  8631.  
  8632.       PROCEDURE [APIENTRY] WinCreateMsgQueue(hab:  HAB;
  8633.                                                                             cmsg: LONG): HMQ;
  8634.  
  8635.       PROCEDURE [APIENTRY] WinDestroyMsgQueue(hmq: HMQ): BOOL;
  8636.  
  8637.       PROCEDURE [APIENTRY] WinQueryQueueInfo(hmq:    HMQ;
  8638.                                                                             pmqi:   PMQINFO;
  8639.                                                                             cbCopy: ULONG): BOOL;
  8640.  
  8641.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  8642.             PROCEDURE [APIENTRY] WinCancelShutdown(hmq:           HMQ;
  8643.                                                                                   fCancelAlways: BOOL): BOOL;
  8644.    <* END *>
  8645.  
  8646.       PROCEDURE [APIENTRY] WinGetMsg(hab:            HAB;
  8647.                                                             pqmsg:          PQMSG;
  8648.                                                             hwndFilter:     HWND;
  8649.                                                             msgFilterFirst: ULONG;
  8650.                                                             msgFilterLast:  ULONG): BOOL;
  8651.  
  8652.       PROCEDURE [APIENTRY] WinPeekMsg(hab:               HAB;
  8653.                                                               pqmsg:             PQMSG;
  8654.                                                               hwndFilter:        HWND;
  8655.                                                               msgFilterFirst:    ULONG;
  8656.                                                               msgFilterLast:     ULONG;
  8657.                                                               fl:                ULONG): BOOL;
  8658.  
  8659.       PROCEDURE [APIENTRY] WinDispatchMsg(hab:     HAB;
  8660.                                                                       pqmsg:   PQMSG): MRESULT;
  8661.  
  8662.       PROCEDURE [APIENTRY] WinPostMsg(hwnd: HWND;
  8663.                                                               msg:  ULONG;
  8664.                                                               mp1:  MPARAM;
  8665.                                                               mp2:  MPARAM): BOOL;
  8666.  
  8667.       PROCEDURE [APIENTRY] WinRegisterUserMsg(hab:       HAB;
  8668.                                                                               msgid:     ULONG;
  8669.                                                                               datatype1: LONG;
  8670.                                                                               dir1:      LONG;
  8671.                                                                               datatype2: LONG;
  8672.                                                                               dir2:      LONG;
  8673.                                                                               datatyper: LONG): BOOL;
  8674.  
  8675.       PROCEDURE [APIENTRY] WinRegisterUserDatatype(hab:      HAB;
  8676.                                                                                         datatype: LONG;
  8677.                                                                                         count:    LONG;
  8678.                                                                                         types:    PLONG): BOOL;
  8679.       PROCEDURE [APIENTRY] WinSetMsgMode(hab:       HAB;
  8680.                                                                     classname: PCSZ;
  8681.                                                                     control:   LONG): BOOL;
  8682.  
  8683.       PROCEDURE [APIENTRY] WinSetSynchroMode(hab:  HAB;
  8684.                                                                             mode: LONG): BOOL;
  8685.  
  8686.       (*** WinPeekMsg() constants *********************************************)
  8687.       CONST PM_REMOVE                  = 00001H;
  8688.       CONST PM_NOREMOVE                = 00000H;
  8689.  
  8690.       (*** WinRegisterUserDatatype datatypes defined in separate file *********)
  8691.    <* IF DEFINED (INCL_WINTYPES)  THEN *>
  8692.      
  8693. (* ------------- Include file: .\hm\pmtypes.hm ------------- *)
  8694. (****************************** Module Header ******************************\
  8695. *
  8696. * Module Name: PMTYPES.H
  8697. *
  8698. * OS/2 Presentation Manager Datatypes include file
  8699. *
  8700. * Copyright (c) International Business Machines Corporation 1981, 1988-1992
  8701. *
  8702. * ===========================================================================
  8703. *
  8704. * Comments at the end of each typedef line give the name tags used in
  8705. * the assembler include version of this file.
  8706. *
  8707. * The assembler include version of this file excludes lines between XLATOFF
  8708. * and XLATON comments.
  8709. *
  8710. \***************************************************************************)
  8711.  
  8712.  
  8713. <* NEW TYPES_INCLUDED + *>
  8714.  
  8715. CONST DTYP_USER               = (16384);
  8716.  
  8717. CONST DTYP_CTL_ARRAY         = (1);
  8718. CONST DTYP_CTL_PARRAY        =(-1);
  8719. CONST DTYP_CTL_OFFSET        = (2);
  8720. CONST DTYP_CTL_LENGTH        = (3);
  8721.  
  8722.  
  8723. (**********************************************************************)
  8724. (* Ordinary datatypes                                                 *)
  8725. (**********************************************************************)
  8726. CONST DTYP_ACCEL             = (28);
  8727. CONST DTYP_ACCELTABLE        = (29);
  8728. CONST DTYP_ARCPARAMS         = (38);
  8729. CONST DTYP_AREABUNDLE        = (139);
  8730. CONST DTYP_ATOM              = (90);
  8731. CONST DTYP_BITMAPINFO        = (60);
  8732. CONST DTYP_BITMAPINFOHEADER  = (61);
  8733. CONST DTYP_BITMAPINFO2       = (170);
  8734. CONST DTYP_BITMAPINFOHEADER2 = (171);
  8735. CONST DTYP_BIT16             = (20);
  8736. CONST DTYP_BIT32             = (21);
  8737. CONST DTYP_BIT8              = (19);
  8738. CONST DTYP_BOOL              = (18);
  8739. CONST DTYP_BTNCDATA          = (35);
  8740. CONST DTYP_BYTE              = (13);
  8741. CONST DTYP_CATCHBUF          = (141);
  8742. CONST DTYP_CHAR              = (15);
  8743. CONST DTYP_CHARBUNDLE        = (135);
  8744. CONST DTYP_CLASSINFO         = (95);
  8745. CONST DTYP_COUNT2            = (93);
  8746. CONST DTYP_COUNT2B           = (70);
  8747. CONST DTYP_COUNT2CH          = (82);
  8748. CONST DTYP_COUNT4            = (152);
  8749. CONST DTYP_COUNT4B           = (42);
  8750. CONST DTYP_CPID              = (57);
  8751. CONST DTYP_CREATESTRUCT      = (98);
  8752. CONST DTYP_CURSORINFO        = (34);
  8753. CONST DTYP_DEVOPENSTRUC      = (124);
  8754. CONST DTYP_DLGTEMPLATE       = (96);
  8755. CONST DTYP_DLGTITEM          = (97);
  8756. CONST DTYP_ENTRYFDATA        = (127);
  8757. CONST DTYP_ERRORID           = (45);
  8758. CONST DTYP_FATTRS            = (75);
  8759. CONST DTYP_FFDESCS           = (142);
  8760. CONST DTYP_FIXED             = (99);
  8761. CONST DTYP_FONTMETRICS       = (74);
  8762. CONST DTYP_FRAMECDATA        = (144);
  8763. CONST DTYP_GRADIENTL         = (48);
  8764. CONST DTYP_HAB               = (10);
  8765. CONST DTYP_HACCEL            = (30);
  8766. CONST DTYP_HAPP              = (146);
  8767. CONST DTYP_HATOMTBL          = (91);
  8768. CONST DTYP_HBITMAP           = (62);
  8769. CONST DTYP_HCINFO            = (46);
  8770. CONST DTYP_HDC               = (132);
  8771. CONST DTYP_HENUM             = (117);
  8772. CONST DTYP_HHEAP             = (109);
  8773. CONST DTYP_HINI              = (53);
  8774. CONST DTYP_HLIB              = (147);
  8775. CONST DTYP_HMF               = (85);
  8776. CONST DTYP_HMQ               = (86);
  8777. CONST DTYP_HPOINTER          = (106);
  8778. CONST DTYP_HPROGRAM          = (131);
  8779. CONST DTYP_HPS               = (12);
  8780. CONST DTYP_HRGN              = (116);
  8781. CONST DTYP_HSEM              = (140);
  8782. CONST DTYP_HSPL              = (32);
  8783. CONST DTYP_HSWITCH           = (66);
  8784. CONST DTYP_HVPS              = (58);
  8785. CONST DTYP_HWND              = (11);
  8786. CONST DTYP_IDENTITY          = (133);
  8787. CONST DTYP_IDENTITY4         = (169);
  8788. CONST DTYP_IMAGEBUNDLE       = (136);
  8789. CONST DTYP_INDEX2            = (81);
  8790. CONST DTYP_IPT               = (155);
  8791. CONST DTYP_KERNINGPAIRS      = (118);
  8792. CONST DTYP_LENGTH2           = (68);
  8793. CONST DTYP_LENGTH4           = (69);
  8794. CONST DTYP_LINEBUNDLE        = (137);
  8795. CONST DTYP_LONG              = (25);
  8796. CONST DTYP_MARKERBUNDLE      = (138);
  8797. CONST DTYP_MATRIXLF          = (113);
  8798. CONST DTYP_MLECTLDATA        = (161);
  8799. CONST DTYP_MLEMARGSTRUCT     = (157);
  8800. CONST DTYP_MLEOVERFLOW       = (158);
  8801. CONST DTYP_OFFSET2B          = (112);
  8802. CONST DTYP_OWNERITEM         = (154);
  8803. CONST DTYP_PID               = (92);
  8804. CONST DTYP_PIX               = (156);
  8805. CONST DTYP_POINTERINFO       = (105);
  8806. CONST DTYP_POINTL            = (77);
  8807. CONST DTYP_PROGCATEGORY      = (129);
  8808. CONST DTYP_PROGRAMENTRY      = (128);
  8809. CONST DTYP_PROGTYPE          = (130);
  8810. CONST DTYP_PROPERTY2         = (88);
  8811. CONST DTYP_PROPERTY4         = (89);
  8812. CONST DTYP_QMSG              = (87);
  8813. CONST DTYP_RECTL             = (121);
  8814. CONST DTYP_RESID             = (125);
  8815. CONST DTYP_RGB               = (111);
  8816. CONST DTYP_RGNRECT           = (115);
  8817. CONST DTYP_SBCDATA           = (159);
  8818. CONST DTYP_SEGOFF            = (126);
  8819. CONST DTYP_SHORT             = (23);
  8820. CONST DTYP_SIZEF             = (101);
  8821. CONST DTYP_SIZEL             = (102);
  8822. CONST DTYP_STRL              = (17);
  8823. CONST DTYP_STR16             = (40);
  8824. CONST DTYP_STR32             = (37);
  8825. CONST DTYP_STR64             = (47);
  8826. CONST DTYP_STR8              = (33);
  8827. CONST DTYP_SWBLOCK           = (63);
  8828. CONST DTYP_SWCNTRL           = (64);
  8829. CONST DTYP_SWENTRY           = (65);
  8830. CONST DTYP_SWP               = (31);
  8831. CONST DTYP_TID               = (104);
  8832. CONST DTYP_TIME              = (107);
  8833. CONST DTYP_TRACKINFO         = (73);
  8834. CONST DTYP_UCHAR             = (22);
  8835. CONST DTYP_ULONG             = (26);
  8836. CONST DTYP_USERBUTTON        = (36);
  8837. CONST DTYP_USHORT            = (24);
  8838. CONST DTYP_WIDTH4            = (108);
  8839. CONST DTYP_WNDPARAMS         = (83);
  8840. CONST DTYP_WNDPROC           = (84);
  8841. CONST DTYP_WPOINT            = (59);
  8842. CONST DTYP_WRECT             = (55);
  8843. CONST DTYP_XYWINSIZE         = (52);
  8844.  
  8845.  
  8846. (**********************************************************************)
  8847. (* Pointer datatypes                                                  *)
  8848. (**********************************************************************)
  8849. CONST DTYP_PACCEL             =(-28);
  8850. CONST DTYP_PACCELTABLE        =(-29);
  8851. CONST DTYP_PARCPARAMS         =(-38);
  8852. CONST DTYP_PAREABUNDLE        =(-139);
  8853. CONST DTYP_PATOM              =(-90);
  8854. CONST DTYP_PBITMAPINFO        =(-60);
  8855. CONST DTYP_PBITMAPINFOHEADER  =(-61);
  8856. CONST DTYP_PBITMAPINFO2       =(-170);
  8857. CONST DTYP_PBITMAPINFOHEADER2 =(-171);
  8858. CONST DTYP_PBIT16             =(-20);
  8859. CONST DTYP_PBIT32             =(-21);
  8860. CONST DTYP_PBIT8              =(-19);
  8861. CONST DTYP_PBOOL              =(-18);
  8862. CONST DTYP_PBTNCDATA          =(-35);
  8863. CONST DTYP_PBYTE              =(-13);
  8864. CONST DTYP_PCATCHBUF          =(-141);
  8865. CONST DTYP_PCHAR              =(-15);
  8866. CONST DTYP_PCHARBUNDLE        =(-135);
  8867. CONST DTYP_PCLASSINFO         =(-95);
  8868. CONST DTYP_PCOUNT2            =(-93);
  8869. CONST DTYP_PCOUNT2B           =(-70);
  8870. CONST DTYP_PCOUNT2CH          =(-82);
  8871. CONST DTYP_PCOUNT4            =(-152);
  8872. CONST DTYP_PCOUNT4B           =(-42);
  8873. CONST DTYP_PCPID              =(-57);
  8874. CONST DTYP_PCREATESTRUCT      =(-98);
  8875. CONST DTYP_PCURSORINFO        =(-34);
  8876. CONST DTYP_PDEVOPENSTRUC      =(-124);
  8877. CONST DTYP_PDLGTEMPLATE       =(-96);
  8878. CONST DTYP_PDLGTITEM          =(-97);
  8879. CONST DTYP_PENTRYFDATA        =(-127);
  8880. CONST DTYP_PERRORID           =(-45);
  8881. CONST DTYP_PFATTRS            =(-75);
  8882. CONST DTYP_PFFDESCS           =(-142);
  8883. CONST DTYP_PFIXED             =(-99);
  8884. CONST DTYP_PFONTMETRICS       =(-74);
  8885. CONST DTYP_PFRAMECDATA        =(-144);
  8886. CONST DTYP_PGRADIENTL         =(-48);
  8887. CONST DTYP_PHAB               =(-10);
  8888. CONST DTYP_PHACCEL            =(-30);
  8889. CONST DTYP_PHAPP              =(-146);
  8890. CONST DTYP_PHATOMTBL          =(-91);
  8891. CONST DTYP_PHBITMAP           =(-62);
  8892. CONST DTYP_PHCINFO            =(-46);
  8893. CONST DTYP_PHDC               =(-132);
  8894. CONST DTYP_PHENUM             =(-117);
  8895. CONST DTYP_PHHEAP             =(-109);
  8896. CONST DTYP_PHINI              =(-53);
  8897. CONST DTYP_PHLIB              =(-147);
  8898. CONST DTYP_PHMF               =(-85);
  8899. CONST DTYP_PHMQ               =(-86);
  8900. CONST DTYP_PHPOINTER          =(-106);
  8901. CONST DTYP_PHPROGRAM          =(-131);
  8902. CONST DTYP_PHPS               =(-12);
  8903. CONST DTYP_PHRGN              =(-116);
  8904. CONST DTYP_PHSEM              =(-140);
  8905. CONST DTYP_PHSPL              =(-32);
  8906. CONST DTYP_PHSWITCH           =(-66);
  8907. CONST DTYP_PHVPS              =(-58);
  8908. CONST DTYP_PHWND              =(-11);
  8909. CONST DTYP_PIDENTITY          =(-133);
  8910. CONST DTYP_PIDENTITY4         =(-169);
  8911. CONST DTYP_PIMAGEBUNDLE       =(-136);
  8912. CONST DTYP_PINDEX2            =(-81);
  8913. CONST DTYP_PIPT               =(-155);
  8914. CONST DTYP_PKERNINGPAIRS      =(-118);
  8915. CONST DTYP_PLENGTH2           =(-68);
  8916. CONST DTYP_PLENGTH4           =(-69);
  8917. CONST DTYP_PLINEBUNDLE        =(-137);
  8918. CONST DTYP_PLONG              =(-25);
  8919. CONST DTYP_PMARKERBUNDLE      =(-138);
  8920. CONST DTYP_PMATRIXLF          =(-113);
  8921. CONST DTYP_PMLECTLDATA        =(-161);
  8922. CONST DTYP_PMLEMARGSTRUCT     =(-157);
  8923. CONST DTYP_PMLEOVERFLOW       =(-158);
  8924. CONST DTYP_POFFSET2B          =(-112);
  8925. CONST DTYP_POWNERITEM         =(-154);
  8926. CONST DTYP_PPID               =(-92);
  8927. CONST DTYP_PPIX               =(-156);
  8928. CONST DTYP_PPOINTERINFO       =(-105);
  8929. CONST DTYP_PPOINTL            =(-77);
  8930. CONST DTYP_PPROGCATEGORY      =(-129);
  8931. CONST DTYP_PPROGRAMENTRY      =(-128);
  8932. CONST DTYP_PPROGTYPE          =(-130);
  8933. CONST DTYP_PPROPERTY2         =(-88);
  8934. CONST DTYP_PPROPERTY4         =(-89);
  8935. CONST DTYP_PQMSG              =(-87);
  8936. CONST DTYP_PRECTL             =(-121);
  8937. CONST DTYP_PRESID             =(-125);
  8938. CONST DTYP_PRGB               =(-111);
  8939. CONST DTYP_PRGNRECT           =(-115);
  8940. CONST DTYP_PSBCDATA           =(-159);
  8941. CONST DTYP_PSEGOFF            =(-126);
  8942. CONST DTYP_PSHORT             =(-23);
  8943. CONST DTYP_PSIZEF             =(-101);
  8944. CONST DTYP_PSIZEL             =(-102);
  8945. CONST DTYP_PSTRL              =(-17);
  8946. CONST DTYP_PSTR16             =(-40);
  8947. CONST DTYP_PSTR32             =(-37);
  8948. CONST DTYP_PSTR64             =(-47);
  8949. CONST DTYP_PSTR8              =(-33);
  8950. CONST DTYP_PSWBLOCK           =(-63);
  8951. CONST DTYP_PSWCNTRL           =(-64);
  8952. CONST DTYP_PSWENTRY           =(-65);
  8953. CONST DTYP_PSWP               =(-31);
  8954. CONST DTYP_PTID               =(-104);
  8955. CONST DTYP_PTIME              =(-107);
  8956. CONST DTYP_PTRACKINFO         =(-73);
  8957. CONST DTYP_PUCHAR             =(-22);
  8958. CONST DTYP_PULONG             =(-26);
  8959. CONST DTYP_PUSERBUTTON        =(-36);
  8960. CONST DTYP_PUSHORT            =(-24);
  8961. CONST DTYP_PWIDTH4            =(-108);
  8962. CONST DTYP_PWNDPARAMS         =(-83);
  8963. CONST DTYP_PWNDPROC           =(-84);
  8964. CONST DTYP_PWPOINT            =(-59);
  8965. CONST DTYP_PWRECT             =(-55);
  8966. CONST DTYP_PXYWINSIZE         =(-52);
  8967.  
  8968. (**************************** end of file **********************************)
  8969.  
  8970. (* ------------- End of file:  .\hm\pmtypes.hm ------------- *)
  8971.    <* END *>
  8972.  
  8973.       (*** WinRegisterUserMsg direction codes *********************************)
  8974.       CONST RUM_IN                    = 1;
  8975.       CONST RUM_OUT                   = 2;
  8976.       CONST RUM_INOUT                 = 3;
  8977.  
  8978.       (*** WinSetMsgMode constants *******************************************)
  8979.       CONST SMD_DELAYED                = 00001H;
  8980.       CONST SMD_IMMEDIATE              = 00002H;
  8981.  
  8982.       (*** WinSetSynchroMode constants ***************************************)
  8983.       CONST SSM_SYNCHRONOUS            = 00001H;
  8984.       CONST SSM_ASYNCHRONOUS           = 00002H;
  8985.       CONST SSM_MIXED                  = 00003H;
  8986.  
  8987. <* END *>
  8988.  
  8989. <* IF DEFINED (INCL_WINMESSAGEMGR)  THEN *>
  8990.  
  8991.       (*** WM_CALCVALIDRECTS return flags *************************************)
  8992.       CONST CVR_ALIGNLEFT               = 00001H;
  8993.       CONST CVR_ALIGNBOTTOM             = 00002H;
  8994.       CONST CVR_ALIGNRIGHT              = 00004H;
  8995.       CONST CVR_ALIGNTOP                = 00008H;
  8996.       CONST CVR_REDRAW                  = 00010H;
  8997.  
  8998.       (*** WM_HITTEST return codes ********************************************)
  8999.       CONST HT_NORMAL                  = 0;
  9000.       CONST HT_TRANSPARENT             = (-1);
  9001.       CONST HT_DISCARD                 = (-2);
  9002.       CONST HT_ERROR                   = (-3);
  9003.  
  9004.       (*** WM_SET/QUERYWINDOWPARAMS structures and flags **********************)
  9005.       TYPE WNDPARAMS = RECORD   (* wprm *)
  9006.             fsStatus:      ULONG;
  9007.             cchText:       ULONG;
  9008.             pszText:       PSZ;
  9009.             cbPresParams:  ULONG;
  9010.             pPresParams:   PVOID;
  9011.             cbCtlData:     ULONG;
  9012.             pCtlData:      PVOID;
  9013.       END;
  9014.       TYPE PWNDPARAMS = POINTER TO WNDPARAMS;
  9015.  
  9016.       CONST WPM_TEXT                   = 00001H;
  9017.       CONST WPM_CTLDATA                = 00002H;
  9018.       CONST WPM_PRESPARAMS             = 00004H;
  9019.       CONST WPM_CCHTEXT                = 00008H;
  9020.       CONST WPM_CBCTLDATA              = 00010H;
  9021.       CONST WPM_CBPRESPARAMS           = 00020H;
  9022.  
  9023.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  9024.             PROCEDURE [APIENTRY] WinInSendMsg(hab:  HAB): BOOL;
  9025.    <* END *>
  9026.  
  9027.       PROCEDURE [APIENTRY] WinBroadcastMsg(hwnd: HWND;
  9028.                                                                         msg:  ULONG;
  9029.                                                                         mp1:  MPARAM;
  9030.                                                                         mp2:  MPARAM;
  9031.                                                                         rgf:  ULONG): BOOL;
  9032.  
  9033.       (*** WinBroadcastMsg codes **********************************************)
  9034.       CONST BMSG_POST                  = 00000H;
  9035.       CONST BMSG_SEND                  = 00001H;
  9036.       CONST BMSG_POSTQUEUE             = 00002H;
  9037.       CONST BMSG_DESCENDANTS           = 00004H;
  9038.       CONST BMSG_FRAMEONLY             = 00008H;
  9039.  
  9040.       PROCEDURE [APIENTRY] WinWaitMsg(hab:    HAB;
  9041.                                                           msgFirst: ULONG;
  9042.                                                           msgLast:  ULONG): BOOL;
  9043.  
  9044.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  9045.             PROCEDURE [APIENTRY] WinQueryQueueStatus(hwndDesktop: HWND): ULONG;
  9046.  
  9047.             (*** WinQueryQueueStatus() constants *********************************)
  9048.             CONST QS_KEY                     = 00001H;
  9049.             CONST QS_MOUSEBUTTON             = 00002H;
  9050.             CONST QS_MOUSEMOVE               = 00004H;
  9051.             CONST QS_MOUSE                   = 00006H;   (* QS_MOUSEMOVE|QS_MOUSEBUTTON *)
  9052.             CONST QS_TIMER                   = 00008H;
  9053.             CONST QS_PAINT                   = 00010H;
  9054.             CONST QS_POSTMSG                 = 00020H;
  9055.             CONST QS_SEM1                    = 00040H;
  9056.             CONST QS_SEM2                    = 00080H;
  9057.             CONST QS_SEM3                    = 00100H;
  9058.             CONST QS_SEM4                    = 00200H;
  9059.             CONST QS_SENDMSG                 = 00400H;
  9060.             CONST QS_MSGINPUT                = 00800H;
  9061.  
  9062.             PROCEDURE [APIENTRY] WinQueryMsgPos(hab:  HAB;
  9063.                                                                         pptl:   PPOINTL): BOOL;
  9064.  
  9065.             PROCEDURE [APIENTRY] WinQueryMsgTime(hab: HAB): ULONG;
  9066.  
  9067.       <* IF NOT DEFINED (INCL_DOSSEMAPHORES)  THEN *>
  9068.          <* IF NOT DEFINED (__HEV__)  THEN *>
  9069.             <* NEW __HEV__ + *>
  9070.                         TYPE HEV = ULONG;    (* hev *)
  9071.          <* END *>
  9072.                   TYPE HMTX = ULONG;   (* hmtx *)
  9073.                   TYPE HMUX = ULONG;   (* hmux *)
  9074.       <* END *>
  9075.  
  9076.             PROCEDURE [APIENTRY] WinWaitEventSem(hev:      HEV;
  9077.                                                                             ulTimeout: ULONG): APIRET;
  9078.  
  9079.             PROCEDURE [APIENTRY] WinRequestMutexSem(hmtx:     HMTX;
  9080.                                                                                   ulTimeout: ULONG): APIRET;
  9081.  
  9082.             PROCEDURE [APIENTRY] WinWaitMuxWaitSem(hmux:     HMUX;
  9083.                                                                                 ulTimeout: ULONG;
  9084.                                                                                 pulUser:   PULONG): APIRET;
  9085.  
  9086.  
  9087.    <* END *>
  9088.  
  9089.       PROCEDURE [APIENTRY] WinPostQueueMsg(hmq: HMQ;
  9090.                                                                     msg:   ULONG;
  9091.                                                                     mp1:   MPARAM;
  9092.                                                                     mp2:   MPARAM): BOOL;
  9093.  
  9094.       (*** WinSetMsgInterest()/WinSetClassMsgInterest() constants *************)
  9095.       CONST SMIM_ALL                   = 00EFFH;
  9096.       CONST SMI_NOINTEREST             = 00001H;
  9097.       CONST SMI_INTEREST               = 00002H;
  9098.       CONST SMI_RESET                  = 00004H;
  9099.       CONST SMI_AUTODISPATCH           = 00008H;
  9100.  
  9101.       PROCEDURE [APIENTRY] WinSetMsgInterest(hwnd:    HWND;
  9102.                                                                         msg_class: ULONG;
  9103.                                                                         control:   LONG): BOOL;
  9104.  
  9105.       PROCEDURE [APIENTRY] WinSetClassMsgInterest(hab:        HAB;
  9106.                                                                                   pszClassName: PCSZ;
  9107.                                                                                   msg_class:    ULONG;
  9108.                                                                                   control:      LONG): BOOL;
  9109.  
  9110. <* END *>
  9111.  
  9112. (*** Keyboard and mouse ****************************************************)
  9113.  
  9114. <* IF DEFINED (INCL_WININPUT) OR NOT DEFINED (INCL_NOCOMMON)  THEN *>
  9115.  
  9116.       (*** Keyboard and mouse input COMMON subsection *************************)
  9117.       PROCEDURE [APIENTRY] WinSetFocus(hwndDesktop:  HWND;
  9118.                                                             hwndSetFocus:   HWND): BOOL;
  9119.  
  9120.       PROCEDURE [APIENTRY] WinFocusChange(hwndDesktop:    HWND;
  9121.                                                                   hwndSetFocus:     HWND;
  9122.                                                                   flFocusChange:    ULONG): BOOL;
  9123.  
  9124.       PROCEDURE [EXPENTRY] WinLockupSystem(hab: HAB): BOOL;
  9125.  
  9126.       PROCEDURE [EXPENTRY] WinUnlockSystem(hab: HAB;  pszPassword: PCSZ): BOOL;
  9127.  
  9128.       CONST FC_NOSETFOCUS              = 00001H;
  9129.       CONST FC_NOBRINGTOTOP           = FC_NOSETFOCUS;
  9130.       CONST FC_NOLOSEFOCUS             = 00002H;
  9131.       CONST FC_NOBRINGTOPFIRSTWINDOW  = FC_NOLOSEFOCUS;
  9132.       CONST FC_NOSETACTIVE             = 00004H;
  9133.       CONST FC_NOLOSEACTIVE            = 00008H;
  9134.       CONST FC_NOSETSELECTION          = 00010H;
  9135.       CONST FC_NOLOSESELECTION         = 00020H;
  9136.  
  9137.       CONST QFC_NEXTINCHAIN            = 00001H;
  9138.       CONST QFC_ACTIVE                 = 00002H;
  9139.       CONST QFC_FRAME                  = 00003H;
  9140.       CONST QFC_SELECTACTIVE           = 00004H;
  9141.       CONST QFC_PARTOFCHAIN            = 00005H;
  9142.  
  9143. <* END *>
  9144.  
  9145. <* IF DEFINED (INCL_WININPUT)  THEN *>
  9146.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  9147.             PROCEDURE [APIENTRY] WinSetCapture(hwndDesktop:  HWND;
  9148.                                                                       hwnd:           HWND): BOOL;
  9149.    <* END *>
  9150.  
  9151.       PROCEDURE [APIENTRY] WinQueryCapture(hwndDesktop: HWND): HWND;
  9152.  
  9153.       PROCEDURE [APIENTRY] WinCheckInput(hab: HAB): BOOL;
  9154.  
  9155.       (*** Mouse input messages ***********************************************)
  9156.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  9157.             CONST WM_MOUSEFIRST           = 00070H;
  9158.             CONST WM_MOUSELAST            = 00079H;
  9159.             CONST WM_BUTTONCLICKFIRST     = 00071H;
  9160.             CONST WM_BUTTONCLICKLAST      = 00079H;
  9161.    <* END *>
  9162.       CONST WM_MOUSEMOVE               = 00070H;
  9163.  
  9164.       CONST WM_BUTTON1DOWN             = 00071H;
  9165.  
  9166.       CONST WM_BUTTON1UP               = 00072H;
  9167.       CONST WM_BUTTON1DBLCLK           = 00073H;
  9168.       CONST WM_BUTTON2DOWN             = 00074H;
  9169.       CONST WM_BUTTON2UP               = 00075H;
  9170.       CONST WM_BUTTON2DBLCLK           = 00076H;
  9171.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  9172.             CONST WM_BUTTON3DOWN          = 00077H;
  9173.             CONST WM_BUTTON3UP            = 00078H;
  9174.             CONST WM_BUTTON3DBLCLK        = 00079H;
  9175.  
  9176.             CONST WM_MOUSEMAP             = 0007DH;
  9177.  
  9178.             CONST WM_EXTMOUSEFIRST        = 00410H;
  9179.             CONST WM_EXTMOUSELAST         = 00419H;
  9180.  
  9181.             CONST WM_CHORD                = 00410H;
  9182.             CONST WM_BUTTON1MOTIONSTART   = 00411H;
  9183.             CONST WM_BUTTON1MOTIONEND     = 00412H;
  9184.             CONST WM_BUTTON1CLICK         = 00413H;
  9185.             CONST WM_BUTTON2MOTIONSTART   = 00414H;
  9186.             CONST WM_BUTTON2MOTIONEND     = 00415H;
  9187.             CONST WM_BUTTON2CLICK         = 00416H;
  9188.             CONST WM_BUTTON3MOTIONSTART   = 00417H;
  9189.             CONST WM_BUTTON3MOTIONEND     = 00418H;
  9190.             CONST WM_BUTTON3CLICK         = 00419H;
  9191.  
  9192.             (* Messages = 0041A - = 0041F are reserved *)
  9193.  
  9194.             CONST WM_MOUSETRANSLATEFIRST  = 00420H;
  9195.             CONST WM_MOUSETRANSLATELAST   = 00428H;
  9196.  
  9197.             CONST WM_BEGINDRAG            = 00420H;
  9198.             CONST WM_ENDDRAG              = 00421H;
  9199.             CONST WM_SINGLESELECT         = 00422H;
  9200.             CONST WM_OPEN                 = 00423H;
  9201.             CONST WM_CONTEXTMENU          = 00424H;
  9202.             CONST WM_CONTEXTHELP          = 00425H;
  9203.             CONST WM_TEXTEDIT             = 00426H;
  9204.             CONST WM_BEGINSELECT          = 00427H;
  9205.             CONST WM_ENDSELECT            = 00428H;
  9206.  
  9207.             CONST WM_PENFIRST             = 004C0H;
  9208.             CONST WM_PENLAST              = 004FFH;
  9209.             CONST WM_MMPMFIRST            = 00500H;
  9210.             CONST WM_MMPMLAST             = 005FFH;
  9211.  
  9212.    <* END *>
  9213.  
  9214.       PROCEDURE [APIENTRY] WinQueryFocus(hwndDesktop: HWND): HWND;
  9215.  
  9216.  
  9217.       (*** Key/Character input messages ***************************************)
  9218.       CONST WM_CHAR                    = 0007aH;
  9219.       CONST WM_VIOCHAR                 = 0007bH;
  9220.  
  9221.       (* WM_CHAR fs field bits *)
  9222.       CONST KC_NONE                    = 00000H;     (* Reserved *)
  9223.       CONST KC_CHAR                    = 00001H;
  9224.       CONST KC_VIRTUALKEY              = 00002H;
  9225.       CONST KC_SCANCODE                = 00004H;
  9226.  
  9227.       CONST KC_SHIFT                   = 00008H;
  9228.       CONST KC_CTRL                    = 00010H;
  9229.       CONST KC_ALT                     = 00020H;
  9230.       CONST KC_KEYUP                   = 00040H;
  9231.       CONST KC_PREVDOWN                = 00080H;
  9232.       CONST KC_LONEKEY                 = 00100H;
  9233.       CONST KC_DEADKEY                 = 00200H;
  9234.       CONST KC_COMPOSITE               = 00400H;
  9235.       CONST KC_INVALIDCOMP             = 00800H;
  9236.  
  9237.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  9238.             CONST KC_TOGGLE               = 01000H;
  9239.             CONST KC_INVALIDCHAR          = 02000H;
  9240.             CONST KC_DBCSRSRVD1           = 04000H;
  9241.             CONST KC_DBCSRSRVD2           = 08000H;
  9242.    <* END *>
  9243.  
  9244.       -- #pragma pack(1) (* force structure alignment packing *)
  9245.  
  9246.       (*
  9247.       * The following structure and macro are used to access the
  9248.       * WM_MOUSEMOVE; and WM_BUTTON message parameters
  9249.       *)
  9250.       TYPE MSEMSG = RECORD   (* mousemsg *)
  9251.             x:           SHORT;     (* mp1      *)
  9252.             y:           SHORT;
  9253.             codeHitTest: USHORT;    (* mp2      *)
  9254.             fsInp:       USHORT;    (* input flags *)
  9255.       END;
  9256.       TYPE PMSEMSG = POINTER TO MSEMSG;
  9257.  
  9258.       --CONST MOUSEMSG(pmsg) \
  9259.       --((PMSEMSG)((PBYTE)pmsg + sizeof(MPARAM)))
  9260.  
  9261.       TYPE CHRMSG = RECORD   (* charmsg *)
  9262.             fs:        USHORT;                 (* mp1     *)
  9263.             cRepeat:   UCHAR;
  9264.             scancode:  UCHAR;
  9265.             chr:       USHORT;                (* mp2     *)
  9266.             vkey:      USHORT;
  9267.       END;
  9268.       TYPE PCHRMSG = POINTER TO CHRMSG;
  9269.  
  9270.       --CONST CHARMSG(pmsg) \
  9271.       --((PCHRMSG)((PBYTE)pmsg + sizeof(MPARAM)))
  9272.  
  9273.       --#pragma pack()  (* restore packing to default *)
  9274.  
  9275.       CONST INP_NONE                   = 00000H;
  9276.       CONST INP_KBD                    = 00001H;
  9277.       CONST INP_MULT                   = 00002H;
  9278.       CONST INP_RES2                   = 00004H;
  9279.       CONST INP_SHIFT                  = 00008H;
  9280.       CONST INP_CTRL                   = 00010H;
  9281.       CONST INP_ALT                    = 00020H;
  9282.       CONST INP_RES3                   = 00040H;
  9283.       CONST INP_RES4                   = 00080H;
  9284.       CONST INP_IGNORE                 = 0FFFFH;
  9285.  
  9286.       (*** Virtual key values *************************************************)
  9287.       CONST VK_BUTTON1                 = 001H;
  9288.       CONST VK_BUTTON2                 = 002H;
  9289.       CONST VK_BUTTON3                 = 003H;
  9290.       CONST VK_BREAK                   = 004H;
  9291.       CONST VK_BACKSPACE               = 005H;
  9292.       CONST VK_TAB                     = 006H;
  9293.       CONST VK_BACKTAB                 = 007H;
  9294.       CONST VK_NEWLINE                 = 008H;
  9295.       CONST VK_SHIFT                   = 009H;
  9296.       CONST VK_CTRL                    = 00AH;
  9297.       CONST VK_ALT                     = 00BH;
  9298.       CONST VK_ALTGRAF                 = 00CH;
  9299.       CONST VK_PAUSE                   = 00DH;
  9300.       CONST VK_CAPSLOCK                = 00EH;
  9301.       CONST VK_ESC                     = 00FH;
  9302.       CONST VK_SPACE                   = 010H;
  9303.       CONST VK_PAGEUP                  = 011H;
  9304.       CONST VK_PAGEDOWN                = 012H;
  9305.       CONST VK_END                     = 013H;
  9306.       CONST VK_HOME                    = 014H;
  9307.       CONST VK_LEFT                    = 015H;
  9308.       CONST VK_UP                      = 016H;
  9309.       CONST VK_RIGHT                   = 017H;
  9310.       CONST VK_DOWN                    = 018H;
  9311.       CONST VK_PRINTSCRN               = 019H;
  9312.       CONST VK_INSERT                  = 01AH;
  9313.       CONST VK_DELETE                  = 01BH;
  9314.       CONST VK_SCRLLOCK                = 01CH;
  9315.       CONST VK_NUMLOCK                 = 01DH;
  9316.       CONST VK_ENTER                   = 01EH;
  9317.       CONST VK_SYSRQ                   = 01FH;
  9318.       CONST VK_F1                      = 020H;
  9319.       CONST VK_F2                      = 021H;
  9320.       CONST VK_F3                      = 022H;
  9321.       CONST VK_F4                      = 023H;
  9322.       CONST VK_F5                      = 024H;
  9323.       CONST VK_F6                      = 025H;
  9324.       CONST VK_F7                      = 026H;
  9325.       CONST VK_F8                      = 027H;
  9326.       CONST VK_F9                      = 028H;
  9327.       CONST VK_F10                     = 029H;
  9328.       CONST VK_F11                     = 02AH;
  9329.       CONST VK_F12                     = 02BH;
  9330.       CONST VK_F13                     = 02CH;
  9331.       CONST VK_F14                     = 02DH;
  9332.       CONST VK_F15                     = 02EH;
  9333.       CONST VK_F16                     = 02FH;
  9334.       CONST VK_F17                     = 030H;
  9335.       CONST VK_F18                     = 031H;
  9336.       CONST VK_F19                     = 032H;
  9337.       CONST VK_F20                     = 033H;
  9338.       CONST VK_F21                     = 034H;
  9339.       CONST VK_F22                     = 035H;
  9340.       CONST VK_F23                     = 036H;
  9341.       CONST VK_F24                     = 037H;
  9342.       CONST VK_ENDDRAG                 = 038H;
  9343.       CONST VK_CLEAR                   = 039H;
  9344.       CONST VK_EREOF                   = 03AH;
  9345.       CONST VK_PA1                     = 03BH;
  9346.  
  9347.  
  9348.       CONST VK_MENU                  =  VK_F10;
  9349.    <* IF DEFINED (INCL_NLS)  THEN *>
  9350.             CONST VK_DBCSFIRST            = 00080H;
  9351.             CONST VK_DBCSLAST             = 000ffH;
  9352.    <* END *>
  9353.  
  9354.       CONST VK_USERFIRST               = 00100H;
  9355.       CONST VK_USERLAST                = 001ffH;
  9356.  
  9357.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  9358.  
  9359.             PROCEDURE [APIENTRY] WinGetKeyState(hwndDesktop: HWND;
  9360.                                                                       vkey:           LONG): LONG;
  9361.             PROCEDURE [APIENTRY] WinGetPhysKeyState(hwndDesktop:     HWND;
  9362.                                                                               sc:                 LONG): LONG;
  9363.             PROCEDURE [APIENTRY] WinEnablePhysInput(hwndDesktop: HWND;
  9364.                                                                                 fEnable:       BOOL): BOOL;
  9365.             PROCEDURE [APIENTRY] WinIsPhysInputEnabled(hwndDesktop: HWND): BOOL;
  9366.             PROCEDURE [APIENTRY] WinSetKeyboardStateTable(hwndDesktop:  HWND;
  9367.                                                                                             pKeyStateTable: PBYTE;
  9368.                                                                                             fSet:           BOOL): BOOL;
  9369.  
  9370.  
  9371.             (* Journal Notification messages  *)
  9372.             CONST WM_JOURNALNOTIFY           = 0007cH;
  9373.  
  9374.             (*** Define the valid commands (lParm1) for journal notify message *)
  9375.             CONST JRN_QUEUESTATUS            = 000000001H;
  9376.             CONST JRN_PHYSKEYSTATE           = 000000002H;
  9377.  
  9378.    <* END *>
  9379. <* END *>
  9380.  
  9381.  
  9382. (**** Dialog Manager *)
  9383.  
  9384. <* IF DEFINED (INCL_WINDIALOGS) OR NOT DEFINED (INCL_NOCOMMON)  THEN *>
  9385.       (**** Dialog Manager COMMON subsection *)
  9386.  
  9387.       PROCEDURE [APIENTRY] WinGetDlgMsg(hwndDlg:  HWND;
  9388.                                                                   pqmsg:    PQMSG): BOOL;
  9389.  
  9390.       PROCEDURE [APIENTRY] WinLoadDlg(hwndParent: HWND;
  9391.                                                               hwndOwner:  HWND;
  9392.                                                               pfnDlgProc: PFNWP;
  9393.                                                               hmod:       HMODULE;
  9394.                                                               idDlg:      ULONG;
  9395.                                                               pCreateParams: PVOID): HWND;
  9396.       PROCEDURE [APIENTRY] WinDlgBox(hwndParent: HWND;
  9397.                                                           hwndOwner:   HWND;
  9398.                                                           pfnDlgProc:  PFNWP;
  9399.                                                           hmod:        HMODULE;
  9400.                                                           idDlg:       ULONG;
  9401.                                                           pCreateParams: PVOID): ULONG;
  9402.  
  9403.       PROCEDURE [APIENTRY] WinDismissDlg(hwndDlg:  HWND;
  9404.                                                                     usResult: ULONG): BOOL;
  9405.  
  9406.       PROCEDURE [APIENTRY] WinQueryDlgItemShort(hwndDlg: HWND;
  9407.                                                                                   idItem:  ULONG;
  9408.                                                                                   pResult: PSHORT;
  9409.                                                                                   fSigned: BOOL): BOOL;
  9410.       PROCEDURE [APIENTRY] WinSetDlgItemShort(hwndDlg:  HWND;
  9411.                                                                               idItem:   ULONG;
  9412.                                                                               usValue:  USHORT;
  9413.                                                                               fSigned:  BOOL): BOOL;
  9414.       PROCEDURE [APIENTRY] WinSetDlgItemText(hwndDlg: HWND;
  9415.                                                                             idItem:  ULONG;
  9416.                                                                             pszText: PCSZ): BOOL;
  9417.       PROCEDURE [APIENTRY] WinQueryDlgItemText(hwndDlg:     HWND;
  9418.                                                                               idItem:       ULONG;
  9419.                                                                               cchBufferMax: LONG;
  9420.                                                                               pchBuffer:    PCSZ): ULONG;
  9421.       PROCEDURE [APIENTRY] WinQueryDlgItemTextLength(hwndDlg: HWND;
  9422.                                                                                           idItem:   ULONG): LONG;
  9423.  
  9424.       PROCEDURE [APIENTRY] WinDefDlgProc(hwndDlg: HWND;
  9425.                                                                     msg:     ULONG;
  9426.                                                                     mp1:     MPARAM;
  9427.                                                                     mp2:     MPARAM): MRESULT;
  9428.  
  9429.       (* Special item IDs *)
  9430.  
  9431.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  9432.             CONST DID_OK     = 1;
  9433.             CONST DID_CANCEL = 2;
  9434.             CONST DID_ERROR   = 0ffffH;
  9435.    <* END *>
  9436.  
  9437.       PROCEDURE [APIENTRY] WinAlarm(hwndDesktop:  HWND;
  9438.                                                     rgfType:         ULONG): BOOL;
  9439.  
  9440.       (* WinAlarm Codes *)
  9441.  
  9442.       CONST WA_WARNING             =    0;
  9443.       CONST WA_NOTE                =    1;
  9444.       CONST WA_ERROR               =    2;
  9445.       CONST WA_CWINALARMS          =   13;     (* count of valid alarms     53304*)
  9446.  
  9447.  
  9448.       PROCEDURE [APIENTRY] WinMessageBox(hwndParent: HWND;
  9449.                                                                 hwndOwner:    HWND;
  9450.                                                                 pszText:      PCSZ;
  9451.                                                                 pszCaption:   PCSZ;
  9452.                                                                 idWindow:     ULONG;
  9453.                                                                 flStyle:      ULONG): ULONG;
  9454.  
  9455.  
  9456.       (* Message box types *)
  9457.  
  9458.       CONST MB_OK                      = 00000H;
  9459.       CONST MB_OKCANCEL                = 00001H;
  9460.       CONST MB_RETRYCANCEL             = 00002H;
  9461.       CONST MB_ABORTRETRYIGNORE        = 00003H;
  9462.       CONST MB_YESNO                   = 00004H;
  9463.       CONST MB_YESNOCANCEL             = 00005H;
  9464.       CONST MB_CANCEL                  = 00006H;
  9465.       CONST MB_ENTER                   = 00007H;
  9466.       CONST MB_ENTERCANCEL             = 00008H;
  9467.  
  9468.       CONST MB_NOICON                  = 00000H;
  9469.       CONST MB_CUANOTIFICATION         = 00000H;
  9470.       CONST MB_ICONQUESTION            = 00010H;
  9471.       CONST MB_ICONEXCLAMATION         = 00020H;
  9472.       CONST MB_CUAWARNING              = 00020H;
  9473.       CONST MB_ICONASTERISK            = 00030H;
  9474.       CONST MB_ICONHAND                = 00040H;
  9475.       CONST MB_CUACRITICAL             = 00040H;
  9476.       CONST MB_QUERY                  = MB_ICONQUESTION;
  9477.       CONST MB_WARNING                = MB_CUAWARNING;
  9478.       CONST MB_INFORMATION            = MB_ICONASTERISK;
  9479.       CONST MB_CRITICAL               = MB_CUACRITICAL;
  9480.       CONST MB_ERROR                  = MB_CRITICAL;
  9481.  
  9482.       CONST MB_DEFBUTTON1              = 00000H;
  9483.       CONST MB_DEFBUTTON2              = 00100H;
  9484.       CONST MB_DEFBUTTON3              = 00200H;
  9485.  
  9486.       CONST MB_APPLMODAL               = 00000H;
  9487.       CONST MB_SYSTEMMODAL             = 01000H;
  9488.       CONST MB_HELP                    = 02000H;
  9489.       CONST MB_MOVEABLE                = 04000H;
  9490.  
  9491.  
  9492.       (* Message box return codes *)
  9493.  
  9494.       CONST MBID_OK                   = 1;
  9495.       CONST MBID_CANCEL               = 2;
  9496.       CONST MBID_ABORT                = 3;
  9497.       CONST MBID_RETRY                = 4;
  9498.       CONST MBID_IGNORE               = 5;
  9499.       CONST MBID_YES                  = 6;
  9500.       CONST MBID_NO                   = 7;
  9501.       CONST MBID_HELP                 = 8;
  9502.       CONST MBID_ENTER                = 9;
  9503.       CONST MBID_ERROR                 = 0ffffH;
  9504.  
  9505.  
  9506.       (* Useful macros *)
  9507.  
  9508.       (***************************************************************************
  9509.       * ULONG/USHORT WinCheckButton(HWND hwndDlg; USHORT id; USHORT checkState)
  9510.       *    sets the check state of button #id.
  9511.       *    returns the previous check state.
  9512.       ***************************************************************************)
  9513.       --CONST WinCheckButton(hwndDlg; id; usCheckState) \
  9514.       --((ULONG)WinSendDlgItemMsg(hwndDlg; id; BM_SETCHECK; \
  9515.       --MPFROMSHORT(usCheckState); (MPARAM)NULL))
  9516.  
  9517.       (***************************************************************************
  9518.       * ULONG/USHORT WinQueryButtonCheckstate(HWND hwndDlg; USHORT id)
  9519.       *    returns the check state of buttin #id.
  9520.       *
  9521.       ***************************************************************************)
  9522.       --CONST WinQueryButtonCheckstate(hwndDlg; id) \
  9523.       --((ULONG)WinSendDlgItemMsg(hwndDlg; id; BM_QUERYCHECK; \
  9524.       --(MPARAM)NULL; (MPARAM)NULL))
  9525.  
  9526.       (***************************************************************************
  9527.       * BOOL WinEnableControl(HWND hwndDlg; USHORT id; BOOL fEnable)
  9528.       *    sets the enable state of button #id.
  9529.       *    returns fSuccess.
  9530.       ***************************************************************************)
  9531.       --CONST WinEnableControl(hwndDlg; id; fEnable) \
  9532.       --WinEnableWindow(WinWindowFromID(hwndDlg; id); fEnable)
  9533.  
  9534.       (***************************************************************************
  9535.       * BOOL WinIsControlEnabled(HWND hwndDlg; ULONG id)
  9536.       *    returns the enable state of control #id.
  9537.       *
  9538.       ***************************************************************************)
  9539.       --CONST WinIsControlEnabled(hwndDlg; id) \
  9540.       --((BOOL)WinIsWindowEnabled(WinWindowFromID(hwndDlg; id)))
  9541.  
  9542. <* END *>
  9543.  
  9544.  
  9545. <* IF DEFINED (INCL_WINDIALOGS)  THEN *>
  9546.  
  9547.       (* Dialog codes: returned by WM_QUERYDLGCODE msg     *)
  9548.  
  9549.       CONST DLGC_ENTRYFIELD    = 00001H;  (* Entry field item understands EM_SETSEL) *)
  9550.       CONST DLGC_BUTTON        = 00002H;  (* Button item                             *)
  9551.       CONST DLGC_RADIOBUTTON   = 00004H;  (* Radio button                            *)
  9552.       CONST DLGC_STATIC        = 00008H;  (* Static item                             *)
  9553.       CONST DLGC_DEFAULT       = 00010H;  (* Default push button                     *)
  9554.       CONST DLGC_PUSHBUTTON    = 00020H;  (* Normal (Non-default) push button        *)
  9555.       CONST DLGC_CHECKBOX      = 00040H;  (* Check box button control                *)
  9556.       CONST DLGC_SCROLLBAR     = 00080H;  (* Scroll bar                              *)
  9557.       CONST DLGC_MENU          = 00100H;  (* Menu                                    *)
  9558.       CONST DLGC_TABONCLICK    = 00200H;
  9559.       CONST DLGC_MLE           = 00400H;  (* Multiple Line Entry                     *)
  9560.  
  9561.  
  9562.       PROCEDURE [APIENTRY] WinProcessDlg(hwndDlg: HWND): ULONG;
  9563.       PROCEDURE [APIENTRY] WinSendDlgItemMsg(hwndDlg: HWND;
  9564.                                                                             idItem: ULONG;
  9565.                                                                             msg:    ULONG;
  9566.                                                                             mp1:    MPARAM;
  9567.                                                                             mp2:    MPARAM): MRESULT;
  9568.       PROCEDURE [APIENTRY] WinMapDlgPoints(hwndDlg: HWND;
  9569.                                                                         prgwptl: PPOINTL;
  9570.                                                                         cwpt:    ULONG;
  9571.                                                                         fCalcWindowCoords: BOOL): BOOL;
  9572.       PROCEDURE [APIENTRY] WinEnumDlgItem(hwndDlg: HWND;
  9573.                                                                       hwnd:    HWND;
  9574.                                                                       code:    ULONG): HWND;
  9575.       PROCEDURE [APIENTRY] WinSubstituteStrings(hwnd:     HWND;
  9576.                                                                                 pszSrc:    PCSZ;
  9577.                                                                                 cchDstMax: LONG;
  9578.                                                                                 pszDst:    PCSZ): LONG;
  9579.  
  9580.  
  9581.       (* WinEnumDlgItem() constants *)
  9582.  
  9583.       CONST EDI_FIRSTTABITEM          = 0H;
  9584.       CONST EDI_LASTTABITEM           = 1H;
  9585.       CONST EDI_NEXTTABITEM           = 2H;
  9586.       CONST EDI_PREVTABITEM           = 3H;
  9587.       CONST EDI_FIRSTGROUPITEM        = 4H;
  9588.       CONST EDI_LASTGROUPITEM         = 5H;
  9589.       CONST EDI_NEXTGROUPITEM         = 6H;
  9590.       CONST EDI_PREVGROUPITEM         = 7H;
  9591.  
  9592.       (*** Dialog template definitions *)
  9593.  
  9594.       (*** Variable-sized dialog template items: ******************************)
  9595.  
  9596.       -- #pragma pack(2) (* force structure alignment packing *)
  9597.  
  9598.       (*************************************************************************
  9599.       *
  9600.       *  We pack the structures _DLGTITEM and _DLGTEMPLATE so that the
  9601.       *  structures are identical in the 32-bit and 16-bit worlds. We have
  9602.       *  to do this because is has been documented that one can pass a
  9603.       *  pointer to 'the binary resource format' when calling WinCreateDlg.
  9604.       *
  9605.       *************************************************************************)
  9606.  
  9607.       (* Binary resources may be bound into application executables or *)
  9608.       (* passed as a parameter when creating a window or dialog        *)
  9609.       (* Currently they must be the same for both 16-bit and 32-bit    *)
  9610.       (* so we pack the structures.                                    *)
  9611.       TYPE DLGTITEM = RECORD   (* dlgti *)
  9612.             fsItemStatus: USHORT;
  9613.             cChildren:    USHORT;
  9614.             cchClassName: USHORT;
  9615.             offClassName: USHORT;
  9616.             cchText:      USHORT;
  9617.             offText:      USHORT;
  9618.             flStyle:      ULONG;
  9619.             x:            SHORT;
  9620.             y:            SHORT;
  9621.             cx:           SHORT;
  9622.             cy:           SHORT;
  9623.             id:           USHORT;
  9624.             offPresParams: USHORT;
  9625.             offCtlData:    USHORT;
  9626.       END;
  9627.       TYPE PDLGTITEM = POINTER TO DLGTITEM;
  9628.  
  9629.       (*** Dialog Template structure ******************************************)
  9630.  
  9631.       (* Binary resources may be bound into application executables or *)
  9632.       (* passed as a parameter when creating a window or dialog        *)
  9633.       (* Currently they must be the same for both 16-bit and 32-bit    *)
  9634.       (* so we pack the structures.                                    *)
  9635.       TYPE DLGTEMPLATE = RECORD   (* dlgt *)
  9636.             cbTemplate:     USHORT;
  9637.             type:           USHORT;
  9638.             codepage:       USHORT;
  9639.             offadlgti:      USHORT;
  9640.             fsTemplateStatus: USHORT;
  9641.             iItemFocus:     USHORT;
  9642.             coffPresParams: USHORT;
  9643.             adlgti:         ARRAY [0..0] OF DLGTITEM;
  9644.       END;
  9645.       TYPE PDLGTEMPLATE = POINTER TO DLGTEMPLATE;
  9646.  
  9647.       --#pragma pack()  (* restore packing to default *)
  9648.  
  9649.       PROCEDURE [APIENTRY] WinCreateDlg(hwndParent:   HWND;
  9650.                                                                 hwndOwner:     HWND;
  9651.                                                                 pfnDlgProc:    PFNWP;
  9652.                                                                 pdlgt:         PDLGTEMPLATE;
  9653.                                                                 pCreateParams: PVOID): HWND;
  9654.  
  9655.  
  9656. <* END *>
  9657.  
  9658.  
  9659. <* IF DEFINED (INCL_WINSTATICS)  THEN *>
  9660.  
  9661.       (*** Static Control Manager *)
  9662.  
  9663.       (* Static control styles:
  9664.       *
  9665.       * NOTE: the top 9 bits of the LOWORD of the window flStyle are used for
  9666.       * DT_* flags.  The lower 7 bits are for SS_* styles.  This gives us up
  9667.       * to 128 distinct static control types (we currently use 11 of them).
  9668.       *)
  9669.       CONST SS_TEXT                    = 00001H;
  9670.       CONST SS_GROUPBOX                = 00002H;
  9671.  
  9672.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  9673.             CONST SS_ICON                    = 00003H;
  9674.             CONST SS_BITMAP                  = 00004H;
  9675.    <* END *>
  9676.       CONST SS_FGNDRECT                = 00005H;
  9677.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  9678.             CONST SS_HALFTONERECT            = 00006H;
  9679.    <* END *>
  9680.       CONST SS_BKGNDRECT               = 00007H;
  9681.       CONST SS_FGNDFRAME               = 00008H;
  9682.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  9683.             CONST SS_HALFTONEFRAME           = 00009H;
  9684.    <* END *>
  9685.       CONST SS_BKGNDFRAME              = 0000aH;
  9686.       CONST SS_SYSICON                 = 0000bH;
  9687.       CONST SS_AUTOSIZE         = 00040H;
  9688.  
  9689.  
  9690.       (* Static control messages *)
  9691.  
  9692.       CONST SM_SETHANDLE               = 00100H;
  9693.       CONST SM_QUERYHANDLE             = 00101H;
  9694.  
  9695. <* END *>
  9696.  
  9697.  
  9698. <* IF DEFINED (INCL_WINBUTTONS)  THEN *>
  9699.       (**** Button Controls Subsection *)
  9700.  
  9701.       (* Button control styles *)
  9702.  
  9703.       CONST BS_PUSHBUTTON            =  0;
  9704.       CONST BS_CHECKBOX              =  1;
  9705.       CONST BS_AUTOCHECKBOX          =  2;
  9706.       CONST BS_RADIOBUTTON           =  3;
  9707.       CONST BS_AUTORADIOBUTTON       =  4;
  9708.       CONST BS_3STATE                =  5;
  9709.       CONST BS_AUTO3STATE            =  6;
  9710.  
  9711.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  9712.             CONST BS_USERBUTTON         =  7;
  9713.    <* END *>
  9714.       CONST BS_PRIMARYSTYLES       = 0000fH;
  9715.  
  9716.       CONST BS_BITMAP           = 00040H;
  9717.       CONST BS_ICON             = 00080H;
  9718.       CONST BS_HELP                    = 00100H;
  9719.       CONST BS_SYSCOMMAND              = 00200H;
  9720.       CONST BS_DEFAULT                 = 00400H;
  9721.       CONST BS_NOPOINTERFOCUS          = 00800H;
  9722.       CONST BS_NOBORDER                = 01000H;
  9723.       CONST BS_NOCURSORSELECT          = 02000H;
  9724.       CONST BS_AUTOSIZE             = 04000H;
  9725.  
  9726.  
  9727.  
  9728.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  9729.             -- #pragma pack(2) (* force structure alignment packing *)
  9730.  
  9731.             (* Binary resources may be bound into application executables or *)
  9732.             (* passed as a parameter when creating a window or dialog        *)
  9733.             (* Currently they must be the same for both 16-bit and 32-bit    *)
  9734.             (* so we pack the structures.                                    *)
  9735.             TYPE BTNCDATA = RECORD   (* btncd *)
  9736.                   cb:            USHORT;
  9737.                   fsCheckState:  USHORT;
  9738.                   fsHiliteState: USHORT;
  9739.                   hImage:        LHANDLE;
  9740.             END;
  9741.             TYPE PBTNCDATA = POINTER TO BTNCDATA;
  9742.  
  9743.             -- #pragma pack()  (* restore packing to default *)
  9744.  
  9745.    <* END *>
  9746.  
  9747.       (*** User button structure (passed in WM_CONTROL msg) *******************)
  9748.  
  9749.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  9750.             TYPE USERBUTTON = RECORD   (* ubtn *)
  9751.                   hwnd:       HWND;
  9752.                   hps:        HPS;
  9753.                   fsState:    ULONG;
  9754.                   fsStateOld: ULONG;
  9755.             END;
  9756.             TYPE PUSERBUTTON = POINTER TO USERBUTTON;
  9757.    <* END *>
  9758.  
  9759.       (* Button control messages *)
  9760.  
  9761.       CONST BM_CLICK                   = 00120H;
  9762.       CONST BM_QUERYCHECKINDEX         = 00121H;
  9763.       CONST BM_QUERYHILITE             = 00122H;
  9764.       CONST BM_SETHILITE               = 00123H;
  9765.       CONST BM_QUERYCHECK              = 00124H;
  9766.       CONST BM_SETCHECK                = 00125H;
  9767.       CONST BM_SETDEFAULT              = 00126H;
  9768.  
  9769.       (* Button notification codes *)
  9770.  
  9771.       CONST BN_CLICKED                = 1;
  9772.       CONST BN_DBLCLICKED             = 2;
  9773.       CONST BN_PAINT                  = 3;
  9774.  
  9775.       (* BN_PAINT button draw state codes (must be in high byte) *)
  9776.  
  9777.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  9778.             CONST BDS_HILITED                = 00100H;
  9779.             CONST BDS_DISABLED               = 00200H;
  9780.             CONST BDS_DEFAULT                = 00400H;
  9781.  
  9782.    <* END *>
  9783.  
  9784. <* END *>
  9785.  
  9786.  
  9787. <* IF DEFINED (INCL_WINENTRYFIELDS)  THEN *>
  9788.       (**** Entryfield controls Subsection *)
  9789.  
  9790.       (* Entry field  styles *)
  9791.  
  9792.       CONST ES_LEFT                    = 000000000H;
  9793.       CONST ES_CENTER                  = 000000001H;
  9794.       CONST ES_RIGHT                   = 000000002H;
  9795.  
  9796.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  9797.             CONST ES_AUTOSCROLL              = 000000004H;
  9798.    <* END *>
  9799.  
  9800.       CONST ES_MARGIN                  = 000000008H;
  9801.       CONST ES_AUTOTAB                 = 000000010H;
  9802.       CONST ES_READONLY                = 000000020H;
  9803.       CONST ES_COMMAND                 = 000000040H;
  9804.       CONST ES_UNREADABLE              = 000000080H;
  9805.       CONST ES_AUTOSIZE                = 000000200H;
  9806.  
  9807.    <* IF DEFINED (INCL_NLS)  THEN *>
  9808.             CONST ES_ANY                     = 000000000H;
  9809.             CONST ES_SBCS                    = 000001000H;
  9810.             CONST ES_DBCS                    = 000002000H;
  9811.             CONST ES_MIXED                   = 000003000H;
  9812.    <* END *>
  9813.  
  9814.  
  9815.       (*
  9816.       * combo box styles
  9817.       *)
  9818.       CONST CBS_SIMPLE                 = 00001H;
  9819.       CONST CBS_DROPDOWN               = 00002H;
  9820.       CONST CBS_DROPDOWNLIST           = 00004H;
  9821.  
  9822.       (*
  9823.       * Use this bit for drop down combo boxes that do not want to
  9824.       * receive a CBN_ENTER on a single click in their list boxes.
  9825.       * This is for compatibility with releases prior to OS/2 2.0 which
  9826.       * did not send this message
  9827.       *)
  9828.       CONST CBS_COMPATIBLE             = 00008H;
  9829.  
  9830.       (*
  9831.       * The following edit and listbox styles may be used in conjunction
  9832.       * with CBS_ styles
  9833.       * ES_AUTOTAB ES_ANY ES_SBCS ES_DBCS ES_MIXED LS_HORZSCROLL
  9834.       *)
  9835.  
  9836.       (*
  9837.       * IDs of combobox entry field and listbox.
  9838.       *)
  9839.       CONST CBID_LIST                  = 0029AH;
  9840.       CONST CBID_EDIT                  = 0029BH;
  9841.  
  9842.       CONST CBM_SHOWLIST               = 00170H;
  9843.       CONST CBM_HILITE                 = 00171H;
  9844.       CONST CBM_ISLISTSHOWING          = 00172H;
  9845.  
  9846.       CONST CBN_EFCHANGE              = 1;
  9847.       CONST CBN_EFSCROLL              = 2;
  9848.       CONST CBN_MEMERROR              = 3;
  9849.       CONST CBN_LBSELECT              = 4;
  9850.       CONST CBN_LBSCROLL              = 5;
  9851.       CONST CBN_SHOWLIST              = 6;
  9852.       CONST CBN_ENTER                 = 7;
  9853.  
  9854.  
  9855.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  9856.             -- #pragma pack(2) (* force structure alignment packing *)
  9857.  
  9858.             (* Binary resources may be bound into application executables or *)
  9859.             (* passed as a parameter when creating a window or dialog        *)
  9860.             (* Currently they must be the same for both 16-bit and 32-bit    *)
  9861.             (* so we pack the structures.                                    *)
  9862.             TYPE ENTRYFDATA = RECORD   (* efd *)
  9863.                   cb:            USHORT;
  9864.                   cchEditLimit:  USHORT;
  9865.                   ichMinSel:     USHORT;
  9866.                   ichMaxSel:     USHORT;
  9867.             END;
  9868.             TYPE PENTRYFDATA = POINTER TO ENTRYFDATA;
  9869.  
  9870.             --#pragma pack()  (* restore packing to default *)
  9871.  
  9872.    <* END *>
  9873.  
  9874.       (* Entry Field  messages *)
  9875.  
  9876.       CONST EM_QUERYCHANGED            = 00140H;
  9877.       CONST EM_QUERYSEL                = 00141H;
  9878.       CONST EM_SETSEL                  = 00142H;
  9879.       CONST EM_SETTEXTLIMIT            = 00143H;
  9880.  
  9881.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  9882.             CONST EM_CUT                     = 00144H;
  9883.             CONST EM_COPY                    = 00145H;
  9884.    <* END *>
  9885.       CONST EM_CLEAR                   = 00146H;
  9886.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  9887.             CONST EM_PASTE                   = 00147H;
  9888.    <* END *>
  9889.       CONST EM_QUERYFIRSTCHAR          = 00148H;
  9890.       CONST EM_SETFIRSTCHAR            = 00149H;
  9891.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  9892.             CONST EM_QUERYREADONLY           = 0014aH;
  9893.             CONST EM_SETREADONLY             = 0014bH;
  9894.             CONST EM_SETINSERTMODE           = 0014cH;
  9895.    <* END *>
  9896.  
  9897.       (* Entry Field notification messages *)
  9898.  
  9899.       CONST EN_SETFOCUS                = 00001H;
  9900.       CONST EN_KILLFOCUS               = 00002H;
  9901.       CONST EN_CHANGE                  = 00004H;
  9902.       CONST EN_SCROLL                  = 00008H;
  9903.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  9904.             CONST EN_MEMERROR                = 00010H;
  9905.             CONST EN_OVERFLOW                = 00020H;
  9906.             CONST EN_INSERTMODETOGGLE        = 00040H;
  9907.    <* END *>
  9908.  
  9909. <* END *>
  9910.  
  9911.  
  9912. (*  Multiple Line Entrys *)
  9913. <* IF DEFINED (INCL_WINMLE)  THEN *>
  9914.   <* IF NOT DEFINED (MLE_INCLUDED)  THEN *>
  9915.      
  9916. (* ------------- Include file: .\hm\pmmle.hm ------------- *)
  9917. (****************************** Module Header ******************************\
  9918. *
  9919. * Module Name: PMMLE.H
  9920. *
  9921. * OS/2 Presentation Manager MultiLine Edit Control
  9922. *
  9923. * Copyright (c) International Business Machines Corporation 1981, 1988-1992
  9924. *
  9925. * ===========================================================================
  9926. *
  9927. * The following symbols are used in this file for conditional sections.
  9928. *
  9929. *   CONST:                To include:
  9930. *
  9931. *   INCL_WINMLE             Includes this file
  9932. *
  9933. * ===========================================================================
  9934. *
  9935. * Comments at the end of each TYPE line give the name tags used in
  9936. * the assembler include version of this file.
  9937. *
  9938. * The assembler include version of this file excludes lines between XLATOFF
  9939. * and XLATON comments.
  9940. *
  9941. \***************************************************************************)
  9942.  
  9943.  
  9944.    <* NEW MLE_INCLUDED + *>
  9945.  
  9946.       (*************************************************************************
  9947.       * MLE Window styles ( in addition to WS_* )
  9948.       *************************************************************************)
  9949.       CONST MLS_WORDWRAP             =  00000001H;
  9950.       CONST MLS_BORDER               =  00000002H;
  9951.       CONST MLS_VSCROLL              =  00000004H;
  9952.       CONST MLS_HSCROLL              =  00000008H;
  9953.       CONST MLS_READONLY             =  00000010H;
  9954.       CONST MLS_IGNORETAB            =  00000020H;
  9955.       CONST MLS_DISABLEUNDO          =  00000040H;
  9956.  
  9957.       (*************************************************************************
  9958.       * MLE External Data Types
  9959.       *************************************************************************)
  9960.       TYPE IPT  = LONG;            (* insertion point         *)
  9961.       TYPE PIPT = POINTER TO IPT;  (* insertion point         *)
  9962.       TYPE PIX  = LONG;            (* pixel                   *)
  9963.       TYPE LINE = ULONG;           (* Line number             *)
  9964.  
  9965.       TYPE MLEFORMATRECT = RECORD   (* MLEFRD *)
  9966.             cxFormat:   LONG;           (* format rectangle width  *)
  9967.             cyFormat:   LONG;           (* format rectangle height *)
  9968.       END;
  9969.       TYPE PFORMATRECT = POINTER TO MLEFORMATRECT;
  9970.  
  9971.       TYPE MLECTLDATA = RECORD   (* MLECTL *)
  9972.             cbCtlData:     USHORT;     (* Length of the MLECTLDATA structure  *)
  9973.             afIEFormat:    USHORT;     (* import/export format                *)
  9974.             cchText:       ULONG;      (* text limit                          *)
  9975.             iptAnchor:     IPT;        (* beginning of selection              *)
  9976.             iptCursor:     IPT;        (* ending of selection                 *)
  9977.             cxFormat:      LONG;       (* format rectangle width              *)
  9978.             cyFormat:      LONG;       (* format rectangle height             *)
  9979.             afFormatFlags: ULONG;      (* formatting rectangle flags          *)
  9980.       END;
  9981.       TYPE PMLECTLDATA = POINTER TO MLECTLDATA;
  9982.  
  9983.       (*************************************************************************
  9984.       * afFormatFlags mask
  9985.       *************************************************************************)
  9986.       CONST MLFFMTRECT_LIMITHORZ     =  00000001H;
  9987.       CONST MLFFMTRECT_LIMITVERT     =  00000002H;
  9988.       CONST MLFFMTRECT_MATCHWINDOW   =  00000004H;
  9989.       CONST MLFFMTRECT_FORMATRECT    =  00000007H;
  9990.  
  9991.       (*************************************************************************
  9992.       * afIEFormat - Import/Export Format flags
  9993.       *************************************************************************)
  9994.       CONST MLFIE_CFTEXT             =  0;
  9995.       CONST MLFIE_NOTRANS            =  1;
  9996.       CONST MLFIE_WINFMT             =  2;
  9997.       CONST MLFIE_RTF                =  3;
  9998.  
  9999.       (*************************************************************************
  10000.       * MLN_OVERFLOW structure
  10001.       *************************************************************************)
  10002.       TYPE MLEOVERFLOW = RECORD   (* overflow *)
  10003.             afErrInd:      ULONG;         (* see mask below                         *)
  10004.             nBytesOver:    LONG;          (* number of bytes overflowed             *)
  10005.             pixHorzOver:   LONG;          (* number of pixels horizontally overflow *)
  10006.             pixVertOver:   LONG;          (* number of pixels vertically overflowed *)
  10007.       END;
  10008.       TYPE POVERFLOW = POINTER TO MLEOVERFLOW;
  10009.  
  10010.       (*************************************************************************
  10011.       * afErrInd - error format rectangle flags
  10012.       *************************************************************************)
  10013.       CONST MLFEFR_RESIZE            =  00000001H;
  10014.       CONST MLFEFR_TABSTOP           =  00000002H;
  10015.       CONST MLFEFR_FONT              =  00000004H;
  10016.       CONST MLFEFR_TEXT              =  00000008H;
  10017.       CONST MLFEFR_WORDWRAP          =  00000010H;
  10018.       CONST MLFETL_TEXTBYTES         =  00000020H;
  10019.  
  10020.       (*************************************************************************
  10021.       * MLN_MARGIN structure
  10022.       *************************************************************************)
  10023.       TYPE MLEMARGSTRUCT = RECORD   (* margin *)
  10024.             afMargins:  USHORT;      (* margin indicator     *)
  10025.             usMouMsg:   USHORT;      (* mouse message        *)
  10026.             iptNear:    IPT;         (* the geometrically nearest insertion point *)
  10027.       END;
  10028.       TYPE PMARGSTRUCT = POINTER TO MLEMARGSTRUCT;
  10029.  
  10030.       (*************************************************************************
  10031.       * afFlags - margin notification indicators
  10032.       *************************************************************************)
  10033.       CONST MLFMARGIN_LEFT           =  0001H;
  10034.       CONST MLFMARGIN_BOTTOM         =  0002H;
  10035.       CONST MLFMARGIN_RIGHT          =  0003H;
  10036.       CONST MLFMARGIN_TOP            =  0004H;
  10037.  
  10038.       (*************************************************************************
  10039.       * MLM_QUERYSELECTION flags
  10040.       *************************************************************************)
  10041.       CONST MLFQS_MINMAXSEL          =  0;
  10042.       CONST MLFQS_MINSEL             =  1;
  10043.       CONST MLFQS_MAXSEL             =  2;
  10044.       CONST MLFQS_ANCHORSEL          =  3;
  10045.       CONST MLFQS_CURSORSEL          =  4;
  10046.  
  10047.       (*************************************************************************
  10048.       * MLN_CLPBDFAIL flags
  10049.       *************************************************************************)
  10050.       CONST MLFCLPBD_TOOMUCHTEXT     =  00000001H;
  10051.       CONST MLFCLPBD_ERROR           =  00000002H;
  10052.  
  10053.       (*************************************************************************
  10054.       * MLM_SEARCH structure
  10055.       *************************************************************************)
  10056.       TYPE MLE_SEARCHDATA = RECORD   (* search *)
  10057.             cb:          USHORT;            (* size of search spec structure       *)
  10058.             pchFind:     PCHAR;       (* string to search for                *)
  10059.             pchReplace:  PCHAR;    (* string to replace with              *)
  10060.             cchFind:     SHORT;       (* length of pchFindString             *)
  10061.             cchReplace:  SHORT;    (* length of replace string            *)
  10062.             iptStart:    IPT;      (* point at which to start search      *)
  10063.             (* (negative indicates cursor pt)      *)
  10064.             (* becomes pt where string found       *)
  10065.             iptStop:     IPT;       (* point at which to stop search       *)
  10066.             (* (negative indicates EOT)            *)
  10067.             cchFound:    USHORT;      (* Length of found string at iptStart  *)
  10068.       END;
  10069.       TYPE PMLE_SEARCHDATA = POINTER TO MLE_SEARCHDATA;
  10070.  
  10071.       (*************************************************************************
  10072.       * MLM_SEARCH style flags
  10073.       *************************************************************************)
  10074.       CONST MLFSEARCH_CASESENSITIVE  =  000000001H;
  10075.       CONST MLFSEARCH_SELECTMATCH    =  000000002H;
  10076.       CONST MLFSEARCH_CHANGEALL      =  000000004H;
  10077.  
  10078.       (*************************************************************************
  10079.       * MLE messages - MLM from 0x01b0 to 0x01de; MLN from 0x0001 to 0x000f
  10080.       *************************************************************************)
  10081.       (* formatting messages *)
  10082.       CONST MLM_SETTEXTLIMIT         =  01B0H;
  10083.       CONST MLM_QUERYTEXTLIMIT       =  01B1H;
  10084.       CONST MLM_SETFORMATRECT        =  01B2H;
  10085.       CONST MLM_QUERYFORMATRECT      =  01B3H;
  10086.       CONST MLM_SETWRAP              =  01B4H;
  10087.       CONST MLM_QUERYWRAP            =  01B5H;
  10088.       CONST MLM_SETTABSTOP           =  01B6H;
  10089.       CONST MLM_QUERYTABSTOP         =  01B7H;
  10090.       CONST MLM_SETREADONLY          =  01B8H;
  10091.       CONST MLM_QUERYREADONLY        =  01B9H;
  10092.  
  10093.       (* text content manipulation and queries messages *)
  10094.       CONST MLM_QUERYCHANGED         =  01BAH;
  10095.       CONST MLM_SETCHANGED           =  01BBH;
  10096.       CONST MLM_QUERYLINECOUNT       =  01BCH;
  10097.       CONST MLM_CHARFROMLINE         =  01BDH;
  10098.       CONST MLM_LINEFROMCHAR         =  01BEH;
  10099.       CONST MLM_QUERYLINELENGTH      =  01BFH;
  10100.       CONST MLM_QUERYTEXTLENGTH      =  01C0H;
  10101.  
  10102.       (* text import and export messages *)
  10103.       CONST MLM_FORMAT               =  01C1H;
  10104.       CONST MLM_SETIMPORTEXPORT      =  01C2H;
  10105.       CONST MLM_IMPORT               =  01C3H;
  10106.       CONST MLM_EXPORT               =  01C4H;
  10107.       CONST MLM_DELETE               =  01C6H;
  10108.       CONST MLM_QUERYFORMATLINELENGTH=  01C7H;
  10109.       CONST MLM_QUERYFORMATTEXTLENGTH=  01C8H;
  10110.       CONST MLM_INSERT               =  01C9H;
  10111.  
  10112.       (* selection messages *)
  10113.       CONST MLM_SETSEL               =  01CAH;
  10114.       CONST MLM_QUERYSEL             =  01CBH;
  10115.       CONST MLM_QUERYSELTEXT         =  01CCH;
  10116.  
  10117.       (* undo and redo messages *)
  10118.       CONST MLM_QUERYUNDO            =  01CDH;
  10119.       CONST MLM_UNDO                 =  01CEH;
  10120.       CONST MLM_RESETUNDO            =  01CFH;
  10121.  
  10122.       (* text attributes messages *)
  10123.       CONST MLM_QUERYFONT            =  01D0H;
  10124.       CONST MLM_SETFONT              =  01D1H;
  10125.       CONST MLM_SETTEXTCOLOR         =  01D2H;
  10126.       CONST MLM_QUERYTEXTCOLOR       =  01D3H;
  10127.       CONST MLM_SETBACKCOLOR         =  01D4H;
  10128.       CONST MLM_QUERYBACKCOLOR       =  01D5H;
  10129.  
  10130.       (* scrolling messages *)
  10131.       CONST MLM_QUERYFIRSTCHAR       =  01D6H;
  10132.       CONST MLM_SETFIRSTCHAR         =  01D7H;
  10133.  
  10134.       (* clipboard messages *)
  10135.       CONST MLM_CUT                  =  01D8H;
  10136.       CONST MLM_COPY                 =  01D9H;
  10137.       CONST MLM_PASTE                =  01DAH;
  10138.       CONST MLM_CLEAR                =  01DBH;
  10139.  
  10140.       (* display manipulation messages *)
  10141.       CONST MLM_ENABLEREFRESH        =  01DCH;
  10142.       CONST MLM_DISABLEREFRESH       =  01DDH;
  10143.  
  10144.       (* search message *)
  10145.       CONST MLM_SEARCH               =  001DEH;
  10146.       CONST MLM_QUERYIMPORTEXPORT    =  001DFH;
  10147.  
  10148.       (* notification messages *)
  10149.       CONST MLN_OVERFLOW             =  0001H;
  10150.       CONST MLN_PIXHORZOVERFLOW      =  0002H;
  10151.       CONST MLN_PIXVERTOVERFLOW      =  0003H;
  10152.       CONST MLN_TEXTOVERFLOW         =  0004H;
  10153.       CONST MLN_VSCROLL              =  0005H;
  10154.       CONST MLN_HSCROLL              =  0006H;
  10155.       CONST MLN_CHANGE               =  0007H;
  10156.       CONST MLN_SETFOCUS             =  0008H;
  10157.       CONST MLN_KILLFOCUS            =  0009H;
  10158.       CONST MLN_MARGIN               =  000AH;
  10159.       CONST MLN_SEARCHPAUSE          =  000BH;
  10160.       CONST MLN_MEMERROR             =  000CH;
  10161.       CONST MLN_UNDOOVERFLOW         =  000DH;
  10162.       CONST MLN_CLPBDFAIL            =  000EH;
  10163.  
  10164. (**************************** end of file **********************************)
  10165.  
  10166. (* ------------- End of file:  .\hm\pmmle.hm ------------- *)
  10167.   <* END *>
  10168. <* END *>
  10169. <* IF DEFINED (INCL_WINLISTBOXES)  THEN *>
  10170.  
  10171.       (**** Listboxes *)
  10172.  
  10173.       (* List box styles *)
  10174.  
  10175.       CONST LS_MULTIPLESEL             = 000000001H;
  10176.  
  10177.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  10178.             CONST LS_OWNERDRAW               = 000000002H;
  10179.    <* END *>
  10180.  
  10181.       CONST LS_NOADJUSTPOS             = 000000004H;
  10182.       CONST LS_HORZSCROLL              = 000000008H;
  10183.  
  10184.       CONST LS_EXTENDEDSEL             = 000000010H;
  10185.  
  10186.  
  10187.       (* List box notification messages *)
  10188.  
  10189.       CONST LN_SELECT                = 1;
  10190.       CONST LN_SETFOCUS              = 2;
  10191.       CONST LN_KILLFOCUS             = 3;
  10192.       CONST LN_SCROLL                = 4;
  10193.       CONST LN_ENTER                 = 5;
  10194.  
  10195.       (* List box messages *)
  10196.  
  10197.       CONST LM_QUERYITEMCOUNT          = 00160H;
  10198.       CONST LM_INSERTITEM              = 00161H;
  10199.       CONST LM_SETTOPINDEX             = 00162H;
  10200.       CONST LM_DELETEITEM              = 00163H;
  10201.       CONST LM_SELECTITEM              = 00164H;
  10202.       CONST LM_QUERYSELECTION          = 00165H;
  10203.       CONST LM_SETITEMTEXT             = 00166H;
  10204.       CONST LM_QUERYITEMTEXTLENGTH     = 00167H;
  10205.       CONST LM_QUERYITEMTEXT           = 00168H;
  10206.  
  10207.       CONST LM_SETITEMHANDLE           = 00169H;
  10208.       CONST LM_QUERYITEMHANDLE         = 0016aH;
  10209.       CONST LM_SEARCHSTRING            = 0016bH;
  10210.       CONST LM_SETITEMHEIGHT           = 0016cH;
  10211.       CONST LM_QUERYTOPINDEX           = 0016dH;
  10212.       CONST LM_DELETEALL               = 0016eH;
  10213.  
  10214.       (* List box constants *)
  10215.  
  10216.       CONST LIT_CURSOR              =   (-4);
  10217.       CONST LIT_ERROR               =   (-3);
  10218.       CONST LIT_MEMERROR            =   (-2);
  10219.       CONST LIT_NONE                =   (-1);
  10220.       CONST LIT_FIRST               =   (-1);
  10221.  
  10222.       (* For LM_INSERTITEM msg *)
  10223.  
  10224.       CONST LIT_END                 =   (-1);
  10225.       CONST LIT_SORTASCENDING       =   (-2);
  10226.       CONST LIT_SORTDESCENDING      =   (-3);
  10227.  
  10228.       (* For LM_SEARCHSTRING msg *)
  10229.  
  10230.       CONST LSS_SUBSTRING              = 00001H;
  10231.       CONST LSS_PREFIX                 = 00002H;
  10232.       CONST LSS_CASESENSITIVE          = 00004H;
  10233.  
  10234.  
  10235.       (* Useful macros *)
  10236.  
  10237.       (***************************************************************************
  10238.       * LONG/SHORT WinDeleteLboxItem(HWND hwndLbox; LONG/SHORT index)
  10239.       *    deletes item index from the listbox.
  10240.       *    returns the number of items left.
  10241.       ***************************************************************************)
  10242.       --CONST WinDeleteLboxItem(hwndLbox; index) \
  10243.       --((LONG)WinSendMsg(hwndLbox; LM_DELETEITEM; MPFROMLONG(index); \
  10244.       --(MPARAM)NULL))
  10245.  
  10246.       (***************************************************************************
  10247.       * LONG/SHORT WinInsertLboxItem(HWND hwndLbox; LONG/SHORT index; PSZ psz)
  10248.       *    inserts psz into a listbox at index.  Index may be an LIT_ constant.
  10249.       *    returns the actual index where it was inserted.
  10250.       ***************************************************************************)
  10251.       --CONST WinInsertLboxItem(hwndLbox; index; psz) \
  10252.       --((LONG)WinSendMsg(hwndLbox; LM_INSERTITEM; MPFROMLONG(index); \
  10253.       --MPFROMP(psz)))
  10254.  
  10255.       (***************************************************************************
  10256.       * LONG/SHORT WinQueryLboxCount(HWND hwndLbox)
  10257.       *    returns the number of items in the listbox.
  10258.       *
  10259.       ***************************************************************************)
  10260.       --CONST WinQueryLboxCount(hwndLbox) \
  10261.       --((LONG)WinSendMsg(hwndLbox; LM_QUERYITEMCOUNT; (MPARAM)NULL; \
  10262.       --(MPARAM)NULL))
  10263.  
  10264.       (***************************************************************************
  10265.       * LONG/SHORT WinQueryLboxItemText(HWND hwndLbox; LONG/SHORT index; PSZ psz; SHORT cchMax)
  10266.       *    fills psz with the text if item index.
  10267.       *    returns the text length copied.
  10268.       ***************************************************************************)
  10269.       --CONST WinQueryLboxItemText(hwndLbox; index; psz; cchMax) \
  10270.       --((LONG)WinSendMsg(hwndLbox; LM_QUERYITEMTEXT; \
  10271.       --MPFROM2SHORT((index); (cchMax)); MPFROMP(psz)))
  10272.  
  10273.       (***************************************************************************
  10274.       * LONG/SHORT WinQueryLboxItemTextLength(HWND hwndLbox; LONG/SHORT index)
  10275.       *    returns the length of item index.
  10276.       *
  10277.       ***************************************************************************)
  10278.       --CONST WinQueryLboxItemTextLength(hwndLbox; index)         \
  10279.       --((SHORT)WinSendMsg(hwndLbox; LM_QUERYITEMTEXTLENGTH;    \
  10280.       --MPFROMSHORT(index); (MPARAM)NULL))
  10281.  
  10282.       (***************************************************************************
  10283.       * BOOL WinSetLboxItemText(HWND hwndLbox; LONG/SHORT index; PSZ psz)
  10284.       *    sets the text of item index to psz.
  10285.       *    returns fSuccess.
  10286.       ***************************************************************************)
  10287.       --CONST WinSetLboxItemText(hwndLbox; index; psz) \
  10288.       --((BOOL)WinSendMsg(hwndLbox; LM_SETITEMTEXT; \
  10289.       --MPFROMLONG(index); MPFROMP(psz)))
  10290.  
  10291.       (***************************************************************************
  10292.       * LONG/SHORT WinQueryLboxSelectedItem(HWND hwndLbox)
  10293.       *    returns the item index selected. (for single selection only)
  10294.       *
  10295.       ***************************************************************************)
  10296.       --CONST WinQueryLboxSelectedItem(hwndLbox) \
  10297.       --((LONG)WinSendMsg(hwndLbox; LM_QUERYSELECTION; MPFROMLONG(LIT_FIRST); \
  10298.       --(MPARAM)NULL))
  10299.  
  10300. <* END *>
  10301.  
  10302.  
  10303. <* IF DEFINED (INCL_WINMENUS)  THEN *>
  10304.  
  10305.       (**** Menu Manager Subsection *)
  10306.  
  10307.       (* Menu control styles *)
  10308.  
  10309.       CONST MS_ACTIONBAR               = 000000001H;
  10310.       CONST MS_TITLEBUTTON             = 000000002H;
  10311.       CONST MS_VERTICALFLIP            = 000000004H;
  10312.  
  10313.       CONST MS_CONDITIONALCASCADE      = 000000040H;
  10314.  
  10315.       PROCEDURE [APIENTRY] WinLoadMenu(hwndFrame: HWND;
  10316.                                                           hmod:         HMODULE;
  10317.                                                           idMenu:       ULONG): HWND;
  10318.  
  10319.  
  10320.       (* Menu control messages *)
  10321.  
  10322.       CONST MM_INSERTITEM              = 00180H;
  10323.       CONST MM_DELETEITEM              = 00181H;
  10324.       CONST MM_QUERYITEM               = 00182H;
  10325.       CONST MM_SETITEM                 = 00183H;
  10326.       CONST MM_QUERYITEMCOUNT          = 00184H;
  10327.       CONST MM_STARTMENUMODE           = 00185H;
  10328.       CONST MM_ENDMENUMODE             = 00186H;
  10329.       CONST MM_REMOVEITEM              = 00188H;
  10330.       CONST MM_SELECTITEM              = 00189H;
  10331.       CONST MM_QUERYSELITEMID          = 0018aH;
  10332.       CONST MM_QUERYITEMTEXT           = 0018bH;
  10333.       CONST MM_QUERYITEMTEXTLENGTH     = 0018cH;
  10334.       CONST MM_SETITEMHANDLE           = 0018dH;
  10335.       CONST MM_SETITEMTEXT             = 0018eH;
  10336.       CONST MM_ITEMPOSITIONFROMID      = 0018fH;
  10337.       CONST MM_ITEMIDFROMPOSITION      = 00190H;
  10338.       CONST MM_QUERYITEMATTR           = 00191H;
  10339.       CONST MM_SETITEMATTR             = 00192H;
  10340.       CONST MM_ISITEMVALID             = 00193H;
  10341.       CONST MM_QUERYITEMRECT           = 00194H;
  10342.  
  10343.       CONST MM_QUERYDEFAULTITEMID      = 00431H;
  10344.       CONST MM_SETDEFAULTITEMID        = 00432H;
  10345.  
  10346.    <* IF NOT DEFINED (MTI_INCLUDED)  THEN *>
  10347.       <* NEW MTI_INCLUDED + *>
  10348.  
  10349.             TYPE MTI = RECORD     (* mti *)
  10350.                   afStyle: USHORT;      (* Style Flags      *)
  10351.                   pad:     USHORT;      (* pad for template *)
  10352.                   idItem:  USHORT;      (* Item ID          *)
  10353.                   c:       ARRAY [0..1] OF CHAR;
  10354.             END;
  10355.  
  10356.             TYPE MT = RECORD      (* mt *)
  10357.                   len:        ULONG;                  (* Length of template in bytes *)
  10358.                   codepage:   USHORT;                 (* Codepage                    *)
  10359.                   reserved:   USHORT;                 (* Reserved.                   *)
  10360.                   cMti:       USHORT;                 (* Count of template items.    *)
  10361.                   rgMti:      ARRAY [0..0] OF MTI;    (* Array of template items.    *)
  10362.             END;
  10363.             TYPE LPMT = POINTER TO MT;
  10364.  
  10365.    <* END *>
  10366.  
  10367.       PROCEDURE [APIENTRY] WinCreateMenu(hwndParent: HWND;
  10368.                                                               lpmt:          PVOID): HWND;
  10369.  
  10370.       (* Owner Item Structure (Also used for listboxes) *)
  10371.  
  10372.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  10373.             TYPE OWNERITEM = RECORD   (* oi *)
  10374.                   hwnd:          HWND;
  10375.                   hps:           HPS;
  10376.                   fsState:       ULONG;
  10377.                   fsAttribute:   ULONG;
  10378.                   fsStateOld:    ULONG;
  10379.                   fsAttributeOld: ULONG;
  10380.                   rclItem:       RECTL;
  10381.                   idItem:        LONG; (* This field contains idItem for menus; iItem for lb. *)
  10382.                   hItem:         ULONG;
  10383.             END;
  10384.             TYPE POWNERITEM = POINTER TO OWNERITEM;
  10385.    <* END *>
  10386.  
  10387.       (* Menu item *)
  10388.  
  10389.       --#pragma pack(2) (* force structure alignment packing *)
  10390.  
  10391.       (* Binary resources may be bound into application executables or *)
  10392.       (* passed as a parameter when creating a window or dialog        *)
  10393.       (* Currently they must be the same for both 16-bit and 32-bit    *)
  10394.       (* so we pack the structures.                                    *)
  10395.       TYPE MENUITEM = RECORD   (* mi *)
  10396.             iPosition:    SHORT;
  10397.             afStyle:      USHORT;
  10398.             afAttribute:  USHORT;
  10399.             id:           USHORT;
  10400.             hwndSubMenu:  HWND;
  10401.             hItem:        ULONG;
  10402.       END;
  10403.       TYPE PMENUITEM = POINTER TO MENUITEM;
  10404.  
  10405.       --#pragma pack()  (* restore packing to default *)
  10406.  
  10407.       CONST MIT_END                   = (-1);
  10408.       CONST MIT_NONE                  = (-1);
  10409.       CONST MIT_MEMERROR              = (-1);
  10410.       CONST MIT_ERROR                 = (-1);
  10411.       CONST MIT_FIRST                 = (-2);
  10412.       CONST MIT_LAST                  = (-3);
  10413.       CONST MID_NONE                  = MIT_NONE;
  10414.       CONST MID_ERROR                 = (-1);
  10415.  
  10416.       (* Menu item styles & attributes *)
  10417.  
  10418.       CONST MIS_TEXT                   = 00001H;
  10419.  
  10420.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  10421.             CONST MIS_BITMAP                 = 00002H;
  10422.    <* END *>
  10423.       CONST MIS_SEPARATOR              = 00004H;
  10424.  
  10425.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  10426.             CONST MIS_OWNERDRAW              = 00008H;
  10427.    <* END *>
  10428.  
  10429.       CONST MIS_SUBMENU                = 00010H;
  10430.       CONST MIS_MULTMENU               = 00020H;      (* multiple choice submenu     *)
  10431.       CONST MIS_SYSCOMMAND             = 00040H;
  10432.       CONST MIS_HELP                   = 00080H;
  10433.       CONST MIS_STATIC                 = 00100H;
  10434.       CONST MIS_BUTTONSEPARATOR        = 00200H;
  10435.       CONST MIS_BREAK                  = 00400H;
  10436.       CONST MIS_BREAKSEPARATOR         = 00800H;
  10437.       CONST MIS_GROUP                  = 01000H;      (* multiple choice group start *)
  10438.       (* In multiple choice submenus a style of 'single' denotes the item is a
  10439.       ** radiobutton.  Absence of this style defaults the item to a checkbox.       *)
  10440.       CONST MIS_SINGLE                 = 02000H;
  10441.  
  10442.       CONST MIA_NODISMISS              = 00020H;
  10443.       CONST MIA_FRAMED                 = 01000H;
  10444.       CONST MIA_CHECKED                = 02000H;
  10445.       CONST MIA_DISABLED               = 04000H;
  10446.       CONST MIA_HILITED                = 08000H;
  10447.  
  10448.  
  10449.       PROCEDURE [APIENTRY] WinPopupMenu(hwndParent: HWND;
  10450.                                                             hwndOwner:   HWND;
  10451.                                                             hwndMenu:    HWND;
  10452.                                                             x:           LONG;
  10453.                                                             y:           LONG;
  10454.                                                             idItem:      LONG;
  10455.                                                             fs:          ULONG): BOOL;
  10456.  
  10457.       (* Values of fs in WinPopupMenu call *)
  10458.  
  10459.       CONST PU_POSITIONONITEM          = 00001H; (* Need idItem parameter *)
  10460.  
  10461.       CONST PU_HCONSTRAIN              = 00002H; (* Keep menu on left and right edge *)
  10462.       CONST PU_VCONSTRAIN              = 00004H; (* Keep menu on top and bottom edge *)
  10463.  
  10464.       CONST PU_NONE                    = 00000H; (* If invoked by keyboard *)
  10465.       CONST PU_MOUSEBUTTON1DOWN        = 00008H; (* If invoked by button 1 *)
  10466.       CONST PU_MOUSEBUTTON2DOWN        = 00010H; (* If invoked by button 2 *)
  10467.       CONST PU_MOUSEBUTTON3DOWN        = 00018H; (* If invoked by button 3 *)
  10468.  
  10469.       CONST PU_SELECTITEM              = 00020H; (* Set selected item (use with kbd) *)
  10470.  
  10471.       CONST PU_MOUSEBUTTON1            = 00040H; (* If button1 use allowed *)
  10472.       CONST PU_MOUSEBUTTON2            = 00080H; (* If button2 use allowed *)
  10473.       CONST PU_MOUSEBUTTON3            = 00100H; (* If button3 use allowed *)
  10474.       CONST PU_KEYBOARD                = 00200H; (* If keyboard use allowed *)
  10475.  
  10476.  
  10477.       (* Useful macros *)
  10478.  
  10479.       (***************************************************************************
  10480.       * BOOL WinCheckMenuItem(HWND hwndMenu; ULONG/USHORT id; BOOL fcheck)
  10481.       *    Sets the check state of menuitem #id to fcheck.
  10482.       *    returns fSuccess.
  10483.       ***************************************************************************)
  10484.       --CONST WinCheckMenuItem(hwndMenu; id; fcheck) \
  10485.       --((BOOL)WinSendMsg(hwndMenu; MM_SETITEMATTR; \
  10486.       --MPFROM2SHORT(id; TRUE); \
  10487.       --MPFROM2SHORT(MIA_CHECKED; (USHORT)(fcheck) ? MIA_CHECKED : 0)))
  10488.  
  10489.       (***************************************************************************
  10490.       * BOOL WinIsMenuItemChecked(HWND hwndMenu; USHORT/ULONG id)
  10491.       *    returns the check state of menuitem #id.
  10492.       *
  10493.       ***************************************************************************)
  10494.       --CONST WinIsMenuItemChecked(hwndMenu; id) \
  10495.       --((BOOL)WinSendMsg(hwndMenu; MM_QUERYITEMATTR; \
  10496.       --MPFROM2SHORT(id; TRUE); \
  10497.       --MPFROMLONG(MIA_CHECKED)))
  10498.  
  10499.       (***************************************************************************
  10500.       * BOOL WinEnableMenuItem(HWND hwndMenu; ULONG/USHORT id; BOOL fenable)
  10501.       *    sets the enable state of menuitem #id to fenable.
  10502.       *    returns fSuccess.
  10503.       ***************************************************************************)
  10504.       --CONST WinEnableMenuItem(hwndMenu; id; fEnable) \
  10505.       --((BOOL)WinSendMsg(hwndMenu; MM_SETITEMATTR; \
  10506.       --MPFROM2SHORT(id; TRUE); \
  10507.       --MPFROM2SHORT(MIA_DISABLED; (USHORT)(fEnable) ? 0 : MIA_DISABLED)))
  10508.  
  10509.       (***************************************************************************
  10510.       * BOOL WinIsMenuItemEnabled(HWND hwndMenu; USHORT/ULONG id)
  10511.       *    returns the enable state of menuitem #id.
  10512.       *
  10513.       ***************************************************************************)
  10514.       --CONST WinIsMenuItemEnabled(hwndMenu; id)  \
  10515.       --(!(BOOL)WinSendMsg(hwndMenu; MM_QUERYITEMATTR; \
  10516.       --MPFROM2SHORT(id; TRUE); \
  10517.       --MPFROMLONG(MIA_DISABLED)))
  10518.  
  10519.       (***************************************************************************
  10520.       * BOOL WinSetMenuItemText(HWND hwndMenu; ULONG/USHORT id; PSZ psz)
  10521.       *    sets the text of menuitem #id.
  10522.       *    returns fSuccess.
  10523.       ***************************************************************************)
  10524.       --CONST WinSetMenuItemText(hwndMenu; id; psz) \
  10525.       --((BOOL)WinSendMsg(hwndMenu; MM_SETITEMTEXT; \
  10526.       --MPFROMLONG(id); MPFROMP(psz)))
  10527.  
  10528.       (***************************************************************************
  10529.       * BOOL WinIsMenuItemValid(HWND hwndMenu; ULONG/USHORT id)
  10530.       *    Returns TRUE if the specified item is a valid choice.
  10531.       ***************************************************************************)
  10532.       --CONST WinIsMenuItemValid(hwndMenu; id) \
  10533.       --((BOOL)WinSendMsg(hwndMenu; MM_ISITEMVALID; \
  10534.       --MPFROM2SHORT(id; TRUE); MPFROMLONG(FALSE)))
  10535.  
  10536. <* END *>
  10537.  
  10538.  
  10539. <* IF DEFINED (INCL_WINSCROLLBARS)  THEN *>
  10540.  
  10541.       (*** Scroll Bar controls Subsection *)
  10542.  
  10543.       (* Scroll Bar styles *)
  10544.  
  10545.       CONST SBS_HORZ                 =  0;
  10546.       CONST SBS_VERT                 =  1;
  10547.       CONST SBS_THUMBSIZE            =  2;
  10548.       CONST SBS_AUTOTRACK            =  4;
  10549.       CONST SBS_AUTOSIZE        = 02000H;
  10550.  
  10551.  
  10552.  
  10553.       (* Scroll Bar messages *)
  10554.  
  10555.       CONST SBM_SETSCROLLBAR           = 001a0H;
  10556.       CONST SBM_SETPOS                 = 001a1H;
  10557.       CONST SBM_QUERYPOS               = 001a2H;
  10558.       CONST SBM_QUERYRANGE             = 001a3H;
  10559.       CONST SBM_SETTHUMBSIZE           = 001a6H;
  10560.  
  10561.       (* Scroll Bar Commands *)
  10562.  
  10563.       CONST SB_LINEUP                =  1;
  10564.       CONST SB_LINEDOWN              =  2;
  10565.       CONST SB_LINELEFT              =  1;
  10566.       CONST SB_LINERIGHT             =  2;
  10567.       CONST SB_PAGEUP                =  3;
  10568.       CONST SB_PAGEDOWN              =  4;
  10569.       CONST SB_PAGELEFT              =  3;
  10570.       CONST SB_PAGERIGHT             =  4;
  10571.       CONST SB_SLIDERTRACK           =  5;
  10572.       CONST SB_SLIDERPOSITION        =  6;
  10573.       CONST SB_ENDSCROLL             =  7;
  10574.  
  10575.  
  10576.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  10577.             --#pragma pack(2) (* force structure alignment packing *)
  10578.  
  10579.             (* Binary resources may be bound into application executables or *)
  10580.             (* passed as a parameter when creating a window or dialog        *)
  10581.             (* Currently they must be the same for both 16-bit and 32-bit    *)
  10582.             (* so we pack the structures.                                    *)
  10583.             TYPE SBCDATA = RECORD   (* sbcd *)
  10584.                   cb:            USHORT;
  10585.                   sHilite:       USHORT; (* reserved; should be set to zero *)
  10586.                   posFirst:      SHORT;
  10587.                   posLast:       SHORT;
  10588.                   posThumb:      SHORT;
  10589.                   cVisible:      SHORT;
  10590.                   cTotal:        SHORT;
  10591.             END;
  10592.             TYPE PSBCDATA = POINTER TO SBCDATA;
  10593.  
  10594.             --#pragma pack()  (* restore packing to default *)
  10595.    <* END *>
  10596.  
  10597. <* END *>
  10598.  
  10599.  
  10600. <* IF DEFINED (INCL_WINFRAMEMGR) OR NOT DEFINED (INCL_NOCOMMON)  THEN *>
  10601.       (*** Frame Manager Common subsection *)
  10602.  
  10603.       --#pragma pack(2) (* force structure alignment packing *)
  10604.  
  10605.       (* Binary resources may be bound into application executables or *)
  10606.       (* passed as a parameter when creating a window or dialog        *)
  10607.       (* Currently they must be the same for both 16-bit and 32-bit    *)
  10608.       (* so we pack the structures.                                    *)
  10609.       TYPE FRAMECDATA = RECORD   (* fcdata *)
  10610.             cb:               USHORT;
  10611.             flCreateFlags:    ULONG;
  10612.             hmodResources:    USHORT;
  10613.             idResources:      USHORT;
  10614.       END;
  10615.       TYPE PFRAMECDATA = POINTER TO FRAMECDATA;
  10616.  
  10617.       --#pragma pack()  (* restore packing to default *)
  10618.  
  10619.       (* Frame window styles *)
  10620.       (* All unused FCF_xxx bits are reserved *)
  10621.       CONST FCF_TITLEBAR               = 000000001H;
  10622.       CONST FCF_SYSMENU                = 000000002H;
  10623.       CONST FCF_MENU                   = 000000004H;
  10624.       CONST FCF_SIZEBORDER             = 000000008H;
  10625.       CONST FCF_MINBUTTON              = 000000010H;
  10626.       CONST FCF_MAXBUTTON              = 000000020H;
  10627.       CONST FCF_MINMAX                 = 000000030H;(* minmax means BOTH buttons *)
  10628.       CONST FCF_VERTSCROLL             = 000000040H;
  10629.       CONST FCF_HORZSCROLL             = 000000080H;
  10630.       CONST FCF_DLGBORDER              = 000000100H;
  10631.       CONST FCF_BORDER                 = 000000200H;
  10632.       CONST FCF_SHELLPOSITION          = 000000400H;
  10633.       CONST FCF_TASKLIST               = 000000800H;
  10634.       CONST FCF_NOBYTEALIGN            = 000001000H;
  10635.       CONST FCF_NOMOVEWITHOWNER        = 000002000H;
  10636.       CONST FCF_ICON                   = 000004000H;
  10637.       CONST FCF_ACCELTABLE             = 000008000H;
  10638.       CONST FCF_SYSMODAL               = 000010000H;
  10639.       CONST FCF_SCREENALIGN            = 000020000H;
  10640.       CONST FCF_MOUSEALIGN             = 000040000H;
  10641.       CONST FCF_HIDEBUTTON             = 001000000H;
  10642.       CONST FCF_HIDEMAX                = 001000020H;(* hidemax means BOTH buttons *)
  10643.    <* IF DEFINED (INCL_NLS)  THEN *>
  10644.             CONST FCF_DBE_APPSTAT         = 080000000H;
  10645.    <* END *>
  10646.       CONST FCF_AUTOICON               = 040000000H;
  10647.  
  10648.       (* FCF_TITLEBAR | FCF_SYSMENU | FCF_MENU | FCF_SIZEBORDER | FCF_MINMAX |
  10649.       FCF_ICON | FCF_ACCELTABLE | FCF_SHELLPOSITION | FCF_TASKLIST *)
  10650.       CONST FCF_STANDARD            = 00000CC3FH;
  10651.  
  10652.  
  10653.       CONST FS_ICON                    = 000000001H;
  10654.       CONST FS_ACCELTABLE              = 000000002H;
  10655.  
  10656.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  10657.             CONST FS_SHELLPOSITION        = 000000004H;
  10658.    <* END *>
  10659.  
  10660.       CONST FS_TASKLIST                = 000000008H;
  10661.       CONST FS_NOBYTEALIGN             = 000000010H;
  10662.       CONST FS_NOMOVEWITHOWNER         = 000000020H;
  10663.       CONST FS_SYSMODAL                = 000000040H;
  10664.       CONST FS_DLGBORDER               = 000000080H;
  10665.       CONST FS_BORDER                  = 000000100H;
  10666.       CONST FS_SCREENALIGN             = 000000200H;
  10667.       CONST FS_MOUSEALIGN              = 000000400H;
  10668.       CONST FS_SIZEBORDER              = 000000800H;
  10669.       CONST FS_AUTOICON                = 000001000H;
  10670.    <* IF DEFINED (INCL_NLS)  THEN *>
  10671.             CONST FS_DBE_APPSTAT          = 000008000H;
  10672.    <* END *>
  10673.  
  10674.       (* FS_ICON | FS_ACCELTABLE | FS_SHELLPOSITION | FS_TASKLIST *)
  10675.       CONST FS_STANDARD                = 00000000FH;
  10676.  
  10677.  
  10678.       (* Frame Window Flags accessed via WinSet/QueryWindowUShort(QWS_FLAGS) *)
  10679.  
  10680.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  10681.             CONST FF_FLASHWINDOW             = 00001H;
  10682.             CONST FF_ACTIVE                  = 00002H;
  10683.             CONST FF_FLASHHILITE             = 00004H;
  10684.             CONST FF_OWNERHIDDEN             = 00008H;
  10685.             CONST FF_DLGDISMISSED            = 00010H;
  10686.             CONST FF_OWNERDISABLED           = 00020H;
  10687.             CONST FF_SELECTED                = 00040H;
  10688.             CONST FF_NOACTIVATESWP           = 00080H;
  10689.  
  10690.    <* END *>
  10691.  
  10692.  
  10693.       PROCEDURE [APIENTRY] WinCreateStdWindow(hwndParent:   HWND;
  10694.                                                                           flStyle:        ULONG;
  10695.                                                                           pflCreateFlags: PULONG;
  10696.                                                                           pszClientClass: PCSZ;
  10697.                                                                           pszTitle:       PCSZ;
  10698.                                                                           styleClient:    ULONG;
  10699.                                                                           hmod:           HMODULE;
  10700.                                                                           idResources:    ULONG;
  10701.                                                                           phwndClient:    PHWND): HWND;
  10702.  
  10703. <* END *>
  10704.  
  10705.  
  10706. <* IF DEFINED (INCL_WINFRAMEMGR)  THEN *>
  10707.  
  10708.       PROCEDURE [APIENTRY] WinFlashWindow(hwndFrame: HWND;
  10709.                                                                   fFlash:      BOOL): BOOL;
  10710.  
  10711.       (* Frame window related messages *)
  10712.  
  10713.       CONST WM_FLASHWINDOW             = 00040H;
  10714.       CONST WM_FORMATFRAME             = 00041H;
  10715.       CONST WM_UPDATEFRAME             = 00042H;
  10716.       CONST WM_FOCUSCHANGE             = 00043H;
  10717.  
  10718.       CONST WM_SETBORDERSIZE           = 00044H;
  10719.       CONST WM_TRACKFRAME              = 00045H;
  10720.       CONST WM_MINMAXFRAME             = 00046H;
  10721.       CONST WM_SETICON                 = 00047H;
  10722.       CONST WM_QUERYICON               = 00048H;
  10723.       CONST WM_SETACCELTABLE           = 00049H;
  10724.       CONST WM_QUERYACCELTABLE         = 0004aH;
  10725.       CONST WM_TRANSLATEACCEL          = 0004bH;
  10726.       CONST WM_QUERYTRACKINFO          = 0004cH;
  10727.       CONST WM_QUERYBORDERSIZE         = 0004dH;
  10728.       CONST WM_NEXTMENU                = 0004eH;
  10729.       CONST WM_ERASEBACKGROUND         = 0004fH;
  10730.       CONST WM_QUERYFRAMEINFO          = 00050H;
  10731.       CONST WM_QUERYFOCUSCHAIN         = 00051H;
  10732.       CONST WM_OWNERPOSCHANGE          = 00052H;
  10733.       CONST WM_CALCFRAMERECT           = 00053H;
  10734.       (* Note = 00054 is reserved *)
  10735.       CONST WM_WINDOWPOSCHANGED        = 00055H;
  10736.       CONST WM_ADJUSTFRAMEPOS          = 00056H;
  10737.       CONST WM_QUERYFRAMECTLCOUNT      = 00059H;
  10738.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  10739.             (* Note = 0005A is reserved *)
  10740.             CONST WM_QUERYHELPINFO        = 0005BH;
  10741.             CONST WM_SETHELPINFO          = 0005CH;
  10742.             CONST WM_ERROR                = 0005DH;
  10743.             CONST WM_REALIZEPALETTE       = 0005EH;
  10744.  
  10745.  
  10746.             (* WM_QUERYFRAMEINFO constants *)
  10747.  
  10748.             CONST FI_FRAME                = 000000001H;
  10749.             CONST FI_OWNERHIDE            = 000000002H;
  10750.             CONST FI_ACTIVATEOK           = 000000004H;
  10751.             CONST FI_NOMOVEWITHOWNER      = 000000008H;
  10752.  
  10753.  
  10754.    <* END *>
  10755.  
  10756.  
  10757.       PROCEDURE [APIENTRY] WinCreateFrameControls(hwndFrame: HWND;
  10758.                                                                                   pfcdata:     PFRAMECDATA;
  10759.                                                                                   pszTitle:    PCSZ): BOOL;
  10760.  
  10761.       PROCEDURE [APIENTRY] WinCalcFrameRect(hwndFrame:    HWND;
  10762.                                                                       prcl:           PRECTL;
  10763.                                                                       fClient:        BOOL): BOOL;
  10764.  
  10765.       PROCEDURE [APIENTRY] WinGetMinPosition(hwnd:   HWND;
  10766.                                                                         pswp:     PSWP;
  10767.                                                                         pptl:     PPOINTL): BOOL;
  10768.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  10769.             PROCEDURE [APIENTRY] WinGetMaxPosition(hwnd: HWND;
  10770.                                                                               pswp:   PSWP): BOOL;
  10771.    <* END *>
  10772.  
  10773.       TYPE HSAVEWP = LHANDLE;      (* hsvwp *)
  10774.  
  10775.       PROCEDURE [APIENTRY] WinSaveWindowPos(hsvwp: HSAVEWP;
  10776.                                                                     pswp:     PSWP;
  10777.                                                                     cswp:     ULONG): BOOL;
  10778.  
  10779.       (* Frame control IDs    *)
  10780.  
  10781.       CONST FID_SYSMENU                = 08002H;
  10782.       CONST FID_TITLEBAR               = 08003H;
  10783.       CONST FID_MINMAX                 = 08004H;
  10784.       CONST FID_MENU                   = 08005H;
  10785.       CONST FID_VERTSCROLL             = 08006H;
  10786.       CONST FID_HORZSCROLL             = 08007H;
  10787.       CONST FID_CLIENT                 = 08008H;
  10788.       (* Note = 08009 is reserved *)
  10789.  
  10790.       CONST FID_DBE_APPSTAT            = 08010H;
  10791.       CONST FID_DBE_KBDSTAT            = 08011H;
  10792.       CONST FID_DBE_PECIC              = 08012H;
  10793.       CONST FID_DBE_KKPOPUP            = 08013H;
  10794.  
  10795.       (* Standard WM_SYSCOMMAND command values *)
  10796.  
  10797.       CONST SC_SIZE                    = 08000H;
  10798.       CONST SC_MOVE                    = 08001H;
  10799.       CONST SC_MINIMIZE                = 08002H;
  10800.       CONST SC_MAXIMIZE                = 08003H;
  10801.       CONST SC_CLOSE                   = 08004H;
  10802.       CONST SC_NEXT                    = 08005H;
  10803.       CONST SC_APPMENU                 = 08006H;
  10804.       CONST SC_SYSMENU                 = 08007H;
  10805.       CONST SC_RESTORE                 = 08008H;
  10806.       CONST SC_NEXTFRAME               = 08009H;
  10807.       CONST SC_NEXTWINDOW              = 08010H;
  10808.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  10809.             CONST SC_TASKMANAGER             = 08011H;
  10810.             CONST SC_HELPKEYS                = 08012H;
  10811.             CONST SC_HELPINDEX               = 08013H;
  10812.             CONST SC_HELPEXTENDED            = 08014H;
  10813.             CONST SC_SWITCHPANELIDS          = 08015H;
  10814.             CONST SC_DBE_FIRST               = 08018H;
  10815.             CONST SC_DBE_LAST                = 0801FH;
  10816.  
  10817.             CONST SC_BEGINDRAG               = 08020H;
  10818.             CONST SC_ENDDRAG                 = 08021H;
  10819.             CONST SC_SELECT                  = 08022H;
  10820.             CONST SC_OPEN                    = 08023H;
  10821.             CONST SC_CONTEXTMENU             = 08024H;
  10822.             CONST SC_CONTEXTHELP             = 08025H;
  10823.             CONST SC_TEXTEDIT                = 08026H;
  10824.             CONST SC_BEGINSELECT             = 08027H;
  10825.             CONST SC_ENDSELECT               = 08028H;
  10826.             CONST SC_WINDOW                  = 08029H;
  10827.             CONST SC_HIDE                    = 0802aH;
  10828.  
  10829.  
  10830.    <* END *>
  10831.  
  10832. <* END *>
  10833.  
  10834. (*** Frame controls *)
  10835.  
  10836. <* IF DEFINED (INCL_WINFRAMECTLS)  THEN *>
  10837.  
  10838.       (** Title bar controls *)
  10839.  
  10840.  
  10841.       (* Title bar control messages *)
  10842.  
  10843.       CONST TBM_SETHILITE              = 001e3H;
  10844.       CONST TBM_QUERYHILITE            = 001e4H;
  10845.  
  10846.  
  10847. <* END *>
  10848.  
  10849. <* IF DEFINED (INCL_WINRECTANGLES)  THEN *>
  10850.       (*** Rectangle routines *)
  10851.  
  10852.       PROCEDURE [APIENTRY] WinCopyRect(hab:    HAB;
  10853.                                                           prclDst:   PRECTL;
  10854.                                                           prclSrc:   PRECTL): BOOL;
  10855.  
  10856.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  10857.             PROCEDURE [APIENTRY] WinSetRect(hab:     HAB;
  10858.                                                               prcl:       PRECTL;
  10859.                                                               xLeft:      LONG;
  10860.                                                               yBottom:    LONG;
  10861.                                                               xRight:     LONG;
  10862.                                                               yTop:       LONG): BOOL;
  10863.             PROCEDURE [APIENTRY] WinIsRectEmpty(hab:  HAB;
  10864.                                                                       prcl:    PRECTL): BOOL;
  10865.             PROCEDURE [APIENTRY] WinEqualRect(hab: HAB;
  10866.                                                                   prcl1:  PRECTL;
  10867.                                                                   prcl2:  PRECTL): BOOL;
  10868.             PROCEDURE [APIENTRY] WinSetRectEmpty(hab: HAB;
  10869.                                                                         prcl:   PRECTL): BOOL;
  10870.             PROCEDURE [APIENTRY] WinOffsetRect(hab: HAB;
  10871.                                                                     prcl:   PRECTL;
  10872.                                                                     cx:     LONG;
  10873.                                                                     cy:     LONG): BOOL;
  10874.             PROCEDURE [APIENTRY] WinInflateRect(hab: HAB;
  10875.                                                                       prcl:   PRECTL;
  10876.                                                                       cx:     LONG;
  10877.                                                                       cy:     LONG): BOOL;
  10878.             PROCEDURE [APIENTRY] WinPtInRect(hab: HAB;
  10879.                                                                 prcl:   PRECTL;
  10880.                                                                 pptl:   PPOINTL): BOOL;
  10881.             PROCEDURE [APIENTRY] WinIntersectRect(hab:   HAB;
  10882.                                                                           prclDst:  PRECTL;
  10883.                                                                           prclSrc1: PRECTL;
  10884.                                                                           prclSrc2: PRECTL): BOOL;
  10885.             PROCEDURE [APIENTRY] WinUnionRect(hab:   HAB;
  10886.                                                                   prclDst:  PRECTL;
  10887.                                                                   prclSrc1: PRECTL;
  10888.                                                                   prclSrc2: PRECTL): BOOL;
  10889.             PROCEDURE [APIENTRY] WinSubtractRect(hab:   HAB;
  10890.                                                                         prclDst:  PRECTL;
  10891.                                                                         prclSrc1: PRECTL;
  10892.                                                                         prclSrc2: PRECTL): BOOL;
  10893.             PROCEDURE [APIENTRY] WinMakeRect(hab: HAB;
  10894.                                                                 pwrc:   PRECTL): BOOL;
  10895.             PROCEDURE [APIENTRY] WinMakePoints(hab: HAB;
  10896.                                                                     pwpt:   PPOINTL;
  10897.                                                                     cwpt:   ULONG): BOOL;
  10898.    <* END *>
  10899.  
  10900. <* END *>
  10901.  
  10902.  
  10903. <* IF DEFINED (INCL_WINSYS)  THEN *>
  10904.  
  10905.       (*** System values *)
  10906.  
  10907.       PROCEDURE [APIENTRY] WinQuerySysValue(hwndDesktop:  HWND;
  10908.                                                                     iSysValue:       LONG): LONG;
  10909.       PROCEDURE [APIENTRY] WinSetSysValue(hwndDesktop: HWND;
  10910.                                                                   iSysValue:     LONG;
  10911.                                                                   lValue:        LONG): BOOL;
  10912.  
  10913.       CONST SV_SWAPBUTTON            = 0;
  10914.       CONST SV_DBLCLKTIME            = 1;
  10915.       CONST SV_CXDBLCLK              = 2;
  10916.       CONST SV_CYDBLCLK              = 3;
  10917.       CONST SV_CXSIZEBORDER          = 4;
  10918.       CONST SV_CYSIZEBORDER          = 5;
  10919.       CONST SV_ALARM                 = 6;
  10920.  
  10921.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  10922.             CONST SV_RESERVEDFIRST1        = 7;
  10923.             CONST SV_RESERVEDLAST1         = 8;
  10924.    <* END *>
  10925.  
  10926.       CONST SV_CURSORRATE            = 9;
  10927.       CONST SV_FIRSTSCROLLRATE       = 10;
  10928.       CONST SV_SCROLLRATE            = 11;
  10929.       CONST SV_NUMBEREDLISTS         = 12;
  10930.       CONST SV_WARNINGFREQ           = 13;
  10931.       CONST SV_NOTEFREQ              = 14;
  10932.       CONST SV_ERRORFREQ             = 15;
  10933.       CONST SV_WARNINGDURATION       = 16;
  10934.       CONST SV_NOTEDURATION          = 17;
  10935.       CONST SV_ERRORDURATION         = 18;
  10936.  
  10937.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  10938.             CONST SV_RESERVEDFIRST         = 19;
  10939.             CONST SV_RESERVEDLAST          = 19;
  10940.    <* END *>
  10941.  
  10942.       CONST SV_CXSCREEN              = 20;
  10943.       CONST SV_CYSCREEN              = 21;
  10944.       CONST SV_CXVSCROLL             = 22;
  10945.       CONST SV_CYHSCROLL             = 23;
  10946.       CONST SV_CYVSCROLLARROW        = 24;
  10947.       CONST SV_CXHSCROLLARROW        = 25;
  10948.       CONST SV_CXBORDER              = 26;
  10949.       CONST SV_CYBORDER              = 27;
  10950.       CONST SV_CXDLGFRAME            = 28;
  10951.       CONST SV_CYDLGFRAME            = 29;
  10952.       CONST SV_CYTITLEBAR            = 30;
  10953.       CONST SV_CYVSLIDER             = 31;
  10954.       CONST SV_CXHSLIDER             = 32;
  10955.       CONST SV_CXMINMAXBUTTON        = 33;
  10956.       CONST SV_CYMINMAXBUTTON        = 34;
  10957.       CONST SV_CYMENU                = 35;
  10958.       CONST SV_CXFULLSCREEN          = 36;
  10959.       CONST SV_CYFULLSCREEN          = 37;
  10960.       CONST SV_CXICON                = 38;
  10961.       CONST SV_CYICON                = 39;
  10962.       CONST SV_CXPOINTER             = 40;
  10963.       CONST SV_CYPOINTER             = 41;
  10964.  
  10965.       CONST SV_DEBUG                 = 42;
  10966.       CONST SV_CMOUSEBUTTONS         = 43;
  10967.       CONST SV_CPOINTERBUTTONS       = 43;
  10968.       CONST SV_POINTERLEVEL          = 44;
  10969.       CONST SV_CURSORLEVEL           = 45;
  10970.       CONST SV_TRACKRECTLEVEL        = 46;
  10971.  
  10972.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  10973.             CONST SV_CTIMERS               = 47;
  10974.    <* END *>
  10975.  
  10976.       CONST SV_MOUSEPRESENT          = 48;
  10977.  
  10978.       CONST SV_CXBYTEALIGN           = 49;
  10979.       CONST SV_CXALIGN               = 49;
  10980.       CONST SV_CYBYTEALIGN           = 50;
  10981.       CONST SV_CYALIGN               = 50;
  10982.  
  10983.       (* The following value enables any greater value to be set by WinSetSysVlaue. *)
  10984.       (* Values of 51-55 are spare for extra non-settable system values             *)
  10985.       (* This is to enable the setting of SV_EXTRAKEYBEEP by applications.          *)
  10986.  
  10987.       CONST SV_NOTRESERVED           = 56;
  10988.       CONST SV_EXTRAKEYBEEP          = 57;
  10989.  
  10990.       (* The following system value controls whether PM controls the keyboard      *)
  10991.       (* lights for light key keystrokes (else applications will)                  *)
  10992.       CONST SV_SETLIGHTS             = 58;
  10993.       CONST SV_INSERTMODE            = 59;
  10994.  
  10995.  
  10996.       CONST SV_MENUROLLDOWNDELAY     = 64;
  10997.       CONST SV_MENUROLLUPDELAY       = 65;
  10998.       CONST SV_ALTMNEMONIC           = 66;
  10999.       CONST SV_TASKLISTMOUSEACCESS   = 67;
  11000.  
  11001.       CONST SV_CXICONTEXTWIDTH       = 68;
  11002.       CONST SV_CICONTEXTLINES        = 69;
  11003.  
  11004.       CONST SV_CHORDTIME             = 70;
  11005.       CONST SV_CXCHORD               = 71;
  11006.       CONST SV_CYCHORD               = 72;
  11007.       CONST SV_CXMOTIONSTART         = 73;
  11008.       CONST SV_CYMOTIONSTART         = 74;
  11009.  
  11010.       CONST SV_BEGINDRAG             = 75;
  11011.       CONST SV_ENDDRAG               = 76;
  11012.       CONST SV_SINGLESELECT          = 77;
  11013.       CONST SV_OPEN                  = 78;
  11014.       CONST SV_CONTEXTMENU           = 79;
  11015.       CONST SV_CONTEXTHELP           = 80;
  11016.       CONST SV_TEXTEDIT              = 81;
  11017.       CONST SV_BEGINSELECT           = 82;
  11018.       CONST SV_ENDSELECT             = 83;
  11019.  
  11020.       CONST SV_BEGINDRAGKB           = 84;
  11021.       CONST SV_ENDDRAGKB             = 85;
  11022.       CONST SV_SELECTKB              = 86;
  11023.       CONST SV_OPENKB                = 87;
  11024.       CONST SV_CONTEXTMENUKB         = 88;
  11025.       CONST SV_CONTEXTHELPKB         = 89;
  11026.       CONST SV_TEXTEDITKB            = 90;
  11027.       CONST SV_BEGINSELECTKB         = 91;
  11028.       CONST SV_ENDSELECTKB           = 92;
  11029.  
  11030.       CONST SV_ANIMATION             = 93;
  11031.       CONST SV_ANIMATIONSPEED        = 94;
  11032.  
  11033.       CONST SV_MONOICONS             = 95;
  11034.  
  11035.       CONST SV_KBDALTERED            = 96;
  11036.  
  11037.       CONST SV_PRINTSCREEN           = 97;
  11038.  
  11039.       CONST SV_CSYSVALUES            = 98;
  11040.  
  11041.  
  11042.       (*
  11043.       * Presentation parameter structures.
  11044.       *)
  11045.       TYPE PARAM = RECORD   (* param *)
  11046.             id:        ULONG;
  11047.             cb:        ULONG;
  11048.             ab:        ARRAY [0..0] OF BYTE;
  11049.       END;
  11050.       TYPE NPPARAM = POINTER TO PARAM;
  11051.       TYPE PPARAM  = POINTER TO PARAM;
  11052.  
  11053.       TYPE PRESPARAMS = RECORD   (* pres *)
  11054.             cb:      ULONG;
  11055.             aparam:  ARRAY [0..0] OF PARAM;
  11056.       END;
  11057.       TYPE NPPRESPARAMS = POINTER TO PRESPARAMS;
  11058.       TYPE PPRESPARAMS  = POINTER TO PRESPARAMS;
  11059.  
  11060.       (*
  11061.       * Presentation parameter APIs
  11062.       *)
  11063.       PROCEDURE [APIENTRY] WinSetPresParam(hwnd:  HWND;
  11064.                                                                     id:      ULONG;
  11065.                                                                     cbParam: ULONG;
  11066.                                                                     pbParam: PVOID): BOOL;
  11067.       PROCEDURE [APIENTRY] WinQueryPresParam(hwnd: HWND;
  11068.                                                                         id1:   ULONG;
  11069.                                                                         id2:   ULONG;
  11070.                                                                         pulId: PULONG;
  11071.                                                                         cbBuf: ULONG;
  11072.                                                                         pbBuf: PVOID;
  11073.                                                                         fs:    ULONG): ULONG;
  11074.       PROCEDURE [APIENTRY] WinRemovePresParam(hwnd:   HWND;
  11075.                                                                           id:       ULONG): BOOL;
  11076.  
  11077.       (*
  11078.       * Presentation parameter types.
  11079.       *)
  11080.  
  11081.       CONST PP_FOREGROUNDCOLOR                    = 1;
  11082.       CONST PP_FOREGROUNDCOLORINDEX               = 2;
  11083.       CONST PP_BACKGROUNDCOLOR                    = 3;
  11084.       CONST PP_BACKGROUNDCOLORINDEX               = 4;
  11085.       CONST PP_HILITEFOREGROUNDCOLOR              = 5;
  11086.       CONST PP_HILITEFOREGROUNDCOLORINDEX         = 6;
  11087.       CONST PP_HILITEBACKGROUNDCOLOR              = 7;
  11088.       CONST PP_HILITEBACKGROUNDCOLORINDEX         = 8;
  11089.       CONST PP_DISABLEDFOREGROUNDCOLOR            = 9;
  11090.       CONST PP_DISABLEDFOREGROUNDCOLORINDEX       = 10;
  11091.       CONST PP_DISABLEDBACKGROUNDCOLOR            = 11;
  11092.       CONST PP_DISABLEDBACKGROUNDCOLORINDEX       = 12;
  11093.       CONST PP_BORDERCOLOR                        = 13;
  11094.       CONST PP_BORDERCOLORINDEX                   = 14;
  11095.       CONST PP_FONTNAMESIZE                       = 15;
  11096.       CONST PP_FONTHANDLE                         = 16;
  11097.       CONST PP_RESERVED                           = 17;
  11098.       CONST PP_ACTIVECOLOR                        = 18;
  11099.       CONST PP_ACTIVECOLORINDEX                   = 19;
  11100.       CONST PP_INACTIVECOLOR                      = 20;
  11101.       CONST PP_INACTIVECOLORINDEX                 = 21;
  11102.       CONST PP_ACTIVETEXTFGNDCOLOR                = 22;
  11103.       CONST PP_ACTIVETEXTFGNDCOLORINDEX           = 23;
  11104.       CONST PP_ACTIVETEXTBGNDCOLOR                = 24;
  11105.       CONST PP_ACTIVETEXTBGNDCOLORINDEX           = 25;
  11106.       CONST PP_INACTIVETEXTFGNDCOLOR              = 26;
  11107.       CONST PP_INACTIVETEXTFGNDCOLORINDEX         = 27;
  11108.       CONST PP_INACTIVETEXTBGNDCOLOR              = 28;
  11109.       CONST PP_INACTIVETEXTBGNDCOLORINDEX         = 29;
  11110.       CONST PP_SHADOW                             = 30;
  11111.       CONST PP_MENUFOREGROUNDCOLOR                = 31;
  11112.       CONST PP_MENUFOREGROUNDCOLORINDEX           = 32;
  11113.       CONST PP_MENUBACKGROUNDCOLOR                = 33;
  11114.       CONST PP_MENUBACKGROUNDCOLORINDEX           = 34;
  11115.       CONST PP_MENUHILITEFGNDCOLOR                = 35;
  11116.       CONST PP_MENUHILITEFGNDCOLORINDEX           = 36;
  11117.       CONST PP_MENUHILITEBGNDCOLOR                = 37;
  11118.       CONST PP_MENUHILITEBGNDCOLORINDEX           = 38;
  11119.       CONST PP_MENUDISABLEDFGNDCOLOR              = 39;
  11120.       CONST PP_MENUDISABLEDFGNDCOLORINDEX         = 40;
  11121.       CONST PP_MENUDISABLEDBGNDCOLOR              = 41;
  11122.       CONST PP_MENUDISABLEDBGNDCOLORINDEX         = 42;
  11123.  
  11124.       CONST PP_USER                               = 08000H;
  11125.  
  11126.       (*
  11127.       * Flags for WinQueryPresParams()
  11128.       *)
  11129.       CONST QPF_NOINHERIT            = 00001H; (* Don't inherit                      *)
  11130.       CONST QPF_ID1COLORINDEX        = 00002H; (* Convert id1 color index into RGB   *)
  11131.       CONST QPF_ID2COLORINDEX        = 00004H; (* Convert id2 color index into RGB   *)
  11132.       CONST QPF_PURERGBCOLOR         = 00008H; (* Return pure RGB colors             *)
  11133.       CONST QPF_VALIDFLAGS           = 0000FH; (* Valid WinQueryPresParams() flags.  *)
  11134.  
  11135.       (*** System color functions *)
  11136.  
  11137.       PROCEDURE [APIENTRY] WinQuerySysColor(hwndDesktop: HWND;
  11138.                                                                     clr:            LONG;
  11139.                                                                     lReserved:      LONG): LONG;
  11140.       PROCEDURE [APIENTRY] WinSetSysColors(hwndDesktop:  HWND;
  11141.                                                                   flOptions:  ULONG;
  11142.                                                                   flFormat:   ULONG;
  11143.                                                                   clrFirst:   LONG;
  11144.                                                                   cclr:       ULONG;
  11145.                                                                   pclr:       PLONG): BOOL;
  11146.  
  11147.       CONST SYSCLR_SHADOWHILITEBGND        = (-50);
  11148.       CONST SYSCLR_SHADOWHILITEFGND        = (-49);
  11149.       CONST SYSCLR_SHADOWTEXT              = (-48);
  11150.       CONST SYSCLR_ENTRYFIELD              = (-47);
  11151.       CONST SYSCLR_MENUDISABLEDTEXT        = (-46);
  11152.       CONST SYSCLR_MENUHILITE              = (-45);
  11153.       CONST SYSCLR_MENUHILITEBGND          = (-44);
  11154.       CONST SYSCLR_PAGEBACKGROUND          = (-43);
  11155.       CONST SYSCLR_FIELDBACKGROUND         = (-42);
  11156.       CONST SYSCLR_BUTTONLIGHT             = (-41);
  11157.       CONST SYSCLR_BUTTONMIDDLE            = (-40);
  11158.       CONST SYSCLR_BUTTONDARK              = (-39);
  11159.       CONST SYSCLR_BUTTONDEFAULT           = (-38);
  11160.       CONST SYSCLR_TITLEBOTTOM             = (-37);
  11161.       CONST SYSCLR_SHADOW                  = (-36);
  11162.       CONST SYSCLR_ICONTEXT                = (-35);
  11163.       CONST SYSCLR_DIALOGBACKGROUND        = (-34);
  11164.       CONST SYSCLR_HILITEFOREGROUND        = (-33);
  11165.       CONST SYSCLR_HILITEBACKGROUND        = (-32);
  11166.       CONST SYSCLR_INACTIVETITLETEXTBGND   = (-31);
  11167.       CONST SYSCLR_ACTIVETITLETEXTBGND     = (-30);
  11168.       CONST SYSCLR_INACTIVETITLETEXT       = (-29);
  11169.       CONST SYSCLR_ACTIVETITLETEXT         = (-28);
  11170.       CONST SYSCLR_OUTPUTTEXT              = (-27);
  11171.       CONST SYSCLR_WINDOWSTATICTEXT        = (-26);
  11172.       CONST SYSCLR_SCROLLBAR               = (-25);
  11173.       CONST SYSCLR_BACKGROUND              = (-24);
  11174.       CONST SYSCLR_ACTIVETITLE             = (-23);
  11175.       CONST SYSCLR_INACTIVETITLE           = (-22);
  11176.       CONST SYSCLR_MENU                    = (-21);
  11177.       CONST SYSCLR_WINDOW                  = (-20);
  11178.       CONST SYSCLR_WINDOWFRAME             = (-19);
  11179.       CONST SYSCLR_MENUTEXT                = (-18);
  11180.       CONST SYSCLR_WINDOWTEXT              = (-17);
  11181.       CONST SYSCLR_TITLETEXT               = (-16);
  11182.       CONST SYSCLR_ACTIVEBORDER            = (-15);
  11183.       CONST SYSCLR_INACTIVEBORDER          = (-14);
  11184.       CONST SYSCLR_APPWORKSPACE            = (-13);
  11185.       CONST SYSCLR_HELPBACKGROUND          = (-12);
  11186.       CONST SYSCLR_HELPTEXT                = (-11);
  11187.       CONST SYSCLR_HELPHILITE              = (-10);
  11188.  
  11189.       CONST SYSCLR_CSYSCOLORS              = 41;
  11190.  
  11191. <* END *>
  11192.  
  11193.  
  11194. <* IF DEFINED (INCL_WINTIMER)  THEN *>
  11195.       (**** Timer manager *)
  11196.  
  11197.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  11198.  
  11199.  
  11200.             PROCEDURE [APIENTRY] WinStartTimer(hab:     HAB;
  11201.                                                                       hwnd:      HWND;
  11202.                                                                       idTimer:   ULONG;
  11203.                                                                       dtTimeout: ULONG): ULONG;
  11204.             PROCEDURE [APIENTRY] WinStopTimer(hab:    HAB;
  11205.                                                                       hwnd:    HWND;
  11206.                                                                       idTimer: ULONG): BOOL;
  11207.  
  11208.  
  11209.             PROCEDURE [APIENTRY] WinGetCurrentTime(hab: HAB): ULONG;
  11210.  
  11211.             CONST TID_CURSOR          = 0ffffH;  (* Reserved cursor timer ID              *)
  11212.             CONST TID_SCROLL          = 0fffeH;  (* Reserved scrolling timer ID           *)
  11213.             CONST TID_FLASHWINDOW     = 0fffdH;  (* Reserved for window flashing timer ID *)
  11214.             CONST TID_USERMAX         = 07fffH;  (* Maximum user timer ID                 *)
  11215.    <* END *>
  11216.  
  11217. <* END *>
  11218.  
  11219. TYPE HACCEL = LHANDLE; (* haccel *)
  11220.  
  11221. <* IF DEFINED (INCL_WINACCELERATORS)  THEN *>
  11222.       (**** Accelerator functions *)
  11223.  
  11224.       (* ACCEL fs bits
  11225.       *
  11226.       * NOTE: the first six AF_ code bits have the same value
  11227.       * as their KC_ counterparts
  11228.       *)
  11229.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  11230.             CONST AF_CHAR                    = 00001H;
  11231.             CONST AF_VIRTUALKEY              = 00002H;
  11232.             CONST AF_SCANCODE                = 00004H;
  11233.             CONST AF_SHIFT                   = 00008H;
  11234.             CONST AF_CONTROL                 = 00010H;
  11235.             CONST AF_ALT                     = 00020H;
  11236.             CONST AF_LONEKEY                 = 00040H;
  11237.             CONST AF_SYSCOMMAND              = 00100H;
  11238.             CONST AF_HELP                    = 00200H;
  11239.    <* END *>
  11240.  
  11241.       --#pragma pack(2) (* force structure alignment packing *)
  11242.  
  11243.       (* Binary resources may be bound into application executables or *)
  11244.       (* passed as a parameter when creating a window or dialog        *)
  11245.       (* Currently they must be the same for both 16-bit and 32-bit    *)
  11246.       (* so we pack the structures.                                    *)
  11247.       TYPE ACCEL = RECORD   (* acc *)
  11248.             fs:        USHORT;
  11249.             key:       USHORT;
  11250.             cmd:       USHORT;
  11251.       END;
  11252.       TYPE PACCEL = POINTER TO ACCEL;
  11253.  
  11254.       (* Binary resources may be bound into application executables or *)
  11255.       (* passed as a parameter when creating a window or dialog        *)
  11256.       (* Currently they must be the same for both 16-bit and 32-bit    *)
  11257.       (* so we pack the structures.                                    *)
  11258.       TYPE ACCELTABLE = RECORD   (* acct  *)
  11259.             cAccel:         USHORT;
  11260.             codepage:       USHORT;
  11261.             aaccel:         ARRAY [0..0] OF ACCEL;
  11262.       END;
  11263.       TYPE PACCELTABLE = POINTER TO ACCELTABLE;
  11264.  
  11265.       --#pragma pack()  (* restore packing to default *)
  11266.  
  11267.       PROCEDURE [APIENTRY] WinLoadAccelTable(hab:  HAB;
  11268.                                                                           hmod:  HMODULE;
  11269.                                                                           idAccelTable: ULONG): HACCEL;
  11270.       PROCEDURE [APIENTRY] WinCopyAccelTable(haccel:    HACCEL;
  11271.                                                                         pAccelTable: PACCELTABLE;
  11272.                                                                         cbCopyMax:   ULONG): ULONG;
  11273.       PROCEDURE [APIENTRY] WinCreateAccelTable(hab: HAB;
  11274.                                                                               pAccelTable: PACCELTABLE): HACCEL;
  11275.       PROCEDURE [APIENTRY] WinDestroyAccelTable(haccel: HACCEL): BOOL;
  11276.       PROCEDURE [APIENTRY] WinTranslateAccel(hab:   HAB;
  11277.                                                                           hwnd:   HWND;
  11278.                                                                           haccel: HACCEL;
  11279.                                                                           pqmsg:  PQMSG): BOOL;
  11280.       PROCEDURE [APIENTRY] WinSetAccelTable(hab:      HAB;
  11281.                                                                         haccel:    HACCEL;
  11282.                                                                         hwndFrame: HWND): BOOL;
  11283.       PROCEDURE [APIENTRY] WinQueryAccelTable(hab:      HAB;
  11284.                                                                             hwndFrame: HWND): HACCEL;
  11285.  
  11286. <* END *>
  11287.  
  11288. (**** Extended Attribute Flags (Association Table) *)
  11289.  
  11290. CONST EAF_DEFAULTOWNER           = 00001H;
  11291. CONST EAF_UNCHANGEABLE           = 00002H;
  11292. CONST EAF_REUSEICON              = 00004H;
  11293.  
  11294. (*** WinTrackRect() information *)
  11295.  
  11296. <* IF DEFINED (INCL_WINTRACKRECT)  THEN *>
  11297.  
  11298.       (* WinTrackRect() tracking information structure *)
  11299.  
  11300.       TYPE TRACKINFO = RECORD   (* ti *)
  11301.             cxBorder:      LONG;
  11302.             cyBorder:      LONG;
  11303.             cxGrid:        LONG;
  11304.             cyGrid:        LONG;
  11305.             cxKeyboard:    LONG;
  11306.             cyKeyboard:    LONG;
  11307.             rclTrack:      RECTL;
  11308.             rclBoundary:   RECTL;
  11309.             ptlMinTrackSize:  POINTL;
  11310.             ptlMaxTrackSize:  POINTL;
  11311.             fs:            ULONG;
  11312.       END;
  11313.       TYPE PTRACKINFO = POINTER TO TRACKINFO;
  11314.  
  11315.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  11316.             PROCEDURE [APIENTRY] WinTrackRect(hwnd:  HWND;
  11317.                                                                   hps:      HPS;
  11318.                                                                   pti:      PTRACKINFO): BOOL;
  11319.             PROCEDURE [APIENTRY] WinShowTrackRect(hwnd: HWND;
  11320.                                                                           fShow:   BOOL): BOOL;
  11321.  
  11322.             (* WinTrackRect() flags *)
  11323.  
  11324.             CONST TF_LEFT                    = 00001H;
  11325.             CONST TF_TOP                     = 00002H;
  11326.             CONST TF_RIGHT                   = 00004H;
  11327.             CONST TF_BOTTOM                  = 00008H;
  11328.             (* TF_MOVE = TF_LEFT | TF_TOP | TF_RIGHT | TF_BOTTOM *)
  11329.             CONST TF_MOVE                    = 0000FH;
  11330.  
  11331.             CONST TF_SETPOINTERPOS           = 00010H;
  11332.             CONST TF_GRID                    = 00020H;
  11333.             CONST TF_STANDARD                = 00040H;
  11334.             CONST TF_ALLINBOUNDARY           = 00080H;
  11335.             CONST TF_VALIDATETRACKRECT       = 00100H;
  11336.             CONST TF_PARTINBOUNDARY          = 00200H;
  11337.  
  11338.    <* END *>
  11339.  
  11340. <* END *>
  11341.  
  11342.  
  11343. (**** Clipboard Manager *)
  11344.  
  11345. <* IF DEFINED (INCL_WINCLIPBOARD) OR DEFINED (INCL_WINDDE)  THEN *>
  11346.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  11347.  
  11348.             (* Clipboard messages *)
  11349.  
  11350.             CONST WM_RENDERFMT               = 00060H;
  11351.             CONST WM_RENDERALLFMTS           = 00061H;
  11352.             CONST WM_DESTROYCLIPBOARD        = 00062H;
  11353.             CONST WM_PAINTCLIPBOARD          = 00063H;
  11354.             CONST WM_SIZECLIPBOARD           = 00064H;
  11355.             CONST WM_HSCROLLCLIPBOARD        = 00065H;
  11356.             CONST WM_VSCROLLCLIPBOARD        = 00066H;
  11357.             CONST WM_DRAWCLIPBOARD           = 00067H;
  11358.  
  11359.             (*
  11360.             * Standard Clipboard formats
  11361.             *)
  11362.             CONST CF_TEXT                   = 1;
  11363.             CONST CF_BITMAP                 = 2;
  11364.             CONST CF_DSPTEXT                = 3;
  11365.             CONST CF_DSPBITMAP              = 4;
  11366.             CONST CF_METAFILE               = 5;
  11367.             CONST CF_DSPMETAFILE            = 6;
  11368.             CONST CF_PALETTE                = 9;
  11369.             CONST CF_MMPMFIRST              =10;
  11370.             CONST CF_MMPMLAST               =19;
  11371.             (*
  11372.             * standard DDE and clipboard format stings
  11373.             *)
  11374.             CONST SZFMT_TEXT                  = "#1";
  11375.             CONST SZFMT_BITMAP                = "#2";
  11376.             CONST SZFMT_DSPTEXT               = "#3";
  11377.             CONST SZFMT_DSPBITMAP             = "#4";
  11378.             CONST SZFMT_METAFILE              = "#5";
  11379.             CONST SZFMT_DSPMETAFILE           = "#6";
  11380.             CONST SZFMT_PALETTE               = "#9";
  11381.             CONST SZFMT_SYLK                  = "Sylk";
  11382.             CONST SZFMT_DIF                   = "Dif";
  11383.             CONST SZFMT_TIFF                  = "Tiff";
  11384.             CONST SZFMT_OEMTEXT               = "OemText";
  11385.             CONST SZFMT_DIB                   = "Dib";
  11386.             CONST SZFMT_OWNERDISPLAY          = "OwnerDisplay";
  11387.             CONST SZFMT_LINK                  = "Link";
  11388.             CONST SZFMT_METAFILEPICT          = "MetaFilePict";
  11389.             CONST SZFMT_DSPMETAFILEPICT       = "DspMetaFilePict";
  11390.             CONST SZFMT_CPTEXT                = "Codepage Text";
  11391.             CONST SZDDEFMT_RTF                = "Rich Text Format";
  11392.             CONST SZDDEFMT_PTRPICT            = "Printer_Picture";
  11393.  
  11394.             --#pragma pack(2) (* force structure alignment packing *)
  11395.  
  11396.             (* Metafiles are the same no matter whether they are used in     *)
  11397.             (* 16-bit or 32-bit applications. While not strictly necessary   *)
  11398.             (* because of inherent alignment we force packing on a 2 byte    *)
  11399.             (* boundary to avoid any confusion.                              *)
  11400.             TYPE MFP = RECORD   (* mfp *)
  11401.                   sizeBounds:   POINTL;         (* metafile notional grid size      *)
  11402.                   sizeMM:       POINTL;         (* metafile size high metric units  *)
  11403.                   cbLength:     ULONG;         (* length of metafile data          *)
  11404.                   mapMode:      USHORT;         (* a PM metaflie map mode           *)
  11405.                   reserved:     USHORT;
  11406.                   abData:       ARRAY [0..0] OF BYTE; (* metafile Data                    *)
  11407.             END;
  11408.             TYPE PMFP = POINTER TO MFP;
  11409.  
  11410.             (* CPTEXT DDE data are the same no matter whether they are used  *)
  11411.             (* in 16-bit or 32-bit applications. While not strictly necessary*)
  11412.             (* because of inherent alignment we force packing on a 2 byte    *)
  11413.             (* boundary to avoid any confusion.                              *)
  11414.             TYPE CPTEXT = RECORD   (* cptxt *)
  11415.                   idCountry:   USHORT;
  11416.                   usCodepage:  USHORT;
  11417.                   usLangID:    USHORT;
  11418.                   usSubLangID: USHORT;
  11419.                   abText:      ARRAY [0..0] OF BYTE; (* text string starts here          *)
  11420.             END;
  11421.             TYPE PCPTEXT = POINTER TO CPTEXT;
  11422.  
  11423.             -- #pragma pack()  (* restore packing to default *)
  11424.  
  11425.    <* END *>
  11426. <* END *>
  11427.  
  11428. <* IF DEFINED (INCL_WINCLIPBOARD)  THEN *>
  11429.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  11430.             PROCEDURE [APIENTRY] WinSetClipbrdOwner(hab:   HAB;
  11431.                                                                                   hwnd:   HWND): BOOL;
  11432.             PROCEDURE [APIENTRY] WinSetClipbrdData(hab:     HAB;
  11433.                                                                                 ulData:   ULONG;
  11434.                                                                                 fmt:      ULONG;
  11435.                                                                                 rgfFmtInfo: ULONG): BOOL;
  11436.             PROCEDURE [APIENTRY] WinQueryClipbrdData(hab: HAB;
  11437.                                                                                     fmt:  ULONG): ULONG;
  11438.             PROCEDURE [APIENTRY] WinQueryClipbrdFmtInfo(hab:   HAB;
  11439.                                                                                           fmt:    ULONG;
  11440.                                                                                           prgfFmtInfo: PULONG): BOOL;
  11441.             PROCEDURE [APIENTRY] WinSetClipbrdViewer(hab:              HAB;
  11442.                                                                                     hwndNewClipViewer: HWND): BOOL;
  11443.  
  11444.             (* WinSetClipbrdData() flags *)
  11445.  
  11446.             CONST CFI_OWNERFREE              = 00001H;
  11447.             CONST CFI_OWNERDISPLAY           = 00002H;
  11448.             CONST CFI_POINTER                = 00400H;
  11449.             CONST CFI_HANDLE                 = 00200H;
  11450.  
  11451.    <* END *>
  11452.  
  11453.       PROCEDURE [APIENTRY] WinEnumClipbrdFmts(hab: HAB;
  11454.                                                                           fmt:   ULONG): ULONG;
  11455.       PROCEDURE [APIENTRY] WinEmptyClipbrd(hab: HAB): BOOL;
  11456.       PROCEDURE [APIENTRY] WinOpenClipbrd(hab: HAB): BOOL;
  11457.       PROCEDURE [APIENTRY] WinCloseClipbrd(hab: HAB): BOOL;
  11458.  
  11459.       PROCEDURE [APIENTRY] WinQueryClipbrdOwner(hab: HAB): HWND;
  11460.       PROCEDURE [APIENTRY] WinQueryClipbrdViewer(hab: HAB): HWND;
  11461.  
  11462. <* END *>
  11463.  
  11464.  
  11465. <* IF DEFINED (INCL_WINCURSORS) OR NOT DEFINED (INCL_NOCOMMON)  THEN *>
  11466.       (**** Cursor manager common subsection *)
  11467.  
  11468.       PROCEDURE [APIENTRY] WinDestroyCursor(hwnd: HWND): BOOL;
  11469.       PROCEDURE [APIENTRY] WinShowCursor(hwnd:  HWND;
  11470.                                                               fShow:    BOOL): BOOL;
  11471.       PROCEDURE [APIENTRY] WinCreateCursor(hwnd:   HWND;
  11472.                                                                   x:         LONG;
  11473.                                                                   y:         LONG;
  11474.                                                                   cx:        LONG;
  11475.                                                                   cy:        LONG;
  11476.                                                                   fs:        ULONG;
  11477.                                                                   prclClip:  PRECTL): BOOL;
  11478.  
  11479.       (* WinCreateCursor() flags *)
  11480.  
  11481.       CONST CURSOR_SOLID               = 00000H;
  11482.       CONST CURSOR_HALFTONE            = 00001H;
  11483.       CONST CURSOR_FRAME               = 00002H;
  11484.       CONST CURSOR_FLASH               = 00004H;
  11485.       CONST CURSOR_SETPOS              = 08000H;
  11486.  
  11487.  
  11488. <* END *>
  11489.  
  11490. <* IF DEFINED (INCL_WINCURSORS)  THEN *>
  11491.  
  11492.       TYPE CURSORINFO = RECORD   (* csri *)
  11493.             hwnd:  HWND;
  11494.             x:     LONG;
  11495.             y:     LONG;
  11496.             cx:    LONG;
  11497.             cy:    LONG;
  11498.             fs:    ULONG;
  11499.             rclClip:  RECTL;
  11500.       END;
  11501.       TYPE PCURSORINFO = POINTER TO CURSORINFO;
  11502.  
  11503.       PROCEDURE [APIENTRY] WinQueryCursorInfo(hwndDesktop: HWND;
  11504.                                                                         pCursorInfo: PCURSORINFO): BOOL;
  11505.  
  11506. <* END *>
  11507.  
  11508. TYPE HPOINTER = LHANDLE;
  11509.  
  11510. <* IF DEFINED (INCL_WINPOINTERS)  THEN *>
  11511.       (**** Pointer manager *)
  11512.  
  11513.       PROCEDURE [APIENTRY] WinSetPointer(hwndDesktop: HWND;
  11514.                                                                       hptrNew:    HPOINTER): BOOL;
  11515.       PROCEDURE [APIENTRY] WinSetPointerOwner(hptr:      HPOINTER;
  11516.                                                                                 pid:      PID;
  11517.                                                                                 fDestroy: BOOL): BOOL;
  11518.       PROCEDURE [APIENTRY] WinShowPointer(hwndDesktop: HWND;
  11519.                                                                         fShow:      BOOL): BOOL;
  11520.       PROCEDURE [APIENTRY] WinLockPointerUpdate(hwndDesktop:  HWND;
  11521.                                                                                     hptrNew:     HPOINTER;
  11522.                                                                                     ulTimeInterval: ULONG): BOOL;
  11523.       PROCEDURE [APIENTRY] WinQuerySysPointer(hwndDesktop:  HWND;
  11524.                                                                                 iptr:        LONG;
  11525.                                                                                 fLoad:       BOOL): HPOINTER;
  11526.  
  11527.       PROCEDURE [APIENTRY] WinQuerySysPointerData(hwndDesktop: HWND;
  11528.                                                                                 iptr:        ULONG;
  11529.                                                                                 pIconInfo:   PICONINFO): BOOL;
  11530.       PROCEDURE [APIENTRY] WinSetSysPointerData(hwndDesktop: HWND;
  11531.                                                                             iptr:           ULONG;
  11532.                                                                             pIconInfo:      PICONINFO): BOOL;
  11533.  
  11534.       (* System pointers (NOTE: these are 1-based) *)
  11535.  
  11536.       CONST SPTR_ARROW               =  1;
  11537.       CONST SPTR_TEXT                =  2;
  11538.       CONST SPTR_WAIT                =  3;
  11539.       CONST SPTR_SIZE                =  4;
  11540.       CONST SPTR_MOVE                =  5;
  11541.       CONST SPTR_SIZENWSE            =  6;
  11542.       CONST SPTR_SIZENESW            =  7;
  11543.       CONST SPTR_SIZEWE              =  8;
  11544.       CONST SPTR_SIZENS              =  9;
  11545.       CONST SPTR_APPICON             =  10;
  11546.  
  11547.       CONST SPTR_ICONINFORMATION     =  11;
  11548.       CONST SPTR_ICONQUESTION        =  12;
  11549.       CONST SPTR_ICONERROR           =  13;
  11550.       CONST SPTR_ICONWARNING         =  14;
  11551.  
  11552.       CONST SPTR_ILLEGAL             =  18;
  11553.       CONST SPTR_FILE                =  19;
  11554.       CONST SPTR_FOLDER              =  20;
  11555.       CONST SPTR_MULTFILE            =  21;
  11556.       CONST SPTR_PROGRAM             =  22;
  11557.       CONST SPTR_DISPLAY_PTRS        =  22;
  11558.       CONST SPTR_PENFIRST            =  23;
  11559.       CONST SPTR_PENLAST             =  39;
  11560.       CONST SPTR_CPTR                =  39;  (* total # of system pointers *)
  11561.  
  11562.       (* backward compatibility *)
  11563.       CONST SPTR_HANDICON       =  SPTR_ICONERROR;
  11564.       CONST SPTR_QUESICON       =  SPTR_ICONQUESTION;
  11565.       CONST SPTR_BANGICON       =  SPTR_ICONWARNING;
  11566.       CONST SPTR_NOTEICON       =  SPTR_ICONINFORMATION;
  11567.  
  11568.  
  11569.       PROCEDURE [APIENTRY] WinLoadPointer(hwndDesktop: HWND;
  11570.                                                                         hmod:       HMODULE;
  11571.                                                                         idres:      ULONG): HPOINTER;
  11572.       PROCEDURE [APIENTRY] WinCreatePointer(hwndDesktop: HWND;
  11573.                                                                             hbmPointer: HBITMAP;
  11574.                                                                             fPointer:   BOOL;
  11575.                                                                             xHotspot:   LONG;
  11576.                                                                             yHotspot:   LONG): HPOINTER;
  11577.       PROCEDURE [APIENTRY] WinSetPointerPos(hwndDesktop: HWND;
  11578.                                                                             x:          LONG;
  11579.                                                                             y:          LONG): BOOL;
  11580.       PROCEDURE [APIENTRY] WinDestroyPointer(hptr: HPOINTER): BOOL;
  11581.  
  11582.       PROCEDURE [APIENTRY] WinQueryPointer(hwndDesktop: HWND): HPOINTER;
  11583.       PROCEDURE [APIENTRY] WinQueryPointerPos(hwndDesktop: HWND;
  11584.                                                                                 pptl:       PPOINTL): BOOL;
  11585.  
  11586.       TYPE POINTERINFO = RECORD   (* ptri *)
  11587.             fPointer:        ULONG;
  11588.             xHotspot:        LONG;
  11589.             yHotspot:        LONG;
  11590.             hbmPointer:      HBITMAP;
  11591.             hbmColor:        HBITMAP;
  11592.             hbmMiniPointer:  HBITMAP;
  11593.             hbmMiniColor:    HBITMAP;
  11594.       END;
  11595.       TYPE PPOINTERINFO = POINTER TO POINTERINFO;
  11596.  
  11597.       PROCEDURE [APIENTRY] WinCreatePointerIndirect(hwndDesktop:  HWND;
  11598.                                                                                             pptri: PPOINTERINFO): HPOINTER;
  11599.       PROCEDURE [APIENTRY] WinQueryPointerInfo(hptr:            HPOINTER;
  11600.                                                                                   pPointerInfo: PPOINTERINFO): BOOL;
  11601.       PROCEDURE [APIENTRY] WinDrawPointer(hps:    HPS;
  11602.                                                                         x:     LONG;
  11603.                                                                         y:     LONG;
  11604.                                                                         hptr:  HPOINTER;
  11605.                                                                         fs:    ULONG): BOOL;
  11606.  
  11607.  
  11608.  
  11609.       (* WinDrawPointer() constants *)
  11610.  
  11611.       CONST DP_NORMAL                  = 00000H;
  11612.       CONST DP_HALFTONED               = 00001H;
  11613.       CONST DP_INVERTED                = 00002H;
  11614.  
  11615.  
  11616.       PROCEDURE [APIENTRY] WinGetSysBitmap(hwndDesktop:   HWND;
  11617.                                                                         ibm:           ULONG): HBITMAP;
  11618.  
  11619.       (* System bitmaps (NOTE: these are 1-based) *)
  11620.  
  11621.       CONST SBMP_OLD_SYSMENU         =  1;
  11622.       CONST SBMP_OLD_SBUPARROW       =  2;
  11623.       CONST SBMP_OLD_SBDNARROW       =  3;
  11624.       CONST SBMP_OLD_SBRGARROW       =  4;
  11625.       CONST SBMP_OLD_SBLFARROW       =  5;
  11626.       CONST SBMP_MENUCHECK           =  6;
  11627.       CONST SBMP_OLD_CHECKBOXES      =  7;
  11628.       CONST SBMP_BTNCORNERS          =  8;
  11629.       CONST SBMP_OLD_MINBUTTON       =  9;
  11630.       CONST SBMP_OLD_MAXBUTTON       =  10;
  11631.       CONST SBMP_OLD_RESTOREBUTTON   =  11;
  11632.       CONST SBMP_OLD_CHILDSYSMENU    =  12;
  11633.       CONST SBMP_DRIVE               =  15;
  11634.       CONST SBMP_FILE                =  16;
  11635.       CONST SBMP_FOLDER              =  17;
  11636.       CONST SBMP_TREEPLUS            =  18;
  11637.       CONST SBMP_TREEMINUS           =  19;
  11638.       CONST SBMP_PROGRAM             =  22;
  11639.       CONST SBMP_MENUATTACHED        =  23;
  11640.       CONST SBMP_SIZEBOX             =  24;
  11641.  
  11642.       CONST SBMP_SYSMENU             =  25;
  11643.       CONST SBMP_MINBUTTON           =  26;
  11644.       CONST SBMP_MAXBUTTON           =  27;
  11645.       CONST SBMP_RESTOREBUTTON       =  28;
  11646.       CONST SBMP_CHILDSYSMENU        =  29;
  11647.       CONST SBMP_SYSMENUDEP          =  30;
  11648.       CONST SBMP_MINBUTTONDEP        =  31;
  11649.       CONST SBMP_MAXBUTTONDEP        =  32;
  11650.       CONST SBMP_RESTOREBUTTONDEP    =  33;
  11651.       CONST SBMP_CHILDSYSMENUDEP     =  34;
  11652.       CONST SBMP_SBUPARROW           =  35;
  11653.       CONST SBMP_SBDNARROW           =  36;
  11654.       CONST SBMP_SBLFARROW           =  37;
  11655.       CONST SBMP_SBRGARROW           =  38;
  11656.       CONST SBMP_SBUPARROWDEP        =  39;
  11657.       CONST SBMP_SBDNARROWDEP        =  40;
  11658.       CONST SBMP_SBLFARROWDEP        =  41;
  11659.       CONST SBMP_SBRGARROWDEP        =  42;
  11660.       CONST SBMP_SBUPARROWDIS        =  43;
  11661.       CONST SBMP_SBDNARROWDIS        =  44;
  11662.       CONST SBMP_SBLFARROWDIS        =  45;
  11663.       CONST SBMP_SBRGARROWDIS        =  46;
  11664.       CONST SBMP_COMBODOWN           =  47;
  11665.       CONST SBMP_CHECKBOXES       = 48;
  11666.  
  11667. <* END *>
  11668.  
  11669.  
  11670. (**** Hook manager *)
  11671.  
  11672. <* IF DEFINED (INCL_WINHOOKS)  THEN *>
  11673.  
  11674.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  11675.             PROCEDURE [APIENTRY] WinSetHook(hab:  HAB;
  11676.                                                               hmq:     HMQ;
  11677.                                                               iHook:   LONG;
  11678.                                                               pfnHook: PFN;
  11679.                                                               hmod:    HMODULE): BOOL;
  11680.             PROCEDURE [APIENTRY] WinReleaseHook(hab:  HAB;
  11681.                                                                       hmq:     HMQ;
  11682.                                                                       iHook:   LONG;
  11683.                                                                       pfnHook: PFN;
  11684.                                                                       hmod:    HMODULE): BOOL;
  11685.             PROCEDURE [APIENTRY] WinCallMsgFilter(hab: HAB;
  11686.                                                                           pqmsg:  PQMSG;
  11687.                                                                           msgf:   ULONG): BOOL;
  11688.  
  11689.  
  11690.             (**********************************************************************
  11691.             * Hook codes
  11692.             *
  11693.             * Whether the hook receives a (U)SHORT or (U)LONG parameter depends
  11694.             * on the memory model that the hook executes in. 32-bit hook will
  11695.             * receive long parameters
  11696.             *
  11697.             **********************************************************************)
  11698.  
  11699.             CONST HK_SENDMSG              =   0;
  11700.             (* VOID PROCEDURE [EXPENTRY] SendMsgHook(HAB hab;               ** installer's hab
  11701.             *                            PSMHSTRUCT psmh;       ** p send msg struct
  11702.             *                            BOOL fInterTask);      ** between threads *)
  11703.  
  11704.             CONST HK_INPUT                =   1;
  11705.             (* BOOL PROCEDURE [EXPENTRY] InputHook(HAB hab;                 ** installer's hab
  11706.             *                          PQMSG pQmsg;             ** p qmsg
  11707.             *                          ULONG/USHORT fs);        ** remove/noremove *)
  11708.  
  11709.             CONST HK_MSGFILTER            =   2;
  11710.             (* BOOL PROCEDURE [EXPENTRY] MsgFilterHook(HAB hab;             ** installer's hab
  11711.             *                              PQMSG pQmsg;         ** p qmsg
  11712.             *                              ULONG/USHORT msgf);  ** filter flag *)
  11713.  
  11714.             CONST HK_JOURNALRECORD        =   3;
  11715.             (* VOID PROCEDURE [EXPENTRY] JournalRecordHook(HAB hab;         ** installer's hab
  11716.             *                                  PQMSG pQmsg);    ** p qmsg *)
  11717.  
  11718.             CONST HK_JOURNALPLAYBACK      =   4;
  11719.             (* ULONG PROCEDURE [EXPENTRY] JournalPlaybackHook(HAB hab;      **installer's hab
  11720.             *                                     BOOL fSkip;   ** skip messages
  11721.             *                                     PQMSG pQmsg); ** p qmsg *)
  11722.  
  11723.             CONST HK_HELP                 =   5;
  11724.             (* BOOL PROCEDURE [EXPENTRY] HelpHook(HAB hab;                  ** installer's hab
  11725.             *                         ULONG/USHORT usMode;      ** mode
  11726.             *                         ULONG/USHORT idTopic;     ** main topic
  11727.             *                         ULONG/USHORT idSubTopic;  ** sub topic
  11728.             *                         PRECTL prcPosition);      ** associated position *)
  11729.  
  11730.             CONST HK_LOADER               =   6;
  11731.             (* BOOL PROCEDURE [EXPENTRY] LoaderHook(HAB hab;                ** installer's hab
  11732.             *                           LONG/USHORT idContext;  ** who called hook
  11733.             *                           PSZ pszLibname;         ** lib name string
  11734.             *                           PHLIB hlib;             ** p to lib handle
  11735.             *                           PSZ pszProcname;        ** procedure name
  11736.             *                           PFNWP wndProc);         ** window procedure *)
  11737.  
  11738.             CONST HK_REGISTERUSERMSG      =   7;
  11739.             (* BOOL PROCEDURE [EXPENTRY] RegisterUserHook(HAB hab;          ** installer's hab
  11740.             *                                 ULONG cUshort;    ** entries in arRMP
  11741.             *                                 PULONG/PUSHORT arRMP; ** RMP array
  11742.             *                                 PBOOL fRegistered); ** msg parms already reg*)
  11743.  
  11744.             CONST HK_MSGCONTROL           =   8;
  11745.             (* BOOL PROCEDURE [EXPENTRY] MsgControlHook(HAB hab;            ** installer's hab
  11746.             *                               LONG/SHORT idContext;** who called hook
  11747.             *                               HWND hwnd;          ** SEI window handle
  11748.             *                               PSZ pszClassname;   ** window class name
  11749.             *                               ULONG/USHORT usMsgclass;** interested msg class **
  11750.             *                               LONG/SHORT idControl;** SMI_*
  11751.             *                               PBOOL fSuccess);    ** mode already set *)
  11752.  
  11753.             CONST HK_PLIST_ENTRY          =   9;
  11754.             (* BOOL PROCEDURE [EXPENTRY] ProgramListEntryHook(HAB hab;      ** installer's hab
  11755.             *                                     PPRFHOOKPARMS pProfileHookParams;** data
  11756.             *                                     PBOOL fNoExecute);  ** cease hook processing*)
  11757.  
  11758.             CONST HK_PLIST_EXIT            =  10;
  11759.             (* BOOL PROCEDURE [EXPENTRY] ProgramListExitHook(HAB hab;       ** installer's hab
  11760.             *                                    PPRFHOOKPARMS pProfileHookParams);** data*)
  11761.  
  11762.             CONST HK_FINDWORD              =  11;
  11763.             (* BOOL PROCEDURE [EXPENTRY] FindWordHook(usCodepage;           ** code page to use
  11764.             *                             PSZ pszText;          ** text to break
  11765.             *                             ULONG cb;             ** maximum text size
  11766.             *                             ULONG ich;            ** break 'near' here
  11767.             *                             PULONG pichStart;     ** where break began
  11768.             *                             PULONG pichEnd;       ** where break ended
  11769.             *                             PULONG pichNext);     ** where next word begin*)
  11770.  
  11771.             CONST HK_CODEPAGECHANGED       =  12;
  11772.             (* VOID PROCEDURE [EXPENTRY] CodePageChangedHook(HMQ hmq;       ** msg q handle
  11773.             *                                    ULONG/USHORT usOldCodepage; ** old code page
  11774.             *                                    ULONG/USHORT usNewCodepage);** new code page*)
  11775.  
  11776.             CONST HK_WINDOWDC              =  15;
  11777.             (* BOOL PROCEDURE [EXPENTRY] WindowDCHook(HAB  hab;             ** installer's hab
  11778.             *                             HDC  hdc;             ** current hdc
  11779.             *                             HWND hwnd;            ** current hwnd
  11780.             *                             BOOL);                ** association flag *)
  11781.  
  11782.             CONST HK_DESTROYWINDOW         =  16;
  11783.             (* BOOL PROCEDURE [EXPENTRY] DestroyWindowHook (HAB  hab;       ** installer's hab
  11784.             *                                   HWND hwnd;      ** destroyed win hwnd
  11785.             *                                   ULONG Reserved);** association flag  *)
  11786.  
  11787.             CONST HK_CHECKMSGFILTER        =  20;
  11788.             (* BOOL PROCEDURE [EXPENTRY] CheckMsgFilteHook (HAB  hab;       ** installer's hab
  11789.             *                                   PQMSG pQmsg;    ** p qmsg
  11790.             *                                   ULONG/USHORT usFirst;  ** first msg
  11791.             *                                   ULONG/USHORT usLast;   ** last msg
  11792.             *                                   ULONG/USHORT fOptions);** flags  *)
  11793.  
  11794.             CONST HK_MSGINPUT              =  21;
  11795.             (* BOOL PROCEDURE [EXPENTRY] MsgInputHook (HAB  hab;          ** installer's hab
  11796.             *                              PQMSG pQmsg;       ** p qmsg
  11797.             *                              BOOL fSkip;        ** skip msg
  11798.             *                              PBOOL pfNoRecord); ** journal record event *)
  11799.  
  11800.             CONST HK_LOCKUP                =  23;
  11801.             (* BOOL PROCEDURE [EXPENTRY] LockupHook (HAB  hab;              ** installer's hab
  11802.             *                           HWND hwndLockupFrame); ** hwnd     *)
  11803.  
  11804.             CONST HK_FLUSHBUF              =  24;
  11805.             (* BOOL PROCEDURE [EXPENTRY] FlushBufHook (HAB  hab);           ** installer's hab *)
  11806.  
  11807.             (*** Current message queue constant **********************************)
  11808.             CONST HMQ_CURRENT         = HMQ(1);
  11809.  
  11810.             (*** WH_MSGFILTER context codes **************************************)
  11811.             CONST MSGF_DIALOGBOX          =   1;
  11812.             CONST MSGF_MESSAGEBOX         =   2;
  11813.             CONST MSGF_TRACK              =   8;
  11814.             CONST MSGF_DDEPOSTMSG         =   3;
  11815.  
  11816.             (*** HK_HELP Help modes **********************************************)
  11817.             CONST HLPM_FRAME              =(-1);
  11818.             CONST HLPM_WINDOW             =(-2);
  11819.             CONST HLPM_MENU               =(-3);
  11820.  
  11821.             (*** HK_SENDMSG structure ********************************************)
  11822.             CONST PM_MODEL_1X    =  0;
  11823.             CONST PM_MODEL_2X    =  1;
  11824.  
  11825.             TYPE SMHSTRUCT = RECORD     (* smhs *)
  11826.                   mp2:    MPARAM;
  11827.                   mp1:    MPARAM;
  11828.                   msg:    ULONG;
  11829.                   hwnd:   HWND;
  11830.                   model:  ULONG;
  11831.             END;
  11832.             TYPE PSMHSTRUCT = POINTER TO SMHSTRUCT;
  11833.  
  11834.             (*HK_LOADER context codes *)
  11835.  
  11836.             CONST LHK_DELETEPROC          =   1;
  11837.             CONST LHK_DELETELIB           =   2;
  11838.             CONST LHK_LOADPROC            =   3;
  11839.             CONST LHK_LOADLIB             =   4;
  11840.  
  11841.             (*HK_MSGCONTROL context codes *)
  11842.  
  11843.             CONST MCHK_MSGINTEREST        =   1;
  11844.             CONST MCHK_CLASSMSGINTEREST   =   2;
  11845.             CONST MCHK_SYNCHRONISATION    =   3;
  11846.             CONST MCHK_MSGMODE            =   4;
  11847.  
  11848.             (*HK_REGISTERUSERMSG conext codes *)
  11849.  
  11850.             CONST RUMHK_DATATYPE          =   1;
  11851.             CONST RUMHK_MSG               =   2;
  11852.  
  11853.    <* END *>
  11854.  
  11855. <* END *>
  11856.  
  11857.  
  11858. <* IF DEFINED (INCL_WINTHUNKAPI)  THEN *>
  11859.  
  11860.       PROCEDURE [APIENTRY] WinSetClassThunkProc(pszClassname:  PCSZ;
  11861.                                                                                   pfnThunkProc:  PFN): BOOL;
  11862.       PROCEDURE [APIENTRY] WinQueryClassThunkProc(pszClassname: PCSZ): PFN;
  11863.       PROCEDURE [APIENTRY] WinSetWindowThunkProc(hwnd:         HWND;
  11864.                                                                                     pfnThunkProc: PFN): BOOL;
  11865.       PROCEDURE [APIENTRY] WinQueryWindowThunkProc(hwnd: HWND): PFN;
  11866.       PROCEDURE [APIENTRY] WinQueryWindowModel(hwnd: HWND): LONG;
  11867.  
  11868. <* END *>
  11869.  
  11870. (*
  11871. * Include Shell API
  11872. *)
  11873. <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  11874.    
  11875. (* ------------- Include file: .\hm\pmshl.hm ------------- *)
  11876. (****************************** Module Header ******************************\
  11877. *
  11878. * Module Name: PMSHL.H
  11879. *
  11880. * OS/2 Presentation Manager Shell constants; types; messages and
  11881. * function declarations include file.
  11882. *
  11883. * Copyright (c) International Business Machines Corporation 1981; 1988-1992
  11884. *
  11885. * ===========================================================================
  11886. *
  11887. * The following symbols are used in this file for conditional sections.
  11888. *
  11889. *   INCL_SHLERRORS       defined if INCL_ERRORS is defined
  11890. *   INCL_WINPROGRAMLIST  Include Program List Calls
  11891. *   INCL_WINSHELLDATA    Include Presentation Manager profile calls
  11892. *   INCL_WINSWITCHLIST   Include Switch List Calls
  11893. *
  11894. * ===========================================================================
  11895. *
  11896. * Comments at the end of each TYPE line give the name tags used in
  11897. * the assembler include version of this file.
  11898. *
  11899. * The assembler include version of this file excludes lines between XLATOFF
  11900. * and XLATON comments.
  11901. *
  11902. \***************************************************************************)
  11903.  
  11904. <* NEW SHL_INCLUDED + *>
  11905.  
  11906.  
  11907. (*** if error definitions are required then allow Shell errors *************)
  11908. <* IF DEFINED (INCL_ERRORS)  THEN *>
  11909.    <* NEW INCL_SHLERRORS + *>
  11910. <* END *>
  11911.  
  11912.  
  11913. <* IF NOT DEFINED (SESMGR)  THEN *>
  11914.       (*** common types; constants and function declarations ******************)
  11915.  
  11916.  
  11917.       (*** maximum title length ***********************************************)
  11918.       CONST MAXNAMEL = 60;
  11919.  
  11920.  
  11921.       (*** program handle *****************************************************)
  11922.       TYPE HPROGRAM  = LHANDLE;       (* hprog *)
  11923.       TYPE PHPROGRAM = POINTER TO HPROGRAM;
  11924.       TYPE HAPP = LHANDLE;
  11925.  
  11926.  
  11927.       (*** ini file handle ****************************************************)
  11928.       TYPE HINI  = LHANDLE;           (* hini *)
  11929.       TYPE PHINI = POINTER TO HINI;
  11930.  
  11931.  
  11932.       CONST HINI_PROFILE        = HINI(0);
  11933.       CONST HINI_USERPROFILE    = HINI(LONG(-1));
  11934.       CONST HINI_SYSTEMPROFILE  = HINI(LONG(-2));
  11935.       CONST HINI_USER           = HINI(LONG(-1));
  11936.       CONST HINI_SYSTEM         = HINI(LONG(-2));
  11937.  
  11938.  
  11939.       TYPE PRFPROFILE = RECORD   (* prfpro *)
  11940.             cchUserName:     ULONG  ;
  11941.             pszUserName:     PSZ    ;
  11942.             cchSysName:      ULONG  ;
  11943.             pszSysName:      PSZ    ;
  11944.       END;
  11945.       TYPE PPRFPROFILE = POINTER TO PRFPROFILE;
  11946.  
  11947. <* END *>
  11948.  
  11949. <* IF DEFINED (INCL_WINPROGRAMLIST)  THEN *>
  11950.       (*** program list section ***********************************************)
  11951.    <* IF NOT DEFINED (SESMGR)  THEN *>
  11952.  
  11953.             (*** maximum path length *********************************************)
  11954.             CONST  MAXPATHL = 128;
  11955.  
  11956.             (*** root group handle ***********************************************)
  11957.             CONST  SGH_ROOT =  HPROGRAM(LONG(-1));
  11958.  
  11959.             TYPE HPROGARRAY = RECORD      (* hpga *)
  11960.                   ahprog:  ARRAY [0..0] OF HPROGRAM;
  11961.             END;
  11962.             TYPE PHPROGARRAY = POINTER TO HPROGARRAY;
  11963.  
  11964.    <* END *>
  11965.  
  11966.       TYPE PROGCATEGORY  = ULONG;       (* progc *)
  11967.  
  11968.       TYPE PPROGCATEGORY = POINTER TO PPROGCATEGORY;
  11969.  
  11970.       (*** values acceptable for PROGCATEGORY for PM groups *******************)
  11971.       CONST  PROG_DEFAULT             = PROGCATEGORY(0);
  11972.       CONST  PROG_FULLSCREEN          = PROGCATEGORY(1);
  11973.       CONST  PROG_WINDOWABLEVIO       = PROGCATEGORY(2);
  11974.       CONST  PROG_PM                  = PROGCATEGORY(3);
  11975.       CONST  PROG_GROUP               = PROGCATEGORY(5);
  11976.       CONST  PROG_REAL                = PROGCATEGORY(4);
  11977.       CONST  PROG_VDM                 = PROGCATEGORY(4);
  11978.       CONST  PROG_WINDOWEDVDM         = PROGCATEGORY(7);
  11979.       CONST  PROG_DLL                 = PROGCATEGORY(6);
  11980.       CONST  PROG_PDD                 = PROGCATEGORY(8);
  11981.       CONST  PROG_VDD                 = PROGCATEGORY(9);
  11982.       CONST  PROG_WINDOW_REAL         = PROGCATEGORY(10);
  11983.       CONST  PROG_WINDOW_PROT         = PROGCATEGORY(11);
  11984.       CONST  PROG_30_STD              = PROGCATEGORY(11);
  11985.       CONST  PROG_WINDOW_AUTO         = PROGCATEGORY(12);
  11986.       CONST  PROG_SEAMLESSVDM         = PROGCATEGORY(13);
  11987.       CONST  PROG_30_STDSEAMLESSVDM   = PROGCATEGORY(13);
  11988.       CONST  PROG_SEAMLESSCOMMON      = PROGCATEGORY(14);
  11989.       CONST  PROG_30_STDSEAMLESSCOMMON = PROGCATEGORY(14);
  11990.       CONST  PROG_31_STDSEAMLESSVDM   = PROGCATEGORY(15);
  11991.       CONST  PROG_31_STDSEAMLESSCOMMON = PROGCATEGORY(16);
  11992.       CONST  PROG_31_ENHSEAMLESSVDM   = PROGCATEGORY(17);
  11993.       CONST  PROG_31_ENHSEAMLESSCOMMON = PROGCATEGORY(18);
  11994.       CONST  PROG_31_ENH              = PROGCATEGORY(19);
  11995.       CONST  PROG_31_STD              = PROGCATEGORY(20);
  11996.       CONST  PROG_RESERVED            = PROGCATEGORY(255);
  11997.  
  11998.    <* IF NOT DEFINED (SESMGR)  THEN *>
  11999.  
  12000.             TYPE PROGTYPE = RECORD        (* progt *)
  12001.                   progc:        PROGCATEGORY ;
  12002.                   fbVisible:    ULONG        ;
  12003.             END;
  12004.             TYPE PPROGTYPE = POINTER TO PROGTYPE;
  12005.  
  12006.  
  12007.             (*** visibility flag for PROGTYPE structure **************************)
  12008.             CONST  SHE_VISIBLE         = 000H;
  12009.             CONST  SHE_INVISIBLE       = 001H;
  12010.             CONST  SHE_RESERVED        = 0FFH;
  12011.  
  12012.             (*** Protected group flag for PROGTYPE structure *********************)
  12013.             CONST  SHE_UNPROTECTED     = 000H;
  12014.             CONST  SHE_PROTECTED       = 002H;
  12015.  
  12016.  
  12017.  
  12018.             (*** Structures associated with 'Prf' calls **************************)
  12019.             TYPE PROGDETAILS = RECORD    (* progde *)
  12020.                   Length:         ULONG;    (* set this to sizeof(PROGDETAILS)  *)
  12021.                   progt:          PROGTYPE;
  12022.                   pszTitle:       PSZ;      (* any of the pointers can be NULL  *)
  12023.                   pszExecutable:  PSZ;
  12024.                   pszParameters:  PSZ;
  12025.                   pszStartupDir:  PSZ;
  12026.                   pszIcon:        PSZ;
  12027.                   pszEnvironment: PSZ; (* this is terminated by  /0/0      *)
  12028.                   swpInitial:     SWP;     (* this replaces XYWINSIZE          *)
  12029.             END;
  12030.             TYPE  PPROGDETAILS = POINTER TO PROGDETAILS;
  12031.  
  12032.             TYPE PROGTITLE = RECORD   (* progti *)
  12033.                   hprog:         HPROGRAM ;
  12034.                   progt:         PROGTYPE ;
  12035.                   pszTitle:      PSZ      ;
  12036.             END;
  12037.             TYPE PPROGTITLE = POINTER TO PROGTITLE;
  12038.  
  12039.             (*** Program List API Function Definitions ***************************)
  12040.  
  12041.  
  12042.             (*** Program List API available 'Prf' calls **************************)
  12043.  
  12044.             PROCEDURE [APIENTRY] PrfQueryProgramTitles(      hini:   HINI ;
  12045.                                                                                       hprogGroup: HPROGRAM ;
  12046.                                                                                       pTitles:  PPROGTITLE ;
  12047.                                                                                       cchBufferMax:  ULONG ;
  12048.                                                                                       pulCount:     PULONG): ULONG;
  12049.  
  12050.             (*********************************************************************)
  12051.             (*  NOTE: string information is concatanated after the array of      *)
  12052.             (*        PROGTITLE structures so you need to allocate storage       *)
  12053.             (*        greater than sizeof(PROGTITLE)*cPrograms to query programs *)
  12054.             (*        in a group.                                                *)
  12055.             (*                                                                   *)
  12056.             (*  PrfQueryProgramTitles recommended usage to obtain titles of all  *)
  12057.             (*  programs in a group (Hgroup=SGH_ROOT is for all groups):         *)
  12058.             (*                                                                   *)
  12059.             (*  BufLen = PrfQueryProgramTitles(Hini; Hgroup;                     *)
  12060.             (*                                  (PPROGTITLE)NULL; 0; &Count);    *)
  12061.             (*                                                                   *)
  12062.             (*  Alocate buffer of  Buflen                                        *)
  12063.             (*                                                                   *)
  12064.             (*  Len = PrfQueryProgramTitles(Hini; Hgroup; (PPROGTITLE)pBuffer;   *)
  12065.             (*                               BufLen; pCount);                    *)
  12066.             (*                                                                   *)
  12067.             (*********************************************************************)
  12068.  
  12069.             PROCEDURE [APIENTRY] PrfAddProgram( hini:        HINI ;
  12070.                                                                             pDetails:    PPROGDETAILS ;
  12071.                                                                             hprogGroup:  HPROGRAM):  HPROGRAM;
  12072.  
  12073.             PROCEDURE [APIENTRY] PrfChangeProgram( hini:     HINI ;
  12074.                                                                                   hprog:    HPROGRAM ;
  12075.                                                                                   pDetails: PPROGDETAILS): BOOL;
  12076.  
  12077.             PROCEDURE [APIENTRY] PrfQueryDefinition( hini:         HINI ;
  12078.                                                                                       hprog:        HPROGRAM ;
  12079.                                                                                       pDetails:     PPROGDETAILS ;
  12080.                                                                                       cchBufferMax: ULONG): ULONG;
  12081.  
  12082.             (*********************************************************************)
  12083.             (*  NOTE: string information is concatanated after the PROGDETAILS   *)
  12084.             (*        field structure so you need to allocate storage greater    *)
  12085.             (*        than sizeof(PROGDETAILS) to query programs                 *)
  12086.             (*                                                                   *)
  12087.             (*  PrfQueryDefinition recomended usage:                             *)
  12088.             (*                                                                   *)
  12089.             (*  bufferlen = PrfQueryDefinition(Hini;Hprog;(PPROGDETAILS)NULL;0)  *)
  12090.             (*                                                                   *)
  12091.             (*  Alocate buffer of bufferlen bytes                                *)
  12092.             (*  set Length field (0 will be supported)                           *)
  12093.             (*                                                                   *)
  12094.             (*  (PPROGDETAILS)pBuffer->Length=sizeof(PPROGDETAILS)               *)
  12095.             (*                                                                   *)
  12096.             (*  len = PrfQueryDefinition(Hini; Hprog; (PPROGDETAILS)pBuffer;     *)
  12097.             (*      bufferlen)                                                   *)
  12098.             (*********************************************************************)
  12099.  
  12100.             PROCEDURE [APIENTRY] PrfRemoveProgram( hini:     HINI ;
  12101.                                                                                   hprog:    HPROGRAM):  BOOL;
  12102.  
  12103.             PROCEDURE [APIENTRY] PrfQueryProgramHandle( hini:         HINI ;
  12104.                                                                                             pszExe:       PCSZ ;
  12105.                                                                                             phprogArray:  PHPROGARRAY ;
  12106.                                                                                             cchBufferMax: ULONG ;
  12107.                                                                                             pulCount:     PULONG): ULONG;
  12108.  
  12109.             PROCEDURE [APIENTRY] PrfCreateGroup( hini:         HINI ;
  12110.                                                                               pszTitle:     PCSZ ;
  12111.                                                                               chVisibility: UCHAR): HPROGRAM;
  12112.  
  12113.             PROCEDURE [APIENTRY] PrfDestroyGroup( hini:       HINI ;
  12114.                                                                                 hprogGroup: HPROGRAM): BOOL;
  12115.  
  12116.             PROCEDURE [APIENTRY] PrfQueryProgramCategory(hini:     HINI ;
  12117.                                                                                               pszExe:   PCSZ): PROGCATEGORY;
  12118.  
  12119.             PROCEDURE [APIENTRY] WinStartApp(hwndNotify:     HWND ;
  12120.                                                                 pDetails:    PPROGDETAILS ;
  12121.                                                                 pszParams:   PCSZ ;
  12122.                                                                 Reserved:    PVOID ;
  12123.                                                                 fbOptions:   ULONG): HAPP;
  12124.  
  12125.             (*** bit values for Options parameter ********************************)
  12126.             CONST  SAF_VALIDFLAGS        = 0001FH;
  12127.  
  12128.             CONST  SAF_INSTALLEDCMDLINE  = 00001H;   (* use installed parameters *)
  12129.             CONST  SAF_STARTCHILDAPP     = 00002H;   (* related application      *)
  12130.             CONST  SAF_MAXIMIZED         = 00004H;   (* Start App maximized *)
  12131.             CONST  SAF_MINIMIZED         = 00008H;   (* Start App minimized; if !SAF_MAXIMIZED *)
  12132.             CONST  SAF_BACKGROUND        = 00010H;   (* Start app in the background *)
  12133.  
  12134.  
  12135.             PROCEDURE [APIENTRY] WinTerminateApp(happ: HAPP): BOOL;
  12136.  
  12137.    <* END *>
  12138. <* END *>
  12139.  
  12140.  
  12141. (*** switch list section ***************************************************)
  12142.  
  12143. TYPE HSWITCH  = LHANDLE;        (* hsw *)
  12144. TYPE PHSWITCH = POINTER TO HSWITCH;
  12145.  
  12146. <* IF NOT DEFINED (SESMGR)  THEN *>
  12147.    <* IF (DEFINED (INCL_WINSWITCHLIST) OR NOT DEFINED (INCL_NOCOMMON) ) THEN *>
  12148.  
  12149.             TYPE SWCNTRL = RECORD         (* swctl *)
  12150.                   hwnd:             HWND     ;
  12151.                   hwndIcon:         HWND     ;
  12152.                   hprog:            HPROGRAM ;
  12153.                   idProcess:        PID      ;
  12154.                   idSession:        ULONG    ;
  12155.                   uchVisibility:    ULONG    ;
  12156.                   fbJump:           ULONG    ;
  12157.                   szSwtitle:        ARRAY [0..MAXNAMEL+3] OF CHAR;
  12158.                   bProgType:        ULONG    ;
  12159.             END;
  12160.             TYPE PSWCNTRL = POINTER TO SWCNTRL;
  12161.  
  12162.             (*** visibility flag for SWCNTRL structure ***************************)
  12163.             CONST  SWL_VISIBLE    = 04;
  12164.             CONST  SWL_INVISIBLE  = 01;
  12165.             CONST  SWL_GRAYED     = 02;
  12166.  
  12167.             (*** jump flag for SWCNTRL structure *********************************)
  12168.             CONST  SWL_JUMPABLE    = 02;
  12169.             CONST  SWL_NOTJUMPABLE = 01;
  12170.  
  12171.  
  12172.             (*** Switching Program functions *************************************)
  12173.             PROCEDURE [APIENTRY] WinAddSwitchEntry(p: PSWCNTRL): HSWITCH;
  12174.             PROCEDURE [APIENTRY] WinRemoveSwitchEntry(h: HSWITCH): ULONG;
  12175.  
  12176.    <* END *>
  12177.  
  12178.    <* IF NOT DEFINED (INCL_WINSWITCHLIST)  THEN *>
  12179.  
  12180.             TYPE SWENTRY = RECORD         (* swent *)
  12181.                   hswitch:   HSWITCH ;
  12182.                   swctl:     SWCNTRL ;
  12183.             END;
  12184.             TYPE PSWENTRY = POINTER TO SWENTRY;
  12185.  
  12186.             TYPE SWBLOCK = RECORD         (* swblk *)
  12187.                   cswentry:         ULONG    ;
  12188.                   aswentry:         ARRAY [0..0] OF SWENTRY;
  12189.             END;
  12190.             TYPE PSWBLOCK = POINTER TO SWBLOCK;
  12191.  
  12192.  
  12193.             (*** 32-bit versions of these APIs have 32-bit parameters *********)
  12194.             PROCEDURE [APIENTRY] WinChangeSwitchEntry(hswitchSwitch:       HSWITCH ;
  12195.                                                                                         pswctlSwitchData:    PSWCNTRL
  12196.                                                                                         ): ULONG;
  12197.  
  12198.             PROCEDURE [APIENTRY] WinCreateSwitchEntry(hab:               HAB ;
  12199.                                                                                         pswctlSwitchData:  PSWCNTRL
  12200.                                                                                           ): HSWITCH;
  12201.  
  12202.             PROCEDURE [APIENTRY] WinQuerySessionTitle(hab:    HAB ;
  12203.                                                                                         usSession:    ULONG ;
  12204.                                                                                         pszTitle:      PCSZ ;
  12205.                                                                                         usTitlelen:    ULONG): ULONG;
  12206.  
  12207.             PROCEDURE [APIENTRY] WinQuerySwitchEntry(hswitchSwitch:       HSWITCH ;
  12208.                                                                                       pswctlSwitchData:    PSWCNTRL
  12209.                                                                                       ): ULONG;
  12210.  
  12211.             PROCEDURE [APIENTRY] WinQuerySwitchHandle(hwnd:          HWND ;
  12212.                                                                                           pidProcess:   PID): HSWITCH;
  12213.             PROCEDURE [APIENTRY] WinQuerySwitchList(hab:                   HAB ;
  12214.                                                                                     pswblkSwitchEntries:   PSWBLOCK ;
  12215.                                                                                     usDataLength:          ULONG
  12216.                                                                                     ): ULONG;
  12217.  
  12218.             PROCEDURE [APIENTRY] WinQueryTaskSizePos(hab:     HAB ;
  12219.                                                                                       usScreenGroup:      ULONG ;
  12220.                                                                                       pswpPositionData:   PSWP): ULONG;
  12221.  
  12222.             PROCEDURE [APIENTRY] WinQueryTaskTitle(usSession:  ULONG ;
  12223.                                                                                   pszTitle:   PCSZ ;
  12224.                                                                                   usTitlelen: ULONG): ULONG;
  12225.  
  12226.             PROCEDURE [APIENTRY] WinSwitchToProgram(hswitchSwHandle: HSWITCH): ULONG;
  12227.  
  12228.  
  12229.    <* END *>
  12230.  
  12231.    <* IF NOT DEFINED (INCL_WINSHELLDATA)  THEN *>
  12232.  
  12233.             (*** OS2.INI Access functions ****************************************)
  12234.  
  12235.             PROCEDURE [APIENTRY] PrfQueryProfileInt(hini:    HINI ;
  12236.                                                                                   pszApp:   PCSZ ;
  12237.                                                                                   pszKey:   PCSZ ;
  12238.                                                                                   sDefault: LONG  ): LONG;
  12239.  
  12240.             PROCEDURE [APIENTRY] PrfQueryProfileString(hini:        HINI ;
  12241.                                                                                         pszApp:       PCSZ ;
  12242.                                                                                         pszKey:       PCSZ ;
  12243.                                                                                         pszDefault:   PCSZ ;
  12244.                                                                                         pBuffer:      PVOID ;
  12245.                                                                                         cchBufferMax: ULONG ): ULONG;
  12246.  
  12247.             PROCEDURE [APIENTRY] PrfWriteProfileString(hini:    HINI ;
  12248.                                                                                         pszApp:   PCSZ ;
  12249.                                                                                         pszKey:   PCSZ ;
  12250.                                                                                         pszData:  PCSZ ): BOOL;
  12251.  
  12252.             PROCEDURE [APIENTRY] PrfQueryProfileSize(hini:     HINI ;
  12253.                                                                                     pszApp:    PCSZ ;
  12254.                                                                                     pszKey:    PCSZ ;
  12255.                                                                                     pulReqLen: PULONG ): BOOL;
  12256.  
  12257.             PROCEDURE [APIENTRY] PrfQueryProfileData(hini:      HINI ;
  12258.                                                                                     pszApp:     PCSZ ;
  12259.                                                                                     pszKey:     PCSZ ;
  12260.                                                                                     pBuffer:    PVOID ;
  12261.                                                                                     pulBuffLen: PULONG ): BOOL;
  12262.  
  12263.             PROCEDURE [APIENTRY] PrfWriteProfileData(hini:      HINI ;
  12264.                                                                                     pszApp:     PCSZ ;
  12265.                                                                                     pszKey:     PCSZ ;
  12266.                                                                                     pData:      PVOID ;
  12267.                                                                                     cchDataLen: ULONG ): BOOL;
  12268.  
  12269.             PROCEDURE [APIENTRY] PrfOpenProfile(hab:        HAB ;
  12270.                                                                           pszFileName: PCSZ ): HINI;
  12271.  
  12272.             PROCEDURE [APIENTRY] PrfCloseProfile(hini: HINI ): BOOL;
  12273.  
  12274.             PROCEDURE [APIENTRY] PrfReset(hab:         HAB ;
  12275.                                                               PpPrfProfile: PRFPROFILE ): BOOL;
  12276.  
  12277.             PROCEDURE [APIENTRY]
  12278.               PrfQueryProfile(hab:         HAB ;
  12279.                                                                             pPrfProfile:  PPRFPROFILE ): BOOL;
  12280.  
  12281.             (*** public message; broadcast on WinReset ***************************)
  12282.             CONST  PL_ALTERED = 0008EH;  (* WM_SHELLFIRST + 0E *)
  12283.  
  12284.    <* END *>
  12285.  
  12286.    <* IF DEFINED (INCL_SHLERRORS)  THEN *>
  12287.       
  12288. (* ------------- Include file: .\hm\pmerr.hm ------------- *)
  12289. (* ------------- This file we'll include late. EOF. --------------- *)
  12290.  
  12291.    <* END *>
  12292.  
  12293. <* END *>
  12294.  
  12295.  
  12296. (**************************** end of file **********************************)
  12297.  
  12298. (* ------------- End of file:  .\hm\pmshl.hm ------------- *)
  12299. <* END *>
  12300.  
  12301. <* IF DEFINED (INCL_WINCOUNTRY)  THEN *>
  12302.  
  12303.       PROCEDURE [APIENTRY] WinQueryCp(hmq: HMQ): ULONG;
  12304.  
  12305.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  12306.             PROCEDURE [APIENTRY] WinSetCp(hmq:        HMQ;
  12307.                                                                 idCodePage: ULONG): BOOL;
  12308.  
  12309.             PROCEDURE [APIENTRY] WinQueryCpList(hab:    HAB;
  12310.                                                                           ccpMax:  ULONG;
  12311.                                                                           prgcp:   PULONG): ULONG;
  12312.  
  12313.             PROCEDURE [APIENTRY] WinCpTranslateString(hab:        HAB;
  12314.                                                                                         cpSrc:      ULONG;
  12315.                                                                                         pszSrc:     PCSZ;
  12316.                                                                                         cpDst:      ULONG;
  12317.                                                                                         cchDestMax: ULONG;
  12318.                                                                                         pchDest:    PCSZ): BOOL;
  12319.  
  12320.             PROCEDURE [APIENTRY] WinCpTranslateChar(hab:    HAB;
  12321.                                                                                     cpSrc:  ULONG;
  12322.                                                                                     chSrc:  UCHAR;
  12323.                                                                                     cpDst:  ULONG): UCHAR;
  12324.  
  12325.             PROCEDURE [APIENTRY] WinUpper(hab:  HAB;
  12326.                                                               idcp:  ULONG;
  12327.                                                               idcc:  ULONG;
  12328.                                                               psz:   PCSZ): ULONG;
  12329.  
  12330.             PROCEDURE [APIENTRY] WinUpperChar(hab:  HAB;
  12331.                                                                       idcp:  ULONG;
  12332.                                                                       idcc:  ULONG;
  12333.                                                                       c:     ULONG): ULONG;
  12334.  
  12335.             PROCEDURE [APIENTRY] WinNextChar(hab:  HAB;
  12336.                                                                       idcp: ULONG;
  12337.                                                                       idcc: ULONG;
  12338.                                                                       psz:  PCSZ): PCSZ;
  12339.  
  12340.             PROCEDURE [APIENTRY] WinPrevChar(hab:       HAB;
  12341.                                                                       idcp:      ULONG;
  12342.                                                                       idcc:      ULONG;
  12343.                                                                       pszStart:  PCSZ;
  12344.                                                                       psz:       PCSZ): PCSZ;
  12345.  
  12346.             PROCEDURE [APIENTRY] WinCompareStrings(hab: HAB;
  12347.                                                                                 idcp: ULONG;
  12348.                                                                                 idcc: ULONG;
  12349.                                                                                 psz1: PCSZ;
  12350.                                                                                 psz2: PCSZ;
  12351.                                                                                 reserved: ULONG): ULONG;
  12352.  
  12353.             CONST WCS_ERROR               =   0;
  12354.             CONST WCS_EQ                  =   1;
  12355.             CONST WCS_LT                  =   2;
  12356.             CONST WCS_GT                  =   3;
  12357.  
  12358.    <* END *>
  12359.  
  12360. <* END *>
  12361.  
  12362.  
  12363.  
  12364. (* Heap Manager Interface declarations *)
  12365.  
  12366. <* IF DEFINED (INCL_WINHEAP)  THEN *>
  12367.  
  12368.  
  12369. <* END *>
  12370.  
  12371.  
  12372. (*** Atom Manager Interface declarations *)
  12373.  
  12374. <* IF DEFINED (INCL_WINATOM)  THEN *>
  12375.  
  12376.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  12377.             TYPE HATOMTBL = LHANDLE;
  12378.             TYPE ATOM     = ULONG;
  12379.  
  12380.             PROCEDURE [APIENTRY] WinQuerySystemAtomTable(): HATOMTBL;
  12381.             PROCEDURE [APIENTRY] WinCreateAtomTable(cbInitial: ULONG;
  12382.                                                                                       cBuckets: ULONG): HATOMTBL;
  12383.             PROCEDURE [APIENTRY] WinDestroyAtomTable(hAtomTbl: HATOMTBL): HATOMTBL;
  12384.             PROCEDURE [APIENTRY] WinAddAtom(hAtomTbl:     HATOMTBL;
  12385.                                                                       pszAtomName: PCSZ): ATOM;
  12386.             PROCEDURE [APIENTRY] WinFindAtom(hAtomTbl:     HATOMTBL;
  12387.                                                                         pszAtomName: PCSZ): ATOM;
  12388.             PROCEDURE [APIENTRY] WinDeleteAtom(hAtomTbl:  HATOMTBL;
  12389.                                                                             atom:     ATOM): ATOM;
  12390.             PROCEDURE [APIENTRY] WinQueryAtomUsage(hAtomTbl: HATOMTBL;
  12391.                                                                                   atom:     ATOM): ULONG;
  12392.             PROCEDURE [APIENTRY] WinQueryAtomLength(hAtomTbl: HATOMTBL;
  12393.                                                                                     atom:     ATOM): ULONG;
  12394.             PROCEDURE [APIENTRY] WinQueryAtomName(hAtomTbl:     HATOMTBL;
  12395.                                                                                 atom:         ATOM;
  12396.                                                                                 pchBuffer:    PCSZ;
  12397.                                                                                 cchBufferMax: ULONG): ULONG;
  12398.  
  12399.             --CONST MAKEINTATOM(a)  ((PCH)MAKEULONG(a; = 0ffff))
  12400.    <* END *>
  12401.  
  12402. <* END *>
  12403.  
  12404.  
  12405. <* IF DEFINED (INCL_WINERRORS)  THEN *>
  12406.       
  12407. (* ------------- Include file: .\hm\pmerr.hm ------------- *)
  12408. (* ------------- This file we'll include late. EOF. --------------- *)
  12409.  
  12410.  
  12411.       (* Error codes for debugging support                                       *)
  12412.       (* = 01001 - = 01021; = 01034; = 01036 - = 01050 are reserved                   *)
  12413.  
  12414.       CONST WINDBG_HWND_NOT_DESTROYED           = 01022H;
  12415.       CONST WINDBG_HPTR_NOT_DESTROYED           = 01023H;
  12416.       CONST WINDBG_HACCEL_NOT_DESTROYED         = 01024H;
  12417.       CONST WINDBG_HENUM_NOT_DESTROYED          = 01025H;
  12418.       CONST WINDBG_VISRGN_SEM_BUSY              = 01026H;
  12419.       CONST WINDBG_USER_SEM_BUSY                = 01027H;
  12420.       CONST WINDBG_DC_CACHE_BUSY                = 01028H;
  12421.       CONST WINDBG_HOOK_STILL_INSTALLED         = 01029H;
  12422.       CONST WINDBG_WINDOW_STILL_LOCKED          = 0102aH;
  12423.       CONST WINDBG_UPDATEPS_ASSERTION_FAIL      = 0102bH;
  12424.       CONST WINDBG_SENDMSG_WITHIN_USER_SEM      = 0102cH;
  12425.       CONST WINDBG_USER_SEM_NOT_ENTERED         = 0102dH;
  12426.       CONST WINDBG_PROC_NOT_EXPORTED            = 0102eH;
  12427.       CONST WINDBG_BAD_SENDMSG_HWND             = 0102fH;
  12428.       CONST WINDBG_ABNORMAL_EXIT                = 01030H;
  12429.       CONST WINDBG_INTERNAL_REVISION            = 01031H;
  12430.       CONST WINDBG_INITSYSTEM_FAILED            = 01032H;
  12431.       CONST WINDBG_HATOMTBL_NOT_DESTROYED       = 01033H;
  12432.       CONST WINDBG_WINDOW_UNLOCK_WAIT           = 01035H;
  12433.  
  12434.       (* Get/Set Error Information Interface declarations *)
  12435.  
  12436.       TYPE ERRINFO = RECORD   (* erri *)
  12437.             cbFixedErrInfo: ULONG;
  12438.             idError:        ERRORID;
  12439.             cDetailLevel:   ULONG;
  12440.             offaoffszMsg:   ULONG;
  12441.             offBinaryData:  ULONG;
  12442.       END;
  12443.       TYPE PERRINFO = POINTER TO ERRINFO;
  12444.  
  12445.       PROCEDURE [APIENTRY]    WinGetLastError(hab: HAB): ERRORID;
  12446.       PROCEDURE [APIENTRY]    WinGetErrorInfo(hab: HAB): PERRINFO;
  12447.       PROCEDURE [APIENTRY]    WinFreeErrorInfo(perrinfo: PERRINFO): BOOL;
  12448.  
  12449. <* END *>
  12450.  
  12451. <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  12452.       (* include WinSetErrorInfo *)
  12453.    <* IF DEFINED (INCL_WINSEI)  THEN *>
  12454.       <* IF NOT DEFINED (SEI_PMWINP)  THEN *>
  12455.          <* NEW SEI_PMWIN + *>
  12456.          
  12457. (* ------------- Include file: .\hm\pmsei.hm ------------- *)
  12458. (****************************** Module Header *******************************\
  12459. *
  12460. * Module Name: PMSEI.H
  12461. *
  12462. * OS/2 Presentation Manager SetErrorInfo constants and function declaration
  12463. *
  12464. * Copyright (c) International Business Machines Corporation 1981; 1988-1992
  12465. *
  12466. * ===========================================================================
  12467. *
  12468. * This is included from PMWIN.H when appropriate INCL symbols are defined
  12469. *
  12470. * ===========================================================================
  12471. *
  12472. * Comments at the end of each typedef line give the name tags used in
  12473. * the assembler include version of this file.
  12474. *
  12475. * The assembler include version of this file excludes lines between XLATOFF
  12476. * and XLATON comments.
  12477. *
  12478. \***************************************************************************)
  12479.  
  12480.  
  12481. <* NEW SEI_INCLUDED + *>
  12482.  
  12483. PROCEDURE [APIENTRY] WinSetErrorInfo(ei: ERRORID; ul: ULONG;
  12484.                                                                       SEQ X: SYSTEM.BYTE): ERRORID;
  12485.  
  12486. CONST SEI_BREAKPOINT  = 8000H;  (* Always enter an INT 3 breakpt       *)
  12487. CONST SEI_NOBEEP      = 4000H;  (* Do not call DosBeep                 *)
  12488. CONST SEI_NOPROMPT    = 2000H;  (* Do not prompt the user              *)
  12489. CONST SEI_DBGRSRVD    = 1000H;  (* Reserved for debug use              *)
  12490. CONST SEI_DEBUGONLY   = (SEI_BREAKPOINT + SEI_NOBEEP + SEI_NOPROMPT + SEI_DBGRSRVD);
  12491.  
  12492. CONST SEI_STACKTRACE  = 0001H;  (* save the stack trace                *)
  12493. CONST SEI_REGISTERS   = 0002H;  (* save the registers                  *)
  12494. CONST SEI_ARGCOUNT    = 0004H;  (* first USHORT in args is arg count   *)
  12495. CONST SEI_DOSERROR    = 0008H;  (* first USHORT in args is OS2 error code *)
  12496. CONST SEI_RESERVED    = 0FE0H;  (* Reserved for future use             *)
  12497.  
  12498. (****************************************************************************
  12499. * Note that when SEI_ARGCOUNT; SEI_DOSERROR are specified
  12500. * together; then the implied order of the parameters is:
  12501. *
  12502. *
  12503. *  WinSetErrorInfo( MAKEERRORID( .... );
  12504. *                   SEI_ARGCOUNT | SEI_DOSERROR;
  12505. *                   argCount;
  12506. *                   dosErrorCode);
  12507. *
  12508. ****************************************************************************)
  12509.  
  12510. (**************************** end of file **********************************)
  12511.  
  12512. (* ------------- End of file:  .\hm\pmsei.hm ------------- *)
  12513.       <* END *>
  12514.    <* END *>
  12515. <* END *>
  12516.  
  12517. <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  12518.    <* IF DEFINED (INCL_WINDDE)  THEN *>
  12519.  
  12520.             (*
  12521.             * DDE standard system topic and item strings
  12522.             *)
  12523.             CONST SZDDESYS_TOPIC                =  "System";
  12524.             CONST SZDDESYS_ITEM_TOPICS          =  "Topics";
  12525.             CONST SZDDESYS_ITEM_SYSITEMS        =  "SysItems";
  12526.             CONST SZDDESYS_ITEM_RTNMSG          =  "ReturnMessage";
  12527.             CONST SZDDESYS_ITEM_STATUS          =  "Status";
  12528.             CONST SZDDESYS_ITEM_FORMATS         =  "Formats";
  12529.             CONST SZDDESYS_ITEM_SECURITY        =  "Security";
  12530.             CONST SZDDESYS_ITEM_ITEMFORMATS     =  "ItemFormats";
  12531.             CONST SZDDESYS_ITEM_HELP            =  "Help";
  12532.             CONST SZDDESYS_ITEM_PROTOCOLS       =  "Protocols";
  12533.             CONST SZDDESYS_ITEM_RESTART         =  "Restart";
  12534.  
  12535.             (*
  12536.             * Dynamic Data Exchange (DDE) Structure Declarations
  12537.             *)
  12538.             TYPE CONVCONTEXT = RECORD   (* cctxt *)
  12539.                   cb:          ULONG;      (* sizeof(CONVCONTEXT) *)
  12540.                   fsContext:   ULONG;
  12541.                   idCountry:   ULONG;
  12542.                   usCodepage:  ULONG;
  12543.                   usLangID:    ULONG;
  12544.                   usSubLangID: ULONG;
  12545.             END;
  12546.             TYPE PCONVCONTEXT = POINTER TO CONVCONTEXT;
  12547.  
  12548.             CONST DDECTXT_CASESENSITIVE    = 00001H;
  12549.  
  12550.             TYPE DDEINIT = RECORD   (* ddei *)
  12551.                   cb:              ULONG;  (* sizeof(DDEINIT) *)
  12552.                   pszAppName:      PSZ;
  12553.                   pszTopic:        PSZ;
  12554.                   offConvContext:  ULONG;
  12555.             END;
  12556.             TYPE PDDEINIT = POINTER TO DDEINIT;
  12557.  
  12558.             TYPE DDESTRUCT = RECORD   (* dde *)
  12559.                   cbData:        ULONG;
  12560.                   fsStatus:      USHORT;
  12561.                   usFormat:      USHORT;
  12562.                   offszItemName: USHORT;
  12563.                   offabData:     USHORT;
  12564.             END;
  12565.             TYPE PDDESTRUCT = POINTER TO DDESTRUCT;
  12566.  
  12567.             (* DDE constants for wStatus field *)
  12568.             CONST DDE_FACK                   = 00001H;
  12569.             CONST DDE_FBUSY                  = 00002H;
  12570.             CONST DDE_FNODATA                = 00004H;
  12571.             CONST DDE_FACKREQ                = 00008H;
  12572.             CONST DDE_FRESPONSE              = 00010H;
  12573.             CONST DDE_NOTPROCESSED           = 00020H;
  12574.             CONST DDE_FRESERVED              = 000C0H;
  12575.             CONST DDE_FAPPSTATUS             = 0FF00H;
  12576.  
  12577.             (* old DDE public formats - new ones are CF_ constants *)
  12578.  
  12579.             CONST DDEFMT_TEXT                = 00001H;
  12580.  
  12581.             (* Dynamic Data Exchange (DDE) Routines *)
  12582.  
  12583.             PROCEDURE [APIENTRY] WinDdeInitiate(hwndClient:   HWND;
  12584.                                                                             pszAppName:   PCSZ;
  12585.                                                                             pszTopicName: PCSZ;
  12586.                                                                             pcctxt:       PCONVCONTEXT): BOOL;
  12587.  
  12588.             PROCEDURE [APIENTRY] WinDdeRespond(hwndClient:   HWND;
  12589.                                                                           hwndServer:   HWND;
  12590.                                                                           pszAppName:   PCSZ;
  12591.                                                                           pszTopicName: PCSZ;
  12592.                                                                           pcctxt:       PCONVCONTEXT): MRESULT;
  12593.  
  12594.             PROCEDURE [APIENTRY] WinDdePostMsg(hwndTo:     HWND;
  12595.                                                                           hwndFrom:   HWND;
  12596.                                                                           wm:         ULONG;
  12597.                                                                           pddest:     PDDESTRUCT;
  12598.                                                                           flOptions:  ULONG): BOOL;
  12599.  
  12600.             CONST DDEPM_RETRY     = 000000001H;
  12601.             CONST DDEPM_NOFREE    = 000000002H;
  12602.  
  12603.             (* Dynamic Data Exchange (DDE) Messages *)
  12604.  
  12605.             CONST WM_DDE_FIRST               = 000A0H;
  12606.             CONST WM_DDE_INITIATE            = 000A0H;
  12607.             CONST WM_DDE_REQUEST             = 000A1H;
  12608.             CONST WM_DDE_ACK                 = 000A2H;
  12609.             CONST WM_DDE_DATA                = 000A3H;
  12610.             CONST WM_DDE_ADVISE              = 000A4H;
  12611.             CONST WM_DDE_UNADVISE            = 000A5H;
  12612.             CONST WM_DDE_POKE                = 000A6H;
  12613.             CONST WM_DDE_EXECUTE             = 000A7H;
  12614.             CONST WM_DDE_TERMINATE           = 000A8H;
  12615.             CONST WM_DDE_INITIATEACK         = 000A9H;
  12616.             CONST WM_DDE_LAST                = 000AFH;
  12617.  
  12618.             (* DDE helper macros *)
  12619.  
  12620.             --CONST DDES_PSZITEMNAME(pddes) \
  12621.             --(((PSZ)pddes) + ((PDDESTRUCT)pddes)->offszItemName)
  12622.  
  12623.             --CONST DDES_PABDATA(pddes)       \
  12624.             --(((PBYTE)pddes) + ((PDDESTRUCT)pddes)->offabData)
  12625.  
  12626.             --CONST DDEI_PCONVCONTEXT(pddei)        \
  12627.             --((PCONVCONTEXT)((PBYTE)pddei + pddei->offConvContext))
  12628.  
  12629.  
  12630.    <* END *>
  12631. <* END *>
  12632.  
  12633. <* IF DEFINED (INCL_WINWINDOWMGR)  THEN *>
  12634.       CONST WM_QUERYCONVERTPOS         = 000b0H;   (* WM_DBCSFIRST *)
  12635.  
  12636.       (* Return values for WM_QUERYCONVERTPOS *)
  12637.       CONST QCP_CONVERT                = 00001H;
  12638.       CONST QCP_NOCONVERT              = 00000H;
  12639.  
  12640. <* END *>
  12641.  
  12642. <* IF DEFINED (INCL_WINHELP)  THEN *>
  12643.    <* IF NOT DEFINED (PMHELP_INCLUDED)  THEN *>
  12644.       
  12645. (* ------------- Include file: .\hm\pmhelp.hm ------------- *)
  12646. (****************************** Module Header ******************************\
  12647. *
  12648. * Module Name: PMHELP.H
  12649. *
  12650. * OS/2 Presentation Manager Information Presentation Facility;
  12651. * Help Manager declarations.
  12652. *
  12653. * Copyright (c) International Business Machines Corporation 1981; 1988-1993
  12654. *
  12655. * ===========================================================================
  12656. *
  12657. * The following symbols are used in this file for conditional sections.
  12658. *
  12659. *   CONST:                To include:
  12660. *
  12661. *   INCL_WINHELP            Help manager structures and APIs
  12662. *   INCL_DDF                Dynamic Data Formatting APIs
  12663. *
  12664. * ===========================================================================
  12665. *
  12666. * Comments at the end of each TYPE line give the name tags used in
  12667. * the assembler include version of this file.
  12668. *
  12669. * The assembler include version of this file excludes lines between XLATOFF
  12670. * and XLATON comments.
  12671. *
  12672. \***************************************************************************)
  12673.  
  12674.       (* XLATON *)
  12675.    <* NEW PMHELP_INCLUDED + *>
  12676.  
  12677.  
  12678.  
  12679.       (************************************************************************)
  12680.       (* HelpSubTable entry structure                                         *)
  12681.       (************************************************************************)
  12682.       TYPE HELPSUBTABLE  = USHORT;
  12683.       TYPE PHELPSUBTABLE = POINTER TO HELPSUBTABLE;
  12684.  
  12685.       (************************************************************************)
  12686.       (* HelpTable entry structure                                            *)
  12687.       (*                                                                      *)
  12688.       (*  Pack the structure HELPTABLE so that it is identical in the 32-Bit  *)
  12689.       (*  and 16-Bit world.  We have to do this because the HelpTable can     *)
  12690.       (*  reside either in memory or in the application's resources.          *)
  12691.       (************************************************************************)
  12692.  
  12693.       (* XLATOFF *)
  12694.       --#pragma pack(2)   (* pack on word boundary *)
  12695.       (* XLATON *)
  12696.  
  12697.       TYPE HELPTABLE = RECORD       (* ht *)
  12698.             idAppWindow:      USHORT          ;
  12699.             phstHelpSubTable: PHELPSUBTABLE   ;
  12700.             idExtPanel:       USHORT          ;
  12701.       END;
  12702.       TYPE PHELPTABLE = POINTER TO HELPTABLE;
  12703.  
  12704.       (* XLATOFF *)
  12705.       --#pragma pack()    (* reset to default packing *)
  12706.       (* XLATON *)
  12707.  
  12708.  
  12709.       (************************************************************************)
  12710.       (* IPF Initialization Structure used on the                             *)
  12711.       (* WinCreateHelpInstance() call.                                        *)
  12712.       (************************************************************************)
  12713.  
  12714.       TYPE HELPINIT = RECORD     (* hinit 32 bit *)
  12715.             cb:                  ULONG        ;
  12716.             ulReturnCode:        ULONG        ;
  12717.             pszTutorialName:     PSZ          ;
  12718.             phtHelpTable:        PHELPTABLE   ;
  12719.             hmodHelpTableModule: HMODULE      ;
  12720.             hmodAccelActionBarModule:    HMODULE      ;
  12721.             idAccelTable:        ULONG        ;
  12722.             idActionBar:         ULONG        ;
  12723.             pszHelpWindowTitle:  PSZ          ;
  12724.             fShowPanelId:        ULONG        ;
  12725.             pszHelpLibraryName:  PSZ          ;
  12726.       END;
  12727.       TYPE PHELPINIT = POINTER TO HELPINIT;
  12728.  
  12729.  
  12730.       (************************************************************************)
  12731.       (* Search parent chain indicator for HM_SET_ACTIVE_WINDOW message.      *)
  12732.       (************************************************************************)
  12733.       CONST HWND_PARENT       = HWND(NIL);
  12734.  
  12735.       (************************************************************************)
  12736.       (* Constants used to define whether user wants to display panel using   *)
  12737.       (* panel number or panel name.                                          *)
  12738.       (************************************************************************)
  12739.       CONST HM_RESOURCEID            = 0;
  12740.       CONST HM_PANELNAME             = 1;
  12741.  
  12742.       CONST HMPANELTYPE_NUMBER       = 0;
  12743.       CONST HMPANELTYPE_NAME         = 1;
  12744.  
  12745.       (************************************************************************)
  12746.       (* Constants used to define how the panel IDs are displayed on          *)
  12747.       (* help panels.                                                         *)
  12748.       (************************************************************************)
  12749.       CONST CMIC_HIDE_PANEL_ID       = 0000H;
  12750.       CONST CMIC_SHOW_PANEL_ID       = 0001H;
  12751.       CONST CMIC_TOGGLE_PANEL_ID     = 0002H;
  12752.  
  12753.       (************************************************************************)
  12754.       (* Window Help API declarations.                                        *)
  12755.       (************************************************************************)
  12756.       PROCEDURE [APIENTRY]  WinDestroyHelpInstance(hwndHelpInstance: HWND ): BOOL;
  12757.  
  12758.       PROCEDURE [APIENTRY]  WinCreateHelpInstance(hab:     HAB ;
  12759.                                                                                 phinitHMInitStructure: PHELPINIT ): HWND;
  12760.  
  12761.       PROCEDURE [APIENTRY]  WinAssociateHelpInstance(hwndHelpInstance:    HWND ;
  12762.                                                                                       hwndApp: HWND ): BOOL;
  12763.  
  12764.       PROCEDURE [APIENTRY]  WinQueryHelpInstance(hwndApp: HWND ): HWND;
  12765.  
  12766.       PROCEDURE [APIENTRY]  WinLoadHelpTable(hwndHelpInstance:    HWND ;
  12767.                                                                       idHelpTable:       ULONG ;
  12768.                                                                       Module: HMODULE ): BOOL;
  12769.  
  12770.       PROCEDURE [APIENTRY]  WinCreateHelpTable(hwndHelpInstance:  HWND ;
  12771.                                                                           phtHelpTable: PHELPTABLE ): BOOL;
  12772.  
  12773.       (************************************************************************)
  12774.       (* IPF message base.                                                    *)
  12775.       (************************************************************************)
  12776.       CONST HM_MSG_BASE              = 0220H;
  12777.  
  12778.       (************************************************************************)
  12779.       (* Messages applications can send to the IPF.                           *)
  12780.       (************************************************************************)
  12781.       CONST HM_DISMISS_WINDOW             = HM_MSG_BASE+00001H;
  12782.       CONST HM_DISPLAY_HELP               = HM_MSG_BASE+00002H;
  12783.       CONST HM_EXT_HELP                   = HM_MSG_BASE+00003H;
  12784.       CONST HM_GENERAL_HELP               = HM_EXT_HELP;
  12785.       CONST HM_SET_ACTIVE_WINDOW          = HM_MSG_BASE+00004H;
  12786.       CONST HM_LOAD_HELP_TABLE            = HM_MSG_BASE+00005H;
  12787.       CONST HM_CREATE_HELP_TABLE          = HM_MSG_BASE+00006H;
  12788.       CONST HM_SET_HELP_WINDOW_TITLE      = HM_MSG_BASE+00007H;
  12789.       CONST HM_SET_SHOW_PANEL_ID          = HM_MSG_BASE+00008H;
  12790.       CONST HM_REPLACE_HELP_FOR_HELP      = HM_MSG_BASE+00009H;
  12791.       CONST HM_REPLACE_USING_HELP         = HM_REPLACE_HELP_FOR_HELP;
  12792.       CONST HM_HELP_INDEX                 = HM_MSG_BASE+0000aH;
  12793.       CONST HM_HELP_CONTENTS              = HM_MSG_BASE+0000bH;
  12794.       CONST HM_KEYS_HELP                  = HM_MSG_BASE+0000cH;
  12795.       CONST HM_SET_HELP_LIBRARY_NAME      = HM_MSG_BASE+0000dH;
  12796.  
  12797.       CONST HM_SET_OBJCOM_WINDOW          = HM_MSG_BASE+00018H;
  12798.       CONST HM_UPDATE_OBJCOM_WINDOW_CHAIN = HM_MSG_BASE+00019H;
  12799.       CONST HM_QUERY_DDF_DATA             = HM_MSG_BASE+0001aH;
  12800.       CONST HM_INVALIDATE_DDF_DATA        = HM_MSG_BASE+0001bH;
  12801.       CONST HM_QUERY                      = HM_MSG_BASE+0001cH;
  12802.       CONST HM_SET_COVERPAGE_SIZE         = HM_MSG_BASE+0001dH;
  12803.  
  12804.       (************************************************************************)
  12805.       (* Constants used to query the info from IPF in HM_QUERY message        *)
  12806.       (************************************************************************)
  12807.  
  12808.       (* Hi word in lParam 1 *)
  12809.       CONST HMQW_COVERPAGE          = 00001H;
  12810.       CONST HMQW_INDEX              = 00002H;
  12811.       CONST HMQW_TOC                = 00003H;
  12812.       CONST HMQW_SEARCH             = 00004H;
  12813.       CONST HMQW_VIEWPAGES          = 00005H;
  12814.       CONST HMQW_LIBRARY            = 00006H;
  12815.       CONST HMQW_VIEWPORT           = 00007H;
  12816.       CONST HMQW_OBJCOM_WINDOW      = 00008H;
  12817.       CONST HMQW_INSTANCE           = 00009H;
  12818.       CONST HMQW_ACTIVEVIEWPORT     = 0000aH;
  12819.       CONST CONTROL_SELECTED        = 0000bH;
  12820.  
  12821.       CONST HMQW_GROUP_VIEWPORT     = 000f1H;
  12822.       CONST HMQW_RES_VIEWPORT       = 000f2H;
  12823.       CONST USERDATA                = 000f3H;
  12824.  
  12825.       (* Lo word in lParam1 of HMQW_VIEWPORT *)
  12826.       CONST HMQVP_NUMBER            = 00001H;
  12827.       CONST HMQVP_NAME              = 00002H;
  12828.       CONST HMQVP_GROUP             = 00003H;
  12829.  
  12830.       (************************************************************************)
  12831.       (* Predefined Control IDs                                               *)
  12832.       (************************************************************************)
  12833.       CONST CTRL_PREVIOUS_ID    = 00001H;
  12834.       CONST CTRL_SEARCH_ID      = 00002H;
  12835.       CONST CTRL_PRINT_ID       = 00003H;
  12836.       CONST CTRL_INDEX_ID       = 00004H;
  12837.       CONST CTRL_CONTENTS_ID    = 00005H;
  12838.       CONST CTRL_BACK_ID        = 00006H;
  12839.       CONST CTRL_FORWARD_ID     = 00007H;
  12840.       CONST CTRL_TUTORIAL_ID    = 000FFH;
  12841.  
  12842.       CONST CTRL_USER_ID_BASE   = 257;
  12843.  
  12844.       (************************************************************************)
  12845.       (* Messages the IPF sends to the applications active window             *)
  12846.       (* as defined by the IPF.                                               *)
  12847.       (************************************************************************)
  12848.  
  12849.       CONST HM_ERROR                      = HM_MSG_BASE+0000eH;
  12850.       CONST HM_HELPSUBITEM_NOT_FOUND      = HM_MSG_BASE+0000fH;
  12851.       CONST HM_QUERY_KEYS_HELP            = HM_MSG_BASE+00010H;
  12852.       CONST HM_TUTORIAL                   = HM_MSG_BASE+00011H;
  12853.       CONST HM_EXT_HELP_UNDEFINED         = HM_MSG_BASE+00012H;
  12854.       CONST HM_GENERAL_HELP_UNDEFINED     = HM_EXT_HELP_UNDEFINED;
  12855.       CONST HM_ACTIONBAR_COMMAND          = HM_MSG_BASE+00013H;
  12856.       CONST HM_INFORM                     = HM_MSG_BASE+00014H;
  12857.       CONST HM_NOTIFY                     = HM_MSG_BASE+00022H;
  12858.       CONST HM_SET_USERDATA               = HM_MSG_BASE+00023H;
  12859.       CONST HM_CONTROL                    = HM_MSG_BASE+00024H;
  12860.  
  12861.       (************************************************************************)
  12862.       (* notify information for HM_NOTIFY                                     *)
  12863.       (************************************************************************)
  12864.       CONST OPEN_COVERPAGE       = 00001H;
  12865.       CONST OPEN_PAGE            = 00002H;
  12866.       CONST SWAP_PAGE            = 00003H;
  12867.       CONST OPEN_TOC             = 00004H;
  12868.       CONST OPEN_INDEX           = 00005H;
  12869.       CONST OPEN_HISTORY         = 00006H;
  12870.       CONST OPEN_SEARCH_HIT_LIST = 00007H;
  12871.       CONST OPEN_LIBRARY         = 00008H;
  12872.       CONST HELP_REQUESTED       = 00009H;
  12873.  
  12874.       (************************************************************************)
  12875.       (* HMERR_NO_FRAME_WND_IN_CHAIN - There is no frame window in the        *)
  12876.       (* window chain from which to find or set the associated help           *)
  12877.       (* instance.                                                            *)
  12878.       (************************************************************************)
  12879.       CONST  HMERR_NO_FRAME_WND_IN_CHAIN               = 000001001H;
  12880.  
  12881.       (***********************************************************************)
  12882.       (* HMERR_INVALID_ASSOC_APP_WND - The application window handle         *)
  12883.       (* specified on the WinAssociateHelpInstance() call is not a valid     *)
  12884.       (* window handle.                                                      *)
  12885.       (***********************************************************************)
  12886.       CONST  HMERR_INVALID_ASSOC_APP_WND               = 000001002H;
  12887.  
  12888.       (***********************************************************************)
  12889.       (* HMERR_INVALID_ASSOC_HELP_INST - The help instance handle specified  *)
  12890.       (* on the WinAssociateHelpInstance() call is not a valid               *)
  12891.       (* window handle.                                                      *)
  12892.       (***********************************************************************)
  12893.       CONST  HMERR_INVALID_ASSOC_HELP_INST             = 000001003H;
  12894.  
  12895.       (***********************************************************************)
  12896.       (* HMERR_INVALID_DESTROY_HELP_INST - The window handle specified       *)
  12897.       (* as the help instance to destroy is not of the help instance class.  *)
  12898.       (***********************************************************************)
  12899.       CONST  HMERR_INVALID_DESTROY_HELP_INST           = 000001004H;
  12900.  
  12901.       (***********************************************************************)
  12902.       (* HMERR_NO_HELP_INST_IN_CHAIN - The parent or owner chain of the      *)
  12903.       (* application window specified does not have a help instance          *)
  12904.       (* associated with it.                                                 *)
  12905.       (***********************************************************************)
  12906.       CONST  HMERR_NO_HELP_INST_IN_CHAIN               = 000001005H;
  12907.  
  12908.       (***********************************************************************)
  12909.       (* HMERR_INVALID_HELP_INSTANCE_HDL - The handle specified to be a      *)
  12910.       (* help instance does not have the class name of a IPF                 *)
  12911.       (* help instance.                                                      *)
  12912.       (***********************************************************************)
  12913.       CONST  HMERR_INVALID_HELP_INSTANCE_HDL           = 000001006H;
  12914.  
  12915.       (***********************************************************************)
  12916.       (* HMERR_INVALID_QUERY_APP_WND - The application window specified on   *)
  12917.       (* a WinQueryHelpInstance() call is not a valid window handle.         *)
  12918.       (***********************************************************************)
  12919.       CONST  HMERR_INVALID_QUERY_APP_WND               = 000001007H;
  12920.  
  12921.       (***********************************************************************)
  12922.       (* HMERR_HELP_INST_CALLED_INVALID -  The handle of the help instance   *)
  12923.       (* specified on an API call to the IPF does not have the               *)
  12924.       (* class name of an IPF help instance.                                 *)
  12925.       (***********************************************************************)
  12926.       CONST  HMERR_HELP_INST_CALLED_INVALID            = 000001008H;
  12927.  
  12928.       CONST  HMERR_HELPTABLE_UNDEFINE                  = 000001009H;
  12929.       CONST  HMERR_HELP_INSTANCE_UNDEFINE              = 00000100aH;
  12930.       CONST  HMERR_HELPITEM_NOT_FOUND                  = 00000100bH;
  12931.       CONST  HMERR_INVALID_HELPSUBITEM_SIZE            = 00000100cH;
  12932.       CONST  HMERR_HELPSUBITEM_NOT_FOUND               = 00000100dH;
  12933.  
  12934.       (***********************************************************************)
  12935.       (* HMERR_INDEX_NOT_FOUND - No index in library file.                   *)
  12936.       (***********************************************************************)
  12937.       CONST  HMERR_INDEX_NOT_FOUND                     = 000002001H;
  12938.  
  12939.       (***********************************************************************)
  12940.       (* HMERR_CONTENT_NOT_FOUND - Library file does not have any contents.  *)
  12941.       (***********************************************************************)
  12942.       CONST  HMERR_CONTENT_NOT_FOUND                   = 000002002H;
  12943.  
  12944.       (***********************************************************************)
  12945.       (* HMERR_OPEN_LIB_FILE     - Cannot open library file                  *)
  12946.       (***********************************************************************)
  12947.       CONST  HMERR_OPEN_LIB_FILE                       = 000002003H;
  12948.  
  12949.       (***********************************************************************)
  12950.       (* HMERR_READ_LIB_FILE     - Cannot read library file                  *)
  12951.       (***********************************************************************)
  12952.       CONST  HMERR_READ_LIB_FILE                       = 000002004H;
  12953.  
  12954.       (***********************************************************************)
  12955.       (* HMERR_CLOSE_LIB_FILE    - Cannot close library file                 *)
  12956.       (***********************************************************************)
  12957.       CONST  HMERR_CLOSE_LIB_FILE                      = 000002005H;
  12958.  
  12959.       (***********************************************************************)
  12960.       (* HMERR_INVALID_LIB_FILE  - Improper library file provided            *)
  12961.       (***********************************************************************)
  12962.       CONST  HMERR_INVALID_LIB_FILE                    = 000002006H;
  12963.  
  12964.       (***********************************************************************)
  12965.       (* HMERR_NO_MEMORY - Unable to allocate the requested amount of memory.*)
  12966.       (***********************************************************************)
  12967.       CONST  HMERR_NO_MEMORY                           = 000002007H;
  12968.  
  12969.       (***********************************************************************)
  12970.       (* HMERR_ALLOCATE_SEGMENT - Unable                                     *)
  12971.       (* to allocate a segment of memory for memory allocation requested     *)
  12972.       (* from the IPF.                                                       *)
  12973.       (***********************************************************************)
  12974.       CONST  HMERR_ALLOCATE_SEGMENT                    = 000002008H;
  12975.  
  12976.       (***********************************************************************)
  12977.       (* HMERR_FREE_MEMORY - Unable to free allocated  memory                *)
  12978.       (***********************************************************************)
  12979.       CONST  HMERR_FREE_MEMORY                         = 000002009H;
  12980.  
  12981.       (***********************************************************************)
  12982.       (* HMERR_PANEL_NOT_FOUND  - Unable                                     *)
  12983.       (* to find a help panel requested to help manager                      *)
  12984.       (***********************************************************************)
  12985.       CONST  HMERR_PANEL_NOT_FOUND                     = 000002010H;
  12986.  
  12987.       (***********************************************************************)
  12988.       (* HMERR_DATABASE_NOT_OPEN - Unable to read the unopened database      *)
  12989.       (***********************************************************************)
  12990.       CONST  HMERR_DATABASE_NOT_OPEN                   = 000002011H;
  12991.  
  12992.       (***********************************************************************)
  12993.       (* HMERR_DDL_ERROR - Unable to load resource dll                       *)
  12994.       (***********************************************************************)
  12995.       CONST  HMERR_LOAD_DLL                             = 000002013H;
  12996.  
  12997.       (***********************************************************************)
  12998.       (* AC Viewport stucture definitions                                    *)
  12999.       (***********************************************************************)
  13000.       TYPE ACVP = RECORD       (* acvp *)
  13001.             cb:          ULONG;
  13002.             hAB:         HAB;
  13003.             hmq:         HMQ;
  13004.             ObjectID:    ULONG;            (* object identifier *)
  13005.             hWndParent:  HWND;             (* IPF viewport client handle *)
  13006.             hWndOwner:   HWND;             (* IPF viewport client handle *)
  13007.             hWndACVP:    HWND;             (* applications frame window hwnd *)
  13008.       END;
  13009.       TYPE PACVP = POINTER TO ACVP;
  13010.  
  13011.       (***********************************************************************)
  13012.       (* DDF defines and prototypes                                          *)
  13013.       (***********************************************************************)
  13014.    <* IF NOT DEFINED (PMDDF_H)  THEN *>
  13015.       <* NEW PMDDF_H + *>
  13016.    <* END *>
  13017.  
  13018.    <* IF DEFINED (INCL_DDF)  THEN *>
  13019.             (*********************************************************************)
  13020.             (* Define Handle to DDF                                              *)
  13021.             (*********************************************************************)
  13022.             TYPE HDDF = POINTER TO SYSTEM.void;
  13023.  
  13024.             (* DdfHyperText Flags *)
  13025.             CONST REFERENCE_BY_ID    = 0H;
  13026.             CONST REFERENCE_BY_RES   = 1H;
  13027.  
  13028.             (* DdfBeginList formatting flags *)
  13029.             CONST HMBT_NONE          = 1H;
  13030.             CONST HMBT_ALL           = 2H;
  13031.             CONST HMBT_FIT           = 3H;
  13032.  
  13033.             CONST HMLS_SINGLELINE    = 1H;
  13034.             CONST HMLS_DOUBLELINE    = 2H;
  13035.  
  13036.             (* DdfBitmap alignment flags *)
  13037.             CONST ART_RUNIN          = 010H;
  13038.             CONST ART_LEFT           = 001H;
  13039.             CONST ART_RIGHT          = 002H;
  13040.             CONST ART_CENTER         = 004H;
  13041.  
  13042.             (* DdfSetColor Color Flag *)
  13043.             CONST CLR_UNCHANGED      = -6H;
  13044.  
  13045.             (**********************************************************************)
  13046.             (* DDF API declarations.                                              *)
  13047.             (**********************************************************************)
  13048.  
  13049.             PROCEDURE [APIENTRY]  DdfInitialize (hwndHelpInstance:   HWND ;
  13050.                                                                         cbBuffer:        ULONG ;
  13051.                                                                         ulIncrement:     ULONG ): HDDF;
  13052.  
  13053.             PROCEDURE [APIENTRY]  DdfPara (hddf: HDDF ): BOOL;
  13054.  
  13055.             PROCEDURE [APIENTRY]  DdfSetFormat (hddf:        HDDF ;
  13056.                                                                       fFormatType:    ULONG ): BOOL;
  13057.  
  13058.             PROCEDURE [APIENTRY]  DdfSetTextAlign (hddf:     HDDF ;
  13059.                                                                             fAlign:      ULONG ): BOOL;
  13060.  
  13061.             PROCEDURE [APIENTRY]  DdfSetColor (hddf: HDDF ;
  13062.                                                                     fBackColor:     COLOR ;
  13063.                                                                     fForColor:      COLOR ): BOOL;
  13064.  
  13065.             PROCEDURE [APIENTRY]  DdfInform (hddf:   HDDF ;
  13066.                                                                 pszText:   PCSZ;
  13067.                                                                 resInformNumber: ULONG ): BOOL;
  13068.  
  13069.             PROCEDURE [APIENTRY]  DdfSetFontStyle (hddf:        HDDF ;
  13070.                                                                             fFontStyle: ULONG ): BOOL;
  13071.  
  13072.             PROCEDURE [APIENTRY]  DdfHyperText (hddf:        HDDF ;
  13073.                                                                       pszText:        PCSZ ;
  13074.                                                                       pszReference:   PCSZ ;
  13075.                                                                       fReferenceType: ULONG ): BOOL;
  13076.  
  13077.             PROCEDURE [APIENTRY]  DdfBeginList (hddf:       HDDF ;
  13078.                                                                       ulWidthDT:     ULONG ;
  13079.                                                                       fBreakType:    ULONG ;
  13080.                                                                       fSpacing:      ULONG ): BOOL;
  13081.  
  13082.             PROCEDURE [APIENTRY]  DdfListItem (hddf: HDDF ;
  13083.                                                                     pszTerm: PCSZ ;
  13084.                                                                     pszDescription: PCSZ ): BOOL;
  13085.  
  13086.             PROCEDURE [APIENTRY]  DdfEndList (hddf: HDDF ): BOOL;
  13087.  
  13088.             PROCEDURE [APIENTRY]  DdfMetafile (hddf:  HDDF ;
  13089.                                                                     hmf:      HMF ;
  13090.                                                                     prclRect: PRECTL ): BOOL;
  13091.  
  13092.             PROCEDURE [APIENTRY]  DdfText (hddf:     HDDF ;
  13093.                                                             pszText:     PCSZ ): BOOL;
  13094.  
  13095.             PROCEDURE [APIENTRY]  DdfSetFont (hddf:  HDDF ;
  13096.                                                                   pszFaceName: PCSZ;
  13097.                                                                   ulWidth:     ULONG ;
  13098.                                                                   ulHeight:    ULONG ): BOOL;
  13099.  
  13100.             PROCEDURE [APIENTRY]  DdfBitmap (hddf:   HDDF ;
  13101.                                                                 hbm:    HBITMAP ;
  13102.                                                                 fAlign: ULONG ): BOOL;
  13103.  
  13104.             (*********************************************************************)
  13105.             (* error codes returned by DDF API functions                         *)
  13106.             (*********************************************************************)
  13107.             CONST HMERR_DDF_MEMORY                 = 03001H;
  13108.             CONST HMERR_DDF_ALIGN_TYPE             = 03002H;
  13109.             CONST HMERR_DDF_BACKCOLOR              = 03003H;
  13110.             CONST HMERR_DDF_FORECOLOR              = 03004H;
  13111.             CONST HMERR_DDF_FONTSTYLE              = 03005H;
  13112.             CONST HMERR_DDF_REFTYPE                = 03006H;
  13113.             CONST HMERR_DDF_LIST_UNCLOSED          = 03007H;
  13114.             CONST HMERR_DDF_LIST_UNINITIALIZED     = 03008H;
  13115.             CONST HMERR_DDF_LIST_BREAKTYPE         = 03009H;
  13116.             CONST HMERR_DDF_LIST_SPACING           = 0300AH;
  13117.             CONST HMERR_DDF_HINSTANCE              = 0300BH;
  13118.             CONST HMERR_DDF_EXCEED_MAX_LENGTH      = 0300CH;
  13119.             CONST HMERR_DDF_EXCEED_MAX_INC         = 0300DH;
  13120.             CONST HMERR_DDF_INVALID_DDF            = 0300EH;
  13121.             CONST HMERR_DDF_FORMAT_TYPE            = 0300FH;
  13122.             CONST HMERR_DDF_INVALID_PARM           = 03010H;
  13123.             CONST HMERR_DDF_INVALID_FONT           = 03011H;
  13124.             CONST HMERR_DDF_SEVERE                 = 03012H;
  13125.  
  13126.    <* END *>
  13127.       (* XLATOFF *)
  13128.  
  13129.  
  13130.  
  13131. (**************************** end of file **********************************)
  13132.  
  13133. (* ------------- End of file:  .\hm\pmhelp.hm ------------- *)
  13134.    <* END *>
  13135. <* END *>
  13136.  
  13137. (*Load/Delete Library/Procedure *)
  13138.  
  13139. TYPE HLIB  = HMODULE;
  13140. TYPE PHLIB = PHMODULE;
  13141.  
  13142. <* IF DEFINED (INCL_WINLOAD)  THEN *>
  13143.       PROCEDURE [APIENTRY] WinDeleteProcedure(hab:     HAB;
  13144.                                                                               wndproc: PFNWP): BOOL;
  13145.       PROCEDURE [APIENTRY] WinDeleteLibrary(hab:       HAB;
  13146.                                                                           libhandle: HLIB): BOOL;
  13147.       PROCEDURE [APIENTRY] WinLoadProcedure(hab:       HAB;
  13148.                                                                           libhandle: HLIB;
  13149.                                                                           procname:  PCSZ): PFNWP;
  13150.       PROCEDURE [APIENTRY] WinLoadLibrary(hab:     HAB;
  13151.                                                                       libname: PCSZ): HLIB;
  13152. <* END *>
  13153.  
  13154. <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  13155.    <* IF DEFINED (INCL_WINDESKTOP)  THEN *>
  13156.  
  13157.             (*** Desktop API definitions ***)
  13158.  
  13159.             TYPE DESKTOP = RECORD         (* dsk *)
  13160.                   cbSize:     ULONG;
  13161.                   hbm:        HBITMAP;
  13162.                   x:          LONG;
  13163.                   y:          LONG;
  13164.                   fl:         ULONG;
  13165.                   lTileCount: LONG;
  13166.                   szFile:     ARRAY [0..259] OF CHAR;
  13167.             END;
  13168.             TYPE PDESKTOP = POINTER TO DESKTOP;  (* pdsk *)
  13169.  
  13170.             PROCEDURE [APIENTRY] WinSetDesktopBkgnd(hwndDesktop: HWND;
  13171.                                                                                     pdskNew:     PDESKTOP): HBITMAP;
  13172.             PROCEDURE [APIENTRY] WinQueryDesktopBkgnd(hwndDesktop: HWND;
  13173.                                                                                         pdsk:        PDESKTOP): BOOL;
  13174.  
  13175.             CONST SDT_DESTROY         = 00001H;
  13176.             CONST SDT_NOBKGND         = 00002H;
  13177.             CONST SDT_TILE            = 00004H;
  13178.             CONST SDT_SCALE           = 00008H;
  13179.             CONST SDT_PATTERN         = 00010H;
  13180.             CONST SDT_CENTER          = 00020H;
  13181.             CONST SDT_RETAIN          = 00040H;
  13182.             CONST SDT_LOADFILE        = 00080H;
  13183.  
  13184.    <* END *>
  13185. <* END *>
  13186.  
  13187. <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  13188.    <* IF DEFINED (INCL_WINPALETTE)  THEN *>
  13189.  
  13190.             (*** Palette Manager API definitions ***)
  13191.  
  13192.             PROCEDURE [APIENTRY] WinRealizePalette(hwnd: HWND;
  13193.                                                                             hps:     HPS;
  13194.                                                                             pcclr:   PULONG): LONG;
  13195.  
  13196.    <* END *>
  13197. <* END *>
  13198.  
  13199. <* IF DEFINED (INCL_REMAPDLL)  THEN *>
  13200.       CONST STR_DLLNAME = "keyremap";
  13201. <* END *>
  13202.  
  13203. <* IF DEFINED (INCL_NLS)  THEN *>
  13204.       CONST WM_DBCSFIRST               = 000b0H;
  13205.       CONST WM_DBCSLAST                = 000cfH;
  13206.  
  13207.    
  13208. (* ------------- Include file: .\hm\os2nls.hm ------------- *)
  13209. (****************************** Module Header ******************************\
  13210. *
  13211. * Module Name: OS2NLS.H
  13212. *
  13213. * OS/2 Presentation Manager DBCS include file
  13214. *
  13215. * Copyright (c) International Business Machines Corporation 1981; 1988-1992
  13216. *
  13217. * ===========================================================================
  13218. *
  13219. * The definitions in this file are for use on Double Byte Character Set
  13220. * (DBCS) versions of OS/2 only. They may not be used on SBCS versions.
  13221. *
  13222. * This is included from PMWIN.H when INCL_NLS symbol is defined
  13223. *
  13224. * ===========================================================================
  13225. *
  13226. * Comments at the end of each TYPE line give the name tags used in
  13227. * the assembler include version of this file.
  13228. *
  13229. * The assembler include version of this file excludes lines between NOINC
  13230. * and INC comments.
  13231. *
  13232. \***************************************************************************)
  13233.  
  13234.  
  13235.       (* resource ID offset for bi-lingual system resources (menu & string) *)
  13236.  
  13237.       CONST RID_DBE_OFFSET         = 01000H;
  13238.       CONST STR_DBE_OFFSET         = 01000H;
  13239.  
  13240.  
  13241.       (* definition of Virtual key values for DBCS *)
  13242.  
  13243.       CONST VK_DBE_FIRST           = 080H; (* VK_DBCSFIRST *)
  13244.       CONST VK_DBE_LAST            = 0ffH; (* VK_DBCSLAST  *)
  13245.  
  13246.       CONST VK_DBE_IMEFIRST        = 0A0H; (* VK_DBE_FIRST + 020 *)
  13247.       CONST VK_DBE_IMELAST         = 0FFH; (* VK_DBE_LAST *)
  13248.  
  13249.       (* OEM keyboard support including PS/2 keyboard *)
  13250.  
  13251.       CONST VK_DBE_OEMFIRST        = 0C0H;
  13252.       CONST VK_DBE_OEMLAST         = 0CFH;
  13253.  
  13254.       (* for codepage 932 *)
  13255.  
  13256.       CONST VK_DBE_ALPHANUMERIC    = 080H; (* VK_DBE_FIRST + 000 *)
  13257.       CONST VK_DBE_KATAKANA        = 081H; (* VK_DBE_FIRST + 001 *)
  13258.       CONST VK_DBE_HIRAGANA        = 082H; (* VK_DBE_FIRST + 002 *)
  13259.       CONST VK_DBE_SBCSCHAR        = 083H; (* VK_DBE_FIRST + 003 *)
  13260.       CONST VK_DBE_DBCSCHAR        = 084H; (* VK_DBE_FIRST + 004 *)
  13261.       CONST VK_DBE_SBCSDBCSCHAR    = 085H; (* VK_DBE_FIRST + 005 *)
  13262.       CONST VK_DBE_ROMAN           = 086H; (* VK_DBE_FIRST + 006 *)
  13263.  
  13264.       (* for codepage 934 *)
  13265.  
  13266.       CONST VK_DBE_HANJA           = 087H; (* VK_DBE_FIRST + 007 *)
  13267.       CONST VK_DBE_HANGEUL         = 088H; (* VK_DBE_FIRST + 008 *)
  13268.       CONST VK_DBE_JAMO            = 089H; (* VK_DBE_FIRST + 009 *)
  13269.  
  13270.       (* for codepage 936 *)
  13271.  
  13272.       CONST VK_DBE_HANZI           = 08AH; (* VK_DBE_FIRST + 00A *)
  13273.  
  13274.       (* for codepage 938 *)
  13275.  
  13276.       CONST VK_DBE_TSANGJYE        = 08CH; (* VK_DBE_FIRST + 00C *)
  13277.       CONST VK_DBE_PHONETIC        = 08DH; (* VK_DBE_FIRST + 00D *)
  13278.  
  13279.       CONST VK_DBE_KANJI           = 0a0H; (* VK_DBE_IMEFIRST + 000 *)
  13280.       CONST VK_DBE_IMEACTIVATE     = 0a0H; (* VK_DBE_IMEFIRST + 000 *)
  13281.       CONST VK_DBE_CONV            = 0a1H; (* VK_DBE_IMEFIRST + 001 *)
  13282.       CONST VK_DBE_NOCONV          = 0a2H; (* VK_DBE_IMEFIRST + 002 *)
  13283.       CONST VK_DBE_TANGO           = 0a3H; (* VK_DBE_IMEFIRST + 003 *)
  13284.       CONST VK_DBE_WORDREGISTER    = 0a3H; (* VK_DBE_IMEFIRST + 003 *)
  13285.       CONST VK_DBE_IMEDIALOG       = 0a4H; (* VK_DBE_IMEFIRST + 004 *)
  13286.       CONST VK_DBE_IME_MBSELECTED  = 0a5H; (* VK_DBE_IMEFIRST + 005 *)
  13287.       CONST VK_DBE_IME_LBSELECTED  = 0a6H; (* VK_DBE_IMEFIRST + 006 *)
  13288.       CONST VK_DBE_CODEINPUT       = 0a7H; (* VK_DBE_IMEFIRST + 007 *)
  13289.       CONST VK_DBE_ALLCANDIDATE    = 0a8H; (* VK_DBE_IMEFIRST + 008 *)
  13290.       CONST VK_DBE_PREVCANDIDATE   = 0a9H; (* VK_DBE_IMEFIRST + 009 *)
  13291.       CONST VK_DBE_IMEDEACTIVATE   = 0aaH; (* VK_DBE_IMEFIRST + 00a *)
  13292.       CONST VK_DBE_IME_WORDREGISTED= 0abH; (* VK_DBE_IMEFIRST + 00b *)
  13293.       CONST VK_DBE_IMECONTROL      = 0acH; (* VK_DBE_IMEFIRST + 00c *)
  13294.       CONST VK_DBE_IME_FREEPS      = 0adH; (* VK_DBE_IMEFIRST + 00d *)
  13295.       CONST VK_DBE_IMEMODEEXIT     = 0aeH; (* VK_DBE_IMEFIRST + 00e *)
  13296.  
  13297.       (* Window Class definitoin for DBCS (migration) *)
  13298.  
  13299.       CONST WC_DBE_APPSTAT          = PSZ(0ffff0010H); (* WC_APPSTAT *)
  13300.       CONST WC_DBE_KBDSTAT          = PSZ(0ffff0011H); (* WC_KBDSTAT *)
  13301.       CONST WC_DBE_PECIC            = PSZ(0ffff0012H); (* WC_PECIC   *)
  13302.  
  13303.       (* Double byte character set messages *)
  13304.  
  13305.       CONST WM_DBE_SETAPPLSTAT     = 000b6H;
  13306.       CONST WM_DBE_KKCPARAMS       = 000bcH;
  13307.  
  13308.       (* DBCS unique statndsrd Frame Create Flag (migration) *)
  13309.  
  13310.       CONST FCF_DBE_STATAREA       = 080000000H; (* FCF_DBE_APPSTAT *)
  13311.  
  13312.       (* WM_SETWINDOWPARAM ctldata of DBCS status area *)
  13313.  
  13314.       TYPE KEYSTSDATA = RECORD          (* keysts *)
  13315.             wpmctlflag:        ULONG       ;
  13316.             textlength:        ULONG       ;
  13317.             pTextString:       PSZ         ;
  13318.             pAttrString:       PSZ         ;
  13319.             pRomanString:      PSZ         ;
  13320.       END;
  13321.       TYPE PKEYSTSDATA = POINTER TO KEYSTSDATA;
  13322.  
  13323.       TYPE WPMCTLPARAMS = RECORD       (* wpmctlprm - old definition *)
  13324.             wpmctlflag:       ULONG       ;
  13325.             textlength:       ULONG       ;
  13326.             pTextString:      PSZ         ;
  13327.             pAttrString:      PSZ         ;
  13328.       END;
  13329.       TYPE PWPMCTLPARAMS = POINTER TO WPMCTLPARAMS;
  13330.  
  13331.       (* wpmctlflag value definition *)
  13332.  
  13333.       CONST DBE_KSF_ALPHANUMERIC      = 00001H;
  13334.       CONST DBE_KSF_KATAKANA          = 00002H;
  13335.       CONST DBE_KSF_HIRAGANA          = 00004H;
  13336.       CONST DBE_KSF_CAPS              = 00008H;
  13337.       CONST DBE_KSF_ROMAN             = 00010H;
  13338.       CONST DBE_KSF_HANKAKU           = 00020H;
  13339.       CONST DBE_KSF_ZENKAKU           = 00040H;
  13340.       CONST DBE_KSF_SBCS              = DBE_KSF_HANKAKU;
  13341.       CONST DBE_KSF_DBCS              = DBE_KSF_ZENKAKU;
  13342.       CONST DBE_KSF_UPPER             = 00080H;
  13343.       CONST DBE_KSF_LOWER             = 00100H;
  13344.       CONST DBE_KSF_TEXT              = 00200H;
  13345.       CONST DBE_KSF_NOROMAN           = 00400H;
  13346.       CONST DBE_KSF_DISABLEONTHESPOT  = 00800H;
  13347.       CONST DBE_KSF_ROMANTEXT         = 01000H;
  13348.  
  13349.       (* For Code Page 934(Korea) wpmctlflag value definition  *)
  13350.  
  13351.       CONST DBE_KSF_JAMO              = 00002H;
  13352.       CONST DBE_KSF_HANGEUL           = 00004H;
  13353.  
  13354.       (* For Code Page 938(Taiwan) wpmctlflag value definition  *)
  13355.  
  13356.       CONST DBE_KSF_PHONETIC          = 00002H;
  13357.       CONST DBE_KSF_TSANGJYE          = 00004H;
  13358.  
  13359.       (* WM_SETWINDOWPARAM ctldata of Pecic control *)
  13360.  
  13361.       TYPE PECICDATA = RECORD       (* pecicdata *)
  13362.             wpmctlflag:    ULONG       ;
  13363.             textlength:    ULONG       ;
  13364.             pTextString:   PSZ         ;
  13365.             pAttrString:   PSZ         ;
  13366.             CursorPos:     ULONG       ;
  13367.             CursorAttr:    ULONG       ;
  13368.       END;
  13369.       TYPE PPECICDATA = POINTER TO PECICDATA;
  13370.  
  13371.       (* wndparams definition of WM_DBE_APPLSTAT *)
  13372.  
  13373.       CONST DBE_WPM_APPLSTAT_VISIBILITY  = 00004H;
  13374.  
  13375.       (* ctldata of DBE_WPM_APPLSTAT_VISIBLITY *)
  13376.  
  13377.       CONST DBE_AS_APPLTOP         = 00001H;
  13378.       CONST DBE_AS_KBDTOP          = 00002H;
  13379.       CONST DBE_AS_PECICTOP        = 00004H;
  13380.       CONST DBE_AS_APPLBOTTOM      = 00008H;
  13381.  
  13382.       (** WM_DBE_KKCPARAMS definition **)
  13383.       (* mp1(lpkkcparams) *)
  13384.  
  13385.       TYPE KKCPARAMS = RECORD       (* kkcparams *)
  13386.             lenKKCParams:  ULONG       ;
  13387.             fRequest:      ULONG       ;
  13388.             fKKCParams:    ULONG       ;
  13389.             pKKCData:      PVOID       ;
  13390.             Reserved:      ULONG       ;
  13391.       END;
  13392.       TYPE PKKCPARAMS = POINTER TO KKCPARAMS;
  13393.  
  13394.       (* fRequest *)
  13395.       CONST DBE_KKCPARAMS_SET          = 00001H;
  13396.       CONST DBE_KKCPARAMS_QUERY        = 00002H;
  13397.  
  13398.       (* fKKCParams *)
  13399.       CONST DBE_KKCPARAMS_PHYSICALATTRIBUTE = 00001H;
  13400.       CONST DBE_KKCPARAMS_PECICCURSORPOS    = 00002H;
  13401.  
  13402.       --#pragma pack(1) (* force structure alignment packing *)
  13403.  
  13404.       (* Level format for ColorLookUpTable *)
  13405.       TYPE LEVEL = RECORD  (* Level *)
  13406.             attri1: UCHAR;                         (** 1st Attribute         **)
  13407.             attri2: UCHAR;                         (** 2nd Attribute         **)
  13408.       END;
  13409.       TYPE PLEVEL = POINTER TO LEVEL;
  13410.  
  13411.       --#pragma pack()  (* restore packing to default *)
  13412.  
  13413.       (* Color Look Up Table format *)
  13414.       TYPE COLORLOOKUPTBL = RECORD  (* ColorLookUpTable *)
  13415.             nAttr:         ULONG;                          (** number of Attribute   **)
  13416.             PhysicalLevel: ARRAY [0..31] OF LEVEL;         (** struct of Levels      **)
  13417.       END;
  13418.       TYPE PCOLORLOOKUPTBL = POINTER TO COLORLOOKUPTBL;
  13419.  
  13420.       (** WinDBCSIMEControl() Definition & Prototype **)
  13421.  
  13422.       (* type *)
  13423.       CONST DBE_IMCTL_QUERY        = 00001H;
  13424.       CONST DBE_IMCTL_SET          = 00002H;
  13425.  
  13426.       TYPE IMEMODE = RECORD        (* imemode *)
  13427.             lenIMEMODE: ULONG  ;
  13428.             fIMEMode:   ULONG  ;
  13429.             hIME:       ULONG  ; (* query mode only valid *)
  13430.             hModIME:    ULONG  ; (* query mode only valid *)
  13431.       END;
  13432.       TYPE PIMEMODE = POINTER TO IMEMODE;
  13433.  
  13434.       (* definition of fIMEMode *)
  13435.       CONST DBE_IMCTL_IMEENABLE     = 00001H;
  13436.       CONST DBE_IMCTL_IMEDISABLE    = 00002H;
  13437.       CONST DBE_IMCTL_IMEMODE       = 00004H;
  13438.       CONST DBE_IMCTL_NOTIMEMODE    = 00008H;
  13439.       CONST DBE_IMCTL_INHERIT_PFRAME= 00100H;
  13440.       CONST DBE_IMCTL_INTERIMREQUEST= 08000H;
  13441.  
  13442.       PROCEDURE [APIENTRY] WinDBCSIMEControl( hab: HAB ;
  13443.                                                                         hwndFrame:  HWND ;
  13444.                                                                         ulType:     ULONG ;
  13445.                                                                         pIMEMode:   PIMEMODE ): ULONG;
  13446.  
  13447.  
  13448.       (** WinDBCSModeControl() Definition & Prototype **)
  13449.  
  13450.       (* WinDBCSModeControl parameters definitions *)
  13451.       (* type *)
  13452.       CONST DBE_MCTL_QUERY         = 00001H;
  13453.       CONST DBE_MCTL_SET           = 00002H;
  13454.  
  13455.       (* arg *)
  13456.       CONST DBE_MCTL_INPUTMODEREQUEST= 00001H;
  13457.       CONST DBE_MCTL_JAPANREQ      = 00001H;   (* migration *)
  13458.  
  13459.       (* parm - MCTL_JAPAN *)
  13460.       CONST DBE_MCTL_ALPHANUMERIC  = 00001H;
  13461.       CONST DBE_MCTL_KATAKANA      = 00002H;
  13462.       CONST DBE_MCTL_HIRAGANA      = 00004H;
  13463.       CONST DBE_MCTL_SBCSCHAR      = 00008H;
  13464.       CONST DBE_MCTL_DBCSCHAR      = 00010H;
  13465.       CONST DBE_MCTL_ROMAN         = 00020H;
  13466.       CONST DBE_MCTL_NOROMAN       = 00040H;
  13467.  
  13468.       CONST DBE_MCTL_KKCREQ        = 01000H;
  13469.       CONST DBE_MCTL_CP932REQ      = 00001H;
  13470.       CONST DBE_MCTL_KKCENABLE     = 01000H;
  13471.       CONST DBE_MCTL_KKCDISABLE    = 02000H;
  13472.       CONST DBE_MCTL_HANKAKU       = 00008H;
  13473.       CONST DBE_MCTL_ZENKAKU       = 00010H;
  13474.  
  13475.       (* parm - MCTL_KOREA *)
  13476.       CONST DBE_MCTL_JAMO          = 00002H;
  13477.       CONST DBE_MCTL_HANGEUL       = 00004H;
  13478.       CONST DBE_MCTL_INTERIMREQUEST= 00080H;
  13479.  
  13480.       (* parm - MCTL_TCHINESE *)
  13481.       CONST DBE_MCTL_PHONETIC      = 00002H;
  13482.       CONST DBE_MCTL_TSANGJYE      = 00004H;
  13483.  
  13484.       (* for MDI support *)
  13485.       CONST DBE_MCTL_INHERIT_PFRAME= 00100H;
  13486.  
  13487.       PROCEDURE [APIENTRY] WinDBCSModeControl(hab: HAB ;
  13488.                                                                           hwndFrame:    HWND ;
  13489.                                                                           ulType: ULONG ;
  13490.                                                                           ulArg:  ULONG ;
  13491.                                                                           pparm:  PULONG): ULONG;
  13492.  
  13493.       (* Font Driver Description structure  *)
  13494.  
  13495.       TYPE FD_DESC = RECORD   (* fd_desc *)
  13496.             flType:       ULONG  ;
  13497.             str64Desc:    ARRAY [0..63] OF CHAR;
  13498.       END;
  13499.       TYPE PFD_DESC = POINTER TO FD_DESC;
  13500.  
  13501.       (* Font Driver functions *)
  13502.  
  13503.       PROCEDURE [APIENTRY] WinDBCSLoadFontDriver(hab:      HAB ;
  13504.                                                                                     psz:      PCSZ): BOOL;
  13505.  
  13506.       PROCEDURE [APIENTRY] WinDBCSUnloadFontDriver(hab:    HAB ;
  13507.                                                                                         psz:    PCSZ): BOOL;
  13508.  
  13509.       PROCEDURE [APIENTRY] WinDBCSQueryFDDescription(hab:      HAB ;
  13510.                                                                                             psz:      PCSZ ;
  13511.                                                                                             pfd_desc: PFD_DESC): BOOL;
  13512.  
  13513.       (* fd_type definition *)
  13514.  
  13515.       CONST DBE_FD_DESC_SYSTEM     = 00001H;
  13516.       CONST DBE_FD_DESC_PUBLIC     = 00002H;
  13517.       CONST DBE_FD_DESC_PRIVATE    = 00004H;
  13518.  
  13519.       (* System menu item number ID in MENUITEM for DBCS unique function *)
  13520.       CONST SC_DBE_IME                = 08018H;
  13521.       CONST SC_DBE_IMESEPARATOR       = 08019H;
  13522.  
  13523. (**************************** end of file **********************************)
  13524.  
  13525. (* ------------- End of file:  .\hm\os2nls.hm ------------- *)
  13526. <* END *>
  13527.  
  13528.  
  13529. (**************************** end of file **********************************)
  13530.  
  13531. (* ------------- End of file:  .\hm\pmwin.hm ------------- *)
  13532.  
  13533. (* ------------- Include file: .\hm\pmgpi.hm ------------- *)
  13534. (****************************** Module Header ******************************\
  13535. *
  13536. * Module Name: PMGPI.H
  13537. *
  13538. * OS/2 Presentation Manager GPI constants; types and function declarations
  13539. *
  13540. * Copyright (c) International Business Machines Corporation 1981; 1988-1992
  13541. *
  13542. * ===========================================================================
  13543. *
  13544. * The folowing symbols are used in this file for conditional sections.
  13545. *
  13546. *   CONST:                To include:
  13547. *
  13548. *   INCL_GPI                Include all of the GPI
  13549. *   INCL_GPIBITMAPS         Bitmaps and Pel Operations
  13550. *   INCL_GPICONTROL         Basic PS control
  13551. *   INCL_GPICORRELATION     Picking; Boundary and Correlation
  13552. *   INCL_GPIDEFAULTS        Default Primitive Attributes
  13553. *   INCL_GPIERRORS          defined if INCL_ERRORS defined
  13554. *   INCL_GPILCIDS           Phyical and Logical Fonts with Lcids
  13555. *   INCL_GPILOGCOLORTABLE   Logical Color Tables
  13556. *   INCL_GPIMETAFILES       MetaFiles
  13557. *   INCL_GPIPATHS           Paths and Clipping with Paths
  13558. *   INCL_GPIPOLYGON         Polygons
  13559. *   INCL_GPIPRIMITIVES      Drawing Primitives and Primitive Attributes
  13560. *   INCL_GPIREGIONS         Regions and Clipping with Regions
  13561. *   INCL_GPISEGEDITING      Segment Editing via Elements
  13562. *   INCL_GPISEGMENTS        Segment Control and Drawing
  13563. *   INCL_GPITRANSFORMS      Transform and Transform Conversion
  13564. *
  13565. * There is a symbol used in this file called INCL_DDIDEFS. This is used to
  13566. * include only the definitions for the DDI. The programmer using the GPI
  13567. * can ignore this symbol
  13568. *
  13569. * There is a symbol used in this file called INCL_SAADEFS. This is used to
  13570. * include only the definitions for the SAA. The programmer using the GPI
  13571. * can ignore this symbol
  13572. *
  13573. * ===========================================================================
  13574. *
  13575. * Comments at the end of each TYPE line give the name tags used in
  13576. * the assembler include version of this file.
  13577. *
  13578. * The assembler include version of this file excludes lines between NOINC
  13579. * and INC comments.
  13580. *
  13581. \***************************************************************************)
  13582.  
  13583.  
  13584. <* NEW GPI_INCLUDED + *>
  13585.  
  13586.  
  13587. <* IF DEFINED (INCL_GPI)  THEN *>
  13588.    <* NEW INCL_GPIBITMAPS + *>
  13589.    <* NEW INCL_GPICONTROL + *>
  13590.    <* NEW INCL_GPICORRELATION + *>
  13591.    <* NEW INCL_GPIDEFAULTS + *>
  13592.    <* NEW INCL_GPILCIDS + *>
  13593.    <* NEW INCL_GPILOGCOLORTABLE + *>
  13594.    <* NEW INCL_GPIMETAFILES + *>
  13595.    <* NEW INCL_GPIPATHS + *>
  13596.    <* NEW INCL_GPIPOLYGON + *>
  13597.    <* NEW INCL_GPIPRIMITIVES + *>
  13598.    <* NEW INCL_GPIREGIONS + *>
  13599.    <* NEW INCL_GPISEGEDITING + *>
  13600.    <* NEW INCL_GPISEGMENTS + *>
  13601.    <* NEW INCL_GPITRANSFORMS + *>
  13602. <* END *>
  13603.  
  13604.  
  13605. <* IF DEFINED (INCL_ERRORS)  THEN *>
  13606.    <* NEW INCL_GPIERRORS + *>
  13607. <* END *>
  13608.  
  13609.  
  13610. <* IF DEFINED (INCL_DDIDEFS)  THEN *>
  13611.    <* NEW INCL_GPIBITMAPS + *>
  13612.    <* NEW INCL_GPIERRORS + *>
  13613.    <* NEW INCL_GPILCIDS + *>
  13614.    <* NEW INCL_GPILOGCOLORTABLE + *>
  13615.    <* NEW INCL_GPIPATHS + *>
  13616.    <* NEW INCL_GPIPOLYGON + *>
  13617.    <* NEW INCL_GPIPRIMITIVES + *>
  13618.    <* NEW INCL_GPIREGIONS + *>
  13619.    <* NEW INCL_GPITRANSFORMS + *>
  13620. <* END *>
  13621.  
  13622.  
  13623. <* IF DEFINED (INCL_SAADEFS)  THEN *>
  13624.    <* NEW INCL_GPIBITMAPS + *>
  13625.    <* NEW INCL_GPICONTROL + *>
  13626.    <* NEW INCL_GPICORRELATION + *>
  13627.    <* NEW INCL_GPIERRORS + *>
  13628.    <* NEW INCL_GPILCIDS + *>
  13629.    <* NEW INCL_GPILOGCOLORTABLE + *>
  13630.    <* NEW INCL_GPIMETAFILES + *>
  13631.    <* NEW INCL_GPIPATHS + *>
  13632.    <* NEW INCL_GPIPOLYGON + *>
  13633.    <* NEW INCL_GPIPRIMITIVES + *>
  13634.    <* NEW INCL_GPIREGIONS + *>
  13635.    <* NEW INCL_GPISEGEDITING + *>
  13636.    <* NEW INCL_GPISEGMENTS + *>
  13637.    <* NEW INCL_GPITRANSFORMS + *>
  13638. <* END *>
  13639.  
  13640. (* General GPI return values *)
  13641. CONST GPI_ERROR                   =    0;
  13642. CONST GPI_OK                      =    1;
  13643. CONST GPI_ALTERROR                =  (-1);
  13644.  
  13645. (* fixed point number - implicit binary point between 2 and 3 hex digits *)
  13646. TYPE  FIXED  = LONG;    (* fx *)
  13647. TYPE  PFIXED = POINTER TO FIXED;
  13648.  
  13649. (* fixed point number - implicit binary point between 1st and 2nd hex digits *)
  13650. TYPE  FIXED88 = USHORT;  (* fx88 *)
  13651.  
  13652. (* fixed point signed number - implicit binary point between bits 14 and 13. *)
  13653. (*                             Bit 15 is the sign bit.                       *)
  13654. (*                             Thus 1.0 is represented by 16384 (= 04000)     *)
  13655. (*                             and -1.0 is represented by -16384 (= 0c000)    *)
  13656. TYPE  FIXED114 = USHORT; (* fx114 *)
  13657.  
  13658. (* make FIXED number from SHORT integer part and USHORT fractional part *)
  13659. --CONST MAKEFIXED(intpart;fractpart) MAKELONG(fractpart;intpart)
  13660. (* extract fractional part from a fixed quantity *)
  13661. --CONST FIXEDFRAC(fx)                (LOUSHORT(fx))
  13662. (* extract integer part from a fixed quantity *)
  13663. --CONST FIXEDINT(fx)                 ((SHORT)HIUSHORT(fx))
  13664.  
  13665. (* structure for size parameters e.g. for GpiCreatePS *)
  13666. TYPE SIZEL = RECORD           (* sizl *)
  13667.       cx:  LONG;
  13668.       cy:  LONG;
  13669. END;
  13670. TYPE PSIZEL = POINTER TO SIZEL;
  13671.  
  13672. (* return code on GpiQueryLogColorTable;GpiQueryRealColors and GpiQueryPel *)
  13673. CONST CLR_NOINDEX                =  (-254);
  13674.  
  13675. <* IF DEFINED (INCL_GPICONTROL) OR NOT DEFINED (INCL_NOCOMMON)  THEN *>
  13676.  
  13677.       (* units for GpiCreatePS and others *)
  13678.       CONST PU_ARBITRARY               = 00004H;
  13679.       CONST PU_PELS                    = 00008H;
  13680.       CONST PU_LOMETRIC                = 0000CH;
  13681.       CONST PU_HIMETRIC                = 00010H;
  13682.       CONST PU_LOENGLISH               = 00014H;
  13683.       CONST PU_HIENGLISH               = 00018H;
  13684.       CONST PU_TWIPS                   = 0001CH;
  13685.  
  13686.       (* format for GpiCreatePS *)
  13687.       CONST GPIF_DEFAULT               =   0H;
  13688.       CONST GPIF_SHORT                 = 00100H;
  13689.       CONST GPIF_LONG                  = 00200H;
  13690.  
  13691.  
  13692.       (* PS type for GpiCreatePS *)
  13693.       CONST GPIT_NORMAL                  = 0;
  13694.       CONST GPIT_MICRO                 = 01000H;
  13695.  
  13696.  
  13697.       (* implicit associate flag for GpiCreatePS *)
  13698.       CONST GPIA_NOASSOC                 = 0;
  13699.       CONST GPIA_ASSOC                 = 04000H;
  13700.  
  13701.       (* PS Fill type for GpiCreatePS defect: 61035 RickT Add exclusive fill *)
  13702.       CONST GPIM_AREAEXCL              = 08000H;
  13703.  
  13704.  
  13705.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  13706.             (* return error for GpiQueryDevice *)
  13707.             CONST HDC_ERROR               = HDC(LONG(-1));
  13708.    <* END *>
  13709.  
  13710.       (* common GPICONTROL functions *)
  13711.  
  13712.       PROCEDURE [APIENTRY] GpiCreatePS(hab:     HAB;
  13713.                                                             hdc:       HDC;
  13714.                                                             psizlSize: PSIZEL;
  13715.                                                             flOptions: ULONG ): HPS;
  13716.  
  13717.       PROCEDURE [APIENTRY] GpiDestroyPS(hps: HPS ): BOOL;
  13718.  
  13719.       PROCEDURE [APIENTRY] GpiAssociate(hps: HPS;
  13720.                                                               hdc:   HDC ): BOOL;
  13721.  
  13722.       PROCEDURE [APIENTRY] GpiRestorePS(hps: HPS;
  13723.                                                               lPSid: LONG ): BOOL;
  13724.  
  13725.       PROCEDURE [APIENTRY] GpiSavePS(hps: HPS ): LONG;
  13726.  
  13727.       PROCEDURE [APIENTRY] GpiErase(hps: HPS ): BOOL;
  13728.  
  13729.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  13730.  
  13731.             PROCEDURE [APIENTRY] GpiQueryDevice(hps: HPS): HDC;
  13732.    <* END *>
  13733.  
  13734. <* END *>
  13735. <* IF DEFINED (INCL_GPICONTROL)  THEN *>
  13736.  
  13737.       (* options for GpiResetPS *)
  13738.       CONST GRES_ATTRS                 = 00001H;
  13739.       CONST GRES_SEGMENTS              = 00002H;
  13740.       CONST GRES_ALL                   = 00004H;
  13741.  
  13742.       (* option masks for PS options used by GpiQueryPs *)
  13743.       CONST PS_UNITS                   = 000FCH;
  13744.       CONST PS_FORMAT                  = 00F00H;
  13745.       CONST PS_TYPE                    = 01000H;
  13746.       CONST PS_MODE                    = 02000H;
  13747.       CONST PS_ASSOCIATE               = 04000H;
  13748.       CONST PS_NORESET                 = 08000H;
  13749.  
  13750.  
  13751.       (* error context returned by GpiErrorSegmentData *)
  13752.       CONST GPIE_SEGMENT                 = 0;
  13753.       CONST GPIE_ELEMENT                 = 1;
  13754.       CONST GPIE_DATA                    = 2;
  13755.  
  13756.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  13757.  
  13758.             (* control parameter for GpiSetDrawControl *)
  13759.             CONST DCTL_ERASE                    =  1;
  13760.             CONST DCTL_DISPLAY                  =  2;
  13761.             CONST DCTL_BOUNDARY                 =  3;
  13762.             CONST DCTL_DYNAMIC                  =  4;
  13763.             CONST DCTL_CORRELATE                =  5;
  13764.  
  13765.             (* constants for GpiSet/QueryDrawControl *)
  13766.             CONST DCTL_ERROR                    = -1;
  13767.             CONST DCTL_OFF                      =  0;
  13768.             CONST DCTL_ON                       =  1;
  13769.  
  13770.             (* constants for GpiSet/QueryStopDraw *)
  13771.             CONST SDW_ERROR                    =-1;
  13772.             CONST SDW_OFF                      = 0;
  13773.             CONST SDW_ON                       = 1;
  13774.  
  13775.    <* END *>
  13776.  
  13777.       (* drawing for GpiSet/QueryDrawingMode *)
  13778.       CONST DM_ERROR                       = 0;
  13779.       CONST DM_DRAW                        = 1;
  13780.       CONST DM_RETAIN                      = 2;
  13781.       CONST DM_DRAWANDRETAIN               = 3;
  13782.  
  13783.       (*** other GPICONTROL functions *)
  13784.  
  13785.       PROCEDURE [APIENTRY] GpiResetPS(hps:     HPS;
  13786.                                                           flOptions: ULONG ): BOOL;
  13787.  
  13788.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  13789.  
  13790.  
  13791.             PROCEDURE [APIENTRY] GpiSetPS(hps:     HPS;
  13792.                                                             psizlsize: PSIZEL;
  13793.                                                             flOptions: ULONG ): BOOL;
  13794.  
  13795.    <* END *>
  13796.  
  13797.  
  13798.       PROCEDURE [APIENTRY] GpiQueryPS(hps: HPS;
  13799.                                                             psizlSize: PSIZEL ): ULONG;
  13800.  
  13801.       PROCEDURE [APIENTRY] GpiErrorSegmentData(hps:      HPS;
  13802.                                                                               plSegment: PLONG;
  13803.                                                                               plContext: PLONG ): LONG;
  13804.  
  13805.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  13806.  
  13807.  
  13808.             PROCEDURE [APIENTRY] GpiQueryDrawControl(hps:    HPS;
  13809.                                                                                   lControl: LONG ): LONG;
  13810.  
  13811.             PROCEDURE [APIENTRY] GpiSetDrawControl(hps:     HPS;
  13812.                                                                               lControl:  LONG;
  13813.                                                                               lValue:    LONG ): BOOL;
  13814.  
  13815.    <* END *>
  13816.  
  13817.  
  13818.       PROCEDURE [APIENTRY] GpiQueryDrawingMode(hps: HPS ): LONG;
  13819.  
  13820.       PROCEDURE [APIENTRY] GpiSetDrawingMode(hps:  HPS;
  13821.                                                                         lMode:  LONG ): BOOL;
  13822.  
  13823.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  13824.  
  13825.  
  13826.             PROCEDURE [APIENTRY] GpiQueryStopDraw(hps: HPS ): LONG;
  13827.  
  13828.             PROCEDURE [APIENTRY] GpiSetStopDraw(hps:  HPS;
  13829.                                                                         lValue: LONG ): BOOL;
  13830.  
  13831.    <* END *>
  13832.  
  13833. <* END *>
  13834. <* IF DEFINED (INCL_GPICORRELATION)  THEN *>
  13835.  
  13836.       (* options for GpiSetPickApertureSize *)
  13837.       CONST PICKAP_DEFAULT               = 0;
  13838.       CONST PICKAP_REC                   = 2;
  13839.  
  13840.       (* type of correlation for GpiCorrelateChain *)
  13841.       CONST PICKSEL_VISIBLE              = 0;
  13842.       CONST PICKSEL_ALL                  = 1;
  13843.  
  13844.       (* return code to indicate correlate hit(s) *)
  13845.       CONST GPI_HITS                     =  2;
  13846.  
  13847.       (*** picking;  correlation and boundary functions *)
  13848.  
  13849.       PROCEDURE [APIENTRY] GpiCorrelateChain(hps:     HPS;
  13850.                                                                         lType:     LONG;
  13851.                                                                         pptlPick:  PPOINTL;
  13852.                                                                         lMaxHits:  LONG;
  13853.                                                                         lMaxDepth: LONG;
  13854.                                                                         pl2:       PLONG ): LONG;
  13855.  
  13856.       PROCEDURE [APIENTRY] GpiQueryTag(hps: HPS;
  13857.                                                             plTag: PLONG ): BOOL;
  13858.  
  13859.       PROCEDURE [APIENTRY] GpiSetTag(hps: HPS;
  13860.                                                         lTag:  LONG ): BOOL;
  13861.  
  13862.       PROCEDURE [APIENTRY] GpiQueryPickApertureSize(hps:     HPS;
  13863.                                                                                       psizlSize: PSIZEL ): BOOL;
  13864.  
  13865.       PROCEDURE [APIENTRY] GpiSetPickApertureSize(hps:     HPS;
  13866.                                                                                   lOptions:  LONG;
  13867.                                                                                   psizlSize: PSIZEL ): BOOL;
  13868.  
  13869.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  13870.  
  13871.             PROCEDURE [APIENTRY] GpiQueryPickAperturePosition(hps:     HPS;
  13872.                                                                                                     pptlPoint: PPOINTL ): BOOL;
  13873.  
  13874.             PROCEDURE [APIENTRY] GpiSetPickAperturePosition(hps:    HPS;
  13875.                                                                                                 pptlPick: PPOINTL ): BOOL;
  13876.  
  13877.             PROCEDURE [APIENTRY] GpiQueryBoundaryData(hps:        HPS;
  13878.                                                                                     prclBoundary: PRECTL ): BOOL;
  13879.  
  13880.             PROCEDURE [APIENTRY] GpiResetBoundaryData(hps: HPS ): BOOL;
  13881.  
  13882.    <* END *>
  13883.  
  13884.  
  13885.       PROCEDURE [APIENTRY] GpiCorrelateFrom(hps:     HPS;
  13886.                                                                     lFirstSegment:   LONG;
  13887.                                                                     lLastSegment:    LONG;
  13888.                                                                     lType:      LONG;
  13889.                                                                     pptlPick:   PPOINTL;
  13890.                                                                     lMaxHits:   LONG;
  13891.                                                                     lMaxDepth:  LONG;
  13892.                                                                     plSegTag:   PLONG ): LONG;
  13893.  
  13894.       PROCEDURE [APIENTRY] GpiCorrelateSegment(hps:    HPS;
  13895.                                                                           lSegment:  LONG;
  13896.                                                                           lType:     LONG;
  13897.                                                                           pptlPick:  PPOINTL;
  13898.                                                                           lMaxHits:  LONG;
  13899.                                                                           lMaxDepth: LONG;
  13900.                                                                           alSegTag:  PLONG ): LONG;
  13901.  
  13902. <* END *>
  13903. <* IF DEFINED (INCL_GPISEGMENTS)  THEN *>
  13904.  
  13905.       (* data formats for GpiPutData and GpiGetData *)
  13906.       CONST DFORM_NOCONV                 = 0;
  13907.  
  13908.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  13909.  
  13910.             CONST DFORM_S370SHORT              =  1;
  13911.             CONST DFORM_PCSHORT                =  2;
  13912.             CONST DFORM_PCLONG                 =  4;
  13913.  
  13914.    <* END *>
  13915.  
  13916.       (* segment attributes used by GpiSet/QuerySegmentAttrs and others *)
  13917.       CONST ATTR_ERROR                  = (-1);
  13918.       CONST ATTR_DETECTABLE             =   1;
  13919.       CONST ATTR_VISIBLE                =   2;
  13920.       CONST ATTR_CHAINED                =   6;
  13921.  
  13922.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  13923.  
  13924.             CONST ATTR_DYNAMIC                  = 8;
  13925.  
  13926.    <* END *>
  13927.  
  13928.       CONST ATTR_FASTCHAIN               =  9;
  13929.       CONST ATTR_PROP_DETECTABLE         = 10;
  13930.       CONST ATTR_PROP_VISIBLE            = 11;
  13931.  
  13932.       (* attribute on/off values *)
  13933.       CONST ATTR_OFF                     = 0;
  13934.       CONST ATTR_ON                      = 1;
  13935.  
  13936.       (* segment priority used by GpiSetSegmentPriority and others *)
  13937.       CONST LOWER_PRI                   = (-1);
  13938.       CONST HIGHER_PRI                  =   1;
  13939.  
  13940.       (*** segment control functions *)
  13941.  
  13942.       PROCEDURE [APIENTRY] GpiOpenSegment(hps:   HPS;
  13943.                                                                 lSegment: LONG ): BOOL;
  13944.  
  13945.       PROCEDURE [APIENTRY] GpiCloseSegment(hps: HPS ): BOOL;
  13946.  
  13947.       PROCEDURE [APIENTRY] GpiDeleteSegment(hps: HPS;
  13948.                                                                     lSegid: LONG ): BOOL;
  13949.  
  13950.       PROCEDURE [APIENTRY] GpiQueryInitialSegmentAttrs(hps:     HPS;
  13951.                                                                                           lAttribute: LONG ): LONG;
  13952.  
  13953.       PROCEDURE [APIENTRY] GpiSetInitialSegmentAttrs(hps:     HPS;
  13954.                                                                                       lAttribute: LONG;
  13955.                                                                                       lValue:     LONG ): BOOL;
  13956.  
  13957.       PROCEDURE [APIENTRY] GpiQuerySegmentAttrs(hps:     HPS;
  13958.                                                                             lSegid:     LONG;
  13959.                                                                             lAttribute: LONG ): LONG;
  13960.  
  13961.       PROCEDURE [APIENTRY] GpiSetSegmentAttrs(hps:      HPS;
  13962.                                                                         lSegid:      LONG;
  13963.                                                                         lAttribute:  LONG;
  13964.                                                                         lValue:      LONG ): BOOL;
  13965.  
  13966.       PROCEDURE [APIENTRY] GpiQuerySegmentPriority(hps:    HPS;
  13967.                                                                                   lRefSegid: LONG;
  13968.                                                                                   lOrder:    LONG ): LONG;
  13969.  
  13970.       PROCEDURE [APIENTRY] GpiSetSegmentPriority(hps:    HPS;
  13971.                                                                               lSegid:    LONG;
  13972.                                                                               lRefSegid: LONG;
  13973.                                                                               lOrder:    LONG ): BOOL;
  13974.  
  13975.       PROCEDURE [APIENTRY] GpiDeleteSegments(hps:        HPS;
  13976.                                                                       lFirstSegment: LONG;
  13977.                                                                       lLastSegment:  LONG ): BOOL;
  13978.  
  13979.       PROCEDURE [APIENTRY] GpiQuerySegmentNames(hps:      HPS;
  13980.                                                                             lFirstSegid: LONG;
  13981.                                                                             lLastSegid:  LONG;
  13982.                                                                             lMax:        LONG;
  13983.                                                                             alSegids:    PLONG ): LONG;
  13984.  
  13985.       (*** draw functions for segments *)
  13986.       PROCEDURE [APIENTRY] GpiGetData(hps:   HPS;
  13987.                                                         lSegid:   LONG;
  13988.                                                         plOffset: PLONG;
  13989.                                                         lFormat:  LONG;
  13990.                                                         lLength:  LONG;
  13991.                                                         pbData:   PBYTE ): LONG;
  13992.  
  13993.       PROCEDURE [APIENTRY] GpiPutData(hps:  HPS;
  13994.                                                         lFormat: LONG;
  13995.                                                         plCount: PLONG;
  13996.                                                         pbData:  PBYTE ): LONG;
  13997.  
  13998.       PROCEDURE [APIENTRY] GpiDrawChain(hps: HPS ): BOOL;
  13999.  
  14000.       PROCEDURE [APIENTRY] GpiDrawFrom(hps:        HPS;
  14001.                                                           lFirstSegment: LONG;
  14002.                                                           lLastSegment:  LONG ): BOOL;
  14003.  
  14004.       PROCEDURE [APIENTRY] GpiDrawSegment(hps:    HPS;
  14005.                                                                 lSegment:  LONG ): BOOL;
  14006.  
  14007.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  14008.  
  14009.  
  14010.             PROCEDURE [APIENTRY] GpiDrawDynamics(hps: HPS ): BOOL;
  14011.  
  14012.             PROCEDURE [APIENTRY] GpiRemoveDynamics(hps:      HPS;
  14013.                                                                             lFirstSegid: LONG;
  14014.                                                                             lLastSegid:  LONG ): BOOL;
  14015.  
  14016.    <* END *>
  14017.  
  14018. <* END *>
  14019. <* IF DEFINED (INCL_GPISEGEDITING)  THEN *>
  14020.  
  14021.       (* edit modes used by GpiSet/QueryEditMode *)
  14022.       CONST SEGEM_ERROR                      = 0;
  14023.       CONST SEGEM_INSERT                     = 1;
  14024.       CONST SEGEM_REPLACE                    = 2;
  14025.  
  14026.       (*** segment editing by element functions *)
  14027.  
  14028.       PROCEDURE [APIENTRY] GpiBeginElement(hps:   HPS;
  14029.                                                                     lType:   LONG;
  14030.                                                                     pszDesc: PCSZ ): BOOL;
  14031.  
  14032.       PROCEDURE [APIENTRY] GpiEndElement(hps: HPS ): BOOL;
  14033.  
  14034.       PROCEDURE [APIENTRY] GpiLabel(hps:   HPS;
  14035.                                                       lLabel:  LONG ): BOOL;
  14036.  
  14037.       PROCEDURE [APIENTRY] GpiElement(hps:   HPS;
  14038.                                                           lType:   LONG;
  14039.                                                           pszDesc: PCSZ;
  14040.                                                           lLength: LONG;
  14041.                                                           pbData:  PBYTE ): LONG;
  14042.  
  14043.       PROCEDURE [APIENTRY] GpiQueryElement(hps:      HPS;
  14044.                                                                     lOff:       LONG;
  14045.                                                                     lMaxLength: LONG;
  14046.                                                                     pbData:     PBYTE ): LONG;
  14047.  
  14048.       PROCEDURE [APIENTRY] GpiDeleteElement(hps: HPS ): BOOL;
  14049.  
  14050.       PROCEDURE [APIENTRY] GpiDeleteElementRange(hps:         HPS;
  14051.                                                                                 lFirstElement: LONG;
  14052.                                                                                 lLastElement:  LONG ): BOOL;
  14053.  
  14054.       PROCEDURE [APIENTRY] GpiDeleteElementsBetweenLabels(hps:        HPS;
  14055.                                                                                                   lFirstLabel:  LONG;
  14056.                                                                                                   lLastLabel:   LONG ): BOOL;
  14057.  
  14058.       PROCEDURE [APIENTRY] GpiQueryEditMode(hps: HPS ): LONG;
  14059.  
  14060.       PROCEDURE [APIENTRY] GpiSetEditMode(hps: HPS;
  14061.                                                                   lMode: LONG ): BOOL;
  14062.  
  14063.       PROCEDURE [APIENTRY] GpiQueryElementPointer(hps: HPS ): LONG;
  14064.  
  14065.       PROCEDURE [APIENTRY] GpiSetElementPointer(hps:    HPS;
  14066.                                                                               lElement: LONG ): BOOL;
  14067.  
  14068.       PROCEDURE [APIENTRY] GpiOffsetElementPointer(hps:   HPS;
  14069.                                                                                     loffset: LONG ): BOOL;
  14070.  
  14071.       PROCEDURE [APIENTRY] GpiQueryElementType(hps:   HPS;
  14072.                                                                             plType:  PLONG;
  14073.                                                                             lLength: LONG;
  14074.                                                                             pszData: PCSZ ): LONG;
  14075.  
  14076.       PROCEDURE [APIENTRY] GpiSetElementPointerAtLabel(hps:  HPS;
  14077.                                                                                             lLabel: LONG ): BOOL;
  14078.  
  14079. <* END *>
  14080. <* IF DEFINED (INCL_GPITRANSFORMS)  THEN *>
  14081.  
  14082.       (* co-ordinates space for GpiConvert *)
  14083.       CONST CVTC_WORLD                    = 1;
  14084.       CONST CVTC_MODEL                    = 2;
  14085.       CONST CVTC_DEFAULTPAGE              = 3;
  14086.       CONST CVTC_PAGE                     = 4;
  14087.       CONST CVTC_DEVICE                   = 5;
  14088.  
  14089.       (* type of transformation for GpiSetSegmentTransformMatrix *)
  14090.       CONST TRANSFORM_REPLACE            = 0;
  14091.       CONST TRANSFORM_ADD                = 1;
  14092.       CONST TRANSFORM_PREEMPT            = 2;
  14093.  
  14094.       (* transform matrix *)
  14095.       TYPE MATRIXLF = RECORD       (* matlf *)
  14096.             fxM11: FIXED;
  14097.             fxM12: FIXED;
  14098.             lM13:  LONG;
  14099.             fxM21: FIXED;
  14100.             fxM22: FIXED;
  14101.             lM23:  LONG;
  14102.             lM31:  LONG;
  14103.             lM32:  LONG;
  14104.             lM33:  LONG;
  14105.       END;
  14106.       TYPE PMATRIXLF = POINTER TO MATRIXLF;
  14107.  
  14108.    <* IF NOT DEFINED (INCL_DDIDEFS)  THEN *>
  14109.  
  14110.  
  14111.             (*** transform and transform conversion functions *)
  14112.             PROCEDURE [APIENTRY] GpiQuerySegmentTransformMatrix(hps:    HPS;
  14113.                                                                                                         lSegid:   LONG;
  14114.                                                                                                         lCount:   LONG;
  14115.                                                                                                         pmatlfArray: PMATRIXLF ): BOOL;
  14116.  
  14117.             PROCEDURE [APIENTRY] GpiSetSegmentTransformMatrix(hps:    HPS;
  14118.                                                                                                     lSegid:   LONG;
  14119.                                                                                                     lCount:   LONG;
  14120.                                                                                                     pmatlfarray: PMATRIXLF;
  14121.                                                                                                     lOptions: LONG ): BOOL;
  14122.  
  14123.             PROCEDURE [APIENTRY] GpiConvert(hps:  HPS;
  14124.                                                                 lSrc:   LONG;
  14125.                                                                 lTarg:  LONG;
  14126.                                                                 lCount: LONG;
  14127.                                                                 aptlPoints: PPOINTL ): BOOL;
  14128.  
  14129.             PROCEDURE [APIENTRY] GpiConvertWithMatrix(hps:       HPS;
  14130.                                                                                     lCountp:     LONG;
  14131.                                                                                     aptlPoints:  PPOINTL;
  14132.                                                                                     lCount:      LONG;
  14133.                                                                                     pmatlfArray: PMATRIXLF ): BOOL;
  14134.  
  14135.             PROCEDURE [APIENTRY] GpiQueryModelTransformMatrix(hps:   HPS;
  14136.                                                                                                     lCount:  LONG;
  14137.                                                                                                     pmatlfArray: PMATRIXLF ): BOOL;
  14138.  
  14139.             PROCEDURE [APIENTRY] GpiSetModelTransformMatrix(hps:       HPS;
  14140.                                                                                                 lCount:      LONG;
  14141.                                                                                                 pmatlfArray: PMATRIXLF;
  14142.                                                                                                 lOptions:    LONG ): BOOL;
  14143.  
  14144.             PROCEDURE [APIENTRY] GpiCallSegmentMatrix(hps:       HPS;
  14145.                                                                                     lSegment:    LONG;
  14146.                                                                                     lCount:      LONG;
  14147.                                                                                     pmatlfArray: PMATRIXLF;
  14148.                                                                                     lOptions:    LONG ): LONG;
  14149.  
  14150.             PROCEDURE [APIENTRY] GpiQueryDefaultViewMatrix(hps:       HPS;
  14151.                                                                                               lCount:      LONG;
  14152.                                                                                               pmatlfArray: PMATRIXLF ): BOOL;
  14153.  
  14154.             PROCEDURE [APIENTRY] GpiSetDefaultViewMatrix(hps:       HPS;
  14155.                                                                                           lCount:      LONG;
  14156.                                                                                           pmatlfarray: PMATRIXLF;
  14157.                                                                                           lOptions:    LONG ): BOOL;
  14158.  
  14159.             PROCEDURE [APIENTRY] GpiQueryPageViewport(hps:        HPS;
  14160.                                                                                     prclViewport: PRECTL ): BOOL;
  14161.  
  14162.             PROCEDURE [APIENTRY] GpiSetPageViewport(hps:        HPS;
  14163.                                                                                 prclViewport: PRECTL ): BOOL;
  14164.  
  14165.             PROCEDURE [APIENTRY] GpiQueryViewingTransformMatrix(hps:       HPS;
  14166.                                                                                                         lCount:      LONG;
  14167.                                                                                                         pmatlfArray: PMATRIXLF ): BOOL;
  14168.  
  14169.             PROCEDURE [APIENTRY] GpiSetViewingTransformMatrix(hps:       HPS;
  14170.                                                                                                     lCount:      LONG;
  14171.                                                                                                     pmatlfArray: PMATRIXLF;
  14172.                                                                                                     lOptions:    LONG ): BOOL;
  14173.  
  14174.             (*** transform helper routines *)
  14175.             PROCEDURE [APIENTRY] GpiTranslate(hps: HPS;
  14176.                                                                   pmatlf: PMATRIXLF;
  14177.                                                                   l:      LONG;
  14178.                                                                   ppl:    PPOINTL): BOOL;
  14179.  
  14180.             PROCEDURE [APIENTRY] GpiScale(hps: HPS;
  14181.                                                           pmatlf: PMATRIXLF;
  14182.                                                           l:      LONG;
  14183.                                                           pfix:   PFIXED;
  14184.                                                           ppl:    PPOINTL): BOOL;
  14185.  
  14186.             PROCEDURE [APIENTRY] GpiRotate(hps: HPS;
  14187.                                                             pmatlf:  PMATRIXLF;
  14188.                                                             l:       LONG;
  14189.                                                             fix:     FIXED;
  14190.                                                             ppl:     PPOINTL): BOOL;
  14191.  
  14192.             (*** general clipping functions *)
  14193.             PROCEDURE [APIENTRY] GpiSetGraphicsField(hps:    HPS;
  14194.                                                                                 prclField: PRECTL ): BOOL;
  14195.  
  14196.             PROCEDURE [APIENTRY] GpiQueryGraphicsField(hps:    HPS;
  14197.                                                                                     prclField: PRECTL ): BOOL;
  14198.  
  14199.             PROCEDURE [APIENTRY] GpiSetViewingLimits(hps:     HPS;
  14200.                                                                                 prclLimits: PRECTL ): BOOL;
  14201.  
  14202.             PROCEDURE [APIENTRY] GpiQueryViewingLimits(hps:     HPS;
  14203.                                                                                     prclLimits: PRECTL ): BOOL;
  14204.  
  14205.    <* END *>
  14206.  
  14207. <* END *>
  14208. <* IF DEFINED (INCL_GPIPATHS)  THEN *>
  14209.  
  14210.       (* modes for GpiModifyPath *)
  14211.       CONST MPATH_STROKE                 =  6;
  14212.  
  14213.       (* modes for GpiFillPath *)
  14214.       CONST FPATH_ALTERNATE              = 0;
  14215.       CONST FPATH_WINDING                = 2;
  14216.       CONST FPATH_INCL                   = 0;
  14217.       CONST FPATH_EXCL                   = 8;
  14218.  
  14219.       (* modes for GpiSetClipPath *)
  14220.       CONST SCP_ALTERNATE                 = 0;
  14221.       CONST SCP_WINDING                   = 2;
  14222.       CONST SCP_AND                       = 4;
  14223.       CONST SCP_RESET                     = 0;
  14224.       CONST SCP_INCL                      = 0;
  14225.       CONST SCP_EXCL                      = 8;
  14226.  
  14227.    <* IF NOT DEFINED (INCL_DDIDEFS)  THEN *>
  14228.  
  14229.             (*** Path and Clip Path functions *)
  14230.  
  14231.             PROCEDURE [APIENTRY] GpiBeginPath(hps: HPS;
  14232.                                                                     lPath: LONG ): BOOL;
  14233.  
  14234.             PROCEDURE [APIENTRY] GpiEndPath(hps: HPS): BOOL;
  14235.  
  14236.             PROCEDURE [APIENTRY] GpiCloseFigure(hps: HPS ): BOOL;
  14237.  
  14238.             PROCEDURE [APIENTRY] GpiModifyPath(hps: HPS;
  14239.                                                                       lPath: LONG;
  14240.                                                                       lMode: LONG ): BOOL;
  14241.  
  14242.             PROCEDURE [APIENTRY] GpiFillPath(hps:    HPS;
  14243.                                                                   lPath:    LONG;
  14244.                                                                   lOptions: LONG ): LONG;
  14245.  
  14246.             PROCEDURE [APIENTRY] GpiSetClipPath(hps: HPS;
  14247.                                                                         lPath: LONG;
  14248.                                                                         lOptions: LONG ): BOOL;
  14249.  
  14250.             PROCEDURE [APIENTRY] GpiOutlinePath(hps: HPS;
  14251.                                                                         lPath: LONG;
  14252.                                                                         lOptions: LONG ): LONG;
  14253.  
  14254.             PROCEDURE [APIENTRY] GpiPathToRegion(GpiH:   HPS;
  14255.                                                                           lPath:    LONG;
  14256.                                                                           lOptions: LONG ): HRGN;
  14257.  
  14258.       <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  14259.  
  14260.  
  14261.                   PROCEDURE [APIENTRY] GpiStrokePath(hps:     HPS;
  14262.                                                                             lPath:     LONG;
  14263.                                                                             flOptions: ULONG ): LONG;
  14264.  
  14265.       <* END *>
  14266.  
  14267.    <* END *>
  14268.  
  14269. <* END *>
  14270. <* IF DEFINED (INCL_GPILOGCOLORTABLE)  THEN *>
  14271.  
  14272.    <* IF NOT DEFINED (INCL_GPIBITMAPS)  THEN *>
  14273.       <* NEW INCL_GPIBITMAPS + *>
  14274.    <* END *>
  14275.  
  14276.       (* options for GpiCreateLogColorTable and others *)
  14277.       CONST LCOL_RESET                   = 00001H;
  14278.       CONST LCOL_REALIZABLE              = 00002H;
  14279.       CONST LCOL_PURECOLOR               = 00004H;
  14280.       CONST LCOL_OVERRIDE_DEFAULT_COLORS = 00008H;
  14281.       CONST LCOL_REALIZED                = 00010H;
  14282.  
  14283.       (* format of logical lColor table for GpiCreateLogColorTable and others *)
  14284.       CONST LCOLF_DEFAULT                = 0;
  14285.       CONST LCOLF_INDRGB                 = 1;
  14286.       CONST LCOLF_CONSECRGB              = 2;
  14287.       CONST LCOLF_RGB                    = 3;
  14288.       CONST LCOLF_PALETTE                = 4;
  14289.  
  14290.       (* options for GpiQueryRealColors and others *)
  14291.       CONST LCOLOPT_REALIZED           = 00001H;
  14292.       CONST LCOLOPT_INDEX              = 00002H;
  14293.  
  14294.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  14295.  
  14296.             (* return codes from GpiQueryLogColorTable to indicate it is in RGB mode *)
  14297.             CONST QLCT_ERROR                  = (-1);
  14298.             CONST QLCT_RGB                    = (-2);
  14299.  
  14300.             (* GpiQueryLogColorTable index returned for colors not explicitly loaded *)
  14301.             CONST QLCT_NOTLOADED              = (-1);
  14302.  
  14303.    <* END *>
  14304.  
  14305.       (* return codes for GpiQueryColorData *)
  14306.       CONST QCD_LCT_FORMAT               = 0;
  14307.       CONST QCD_LCT_LOINDEX              = 1;
  14308.       CONST QCD_LCT_HIINDEX              = 2;
  14309.       CONST QCD_LCT_OPTIONS              = 3;
  14310.  
  14311.       (* Palette manager return values *)
  14312.       CONST PAL_ERROR                    =(-1);
  14313.  
  14314.       (* color flags for GpiCreatePalette and others *)
  14315.       CONST PC_RESERVED                   = 001H;
  14316.       CONST PC_EXPLICIT                   = 002H;
  14317.       CONST PC_NOCOLLAPSE                 = 004H;
  14318.  
  14319.    <* IF NOT DEFINED (INCL_DDIDEFS)  THEN *>
  14320.  
  14321.             (*** logical lColor table functions *)
  14322.  
  14323.             PROCEDURE [APIENTRY] GpiCreateLogColorTable(hps:   HPS;
  14324.                                                                                         flOptions: ULONG;
  14325.                                                                                         lFormat: LONG;
  14326.                                                                                         lStart:  LONG;
  14327.                                                                                         lCount:  LONG;
  14328.                                                                                         alTable: PLONG ): BOOL;
  14329.  
  14330.             PROCEDURE [APIENTRY] GpiQueryColorData(hps:   HPS;
  14331.                                                                               lCount:  LONG;
  14332.                                                                               alArray: PLONG ): BOOL;
  14333.  
  14334.       <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  14335.  
  14336.  
  14337.                   PROCEDURE [APIENTRY] GpiQueryLogColorTable(hps:      HPS;
  14338.                                                                                             flOptions:  ULONG;
  14339.                                                                                             lStart:     LONG;
  14340.                                                                                             lCount:     LONG;
  14341.                                                                                             alArray:    PLONG ): LONG;
  14342.  
  14343.       <* END *>
  14344.  
  14345.  
  14346.             PROCEDURE [APIENTRY] GpiQueryRealColors(hps:     HPS;
  14347.                                                                                 flOptions: ULONG;
  14348.                                                                                 lStart:    LONG;
  14349.                                                                                 lCount:    LONG;
  14350.                                                                                 alColors:  PLONG ): LONG;
  14351.  
  14352.             PROCEDURE [APIENTRY] GpiQueryNearestColor(hps:      HPS;
  14353.                                                                                     flOptions:  ULONG;
  14354.                                                                                     lRgbIn:     LONG ):  LONG;
  14355.  
  14356.             PROCEDURE [APIENTRY] GpiQueryColorIndex(hps:     HPS;
  14357.                                                                                 flOptions: ULONG;
  14358.                                                                                 lRgbColor: LONG ): LONG;
  14359.  
  14360.             PROCEDURE [APIENTRY] GpiQueryRGBColor(hps:       HPS;
  14361.                                                                             flOptions:   ULONG;
  14362.                                                                             lColorIndex: LONG ): LONG;
  14363.  
  14364.       <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  14365.  
  14366.                   (*Palette manager functions *)
  14367.  
  14368.                   PROCEDURE [APIENTRY] GpiCreatePalette(hab:    HAB;
  14369.                                                                                 flOptions: ULONG;
  14370.                                                                                 ulFormat:  ULONG;
  14371.                                                                                 ulCount:   ULONG;
  14372.                                                                                 aulTable:  PULONG ): HPAL;
  14373.  
  14374.                   PROCEDURE [APIENTRY] GpiDeletePalette(hpal: HPAL ): BOOL;
  14375.  
  14376.                   PROCEDURE [APIENTRY] GpiSelectPalette(hps: HPS;
  14377.                                                                                 hpal:   HPAL ): HPAL;
  14378.  
  14379.                   PROCEDURE [APIENTRY] GpiAnimatePalette(hpal:   HPAL;
  14380.                                                                                   ulFormat:  ULONG;
  14381.                                                                                   ulStart:   ULONG;
  14382.                                                                                   ulCount:   ULONG;
  14383.                                                                                   aulTable:  PULONG ): LONG;
  14384.  
  14385.                   PROCEDURE [APIENTRY] GpiSetPaletteEntries(hpal:  HPAL;
  14386.                                                                                         ulFormat: ULONG;
  14387.                                                                                         ulStart:  ULONG;
  14388.                                                                                         ulCount:  ULONG;
  14389.                                                                                         aulTable: PULONG ): BOOL;
  14390.  
  14391.                   PROCEDURE [APIENTRY] GpiQueryPalette(hps: HPS ): HPAL;
  14392.  
  14393.                   PROCEDURE [APIENTRY] GpiQueryPaletteInfo(hpal:   HPAL;
  14394.                                                                                       hps:       HPS;
  14395.                                                                                       flOptions: ULONG;
  14396.                                                                                       ulStart:   ULONG;
  14397.                                                                                       ulCount:   ULONG;
  14398.                                                                                       aulArray:  PULONG ): LONG;
  14399.  
  14400.       <* END *>
  14401.  
  14402.    <* END *>
  14403.  
  14404. <* END *>
  14405. <* IF (DEFINED (INCL_GPIPRIMITIVES) OR NOT DEFINED (INCL_NOCOMMON) ) THEN *>
  14406.  
  14407.       (* default color table indices *)
  14408.  
  14409.       CONST CLR_FALSE                =    (-5);
  14410.       CONST CLR_TRUE                 =    (-4);
  14411.  
  14412.       CONST CLR_ERROR                =  (-255);
  14413.       CONST CLR_DEFAULT              =    (-3);
  14414.       CONST CLR_WHITE                =    (-2);
  14415.       CONST CLR_BLACK                =    (-1);
  14416.       CONST CLR_BACKGROUND           =      0;
  14417.       CONST CLR_BLUE                 =      1;
  14418.       CONST CLR_RED                  =      2;
  14419.       CONST CLR_PINK                 =      3;
  14420.       CONST CLR_GREEN                =      4;
  14421.       CONST CLR_CYAN                 =      5;
  14422.       CONST CLR_YELLOW               =      6;
  14423.       CONST CLR_NEUTRAL              =      7;
  14424.  
  14425.       CONST CLR_DARKGRAY             =      8;
  14426.       CONST CLR_DARKBLUE             =      9;
  14427.       CONST CLR_DARKRED              =     10;
  14428.       CONST CLR_DARKPINK             =     11;
  14429.       CONST CLR_DARKGREEN            =     12;
  14430.       CONST CLR_DARKCYAN             =     13;
  14431.       CONST CLR_BROWN                =     14;
  14432.       CONST CLR_PALEGRAY             =     15;
  14433.  
  14434.       (* rgb colors *)
  14435.       CONST RGB_ERROR                =  (-255);
  14436.       CONST RGB_BLACK              = 000000000H;
  14437.       CONST RGB_BLUE               = 0000000FFH;
  14438.       CONST RGB_GREEN              = 00000FF00H;
  14439.       CONST RGB_CYAN               = 00000FFFFH;
  14440.       CONST RGB_RED                = 000FF0000H;
  14441.       CONST RGB_PINK               = 000FF00FFH;
  14442.       CONST RGB_YELLOW             = 000FFFF00H;
  14443.       CONST RGB_WHITE              = 000FFFFFFH;
  14444.  
  14445.       (* control flags used by GpiBeginArea *)
  14446.       CONST BA_NOBOUNDARY                =  0;
  14447.       CONST BA_BOUNDARY                = 00001H;
  14448.  
  14449.  
  14450.       CONST BA_ALTERNATE                 =  0;
  14451.       CONST BA_WINDING                 = 00002H;
  14452.  
  14453.       CONST BA_INCL                      =  0;
  14454.       CONST BA_EXCL                      =  8;
  14455.  
  14456.  
  14457.       (* fill options for GpiBox/GpiFullArc *)
  14458.       CONST DRO_FILL                      = 1;
  14459.       CONST DRO_OUTLINE                   = 2;
  14460.       CONST DRO_OUTLINEFILL               = 3;
  14461.  
  14462.       (* basic pattern symbols *)
  14463.       CONST PATSYM_ERROR                 =(-1);
  14464.       CONST PATSYM_DEFAULT               =  0;
  14465.       CONST PATSYM_DENSE1                =  1;
  14466.       CONST PATSYM_DENSE2                =  2;
  14467.       CONST PATSYM_DENSE3                =  3;
  14468.       CONST PATSYM_DENSE4                =  4;
  14469.       CONST PATSYM_DENSE5                =  5;
  14470.       CONST PATSYM_DENSE6                =  6;
  14471.       CONST PATSYM_DENSE7                =  7;
  14472.       CONST PATSYM_DENSE8                =  8;
  14473.       CONST PATSYM_VERT                  =  9;
  14474.       CONST PATSYM_HORIZ                 = 10;
  14475.       CONST PATSYM_DIAG1                 = 11;
  14476.       CONST PATSYM_DIAG2                 = 12;
  14477.       CONST PATSYM_DIAG3                 = 13;
  14478.       CONST PATSYM_DIAG4                 = 14;
  14479.       CONST PATSYM_NOSHADE               = 15;
  14480.       CONST PATSYM_SOLID                 = 16;
  14481.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  14482.             CONST PATSYM_HALFTONE            =   17;
  14483.    <* END *>
  14484.       CONST PATSYM_HATCH                 = 18;
  14485.       CONST PATSYM_DIAGHATCH             = 19;
  14486.       CONST PATSYM_BLANK                 = 64;
  14487.  
  14488.       (* lcid values for GpiSet/QueryPattern and others *)
  14489.       CONST LCID_ERROR                   =(-1);
  14490.       CONST LCID_DEFAULT                 =  0;
  14491.  
  14492.    <* IF NOT DEFINED (INCL_DDIDEFS)  THEN *>
  14493.  
  14494.  
  14495.             (*** global primitive functions *)
  14496.             PROCEDURE [APIENTRY] GpiSetColor(hps:  HPS;
  14497.                                                                   lColor: LONG ): BOOL;
  14498.  
  14499.             PROCEDURE [APIENTRY] GpiQueryColor(hps: HPS ): LONG;
  14500.  
  14501.             (*** line primitive functions *)
  14502.  
  14503.             PROCEDURE [APIENTRY] GpiBox(hps:     HPS;
  14504.                                                         lControl:  LONG;
  14505.                                                         pptlPoint: PPOINTL;
  14506.                                                         lHRound:   LONG;
  14507.                                                         lVRound:   LONG ): LONG;
  14508.  
  14509.             PROCEDURE [APIENTRY] GpiMove(hps:     HPS;
  14510.                                                           pptlPoint: PPOINTL ): BOOL;
  14511.  
  14512.             PROCEDURE [APIENTRY] GpiLine(hps:        HPS;
  14513.                                                           pptlEndPoint: PPOINTL ): LONG;
  14514.  
  14515.             PROCEDURE [APIENTRY] GpiPolyLine(hps:      HPS;
  14516.                                                                   lCount:     LONG;
  14517.                                                                   aptlPoints: PPOINTL ): LONG;
  14518.  
  14519.             PROCEDURE [APIENTRY] GpiPolyLineDisjoint(hps:      HPS;
  14520.                                                                                   lCount:     LONG;
  14521.                                                                                   aptlPoints: PPOINTL ): LONG;
  14522.  
  14523.             (*** area primitive functions *)
  14524.             PROCEDURE [APIENTRY] GpiSetPattern(hps:   HPS;
  14525.                                                                       lPatternSymbol: LONG ): BOOL;
  14526.  
  14527.             PROCEDURE [APIENTRY] GpiQueryPattern(hps: HPS ): LONG;
  14528.  
  14529.             PROCEDURE [APIENTRY] GpiBeginArea(hps:     HPS;
  14530.                                                                     flOptions: ULONG ): BOOL;
  14531.  
  14532.             PROCEDURE [APIENTRY] GpiEndArea(hps: HPS ): LONG;
  14533.  
  14534.             (*** character primitive functions *)
  14535.             PROCEDURE [APIENTRY] GpiCharString(hps:     HPS;
  14536.                                                                       lCount:    LONG;
  14537.                                                                       pchString: PCH ): LONG;
  14538.  
  14539.             PROCEDURE [APIENTRY] GpiCharStringAt(hps:     HPS;
  14540.                                                                           pptlPoint: PPOINTL;
  14541.                                                                           lCount:    LONG;
  14542.                                                                           pchString: PCH ): LONG;
  14543.  
  14544.    <* END *>
  14545.  
  14546. <* END *>
  14547. <* IF DEFINED (INCL_GPIPRIMITIVES)  THEN *>
  14548.  
  14549.       (* mode for GpiSetAttrMode *)
  14550.       CONST AM_ERROR                     =(-1);
  14551.       CONST AM_PRESERVE                  =  0;
  14552.       CONST AM_NOPRESERVE                =  1;
  14553.  
  14554.       (* foreground mixes *)
  14555.       CONST FM_ERROR                     =(-1);
  14556.       CONST FM_DEFAULT                   =  0;
  14557.       CONST FM_OR                        =  1;
  14558.       CONST FM_OVERPAINT                 =  2;
  14559.       CONST FM_LEAVEALONE                =  5;
  14560.  
  14561.       CONST FM_XOR                       =  4;
  14562.       CONST FM_AND                       =  6;
  14563.       CONST FM_SUBTRACT                  =  7;
  14564.       CONST FM_MASKSRCNOT                =  8;
  14565.       CONST FM_ZERO                      =  9;
  14566.       CONST FM_NOTMERGESRC               = 10;
  14567.       CONST FM_NOTXORSRC                 = 11;
  14568.       CONST FM_INVERT                    = 12;
  14569.       CONST FM_MERGESRCNOT               = 13;
  14570.       CONST FM_NOTCOPYSRC                = 14;
  14571.       CONST FM_MERGENOTSRC               = 15;
  14572.       CONST FM_NOTMASKSRC                = 16;
  14573.       CONST FM_ONE                       = 17;
  14574.  
  14575.  
  14576.       (* background mixes *)
  14577.       CONST BM_ERROR                     =(-1);
  14578.       CONST BM_DEFAULT                   =  0;
  14579.       CONST BM_OR                        =  1;
  14580.       CONST BM_OVERPAINT                 =  2;
  14581.       CONST BM_LEAVEALONE                =  5;
  14582.  
  14583.       CONST BM_XOR                       =  4;
  14584.       CONST BM_AND                       =  6;
  14585.       CONST BM_SUBTRACT                  =  7;
  14586.       CONST BM_MASKSRCNOT                =  8;
  14587.       CONST BM_ZERO                      =  9;
  14588.       CONST BM_NOTMERGESRC               = 10;
  14589.       CONST BM_NOTXORSRC                 = 11;
  14590.       CONST BM_INVERT                    = 12;
  14591.       CONST BM_MERGESRCNOT               = 13;
  14592.       CONST BM_NOTCOPYSRC                = 14;
  14593.       CONST BM_MERGENOTSRC               = 15;
  14594.       CONST BM_NOTMASKSRC                = 16;
  14595.       CONST BM_ONE                       = 17;
  14596.       CONST BM_SRCTRANSPARENT            = 18;
  14597.       CONST BM_DESTTRANSPARENT           = 19;
  14598.  
  14599.  
  14600.  
  14601.       (* basic line type styles *)
  14602.       CONST LINETYPE_ERROR               =(-1);
  14603.       CONST LINETYPE_DEFAULT             =  0;
  14604.       CONST LINETYPE_DOT                 =  1;
  14605.       CONST LINETYPE_SHORTDASH           =  2;
  14606.       CONST LINETYPE_DASHDOT             =  3;
  14607.       CONST LINETYPE_DOUBLEDOT           =  4;
  14608.       CONST LINETYPE_LONGDASH            =  5;
  14609.       CONST LINETYPE_DASHDOUBLEDOT       =  6;
  14610.       CONST LINETYPE_SOLID               =  7;
  14611.       CONST LINETYPE_INVISIBLE           =  8;
  14612.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  14613.             CONST LINETYPE_ALTERNATE        =     9;
  14614.    <* END *>
  14615.  
  14616.       (* cosmetic line widths *)
  14617.       CONST LINEWIDTH_ERROR             = (-1);
  14618.       CONST LINEWIDTH_DEFAULT            =  0;
  14619.       CONST LINEWIDTH_NORMAL       = 000010000H;  (* MAKEFIXED(1;0) *)
  14620.       CONST LINEWIDTH_THICK        = 000020000H;  (* MAKEFIXED(2;0) *)
  14621.  
  14622.       (* actual line widths *)
  14623.       CONST LINEWIDTHGEOM_ERROR          =(-1);
  14624.  
  14625.       (* line end styles *)
  14626.       CONST LINEEND_ERROR                =(-1);
  14627.       CONST LINEEND_DEFAULT              =  0;
  14628.       CONST LINEEND_FLAT                 =  1;
  14629.       CONST LINEEND_SQUARE               =  2;
  14630.       CONST LINEEND_ROUND                =  3;
  14631.  
  14632.       (* line join styles *)
  14633.       CONST LINEJOIN_ERROR               =(-1);
  14634.       CONST LINEJOIN_DEFAULT             =  0;
  14635.       CONST LINEJOIN_BEVEL               =  1;
  14636.       CONST LINEJOIN_ROUND               =  2;
  14637.       CONST LINEJOIN_MITRE               =  3;
  14638.  
  14639.       (* character directions *)
  14640.       CONST CHDIRN_ERROR                 =(-1);
  14641.       CONST CHDIRN_DEFAULT               =  0;
  14642.       CONST CHDIRN_LEFTRIGHT             =  1;
  14643.       CONST CHDIRN_TOPBOTTOM             =  2;
  14644.       CONST CHDIRN_RIGHTLEFT             =  3;
  14645.       CONST CHDIRN_BOTTOMTOP             =  4;
  14646.  
  14647.       (* character text alignments *)
  14648.       CONST TA_NORMAL_HORIZ     = 00001H;
  14649.       CONST TA_LEFT             = 00002H;
  14650.       CONST TA_CENTER           = 00003H;
  14651.       CONST TA_RIGHT            = 00004H;
  14652.       CONST TA_STANDARD_HORIZ   = 00005H;
  14653.       CONST TA_NORMAL_VERT      = 00100H;
  14654.       CONST TA_TOP              = 00200H;
  14655.       CONST TA_HALF             = 00300H;
  14656.       CONST TA_BASE             = 00400H;
  14657.       CONST TA_BOTTOM           = 00500H;
  14658.       CONST TA_STANDARD_VERT    = 00600H;
  14659.  
  14660.       (* character modes *)
  14661.       CONST CM_ERROR                     =(-1);
  14662.       CONST CM_DEFAULT                   =  0;
  14663.       CONST CM_MODE1                     =  1;
  14664.       CONST CM_MODE2                     =  2;
  14665.       CONST CM_MODE3                     =  3;
  14666.  
  14667.       (* basic marker symbols *)
  14668.       CONST MARKSYM_ERROR                =(-1);
  14669.       CONST MARKSYM_DEFAULT              =  0;
  14670.       CONST MARKSYM_CROSS                =  1;
  14671.       CONST MARKSYM_PLUS                 =  2;
  14672.       CONST MARKSYM_DIAMOND              =  3;
  14673.       CONST MARKSYM_SQUARE               =  4;
  14674.       CONST MARKSYM_SIXPOINTSTAR         =  5;
  14675.       CONST MARKSYM_EIGHTPOINTSTAR       =  6;
  14676.       CONST MARKSYM_SOLIDDIAMOND         =  7;
  14677.       CONST MARKSYM_SOLIDSQUARE          =  8;
  14678.       CONST MARKSYM_DOT                  =  9;
  14679.       CONST MARKSYM_SMALLCIRCLE          = 10;
  14680.       CONST MARKSYM_BLANK                = 64;
  14681.  
  14682.       (* formatting options for GpiCharStringPosAt *)
  14683.       CONST CHS_OPAQUE                 = 00001H;
  14684.       CONST CHS_VECTOR                 = 00002H;
  14685.       CONST CHS_LEAVEPOS               = 00008H;
  14686.       CONST CHS_CLIP                   = 00010H;
  14687.       CONST CHS_UNDERSCORE             = 00200H;
  14688.       CONST CHS_STRIKEOUT              = 00400H;
  14689.  
  14690.       (* bundle codes for GpiSetAttributes and GpiQueryAttributes *)
  14691.       CONST PRIM_LINE                     = 1;
  14692.       CONST PRIM_CHAR                     = 2;
  14693.       CONST PRIM_MARKER                   = 3;
  14694.       CONST PRIM_AREA                     = 4;
  14695.       CONST PRIM_IMAGE                    = 5;
  14696.  
  14697.       (* line bundle mask bits *)
  14698.       CONST LBB_COLOR                  = 00001H;
  14699.       CONST LBB_BACK_COLOR             = 00002H;
  14700.       CONST LBB_MIX_MODE               = 00004H;
  14701.       CONST LBB_BACK_MIX_MODE          = 00008H;
  14702.       CONST LBB_WIDTH                  = 00010H;
  14703.       CONST LBB_GEOM_WIDTH             = 00020H;
  14704.       CONST LBB_TYPE                   = 00040H;
  14705.       CONST LBB_END                    = 00080H;
  14706.       CONST LBB_JOIN                   = 00100H;
  14707.  
  14708.       (* character bundle mask bits *)
  14709.       CONST CBB_COLOR                  = 00001H;
  14710.       CONST CBB_BACK_COLOR             = 00002H;
  14711.       CONST CBB_MIX_MODE               = 00004H;
  14712.       CONST CBB_BACK_MIX_MODE          = 00008H;
  14713.       CONST CBB_SET                    = 00010H;
  14714.       CONST CBB_MODE                   = 00020H;
  14715.       CONST CBB_BOX                    = 00040H;
  14716.       CONST CBB_ANGLE                  = 00080H;
  14717.       CONST CBB_SHEAR                  = 00100H;
  14718.       CONST CBB_DIRECTION              = 00200H;
  14719.       CONST CBB_TEXT_ALIGN             = 00400H;
  14720.       CONST CBB_EXTRA                  = 00800H;
  14721.       CONST CBB_BREAK_EXTRA            = 01000H;
  14722.  
  14723.       (* marker bundle mask bits *)
  14724.       CONST MBB_COLOR                  = 00001H;
  14725.       CONST MBB_BACK_COLOR             = 00002H;
  14726.       CONST MBB_MIX_MODE               = 00004H;
  14727.       CONST MBB_BACK_MIX_MODE          = 00008H;
  14728.       CONST MBB_SET                    = 00010H;
  14729.       CONST MBB_SYMBOL                 = 00020H;
  14730.       CONST MBB_BOX                    = 00040H;
  14731.  
  14732.       (* pattern bundle mask bits *)
  14733.       CONST ABB_COLOR                  = 00001H;
  14734.       CONST ABB_BACK_COLOR             = 00002H;
  14735.       CONST ABB_MIX_MODE               = 00004H;
  14736.       CONST ABB_BACK_MIX_MODE          = 00008H;
  14737.       CONST ABB_SET                    = 00010H;
  14738.       CONST ABB_SYMBOL                 = 00020H;
  14739.       CONST ABB_REF_POINT              = 00040H;
  14740.  
  14741.       (* image bundle mask bits *)
  14742.       CONST IBB_COLOR                  = 00001H;
  14743.       CONST IBB_BACK_COLOR             = 00002H;
  14744.       CONST IBB_MIX_MODE               = 00004H;
  14745.       CONST IBB_BACK_MIX_MODE          = 00008H;
  14746.  
  14747.       (* structure for GpiSetArcParams and GpiQueryArcParams *)
  14748.       TYPE ARCPARAMS = RECORD      (* arcp *)
  14749.             lP:    LONG;
  14750.             lQ:    LONG;
  14751.             lR:    LONG;
  14752.             lS:    LONG;
  14753.       END;
  14754.       TYPE PARCPARAMS = POINTER TO ARCPARAMS;
  14755.  
  14756.       (* variation of SIZE used for FIXEDs *)
  14757.       TYPE SIZEF = RECORD         (* sizfx *)
  14758.             cx: FIXED;
  14759.             cy: FIXED;
  14760.       END;
  14761.       TYPE PSIZEF = POINTER TO SIZEF;
  14762.  
  14763.       (* structure for gradient parameters e.g. for GpiSetCharAngle *)
  14764.       TYPE GRADIENTL = RECORD       (* gradl *)
  14765.             x:     LONG;
  14766.             y:     LONG;
  14767.       END;
  14768.       TYPE PGRADIENTL = POINTER TO GRADIENTL;
  14769.  
  14770.       (* line bundle for GpiSetAttributes and GpiQueryAttributes *)
  14771.       TYPE LINEBUNDLE = RECORD      (* lbnd *)
  14772.             lColor:            LONG;
  14773.             lBackColor:        LONG;
  14774.             usMixMode:         USHORT;
  14775.             usBackMixMode:     USHORT;
  14776.             fxWidth:           FIXED;
  14777.             lGeomWidth:        LONG;
  14778.             usType:            USHORT;
  14779.             usEnd:             USHORT;
  14780.             usJoin:            USHORT;
  14781.             usReserved:        USHORT;
  14782.       END;
  14783.       TYPE PLINEBUNDLE = POINTER TO LINEBUNDLE;
  14784.  
  14785.       (* character bundle for GpiSetAttributes and GpiQueryAttributes *)
  14786.       TYPE CHARBUNDLE = RECORD      (* cbnd *)
  14787.             lColor:         LONG;
  14788.             lBackColor:     LONG;
  14789.             usMixMode:      USHORT;
  14790.             usBackMixMode:  USHORT;
  14791.             usSet:          USHORT;
  14792.             usPrecision:    USHORT;
  14793.             sizfxCell:      SIZEF;
  14794.             ptlAngle:       POINTL;
  14795.             ptlShear:       POINTL;
  14796.             usDirection:    USHORT;
  14797.             usTextAlign:    USHORT;
  14798.             fxExtra:        FIXED;
  14799.             fxBreakExtra:   FIXED;
  14800.       END;
  14801.       TYPE PCHARBUNDLE = POINTER TO CHARBUNDLE;
  14802.  
  14803.       (* marker bundle for GpiSetAttributes and GpiQueryAttributes *)
  14804.       TYPE MARKERBUNDLE = RECORD
  14805.             lColor:        LONG;
  14806.             lBackColor:    LONG;
  14807.             usMixMode:     USHORT;
  14808.             usBackMixMode: USHORT;
  14809.             usSet:         USHORT;
  14810.             usSymbol:      USHORT;
  14811.             sizfxCell:     SIZEF;
  14812.       END;
  14813.       TYPE PMARKERBUNDLE = POINTER TO MARKERBUNDLE;
  14814.  
  14815.       (* pattern bundle for GpiSetAttributes and GpiQueryAttributes *)
  14816.       TYPE AREABUNDLE = RECORD   (* pbnd *)
  14817.             lColor:         LONG;
  14818.             lBackColor:     LONG;
  14819.             usMixMode:      USHORT;
  14820.             usBackMixMode:  USHORT;
  14821.             usSet:          USHORT;
  14822.             usSymbol:       USHORT;
  14823.             ptlRefPoint :   POINTL;
  14824.       END;
  14825.       TYPE PAREABUNDLE = POINTER TO AREABUNDLE;
  14826.  
  14827.       (* image bundle for GpiSetAttributes and GpiQueryAttributes *)
  14828.       TYPE IMAGEBUNDLE = RECORD     (* ibmd *)
  14829.             lColor:        LONG;
  14830.             lBackColor:    LONG;
  14831.             usMixMode:     USHORT;
  14832.             usBackMixMode: USHORT;
  14833.       END;
  14834.       TYPE PIMAGEBUNDLE = POINTER TO IMAGEBUNDLE;
  14835.  
  14836.       (* pointer to any bundle used by GpiSet/QueryAttrs *)
  14837.       TYPE PBUNDLE = PVOID;
  14838.  
  14839.       (* array indices for GpiQueryTextBox *)
  14840.       CONST TXTBOX_TOPLEFT               =  0;
  14841.       CONST TXTBOX_BOTTOMLEFT            =  1;
  14842.       CONST TXTBOX_TOPRIGHT              =  2;
  14843.       CONST TXTBOX_BOTTOMRIGHT           =  3;
  14844.       CONST TXTBOX_CONCAT                =  4;
  14845.       (* array count for GpiQueryTextBox *)
  14846.       CONST TXTBOX_COUNT                 =  5;
  14847.  
  14848.       (* return codes for GpiPtVisible *)
  14849.       CONST PVIS_ERROR                   =  0;
  14850.       CONST PVIS_INVISIBLE               =  1;
  14851.       CONST PVIS_VISIBLE                 =  2;
  14852.  
  14853.       (* return codes for GpiRectVisible *)
  14854.       CONST RVIS_ERROR                   =  0;
  14855.       CONST RVIS_INVISIBLE               =  1;
  14856.       CONST RVIS_PARTIAL                 =  2;
  14857.       CONST RVIS_VISIBLE                 =  3;
  14858.  
  14859.    <* IF NOT DEFINED (INCL_DDIDEFS)  THEN *>
  14860.  
  14861.  
  14862.             (*** attribute mode functions *)
  14863.             PROCEDURE [APIENTRY] GpiSetAttrMode(hps:  HPS;
  14864.                                                                         lMode:  LONG ): BOOL;
  14865.  
  14866.             PROCEDURE [APIENTRY] GpiQueryAttrMode(hps: HPS ): LONG;
  14867.             (*** bundle primitive functions *)
  14868.             PROCEDURE [APIENTRY] GpiSetAttrs(hps:      HPS;
  14869.                                                                   lPrimType:  LONG;
  14870.                                                                   flAttrMask: ULONG;
  14871.                                                                   flDefMask:  ULONG;
  14872.                                                                   ppbunAttrs: PBUNDLE ): BOOL;
  14873.       <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  14874.  
  14875.  
  14876.                   PROCEDURE [APIENTRY] GpiQueryAttrs(hps:      HPS;
  14877.                                                                             lPrimType:  LONG;
  14878.                                                                             flAttrMask: ULONG;
  14879.                                                                             ppbunAttrs: PBUNDLE ): LONG;
  14880.  
  14881.       <* END *>
  14882.  
  14883.  
  14884.             (*** global primitive functions *)
  14885.             PROCEDURE [APIENTRY] GpiSetBackColor(hps:  HPS;
  14886.                                                                           lColor: LONG ): BOOL;
  14887.  
  14888.             PROCEDURE [APIENTRY] GpiQueryBackColor(hps: HPS ): LONG;
  14889.  
  14890.             PROCEDURE [APIENTRY] GpiSetMix(hps:    HPS;
  14891.                                                               lMixMode: LONG ): BOOL;
  14892.  
  14893.             PROCEDURE [APIENTRY] GpiQueryMix(hps: HPS ): LONG;
  14894.  
  14895.             PROCEDURE [APIENTRY] GpiSetBackMix(hps:    HPS;
  14896.                                                                       lMixMode: LONG ): BOOL;
  14897.  
  14898.             PROCEDURE [APIENTRY] GpiQueryBackMix(hps: HPS ): LONG;
  14899.  
  14900.             (*** line primitive functions *)
  14901.             PROCEDURE [APIENTRY] GpiSetLineType(hps:     HPS;
  14902.                                                                         lLineType: LONG ): BOOL;
  14903.  
  14904.             PROCEDURE [APIENTRY] GpiQueryLineType(hps: HPS ): LONG;
  14905.  
  14906.             PROCEDURE [APIENTRY] GpiSetLineWidth(hps:       HPS;
  14907.                                                                           fxLineWidth: FIXED ): BOOL;
  14908.  
  14909.             PROCEDURE [APIENTRY] GpiQueryLineWidth(hps: HPS ): FIXED;
  14910.  
  14911.             PROCEDURE [APIENTRY] GpiSetLineWidthGeom(hps:      HPS;
  14912.                                                                                   lLineWidth: LONG ): BOOL;
  14913.  
  14914.             PROCEDURE [APIENTRY] GpiQueryLineWidthGeom(hps: HPS ): LONG;
  14915.  
  14916.             PROCEDURE [APIENTRY] GpiSetLineEnd(hps:    HPS;
  14917.                                                                       lLineEnd: LONG ): BOOL;
  14918.  
  14919.             PROCEDURE [APIENTRY] GpiQueryLineEnd(hps: HPS ): LONG;
  14920.  
  14921.             PROCEDURE [APIENTRY] GpiSetLineJoin(hps:     HPS;
  14922.                                                                         lLineJoin: LONG ): BOOL;
  14923.  
  14924.             PROCEDURE [APIENTRY] GpiQueryLineJoin(hps: HPS ): LONG;
  14925.  
  14926.             PROCEDURE [APIENTRY] GpiSetCurrentPosition(hps:     HPS;
  14927.                                                                                       pptlPoint: PPOINTL ): BOOL;
  14928.  
  14929.             PROCEDURE [APIENTRY] GpiQueryCurrentPosition(hps:     HPS;
  14930.                                                                                           pptlPoint: PPOINTL ): BOOL;
  14931.  
  14932.             (*** arc primitive functions *)
  14933.             PROCEDURE [APIENTRY] GpiSetArcParams(hps: HPS;
  14934.                                                                           parcpArcParams: PARCPARAMS ): BOOL;
  14935.  
  14936.             PROCEDURE [APIENTRY] GpiQueryArcParams(hps:          HPS;
  14937.                                                                               parcpArcParams: PARCPARAMS ): BOOL;
  14938.  
  14939.             PROCEDURE [APIENTRY] GpiPointArc(hps: HPS;
  14940.                                                                   pptl2: PPOINTL ): LONG;
  14941.  
  14942.             PROCEDURE [APIENTRY] GpiFullArc(hps:        HPS;
  14943.                                                                 lControl:     LONG;
  14944.                                                                 fxMultiplier: FIXED ): LONG;
  14945.  
  14946.             PROCEDURE [APIENTRY] GpiPartialArc(hps:         HPS;
  14947.                                                                       pptlCenter:    PPOINTL;
  14948.                                                                       fxMultiplier:  FIXED;
  14949.                                                                       fxStartAngle:  FIXED;
  14950.                                                                       fxSweepAngle:  FIXED ): LONG;
  14951.  
  14952.             PROCEDURE [APIENTRY] GpiPolyFillet(hps:      HPS;
  14953.                                                                       lCount:     LONG;
  14954.                                                                       aptlPoints: PPOINTL ): LONG;
  14955.  
  14956.             PROCEDURE [APIENTRY] GpiPolySpline(hps:      HPS;
  14957.                                                                       lCount:     LONG;
  14958.                                                                       aptlPoints: PPOINTL ): LONG;
  14959.  
  14960.             PROCEDURE [APIENTRY] GpiPolyFilletSharp(hps:       HPS;
  14961.                                                                                 lCount:      LONG;
  14962.                                                                                 aptlPoints:  PPOINTL;
  14963.                                                                                 afxPoints:   PFIXED ): LONG;
  14964.  
  14965.             (*** area primitive functions *)
  14966.             PROCEDURE [APIENTRY] GpiSetPatternSet(hps: HPS;
  14967.                                                                             lSet:  LONG ): BOOL;
  14968.  
  14969.             PROCEDURE [APIENTRY] GpiQueryPatternSet(hps: HPS): LONG;
  14970.  
  14971.             PROCEDURE [APIENTRY] GpiSetPatternRefPoint(hps:        HPS;
  14972.                                                                                       pptlRefPoint: PPOINTL ): BOOL;
  14973.  
  14974.             PROCEDURE [APIENTRY] GpiQueryPatternRefPoint(hps:        HPS;
  14975.                                                                                           pptlRefPoint: PPOINTL ): BOOL;
  14976.  
  14977.             (*** character primitive functions *)
  14978.             PROCEDURE [APIENTRY] GpiQueryCharStringPos(hps:         HPS;
  14979.                                                                                       flOptions:     ULONG;
  14980.                                                                                       lCount:        LONG;
  14981.                                                                                       pchString:     PCH;
  14982.                                                                                       alXincrements: PLONG;
  14983.                                                                                       aptlPositions: PPOINTL ): BOOL;
  14984.  
  14985.             PROCEDURE [APIENTRY] GpiQueryCharStringPosAt(hps:         HPS;
  14986.                                                                                           pptlStart:     PPOINTL;
  14987.                                                                                           flOptions:     ULONG;
  14988.                                                                                           lCount:        LONG;
  14989.                                                                                           pchString:     PCH;
  14990.                                                                                           alXincrements: PLONG;
  14991.                                                                                           aptlPositions: PPOINTL ): BOOL;
  14992.  
  14993.             PROCEDURE [APIENTRY] GpiQueryTextBox(hps:      HPS;
  14994.                                                                           lCount1:    LONG;
  14995.                                                                           pchString:  PCH;
  14996.                                                                           lCount2:    LONG;
  14997.                                                                           aptlPoints: PPOINTL ): BOOL;
  14998.  
  14999.             PROCEDURE [APIENTRY] GpiQueryDefCharBox(hps:     HPS;
  15000.                                                                                 psizlSize: PSIZEL ): BOOL;
  15001.  
  15002.             PROCEDURE [APIENTRY] GpiSetCharSet(hps: HPS;
  15003.                                                                       llcid: LONG ): BOOL;
  15004.  
  15005.             PROCEDURE [APIENTRY] GpiQueryCharSet(hps: HPS ): LONG;
  15006.  
  15007.             PROCEDURE [APIENTRY] GpiSetCharBox(hps:     HPS;
  15008.                                                                       psizfxBox: PSIZEF ): BOOL;
  15009.  
  15010.             PROCEDURE [APIENTRY] GpiQueryCharBox(hps:      HPS;
  15011.                                                                           psizfxSize: PSIZEF ): BOOL;
  15012.  
  15013.             PROCEDURE [APIENTRY] GpiSetCharAngle(hps:       HPS;
  15014.                                                                           pgradlAngle: PGRADIENTL ): BOOL;
  15015.  
  15016.             PROCEDURE [APIENTRY] GpiQueryCharAngle(hps:       HPS;
  15017.                                                                               pgradlAngle: PGRADIENTL ): BOOL;
  15018.  
  15019.             PROCEDURE [APIENTRY] GpiSetCharShear(hps:     HPS;
  15020.                                                                           pptlAngle: PPOINTL ): BOOL;
  15021.  
  15022.             PROCEDURE [APIENTRY] GpiQueryCharShear(hps:     HPS;
  15023.                                                                               pptlShear: PPOINTL ): BOOL;
  15024.  
  15025.             PROCEDURE [APIENTRY] GpiSetCharDirection(hps:      HPS;
  15026.                                                                                   lDirection: LONG ): BOOL;
  15027.  
  15028.             PROCEDURE [APIENTRY] GpiQueryCharDirection(hps: HPS ): LONG;
  15029.  
  15030.             PROCEDURE [APIENTRY] GpiSetCharMode(hps: HPS;
  15031.                                                                         lMode: LONG ): BOOL;
  15032.  
  15033.             PROCEDURE [APIENTRY] GpiQueryCharMode(hps: HPS ): LONG;
  15034.  
  15035.             PROCEDURE [APIENTRY] GpiSetTextAlignment(hps:  HPS;
  15036.                                                                                   lHoriz: LONG;
  15037.                                                                                   lVert:  LONG ): BOOL;
  15038.  
  15039.             PROCEDURE [APIENTRY] GpiQueryTextAlignment(hps:   HPS;
  15040.                                                                                       plHoriz: PLONG;
  15041.                                                                                       plVert:  PLONG ): BOOL;
  15042.  
  15043.             PROCEDURE [APIENTRY] GpiCharStringPos(hps:     HPS;
  15044.                                                                             prclRect:  PRECTL;
  15045.                                                                             flOptions: ULONG;
  15046.                                                                             lCount:    LONG;
  15047.                                                                             pchString: PCH;
  15048.                                                                             alAdx:     PLONG ): LONG;
  15049.  
  15050.             PROCEDURE [APIENTRY] GpiCharStringPosAt(hps:     HPS;
  15051.                                                                                 pptlStart: PPOINTL;
  15052.                                                                                 prclRect:  PRECTL;
  15053.                                                                                 flOptions: ULONG;
  15054.                                                                                 lCount:    LONG;
  15055.                                                                                 pchString: PCH;
  15056.                                                                                 alAdx:     PLONG ): LONG;
  15057.  
  15058.             PROCEDURE [APIENTRY] GpiSetCharExtra(hps: HPS;
  15059.                                                                           Extra: FIXED  ): BOOL;
  15060.  
  15061.             PROCEDURE [APIENTRY] GpiSetCharBreakExtra(hps:      HPS;
  15062.                                                                                     BreakExtra: FIXED  ): BOOL;
  15063.  
  15064.             PROCEDURE [APIENTRY] GpiQueryCharExtra(hps: HPS;
  15065.                                                                               Extra: PFIXED ): BOOL;
  15066.  
  15067.             PROCEDURE [APIENTRY] GpiQueryCharBreakExtra(hps:      HPS;
  15068.                                                                                         BreakExtra: PFIXED ): BOOL;
  15069.  
  15070.             (*** marker primitive functions  *)
  15071.             PROCEDURE [APIENTRY] GpiMarker(hps:     HPS;
  15072.                                                               pptlPoint: PPOINTL ): LONG;
  15073.  
  15074.             PROCEDURE [APIENTRY] GpiPolyMarker(hps:      HPS;
  15075.                                                                       lCount:     LONG;
  15076.                                                                       aptlPoints: PPOINTL ): LONG;
  15077.  
  15078.             PROCEDURE [APIENTRY] GpiSetMarker(hps:   HPS;
  15079.                                                                     lSymbol: LONG ): BOOL;
  15080.  
  15081.             PROCEDURE [APIENTRY] GpiSetMarkerBox(hps:      HPS;
  15082.                                                                           psizfxSize: PSIZEF ): BOOL;
  15083.  
  15084.             PROCEDURE [APIENTRY] GpiSetMarkerSet(hps: HPS;
  15085.                                                                           lSet:  LONG ): BOOL;
  15086.  
  15087.             PROCEDURE [APIENTRY] GpiQueryMarker(hps: HPS ): LONG;
  15088.  
  15089.             PROCEDURE [APIENTRY] GpiQueryMarkerBox(hps:      HPS;
  15090.                                                                               psizfxSize: PSIZEF ): BOOL;
  15091.  
  15092.             PROCEDURE [APIENTRY] GpiQueryMarkerSet(hps: HPS ): LONG;
  15093.  
  15094.             (*** image primitive functions *)
  15095.             PROCEDURE [APIENTRY] GpiImage(hps:          HPS;
  15096.                                                             lFormat:        LONG;
  15097.                                                             psizlImageSize: PSIZEL;
  15098.                                                             lLength:        LONG;
  15099.                                                             pbData:         PBYTE ): LONG;
  15100.  
  15101.             (*** miscellaneous primitive functions *)
  15102.             PROCEDURE [APIENTRY] GpiPop(hps:  HPS;
  15103.                                                         lCount: LONG ): BOOL;
  15104.  
  15105.             PROCEDURE [APIENTRY] GpiPtVisible(hps:     HPS;
  15106.                                                                     pptlPoint: PPOINTL ): LONG;
  15107.  
  15108.             PROCEDURE [APIENTRY] GpiRectVisible(hps:  HPS;
  15109.                                                                         prclRectangle: PRECTL ): LONG;
  15110.  
  15111.             PROCEDURE [APIENTRY] GpiComment(hps:   HPS;
  15112.                                                                 lLength: LONG;
  15113.                                                                 pbData:  PBYTE ): BOOL;
  15114.  
  15115.    <* END *>
  15116.  
  15117. <* END *>
  15118. <* IF DEFINED (INCL_GPILCIDS)  THEN *>
  15119.  
  15120.       (* return codes from GpiCreateLogFont *)
  15121.       CONST FONT_DEFAULT                  = 1;
  15122.       CONST FONT_MATCH                    = 2;
  15123.  
  15124.       (* lcid type for GpiQuerySetIds *)
  15125.       CONST LCIDT_FONT                    = 6;
  15126.  
  15127.       CONST LCIDT_BITMAP                  = 7;
  15128.  
  15129.       (* constant used to delete all lcids by GpiDeleteSetId *)
  15130.       CONST LCID_ALL                     =(-1);
  15131.  
  15132.       (* kerning data returned by GpiQueryKerningPairs *)
  15133.       TYPE KERNINGPAIRS = RECORD    (* krnpr *)
  15134.             sFirstChar:     SHORT;
  15135.             sSecondChar:    SHORT;
  15136.             lKerningAmount: LONG;
  15137.       END;
  15138.       TYPE PKERNINGPAIRS = POINTER TO KERNINGPAIRS;
  15139.  
  15140.       (* data required by GpiQueryFaceString *)
  15141.       TYPE FACENAMEDESC = RECORD    (* fnd *)
  15142.             usSize:        USHORT;
  15143.             usWeightClass: USHORT;
  15144.             usWidthClass:  USHORT;
  15145.             usReserved:    USHORT;
  15146.             flOptions:     ULONG;
  15147.       END;
  15148.       TYPE PFACENAMEDESC = POINTER TO FACENAMEDESC;
  15149.  
  15150.       (* FACENAMEDESC 'WeightClass' options for GpiQueryFaceString *)
  15151.       CONST FWEIGHT_DONT_CARE   =  0;
  15152.       CONST FWEIGHT_ULTRA_LIGHT =  1;
  15153.       CONST FWEIGHT_EXTRA_LIGHT =  2;
  15154.       CONST FWEIGHT_LIGHT       =  3;
  15155.       CONST FWEIGHT_SEMI_LIGHT  =  4;
  15156.       CONST FWEIGHT_NORMAL      =  5;
  15157.       CONST FWEIGHT_SEMI_BOLD   =  6;
  15158.       CONST FWEIGHT_BOLD        =  7;
  15159.       CONST FWEIGHT_EXTRA_BOLD  =  8;
  15160.       CONST FWEIGHT_ULTRA_BOLD  =  9;
  15161.  
  15162.       (* FACENAMEDESC 'WidthClass' options for GpiQueryFaceString *)
  15163.       CONST FWIDTH_DONT_CARE       =0;
  15164.       CONST FWIDTH_ULTRA_CONDENSED =1;
  15165.       CONST FWIDTH_EXTRA_CONDENSED =2;
  15166.       CONST FWIDTH_CONDENSED       =3;
  15167.       CONST FWIDTH_SEMI_CONDENSED  =4;
  15168.       CONST FWIDTH_NORMAL          =5;
  15169.       CONST FWIDTH_SEMI_EXPANDED   =6;
  15170.       CONST FWIDTH_EXPANDED        =7;
  15171.       CONST FWIDTH_EXTRA_EXPANDED  =8;
  15172.       CONST FWIDTH_ULTRA_EXPANDED  =9;
  15173.  
  15174.       (* FACENAMEDESC 'options' for GpiQueryFaceString *)
  15175.       CONST FTYPE_ITALIC            = 00001H;
  15176.       CONST FTYPE_ITALIC_DONT_CARE  = 00002H;
  15177.       CONST FTYPE_OBLIQUE           = 00004H;
  15178.       CONST FTYPE_OBLIQUE_DONT_CARE = 00008H;
  15179.       CONST FTYPE_ROUNDED           = 00010H;
  15180.       CONST FTYPE_ROUNDED_DONT_CARE = 00020H;
  15181.  
  15182.       (* actions for GpiQueryFontAction *)
  15183.       CONST QFA_PUBLIC    =  1;
  15184.       CONST QFA_PRIVATE   =  2;
  15185.       CONST QFA_ERROR     =  GPI_ALTERROR;
  15186.  
  15187.       (* options for GpiQueryFonts *)
  15188.       CONST QF_PUBLIC                  = 00001H;
  15189.       CONST QF_PRIVATE                 = 00002H;
  15190.       CONST QF_NO_GENERIC              = 00004H;
  15191.       CONST QF_NO_DEVICE               = 00008H;
  15192.  
  15193.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  15194.  
  15195.             (* font file descriptions for GpiQueryFontFileDescriptions *)
  15196.             TYPE FFDESCS  = ARRAY [0..1],[0..FACESIZE-1] OF CHAR; (* ffdescs *)
  15197.             TYPE PFFDESCS = POINTER TO FFDESCS;
  15198.             TYPE FFDESCS2 = RECORD   (* ffdescs2 *)
  15199.                   cbLength:         ULONG;
  15200.                   cbFacenameOffset: ULONG;
  15201.                   abFamilyName:     ARRAY [0..0] OF BYTE;
  15202.             END;
  15203.             TYPE PFFDESCS2 = POINTER TO FFDESCS2;
  15204.  
  15205.    <* END *>
  15206.  
  15207.    <* IF NOT DEFINED (INCL_DDIDEFS)  THEN *>
  15208.  
  15209.             (*** physical and logical font functions *)
  15210.  
  15211.             PROCEDURE [APIENTRY] GpiCreateLogFont(hps:     HPS;
  15212.                                                                             pName:     PSTR8;
  15213.                                                                             lLcid:     LONG;
  15214.                                                                             pfatAttrs: PFATTRS ): LONG;
  15215.  
  15216.             PROCEDURE [APIENTRY] GpiDeleteSetId(hps: HPS;
  15217.                                                                         lLcid: LONG ): BOOL;
  15218.  
  15219.             PROCEDURE [APIENTRY] GpiLoadFonts(hab:       HAB;
  15220.                                                                     pszFilename: PCSZ ): BOOL;
  15221.  
  15222.             PROCEDURE [APIENTRY] GpiUnloadFonts(hab:       HAB;
  15223.                                                                         pszFilename: PCSZ ): BOOL;
  15224.  
  15225.             PROCEDURE [APIENTRY] GpiQueryFonts(hps:          HPS;
  15226.                                                                       flOptions:      ULONG;
  15227.                                                                       pszFacename:    PCSZ;
  15228.                                                                       plReqFonts:     PLONG;
  15229.                                                                       lMetricsLength: LONG;
  15230.                                                                       afmMetrics:     PFONTMETRICS ): LONG;
  15231.  
  15232.             PROCEDURE [APIENTRY] GpiQueryFontMetrics(hps:     HPS;
  15233.                                                                                   lMetricsLength: LONG;
  15234.                                                                                   pfmMetrics:     PFONTMETRICS ): BOOL;
  15235.  
  15236.             PROCEDURE [APIENTRY] GpiQueryKerningPairs(hps:      HPS;
  15237.                                                                                     lCount:     LONG;
  15238.                                                                                     akrnprData: PKERNINGPAIRS ): LONG;
  15239.  
  15240.             PROCEDURE [APIENTRY] GpiQueryWidthTable(hps:      HPS;
  15241.                                                                                 lFirstChar: LONG;
  15242.                                                                                 lCount:     LONG;
  15243.                                                                                 alData:     PLONG ): BOOL;
  15244.  
  15245.             PROCEDURE [APIENTRY] GpiQueryNumberSetIds(hps: HPS ): LONG;
  15246.  
  15247.             PROCEDURE [APIENTRY] GpiQuerySetIds(hps:   HPS;
  15248.                                                                         lCount:  LONG;
  15249.                                                                         alTypes: PLONG;
  15250.                                                                         aNames:  PSTR8;
  15251.                                                                         allcids: PLONG ): BOOL;
  15252.  
  15253.             PROCEDURE [APIENTRY] GpiQueryFaceString(PS:              HPS;
  15254.                                                                                 FamilyName:        PCSZ;
  15255.                                                                                 attrs:             PFACENAMEDESC;
  15256.                                                                                 length:            LONG;
  15257.                                                                                 CompoundFaceName:  PCSZ ): ULONG;
  15258.  
  15259.             PROCEDURE [APIENTRY] GpiQueryLogicalFont(PS:   HPS;
  15260.                                                                                   lcid:   LONG;
  15261.                                                                                   name:   PSTR8;
  15262.                                                                                   attrs:  PFATTRS;
  15263.                                                                                   length: LONG ): BOOL;
  15264.  
  15265.             PROCEDURE [APIENTRY] GpiQueryFontAction(anchor: HAB;
  15266.                                                                                 options:  ULONG ): ULONG;
  15267.  
  15268.             PROCEDURE [APIENTRY] GpiLoadPublicFonts(hab: HAB;
  15269.                                                                                 pcsz: PCSZ): BOOL;
  15270.  
  15271.             PROCEDURE [APIENTRY] GpiUnloadPublicFonts(hab: HAB;
  15272.                                                                                     pcsz: PCSZ): BOOL;
  15273.  
  15274.       <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  15275.  
  15276.                   PROCEDURE [APIENTRY] GpiSetCp(hps:        HPS;
  15277.                                                                       ulCodePage: ULONG ): BOOL;
  15278.  
  15279.                   PROCEDURE [APIENTRY] GpiQueryCp(hps: HPS ): ULONG;
  15280.  
  15281.                   PROCEDURE [APIENTRY] GpiQueryFullFontFileDescs(hab:         HAB;
  15282.                                                                                                         pszFilename: PCSZ;
  15283.                                                                                                         plCount:     PLONG;
  15284.                                                                                                         pNames:      PVOID;
  15285.                                                                                                         plNamesBuffLength: PLONG ): LONG;
  15286.  
  15287.                   PROCEDURE [APIENTRY] GpiQueryFontFileDescriptions(hab:           HAB;
  15288.                                                                                                               pszFilename:   PCSZ;
  15289.                                                                                                               plCount:       PLONG;
  15290.                                                                                                               affdescsNames: PFFDESCS ): LONG;
  15291.  
  15292.       <* END *>
  15293.  
  15294.    <* END *>
  15295.  
  15296. <* END *>
  15297.  
  15298. <* IF (DEFINED (INCL_GPIBITMAPS) OR NOT DEFINED (INCL_NOCOMMON) ) THEN *>
  15299.       (* raster operations defined for GpiBitBlt *)
  15300.       CONST ROP_SRCCOPY                = 000CCH;
  15301.       CONST ROP_SRCPAINT               = 000EEH;
  15302.       CONST ROP_SRCAND                 = 00088H;
  15303.       CONST ROP_SRCINVERT              = 00066H;
  15304.       CONST ROP_SRCERASE               = 00044H;
  15305.       CONST ROP_NOTSRCCOPY             = 00033H;
  15306.       CONST ROP_NOTSRCERASE            = 00011H;
  15307.       CONST ROP_MERGECOPY              = 000C0H;
  15308.       CONST ROP_MERGEPAINT             = 000BBH;
  15309.       CONST ROP_PATCOPY                = 000F0H;
  15310.       CONST ROP_PATPAINT               = 000FBH;
  15311.       CONST ROP_PATINVERT              = 0005AH;
  15312.       CONST ROP_DSTINVERT              = 00055H;
  15313.       CONST ROP_ZERO                   = 00000H;
  15314.       CONST ROP_ONE                    = 000FFH;
  15315.  
  15316.       (* Blt options for GpiBitBlt *)
  15317.       CONST BBO_OR                       =  0;
  15318.       CONST BBO_AND                      =  1;
  15319.       CONST BBO_IGNORE                   =  2;
  15320.       CONST BBO_PAL_COLORS               =  4;
  15321.       CONST BBO_NO_COLOR_INFO            =  8;
  15322.  
  15323.       (* Fill options for GpiFloodFill *)
  15324.       CONST FF_BOUNDARY                  =  0;
  15325.       CONST FF_SURFACE                   =  1;
  15326.  
  15327.       (* error return for GpiSetBitmap *)
  15328.       CONST HBM_ERROR           = HBITMAP(LONG(-1));
  15329.  
  15330.    <* IF NOT DEFINED (INCL_DDIDEFS)  THEN *>
  15331.             (*** bitmap and pel functions *)
  15332.  
  15333.             PROCEDURE [APIENTRY] GpiBitBlt(hpsTarget:   HPS;
  15334.                                                                     hpsSource:  HPS;
  15335.                                                                     lCount:     LONG;
  15336.                                                                     aptlPoints: PPOINTL;
  15337.                                                                     lRop:       LONG;
  15338.                                                                     flOptions:  ULONG ): LONG;
  15339.  
  15340.             PROCEDURE [APIENTRY] GpiDeleteBitmap(hbm: HBITMAP ): BOOL;
  15341.  
  15342.             PROCEDURE [APIENTRY] GpiLoadBitmap(hps:       HPS;
  15343.                                                                             Resource: HMODULE;
  15344.                                                                             idBitmap: ULONG;
  15345.                                                                             lWidth:   LONG;
  15346.                                                                             lHeight:  LONG ): HBITMAP;
  15347.  
  15348.             PROCEDURE [APIENTRY] GpiSetBitmap(hps:  HPS;
  15349.                                                                           hbm: HBITMAP ): HBITMAP;
  15350.  
  15351.             PROCEDURE [APIENTRY] GpiWCBitBlt(hpsTarget:   HPS;
  15352.                                                                         hbmSource:  HBITMAP;
  15353.                                                                         lCount:     LONG;
  15354.                                                                         aptlPoints: PPOINTL;
  15355.                                                                         lRop:       LONG;
  15356.                                                                         flOptions:  ULONG ): LONG;
  15357.  
  15358.    <* END *>
  15359.  
  15360. <* END *>
  15361.  
  15362. <* IF DEFINED (INCL_GPIBITMAPS)  THEN *>
  15363.  
  15364.       (*** include bitmap structures and file formats *************************)
  15365.    
  15366. (* ------------- Include file: .\hm\pmbitmap.hm ------------- *)
  15367. (****************************** Module Header ******************************\
  15368. *
  15369. * Module Name: PMBITMAP.H
  15370. *
  15371. * OS/2 Presentation Manager Bit Map, Icon and Pointer type declarations.
  15372. *
  15373. * Copyright (c) International Business Machines Corporation 1981, 1988-1992
  15374. *
  15375. * ===========================================================================
  15376. *
  15377. * This is the file format structure for Bit Maps, Pointers and Icons
  15378. * as stored in the resource file of a PM application.
  15379. *
  15380. * Notes on file format:
  15381. *
  15382. * Each BITMAPFILEHEADER entry is immediately followed by the color table
  15383. * for the bit map bits it references.
  15384. * Icons and Pointers contain two BITMAPFILEHEADERs for each ARRAYHEADER
  15385. * item.  The first one is for the ANDXOR mask, the second is for the
  15386. * COLOR mask.  All offsets are absolute based on the start of the FILE.
  15387. *
  15388. * For OS/2 Version 2.0 and later BITMAPFILEHEADER2 and the other '2'
  15389. * versions of each structure are recommended. Use the non-2 versions
  15390. * of each structure if compatibility with OS/2 Version 1.X is required.
  15391. *
  15392. * ===========================================================================
  15393. *
  15394. * Comments at the end of each TYPE line give the name tags used in
  15395. * the assembler include version of this file.
  15396. *
  15397. * The assembler include version of this file excludes lines between XLATOFF
  15398. * and XLATON comments.
  15399. *
  15400. \***************************************************************************)
  15401.  
  15402. <* IF NOT DEFINED(PMBITMAP_INCLUDED) THEN *>
  15403.       (* XLATON *)
  15404.    <* NEW PMBITMAP_INCLUDED + *>
  15405.  
  15406.       (* XLATOFF *)
  15407.       -- #pragma pack(1)          (* pack on wordboundary *)
  15408.       (* XLATON *)
  15409.  
  15410.       (* bitmap parameterization used by GpiCreateBitmap and others *)
  15411.       TYPE BITMAPINFOHEADER = RECORD        (* bmp *)
  15412.             cbFix:     ULONG;
  15413.             cx:        USHORT;
  15414.             cy:        USHORT;
  15415.             cPlanes:   USHORT;
  15416.             cBitCount: USHORT;
  15417.       END;
  15418.       TYPE PBITMAPINFOHEADER = POINTER TO BITMAPINFOHEADER;
  15419.  
  15420.       (* RGB data for _BITMAPINFO struct *)
  15421.       TYPE RGB = RECORD             (* rgb *)
  15422.             bBlue:  BYTE;
  15423.             bGreen: BYTE;
  15424.             bRed:   BYTE;
  15425.       END;
  15426.  
  15427.       (* bitmap data used by GpiSetBitmapBits and others *)
  15428.       TYPE BITMAPINFO = RECORD      (* bmi *)
  15429.             cbFix:     ULONG;
  15430.             cx:        USHORT;
  15431.             cy:        USHORT;
  15432.             cPlanes:   USHORT;
  15433.             cBitCount: USHORT;
  15434.             argbColor: ARRAY [0..0] OF RGB;
  15435.       END;
  15436.       TYPE PBITMAPINFO = POINTER TO BITMAPINFO;
  15437.  
  15438.       (* Constants for compression/decompression command *)
  15439.  
  15440.       CONST CBD_COMPRESSION    = 1;
  15441.       CONST CBD_DECOMPRESSION  = 2;
  15442.       CONST CBD_BITS           = 0;
  15443.  
  15444.       (* Flags for compression/decompression option *)
  15445.  
  15446.       CONST CBD_COLOR_CONVERSION   = 000000001H;
  15447.  
  15448.       (* Compression scheme in the ulCompression field of the bitmapinfo structure *)
  15449.  
  15450.       CONST BCA_UNCOMP         = 0;
  15451.       CONST BCA_HUFFMAN1D      = 3;
  15452.       CONST BCA_RLE4           = 2;
  15453.       CONST BCA_RLE8           = 1;
  15454.       CONST BCA_RLE24          = 4;
  15455.  
  15456.       CONST BRU_METRIC         = 0;
  15457.  
  15458.       CONST BRA_BOTTOMUP       = 0;
  15459.  
  15460.       CONST BRH_NOTHALFTONED   = 0;
  15461.       CONST BRH_ERRORDIFFUSION = 1;
  15462.       CONST BRH_PANDA          = 2;
  15463.       CONST BRH_SUPERCIRCLE    = 3;
  15464.  
  15465.       CONST BCE_PALETTE        = (-1);
  15466.       CONST BCE_RGB            = 0;
  15467.  
  15468.       TYPE BITMAPINFOHEADER2 = RECORD       (* bmp2  *)
  15469.             cbFix:             ULONG; (*  Length of structure                    *)
  15470.             cx:                ULONG; (*  Bit-map width in pels                  *)
  15471.             cy:                ULONG; (*  Bit-map height in pels                 *)
  15472.             cPlanes:           USHORT; (*  Number of bit planes                   *)
  15473.             cBitCount:         USHORT; (*  Number of bits per pel within a plane  *)
  15474.             ulCompression:     ULONG; (*  Compression scheme used to store the bitmap *)
  15475.             cbImage:           ULONG; (*  Length of bit-map storage data in bytes*)
  15476.             cxResolution:      ULONG; (*  x resolution of target device          *)
  15477.             cyResolution:      ULONG; (*  y resolution of target device          *)
  15478.             cclrUsed:          ULONG; (*  Number of color indices used           *)
  15479.             cclrImportant:     ULONG; (*  Number of important color indices      *)
  15480.             usUnits:           USHORT; (*  Units of measure                       *)
  15481.             usReserved:        USHORT; (*  Reserved                               *)
  15482.             usRecording:       USHORT; (*  Recording algorithm                    *)
  15483.             usRendering:       USHORT; (*  Halftoning algorithm                   *)
  15484.             cSize1:            ULONG; (*  Size value 1                           *)
  15485.             cSize2:            ULONG; (*  Size value 2                           *)
  15486.             ulColorEncoding:   ULONG; (*  Color encoding                         *)
  15487.             ulIdentifier:      ULONG; (*  Reserved for application use           *)
  15488.       END;
  15489.       TYPE PBITMAPINFOHEADER2 = POINTER TO BITMAPINFOHEADER2;
  15490.  
  15491.       TYPE RGB2 = RECORD        (* rgb2 *)
  15492.             bBlue:               BYTE; (* Blue component of the color definition *)
  15493.             bGreen:              BYTE; (* Green component of the color definition*)
  15494.             bRed:                BYTE; (* Red component of the color definition  *)
  15495.             fcOptions:           BYTE; (* Reserved, must be zero                 *)
  15496.       END;
  15497.       TYPE PRGB2 = POINTER TO RGB2;
  15498.  
  15499.       TYPE BITMAPINFO2 = RECORD     (* bmi2 *)
  15500.             cbFix:             ULONG; (* Length of fixed portion of structure   *)
  15501.             cx:                ULONG; (* Bit-map width in pels                  *)
  15502.             cy:                ULONG; (* Bit-map height in pels                 *)
  15503.             cPlanes:           USHORT; (* Number of bit planes                   *)
  15504.             cBitCount:         USHORT; (* Number of bits per pel within a plane  *)
  15505.             ulCompression:     ULONG; (* Compression scheme used to store the bitmap *)
  15506.             cbImage:           ULONG; (* Length of bit-map storage data in bytes*)
  15507.             cxResolution:      ULONG; (* x resolution of target device          *)
  15508.             cyResolution:      ULONG; (* y resolution of target device          *)
  15509.             cclrUsed:          ULONG; (* Number of color indices used           *)
  15510.             cclrImportant:     ULONG; (* Number of important color indices      *)
  15511.             usUnits:           USHORT; (* Units of measure                       *)
  15512.             usReserved:        USHORT; (* Reserved                               *)
  15513.             usRecording:       USHORT; (* Recording algorithm                    *)
  15514.             usRendering:       USHORT; (* Halftoning algorithm                   *)
  15515.             cSize1:            ULONG; (* Size value 1                           *)
  15516.             cSize2:            ULONG; (* Size value 2                           *)
  15517.             ulColorEncoding:   ULONG; (* Color encoding                         *)
  15518.             ulIdentifier:      ULONG; (* Reserved for application use           *)
  15519.             argbColor:         ARRAY [0..0] OF RGB2; (* Color definition record   *)
  15520.       END;
  15521.       TYPE PBITMAPINFO2 = POINTER TO BITMAPINFO2;
  15522.  
  15523.       TYPE BITMAPFILEHEADER = RECORD   (* bfh *)
  15524.             usType:   USHORT;
  15525.             cbSize:   ULONG;
  15526.             xHotspot: SHORT;
  15527.             yHotspot: SHORT;
  15528.             offBits:  ULONG;
  15529.             bmp:      BITMAPINFOHEADER;
  15530.       END;
  15531.       TYPE PBITMAPFILEHEADER = POINTER TO BITMAPFILEHEADER;
  15532.  
  15533.       TYPE BITMAPARRAYFILEHEADER = RECORD      (* bafh *)
  15534.             usType:    USHORT;
  15535.             cbSize:    ULONG;
  15536.             offNext:   ULONG;
  15537.             cxDisplay: USHORT;
  15538.             cyDisplay: USHORT;
  15539.             bfh:       BITMAPFILEHEADER;
  15540.       END;
  15541.       TYPE PBITMAPARRAYFILEHEADER = POINTER TO BITMAPARRAYFILEHEADER;
  15542.  
  15543.       TYPE BITMAPFILEHEADER2 = RECORD   (* bfh2 *)
  15544.             usType:   USHORT;
  15545.             cbSize:   ULONG;
  15546.             xHotspot: SHORT;
  15547.             yHotspot: SHORT;
  15548.             offBits:  ULONG;
  15549.             bmp2:     BITMAPINFOHEADER2;
  15550.       END;
  15551.       TYPE PBITMAPFILEHEADER2 = POINTER TO BITMAPFILEHEADER2;
  15552.  
  15553.       TYPE BITMAPARRAYFILEHEADER2 = RECORD   (* bafh2 *)
  15554.             usType:    USHORT;
  15555.             cbSize:    ULONG;
  15556.             offNext:   ULONG;
  15557.             cxDisplay: USHORT;
  15558.             cyDisplay: USHORT;
  15559.             bfh2:      BITMAPFILEHEADER2;
  15560.       END;
  15561.       TYPE PBITMAPARRAYFILEHEADER2 = POINTER TO BITMAPARRAYFILEHEADER2;
  15562.  
  15563.       (*************************************************************************
  15564.       * These are the identifying values that go in the usType field of the
  15565.       * BITMAPFILEHEADER(2) and BITMAPARRAYFILEHEADER(2).
  15566.       * (BFT_ => Bit map File Type)
  15567.       *************************************************************************)
  15568.       CONST BFT_ICON         =  04349H;   (* 'IC' *)
  15569.       CONST BFT_BMAP         =  04d42H;   (* 'BM' *)
  15570.       CONST BFT_POINTER      =  05450H;   (* 'PT' *)
  15571.       CONST BFT_COLORICON    =  04943H;   (* 'CI' *)
  15572.       CONST BFT_COLORPOINTER =  05043H;   (* 'CP' *)
  15573.       CONST BFT_BITMAPARRAY  =  04142H;   (* 'BA' *)
  15574.  
  15575.       (* XLATOFF *)
  15576.       --#pragma pack()         (* reset to default packing *)
  15577.       (* XLATON *)
  15578.  
  15579. <* END *>
  15580.  
  15581. (**************************** end of file **********************************)
  15582.  
  15583. (* ------------- End of file:  .\hm\pmbitmap.hm ------------- *)
  15584.  
  15585.       (* usage flags for GpiCreateBitmap *)
  15586.       CONST CBM_INIT        = 00004H;
  15587.  
  15588.       (* error return code for GpiSet/QueryBitmapBits *)
  15589.       CONST BMB_ERROR                  =  (-1);
  15590.  
  15591.    <* IF NOT DEFINED (INCL_DDIDEFS)  THEN *>
  15592.  
  15593.             (*** bitmap and pel functions *)
  15594.  
  15595.             PROCEDURE [APIENTRY] GpiCreateBitmap(hps: HPS;
  15596.                                                                               pbmpNew: PBITMAPINFOHEADER2;
  15597.                                                                               flOptions: ULONG;
  15598.                                                                               pbInitData: PBYTE;
  15599.                                                                               pbmiInfoTable: PBITMAPINFO2 ): HBITMAP;
  15600.  
  15601.             PROCEDURE [APIENTRY] GpiSetBitmapBits(hps: HPS;
  15602.                                                                                 lScanStart: LONG;
  15603.                                                                                 lScans: LONG;
  15604.                                                                                 pbBuffer: PBYTE;
  15605.                                                                                 pbmiInfoTable: PBITMAPINFO2 ): LONG;
  15606.  
  15607.             PROCEDURE [APIENTRY] GpiSetBitmapDimension(hbm: HBITMAP;
  15608.                                                                                           psizlBitmapDimension: PSIZEL ): BOOL;
  15609.  
  15610.             PROCEDURE [APIENTRY] GpiSetBitmapId(hps: HPS;
  15611.                                                                             hbm: HBITMAP;
  15612.                                                                             lLcid: LONG ): BOOL;
  15613.  
  15614.             PROCEDURE [APIENTRY] GpiQueryBitmapBits(hps: HPS;
  15615.                                                                                     lScanStart: LONG;
  15616.                                                                                     lScans: LONG;
  15617.                                                                                     pbBuffer: PBYTE;
  15618.                                                                                     pbmiInfoTable: PBITMAPINFO2 ): LONG;
  15619.  
  15620.             PROCEDURE [APIENTRY] GpiQueryBitmapDimension(hbm: HBITMAP;
  15621.                                                                                               psizlBitmapDimension: PSIZEL ): BOOL;
  15622.  
  15623.             PROCEDURE [APIENTRY] GpiQueryBitmapHandle(hps: HPS;
  15624.                                                                                         lLcid: LONG ): HBITMAP;
  15625.  
  15626.             PROCEDURE [APIENTRY] GpiQueryBitmapParameters(hbm: HBITMAP;
  15627.                                                                                                 pbmpData: PBITMAPINFOHEADER ): BOOL;
  15628.  
  15629.             PROCEDURE [APIENTRY] GpiQueryBitmapInfoHeader(hbm: HBITMAP;
  15630.                                                                                                 pbmpData: PBITMAPINFOHEADER2 ): BOOL;
  15631.  
  15632.             PROCEDURE [APIENTRY] GpiQueryDeviceBitmapFormats(hps: HPS;
  15633.                                                                                                       lCount: LONG;
  15634.                                                                                                       alArray: PLONG ): BOOL;
  15635.  
  15636.             PROCEDURE [APIENTRY] GpiSetPel(hps: HPS;
  15637.                                                                   pptlPoint: PPOINTL ): LONG;
  15638.  
  15639.             PROCEDURE [APIENTRY] GpiQueryPel(hps: HPS;
  15640.                                                                       pptlPoint: PPOINTL ): LONG;
  15641.  
  15642.             PROCEDURE [APIENTRY] GpiFloodFill(hps: HPS;
  15643.                                                                         lOptions: LONG;
  15644.                                                                         lColor: LONG ): LONG;
  15645.  
  15646.             PROCEDURE [APIENTRY] GpiDrawBits(hps: HPS;
  15647.                                                                       pBits: PVOID;
  15648.                                                                       pbmiInfoTable: PBITMAPINFO2;
  15649.                                                                       lCount: LONG;
  15650.                                                                       aptlPoints: PPOINTL;
  15651.                                                                       lRop: LONG;
  15652.                                                                       flOptions: ULONG ): LONG;
  15653.  
  15654.    <* END *>
  15655.  
  15656.  
  15657. <* END *>
  15658.  
  15659. <* IF DEFINED (INCL_GPIREGIONS)  THEN *>
  15660.  
  15661.       (* options for GpiCombineRegion *)
  15662.       CONST CRGN_OR                      =  1;
  15663.       CONST CRGN_COPY                    =  2;
  15664.       CONST CRGN_XOR                     =  4;
  15665.       CONST CRGN_AND                     =  6;
  15666.       CONST CRGN_DIFF                    =  7;
  15667.  
  15668.       (* usDirection of returned region data for GpiQueryRegionRects *)
  15669.       CONST RECTDIR_LFRT_TOPBOT          =  1;
  15670.       CONST RECTDIR_RTLF_TOPBOT          =  2;
  15671.       CONST RECTDIR_LFRT_BOTTOP          =  3;
  15672.       CONST RECTDIR_RTLF_BOTTOP          =  4;
  15673.  
  15674.       (* control data for GpiQueryRegionRects *)
  15675.       TYPE RGNRECT = RECORD         (* rgnrc *)
  15676.             ircStart:    ULONG;
  15677.             crc:         ULONG;
  15678.             crcReturned: ULONG;
  15679.             ulDirection: ULONG;
  15680.       END;
  15681.       TYPE PRGNRECT = POINTER TO RGNRECT;
  15682.  
  15683.       (* return code to indicate type of region for GpiCombineRegion and others *)
  15684.       CONST RGN_ERROR                    =  0;
  15685.       CONST RGN_NULL                     =  1;
  15686.       CONST RGN_RECT                     =  2;
  15687.       CONST RGN_COMPLEX                  =  3;
  15688.  
  15689.       (* return codes for GpiPtInRegion *)
  15690.       CONST PRGN_ERROR                   =  0;
  15691.       CONST PRGN_OUTSIDE                 =  1;
  15692.       CONST PRGN_INSIDE                  =  2;
  15693.  
  15694.       (* return codes for GpiRectInRegion *)
  15695.       CONST RRGN_ERROR                   =  0;
  15696.       CONST RRGN_OUTSIDE                 =  1;
  15697.       CONST RRGN_PARTIAL                 =  2;
  15698.       CONST RRGN_INSIDE                  =  3;
  15699.  
  15700.       (* return codes for GpiEqualRegion *)
  15701.       CONST EQRGN_ERROR                  =  0;
  15702.       CONST EQRGN_NOTEQUAL               =  1;
  15703.       CONST EQRGN_EQUAL                  =  2;
  15704.  
  15705.       (* error return code for GpiSetRegion *)
  15706.       CONST HRGN_ERROR             =  HRGN(LONG(-1));
  15707.  
  15708.    <* IF NOT DEFINED (INCL_DDIDEFS)  THEN *>
  15709.  
  15710.  
  15711.             (*** main region functions *)
  15712.             PROCEDURE [APIENTRY] GpiCombineRegion(hps: HPS;
  15713.                                                                             hrgnDest: HRGN;
  15714.                                                                             hrgnSrc1: HRGN;
  15715.                                                                             hrgnSrc2: HRGN;
  15716.                                                                             lMode: LONG ): LONG;
  15717.  
  15718.             PROCEDURE [APIENTRY] GpiCreateRegion(hps: HPS;
  15719.                                                                           lCount: LONG;
  15720.                                                                           arclRectangles: PRECTL ): HRGN;
  15721.  
  15722.             PROCEDURE [APIENTRY] GpiDestroyRegion(hps: HPS;
  15723.                                                                             hrgn: HRGN ): BOOL;
  15724.  
  15725.             PROCEDURE [APIENTRY] GpiEqualRegion(hps: HPS;
  15726.                                                                         hrgnSrc1: HRGN;
  15727.                                                                         hrgnSrc2: HRGN ): LONG;
  15728.  
  15729.             PROCEDURE [APIENTRY] GpiOffsetRegion(hps: HPS;
  15730.                                                                           Hrgn: HRGN;
  15731.                                                                           pptlOffset: PPOINTL ): BOOL;
  15732.  
  15733.             PROCEDURE [APIENTRY] GpiPaintRegion(hps: HPS;
  15734.                                                                         hrgn: HRGN ): LONG;
  15735.  
  15736.             PROCEDURE [APIENTRY] GpiFrameRegion(hps: HPS;
  15737.                                                                         hrgn: HRGN;
  15738.                                                                         thickness: PSIZEL ): LONG;
  15739.  
  15740.             PROCEDURE [APIENTRY] GpiPtInRegion(hps: HPS;
  15741.                                                                       hrgn: HRGN;
  15742.                                                                       pptlPoint: PPOINTL ): LONG;
  15743.  
  15744.             PROCEDURE [APIENTRY] GpiQueryRegionBox(hps: HPS;
  15745.                                                                               hrgn: HRGN;
  15746.                                                                               prclBound: PRECTL ): LONG;
  15747.  
  15748.             PROCEDURE [APIENTRY] GpiQueryRegionRects(hps: HPS;
  15749.                                                                                   hrgn: HRGN;
  15750.                                                                                   prclBound: PRECTL;
  15751.                                                                                   prgnrcControl: PRGNRECT;
  15752.                                                                                   prclRect: PRECTL ): BOOL;
  15753.  
  15754.             PROCEDURE [APIENTRY] GpiRectInRegion(hps: HPS;
  15755.                                                                           hrgn: HRGN;
  15756.                                                                           prclRect: PRECTL ): LONG;
  15757.  
  15758.             PROCEDURE [APIENTRY] GpiSetRegion(hps: HPS;
  15759.                                                                     hrgn: HRGN;
  15760.                                                                     lcount: LONG;
  15761.                                                                     arclRectangles: PRECTL ): BOOL;
  15762.  
  15763.             (*** clip region functions *)
  15764.             PROCEDURE [APIENTRY] GpiSetClipRegion(hps: HPS;
  15765.                                                                             hrgn: HRGN;
  15766.                                                                             phrgnOld: PHRGN ): LONG;
  15767.  
  15768.       <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  15769.  
  15770.  
  15771.                   PROCEDURE [APIENTRY] GpiQueryClipRegion(hps: HPS ): HRGN;
  15772.  
  15773.                   PROCEDURE [APIENTRY] GpiQueryClipBox(hps: HPS;
  15774.                                                                                 prclBound: PRECTL ): LONG;
  15775.  
  15776.       <* END *>
  15777.  
  15778.  
  15779.             PROCEDURE [APIENTRY] GpiExcludeClipRectangle(hps: HPS;
  15780.                                                                                           prclRectangle: PRECTL ): LONG;
  15781.  
  15782.             PROCEDURE [APIENTRY] GpiIntersectClipRectangle(hps: HPS;
  15783.                                                                                               prclRectangle: PRECTL ): LONG;
  15784.  
  15785.       <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  15786.  
  15787.  
  15788.                   PROCEDURE [APIENTRY] GpiOffsetClipRegion(hps: HPS;
  15789.                                                                                         pptlPoint: PPOINTL ): LONG;
  15790.  
  15791.       <* END *>
  15792.  
  15793.    <* END *>
  15794.  
  15795. <* END *>
  15796. <* IF DEFINED (INCL_GPIMETAFILES)  THEN *>
  15797.  
  15798.    <* IF NOT DEFINED (INCL_DDIDEFS)  THEN *>
  15799.  
  15800.             (* constants for index values of options array for GpiPlayMetaFile *)
  15801.             CONST PMF_SEGBASE                  =  0;
  15802.             CONST PMF_LOADTYPE                 =  1;
  15803.             CONST PMF_RESOLVE                  =  2;
  15804.             CONST PMF_LCIDS                    =  3;
  15805.             CONST PMF_RESET                    =  4;
  15806.             CONST PMF_SUPPRESS                 =  5;
  15807.             CONST PMF_COLORTABLES              =  6;
  15808.             CONST PMF_COLORREALIZABLE          =  7;
  15809.             CONST PMF_DEFAULTS                 =  8;
  15810.             CONST PMF_DELETEOBJECTS            =  9;
  15811.  
  15812.             (* options for GpiPlayMetaFile *)
  15813.             CONST RS_DEFAULT                   =  0;
  15814.             CONST RS_NODISCARD                 =  1;
  15815.             CONST LC_DEFAULT                   =  0;
  15816.             CONST LC_NOLOAD                    =  1;
  15817.             CONST LC_LOADDISC                  =  3;
  15818.             CONST LT_DEFAULT                   =  0;
  15819.             CONST LT_NOMODIFY                  =  1;
  15820.             CONST LT_ORIGINALVIEW              =  4;
  15821.             CONST RES_DEFAULT                  =  0;
  15822.             CONST RES_NORESET                  =  1;
  15823.             CONST RES_RESET                    =  2;
  15824.             CONST SUP_DEFAULT                  =  0;
  15825.             CONST SUP_NOSUPPRESS               =  1;
  15826.             CONST SUP_SUPPRESS                 =  2;
  15827.             CONST CTAB_DEFAULT                 =  0;
  15828.             CONST CTAB_NOMODIFY                =  1;
  15829.             CONST CTAB_REPLACE                 =  3;
  15830.             CONST CTAB_REPLACEPALETTE          =  4;
  15831.             CONST CREA_DEFAULT                 =  0;
  15832.             CONST CREA_REALIZE                 =  1;
  15833.             CONST CREA_NOREALIZE               =  2;
  15834.             CONST CREA_DOREALIZE               =  3;
  15835.  
  15836.       <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  15837.  
  15838.                   CONST DDEF_DEFAULT                 =  0;
  15839.                   CONST DDEF_IGNORE                  =  1;
  15840.                   CONST DDEF_LOADDISC                =  3;
  15841.                   CONST DOBJ_DEFAULT                 =  0;
  15842.                   CONST DOBJ_NODELETE                =  1;
  15843.                   CONST DOBJ_DELETE                  =  2;
  15844.                   CONST RSP_DEFAULT                  =  0;
  15845.                   CONST RSP_NODISCARD                =  1;
  15846.  
  15847.       <* END *>
  15848.  
  15849.             (*** MetaFile functions *)
  15850.  
  15851.             PROCEDURE [APIENTRY] GpiCopyMetaFile(hmf: HMF ): HMF;
  15852.  
  15853.             PROCEDURE [APIENTRY] GpiDeleteMetaFile(hmf: HMF ): BOOL;
  15854.  
  15855.             PROCEDURE [APIENTRY] GpiLoadMetaFile(hab: HAB;
  15856.                                                                           pszFilename: PCSZ ): HMF;
  15857.  
  15858.             PROCEDURE [APIENTRY] GpiPlayMetaFile(hps: HPS;
  15859.                                                                           hmf: HMF;
  15860.                                                                           lCount1: LONG;
  15861.                                                                           alOptarray: PLONG;
  15862.                                                                           plSegCount: PLONG;
  15863.                                                                           lCount2: LONG;
  15864.                                                                           pszDesc: PCSZ ): LONG;
  15865.  
  15866.             PROCEDURE [APIENTRY] GpiQueryMetaFileBits(hmf: HMF;
  15867.                                                                                     lOffset: LONG;
  15868.                                                                                     lLength: LONG;
  15869.                                                                                     pbData: PBYTE ): BOOL;
  15870.  
  15871.             PROCEDURE [APIENTRY] GpiQueryMetaFileLength(hmf: HMF ): LONG;
  15872.  
  15873.             PROCEDURE [APIENTRY] GpiSaveMetaFile(hmf: HMF;
  15874.                                                                           pszFilename: PCSZ ): BOOL;
  15875.  
  15876.       <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  15877.  
  15878.                   PROCEDURE [APIENTRY] GpiSetMetaFileBits(hmf: HMF;
  15879.                                                                                       lOffset: LONG;
  15880.                                                                                       lLength: LONG;
  15881.                                                                                       pbBuffer: PBYTE ): BOOL;
  15882.       <* END *>
  15883.  
  15884.    <* END *>
  15885.  
  15886. <* END *>
  15887.  
  15888. <* IF DEFINED (INCL_GPIDEFAULTS)  THEN *>
  15889.  
  15890.       (*** default functions *)
  15891.  
  15892.       PROCEDURE [APIENTRY] GpiQueryDefArcParams(hps: HPS;
  15893.                                                                               parcpArcParams: PARCPARAMS ): BOOL;
  15894.  
  15895.       PROCEDURE [APIENTRY] GpiQueryDefAttrs(hps: HPS;
  15896.                                                                       lPrimType: LONG;
  15897.                                                                       flAttrMask: ULONG;
  15898.                                                                       ppbunAttrs: PBUNDLE ): BOOL;
  15899.  
  15900.       PROCEDURE [APIENTRY] GpiQueryDefTag(hps: HPS;
  15901.                                                                   plTag: PLONG ): BOOL;
  15902.  
  15903.       PROCEDURE [APIENTRY] GpiQueryDefViewingLimits(hps: HPS;
  15904.                                                                                       prclLimits: PRECTL ): BOOL;
  15905.  
  15906.       PROCEDURE [APIENTRY] GpiSetDefArcParams(hps: HPS;
  15907.                                                                           parcpArcParams: PARCPARAMS ): BOOL;
  15908.  
  15909.       PROCEDURE [APIENTRY] GpiSetDefAttrs(hps: HPS;
  15910.                                                                   lPrimType: LONG;
  15911.                                                                   flAttrMask: ULONG;
  15912.                                                                   ppbunAttrs: PBUNDLE ): BOOL;
  15913.  
  15914.       PROCEDURE [APIENTRY] GpiSetDefTag(hps: HPS;
  15915.                                                               lTag: LONG ): BOOL;
  15916.  
  15917.       PROCEDURE [APIENTRY] GpiSetDefViewingLimits(hps: HPS;
  15918.                                                                                   prclLimits: PRECTL ): BOOL;
  15919.  
  15920.  
  15921. <* END *>
  15922.  
  15923. <* IF DEFINED (INCL_GPIPOLYGON)  THEN *>
  15924.       TYPE POLYGON = RECORD  (* plygn *)
  15925.             ulPoints: ULONG;
  15926.             aPointl:  PPOINTL;
  15927.       END;
  15928.       TYPE PPOLYGON = POINTER TO POLYGON;
  15929.  
  15930.       TYPE POLYSET = RECORD  (* plyst *)
  15931.             ulPolys:    ULONG;
  15932.             aPolygon:   ARRAY [0..0] OF POLYGON;
  15933.       END;
  15934.       TYPE PPOLYSET = POINTER TO POLYSET;
  15935.  
  15936.       (* control flags used by GpiPolygons *)
  15937.       CONST POLYGON_NOBOUNDARY                =  0;
  15938.       CONST POLYGON_BOUNDARY                = 00001H;
  15939.  
  15940.       CONST POLYGON_ALTERNATE                 =  0;
  15941.       CONST POLYGON_WINDING                 = 00002H;
  15942.  
  15943.       CONST POLYGON_INCL                      =  0;
  15944.       CONST POLYGON_EXCL                    = 00008H;
  15945.  
  15946.    <* IF NOT DEFINED (INCL_DDIDEFS)  THEN *>
  15947.  
  15948.             PROCEDURE [APIENTRY] GpiPolygons(hps: HPS;
  15949.                                                                 ulCount: ULONG;
  15950.                                                                 paplgn: PPOLYGON;
  15951.                                                                 flOptions: ULONG;
  15952.                                                                 flModel: ULONG ): LONG;
  15953.  
  15954.    <* END *>
  15955. <* END *>
  15956.  
  15957. <* IF DEFINED (INCL_GPIERRORS)  THEN *>
  15958.    
  15959. (* ------------- Include file: .\hm\pmerr.hm ------------- *)
  15960. (* ------------- This file we'll include late. EOF. --------------- *)
  15961.  
  15962. <* END *>
  15963.  
  15964.  
  15965. (**************************** end of file **********************************)
  15966.  
  15967. (* ------------- End of file:  .\hm\pmgpi.hm ------------- *)
  15968.  
  15969. (* ------------- Include file: .\hm\pmdev.hm ------------- *)
  15970. (****************************** Module Header ******************************\
  15971. *
  15972. * Module Name: PMDEV.H
  15973. *
  15974. * OS/2 Presentation Manager Device Context constants; types and
  15975. * function declarations
  15976. *
  15977. * Copyright (c) International Business Machines Corporation 1981; 1988-1992
  15978. *
  15979. * ===========================================================================
  15980. *
  15981. * The following symbols are used in this file for conditional sections.
  15982. *
  15983. *   CONST:                To include:
  15984. *
  15985. *   INCL_DEVERRORS          error definitions
  15986. *   INCL_DEV                Dev APIs and structures
  15987. *
  15988. * There is a symbol used in this file called INCL_DDIDEFS. This is used to
  15989. * include only the definitions for the DDI. The programmer using the GPI
  15990. * can ignore this symbol
  15991. *
  15992. * There is a symbol used in this file called INCL_SAADEFS. This is used to
  15993. * include only the definitions for the SAA. The programmer using the GPI
  15994. * can ignore this symbol
  15995. *
  15996. * ===========================================================================
  15997. *
  15998. * Comments at the end of each TYPE line give the name tags used in
  15999. * the assembler include version of this file.
  16000. *
  16001. * The assembler include version of this file excludes lines between NOINC
  16002. * and INC comments.
  16003. *
  16004. \***************************************************************************)
  16005.  
  16006.  
  16007. <* NEW DEV_INCLUDED + *>
  16008.  
  16009.  
  16010. <* IF DEFINED (INCL_ERRORS)  THEN *>
  16011.    <* NEW INCL_DEVERRORS + *>
  16012. <* END *>
  16013.  
  16014. <* IF DEFINED (INCL_DDIDEFS)  THEN *>
  16015.    <* NEW INCL_DEV + *>
  16016. <* END *>
  16017.  
  16018. <* IF DEFINED (INCL_SAADEFS)  THEN *>
  16019.    <* NEW INCL_DEV + *>
  16020. <* END *>
  16021.  
  16022. <* IF DEFINED (INCL_DEV) OR NOT DEFINED (INCL_NOCOMMON)  THEN *>
  16023.  
  16024.       (* General DEV return values *)
  16025.       CONST DEV_ERROR                     =  0;
  16026.       CONST DEV_OK                        =  1;
  16027.  
  16028.       (* DC type for DevOpenDC *)
  16029.       CONST OD_QUEUED                     =  2;
  16030.       CONST OD_DIRECT                     =  5;
  16031.       CONST OD_INFO                       =  6;
  16032.       CONST OD_METAFILE                   =  7;
  16033.       CONST OD_MEMORY                     =  8;
  16034.       CONST OD_METAFILE_NOQUERY           =  9;
  16035.  
  16036.       (* codes for DevQueryCaps *)
  16037.       CONST CAPS_FAMILY                   =  0;
  16038.       CONST CAPS_IO_CAPS                  =  1;
  16039.       CONST CAPS_TECHNOLOGY               =  2;
  16040.       CONST CAPS_DRIVER_VERSION           =  3;
  16041.       CONST CAPS_WIDTH                    =  4;      (* pels            *)
  16042.       CONST CAPS_HEIGHT                   =  5;      (* pels            *)
  16043.       CONST CAPS_WIDTH_IN_CHARS           =  6;
  16044.       CONST CAPS_HEIGHT_IN_CHARS          =  7;
  16045.       CONST CAPS_HORIZONTAL_RESOLUTION    =  8;      (* pels per meter  *)
  16046.       CONST CAPS_VERTICAL_RESOLUTION      =  9;      (* pels per meter  *)
  16047.       CONST CAPS_CHAR_WIDTH              =  10;      (* pels            *)
  16048.       CONST CAPS_CHAR_HEIGHT             =  11;      (* pels            *)
  16049.       CONST CAPS_SMALL_CHAR_WIDTH        =  12;      (* pels            *)
  16050.       CONST CAPS_SMALL_CHAR_HEIGHT       =  13;      (* pels            *)
  16051.       CONST CAPS_COLORS                  =  14;
  16052.       CONST CAPS_COLOR_PLANES            =  15;
  16053.       CONST CAPS_COLOR_BITCOUNT          =  16;
  16054.       CONST CAPS_COLOR_TABLE_SUPPORT     =  17;
  16055.       CONST CAPS_MOUSE_BUTTONS           =  18;
  16056.       CONST CAPS_FOREGROUND_MIX_SUPPORT  =  19;
  16057.       CONST CAPS_BACKGROUND_MIX_SUPPORT  =  20;
  16058.       CONST CAPS_DEVICE_WINDOWING        =  31;
  16059.       CONST CAPS_ADDITIONAL_GRAPHICS     =  32;
  16060.       CONST CAPS_VIO_LOADABLE_FONTS      =  21;
  16061.       CONST CAPS_WINDOW_BYTE_ALIGNMENT   =  22;
  16062.       CONST CAPS_BITMAP_FORMATS          =  23;
  16063.       CONST CAPS_RASTER_CAPS             =  24;
  16064.       CONST CAPS_MARKER_HEIGHT           =  25;      (* pels            *)
  16065.       CONST CAPS_MARKER_WIDTH            =  26;      (* pels            *)
  16066.       CONST CAPS_DEVICE_FONTS            =  27;
  16067.       CONST CAPS_GRAPHICS_SUBSET         =  28;
  16068.       CONST CAPS_GRAPHICS_VERSION        =  29;
  16069.       CONST CAPS_GRAPHICS_VECTOR_SUBSET  =  30;
  16070.       CONST CAPS_PHYS_COLORS             =  33;
  16071.       CONST CAPS_COLOR_INDEX             =  34;
  16072.       CONST CAPS_GRAPHICS_CHAR_WIDTH     =  35;
  16073.       CONST CAPS_GRAPHICS_CHAR_HEIGHT    =  36;
  16074.       CONST CAPS_HORIZONTAL_FONT_RES     =  37;
  16075.       CONST CAPS_VERTICAL_FONT_RES       =  38;
  16076.       CONST CAPS_DEVICE_FONT_SIM         =  39;
  16077.       CONST CAPS_LINEWIDTH_THICK         =  40;
  16078.       CONST CAPS_DEVICE_POLYSET_POINTS   =  41;
  16079.  
  16080.       (* Constants for CAPS_IO_CAPS *)
  16081.       CONST CAPS_IO_DUMMY                =   1;
  16082.       CONST CAPS_IO_SUPPORTS_OP          =   2;
  16083.       CONST CAPS_IO_SUPPORTS_IP          =   3;
  16084.       CONST CAPS_IO_SUPPORTS_IO          =   4;
  16085.  
  16086.       (* Constants for CAPS_TECHNOLOGY *)
  16087.       CONST CAPS_TECH_UNKNOWN            =   0;
  16088.       CONST CAPS_TECH_VECTOR_PLOTTER     =   1;
  16089.       CONST CAPS_TECH_RASTER_DISPLAY     =   2;
  16090.       CONST CAPS_TECH_RASTER_PRINTER     =   3;
  16091.       CONST CAPS_TECH_RASTER_CAMERA      =   4;
  16092.       CONST CAPS_TECH_POSTSCRIPT         =   5;
  16093.  
  16094.       (* Constants for CAPS_COLOR_TABLE_SUPPORT *)
  16095.       CONST CAPS_COLTABL_RGB_8           =   1;
  16096.       CONST CAPS_COLTABL_RGB_8_PLUS      =   2;
  16097.       CONST CAPS_COLTABL_TRUE_MIX        =   4;
  16098.       CONST CAPS_COLTABL_REALIZE         =   8;
  16099.  
  16100.       (* Constants for CAPS_FOREGROUND_MIX_SUPPORT *)
  16101.       CONST CAPS_FM_OR                   =   1;
  16102.       CONST CAPS_FM_OVERPAINT            =   2;
  16103.       CONST CAPS_FM_XOR                  =   8;
  16104.       CONST CAPS_FM_LEAVEALONE           =  16;
  16105.       CONST CAPS_FM_AND                  =  32;
  16106.       CONST CAPS_FM_GENERAL_BOOLEAN      =  64;
  16107.  
  16108.       (* Constants for CAPS_BACKGROUND_MIX_SUPPORT *)
  16109.       CONST CAPS_BM_OR                   =   1;
  16110.       CONST CAPS_BM_OVERPAINT            =   2;
  16111.       CONST CAPS_BM_XOR                  =   8;
  16112.       CONST CAPS_BM_LEAVEALONE           =  16;
  16113.       CONST CAPS_BM_AND                  =  32;
  16114.       CONST CAPS_BM_GENERAL_BOOLEAN      =  64;
  16115.       CONST CAPS_BM_SRCTRANSPARENT       = 128;
  16116.       CONST CAPS_BM_DESTTRANSPARENT      = 256;
  16117.  
  16118.       (* Constants for CAPS_DEVICE_WINDOWING *)
  16119.       CONST CAPS_DEV_WINDOWING_SUPPORT   =   1;
  16120.  
  16121.       (* Constants for CAPS_ADDITIONAL_GRAPHICS *)
  16122.       CONST CAPS_VDD_DDB_TRANSFER         =   1;
  16123.       CONST CAPS_GRAPHICS_KERNING_SUPPORT =   2;
  16124.       CONST CAPS_FONT_OUTLINE_DEFAULT     =   4;
  16125.       CONST CAPS_FONT_IMAGE_DEFAULT       =   8;
  16126.       (* bits represented by values 16L and 32L are reserved *)
  16127.       CONST CAPS_SCALED_DEFAULT_MARKERS   =  64;
  16128.       CONST CAPS_COLOR_CURSOR_SUPPORT     = 128;
  16129.       CONST CAPS_PALETTE_MANAGER          = 256;
  16130.       CONST CAPS_COSMETIC_WIDELINE_SUPPORT= 512;
  16131.       CONST CAPS_DIRECT_FILL            =  1024;
  16132.       CONST CAPS_REBUILD_FILLS          =  2048;
  16133.       CONST CAPS_CLIP_FILLS             =  000001000H; (* 4096L  *)
  16134.       CONST CAPS_ENHANCED_FONTMETRICS   =  000002000H; (* 8192L  *)
  16135.       CONST CAPS_TRANSFORM_SUPPORT      =  000004000H; (* 16384L *)
  16136.  
  16137.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  16138.  
  16139.             (* Constants for CAPS_WINDOW_BYTE_ALIGNMENT *)
  16140.             CONST CAPS_BYTE_ALIGN_REQUIRED      =  0;
  16141.             CONST CAPS_BYTE_ALIGN_RECOMMENDED   =  1;
  16142.             CONST CAPS_BYTE_ALIGN_NOT_REQUIRED  =  2;
  16143.    <* END *>
  16144.  
  16145.       (* Constants for CAPS_RASTER_CAPS *)
  16146.       CONST CAPS_RASTER_BITBLT           =   1;
  16147.       CONST CAPS_RASTER_BANDING          =   2;
  16148.       CONST CAPS_RASTER_BITBLT_SCALING   =   4;
  16149.       CONST CAPS_RASTER_SET_PEL          =  16;
  16150.       CONST CAPS_RASTER_FONTS            =  32;
  16151.       CONST CAPS_RASTER_FLOOD_FILL       =  64;
  16152.  
  16153.    <* IF NOT DEFINED (INCL_DDIDEFS)  THEN *>
  16154.  
  16155.             PROCEDURE [APIENTRY] DevOpenDC(hab: HAB;
  16156.                                                             lType: LONG;
  16157.                                                             pszToken: PCSZ;
  16158.                                                             lCount: LONG;
  16159.                                                             pdopData: PDEVOPENDATA;
  16160.                                                             hdcComp: HDC ): HDC;
  16161.  
  16162.             PROCEDURE [APIENTRY] DevCloseDC(hdc: HDC ): HMF;
  16163.  
  16164.             PROCEDURE [APIENTRY] DevQueryCaps(hdc: HDC;
  16165.                                                                     lStart: LONG;
  16166.                                                                     lCount: LONG;
  16167.                                                                     alArray: PLONG ): BOOL;
  16168.    <* END *>
  16169.  
  16170. <* END *>
  16171.  
  16172. <* IF DEFINED (INCL_DEV)  THEN *>
  16173.  
  16174.    <* IF NOT DEFINED (INCL_SAADEFS)  THEN *>
  16175.  
  16176.             (* structures for DEVESC_QUERYVIOCELLSIZES *)
  16177.             TYPE VIOSIZECOUNT = RECORD   (* vios *)
  16178.                   maxcount: LONG;
  16179.                   count:    LONG;
  16180.             END;
  16181.             TYPE VPIOSIZECOUNT = POINTER TO VIOSIZECOUNT;
  16182.  
  16183.             TYPE VIOFONTCELLSIZE = RECORD   (* viof *)
  16184.                   cx: LONG;
  16185.                   cy: LONG;
  16186.             END;
  16187.             TYPE PVIOFONTCELLSIZE = POINTER TO VIOFONTCELLSIZE;
  16188.  
  16189.             (* structure for DEVESC_GETSCALINGFACTOR *)
  16190.             TYPE SFACTORS = RECORD   (* sfactors *)
  16191.                   x: LONG;
  16192.                   y: LONG;
  16193.             END;
  16194.             TYPE PSFACTORS = POINTER TO SFACTORS;
  16195.  
  16196.             (* structure for DEVESC_NEXTBAND *)
  16197.             TYPE BANDRECT = RECORD   (* bandrect *)
  16198.                   xleft:   LONG;
  16199.                   ybottom: LONG;
  16200.                   xright:  LONG;
  16201.                   ytop:    LONG;
  16202.             END;
  16203.             TYPE PBANDRECT = POINTER TO BANDRECT;
  16204.  
  16205.             (* return codes for DevEscape *)
  16206.             CONST DEVESC_ERROR               =   (-1);
  16207.             CONST DEVESC_NOTIMPLEMENTED      =     0;
  16208.  
  16209.             (* codes for DevEscape *)
  16210.             CONST DEVESC_QUERYESCSUPPORT     =     0;
  16211.             CONST DEVESC_GETSCALINGFACTOR    =     1;
  16212.             CONST DEVESC_QUERYVIOCELLSIZES   =     2;
  16213.             CONST DEVESC_GETCP               =  8000;
  16214.  
  16215.             CONST DEVESC_STARTDOC            =  8150;
  16216.             CONST DEVESC_ENDDOC              =  8151;
  16217.             CONST DEVESC_NEXTBAND            =  8152;
  16218.             CONST DEVESC_ABORTDOC            =  8153;
  16219.  
  16220.             CONST DEVESC_NEWFRAME            = 16300;
  16221.             CONST DEVESC_DRAFTMODE           = 16301;
  16222.             CONST DEVESC_FLUSHOUTPUT         = 16302;
  16223.             CONST DEVESC_RAWDATA             = 16303;
  16224.             CONST DEVESC_SETMODE             = 16304;
  16225.  
  16226.             CONST DEVESC_DBE_FIRST           = 24450;
  16227.             CONST DEVESC_DBE_LAST            = 24455;
  16228.  
  16229.             (* DevEscape codes for adding extra space to character strings *)
  16230.             CONST DEVESC_CHAR_EXTRA          = 16998;
  16231.             CONST DEVESC_BREAK_EXTRA         = 16999;
  16232.  
  16233.             (* codes for DevEscape PM_Q_ESC spool files *)
  16234.             CONST DEVESC_STD_JOURNAL         = 32600;
  16235.  
  16236.             (* structure for DEVESC_SETMODE *)
  16237.             TYPE ESCMODE = RECORD    (* em *)
  16238.                   mode:     ULONG;
  16239.                   modedata: ARRAY [0..0] OF BYTE;
  16240.             END;
  16241.             TYPE PESCMODE = POINTER TO ESCMODE;
  16242.  
  16243.             (* return codes for DevPostDeviceModes *)
  16244.             CONST DPDM_ERROR                 =   (-1);
  16245.             CONST DPDM_NONE                  =     0;
  16246.  
  16247.             (* codes for DevPostDeviceModes *)
  16248.             CONST DPDM_POSTJOBPROP           =     0;
  16249.             CONST DPDM_CHANGEPROP            =     1;
  16250.             CONST DPDM_QUERYJOBPROP          =     2;
  16251.  
  16252.             (* string types for DevQueryDeviceNames *)
  16253.             TYPE STR16  = ARRAY [0..15] OF CHAR;     (* str16 *)
  16254.             TYPE PSTR16 = POINTER TO STR16;
  16255.             TYPE STR32  = ARRAY [0..31] OF CHAR;     (* str32 *)
  16256.             TYPE PSTR32 = POINTER TO STR32;
  16257.             TYPE STR64  = ARRAY [0..63] OF CHAR;     (* str64 *)
  16258.             TYPE PSTR64 = POINTER TO STR64;
  16259.  
  16260.             (* return code for DevQueryHardcopyCaps *)
  16261.             CONST DQHC_ERROR                 =   (-1);
  16262.  
  16263.             (* codes for DevQueryHardcopyCaps *)
  16264.             CONST HCAPS_CURRENT              =     1;
  16265.             CONST HCAPS_SELECTABLE           =     2;
  16266.  
  16267.             (* structure for DevQueryHardcopyCaps *)
  16268.             TYPE HCINFO = RECORD          (* hci *)
  16269.                   szFormname:   ARRAY [0..31] OF CHAR;
  16270.                   cx:           LONG;
  16271.                   cy:           LONG;
  16272.                   xLeftClip:    LONG;
  16273.                   yBottomClip:  LONG;
  16274.                   xRightClip:   LONG;
  16275.                   yTopClip:     LONG;
  16276.                   xPels:        LONG;
  16277.                   yPels:        LONG;
  16278.                   flAttributes: LONG;
  16279.             END;
  16280.             TYPE PHCINFO = POINTER TO HCINFO;
  16281.  
  16282.             (* Device Context Functions *)
  16283.       <* IF NOT DEFINED (INCL_DDIDEFS)  THEN *>
  16284.  
  16285.                   PROCEDURE [APIENTRY] DevEscape(hdc: HDC;
  16286.                                                                     lCode: LONG;
  16287.                                                                     lInCount: LONG;
  16288.                                                                     pbInData: PBYTE;
  16289.                                                                     plOutCount: PLONG;
  16290.                                                                     pbOutData: PBYTE ): LONG;
  16291.  
  16292.                   PROCEDURE [APIENTRY] DevQueryDeviceNames(hab: HAB;
  16293.                                                                                         pszDriverName: PCSZ;
  16294.                                                                                         pldn: PLONG;
  16295.                                                                                         aDeviceName: PSTR32;
  16296.                                                                                         aDeviceDesc: PSTR64;
  16297.                                                                                         pldt: PLONG;
  16298.                                                                                         aDataType: PSTR16 ): BOOL;
  16299.  
  16300.                   PROCEDURE [APIENTRY] DevQueryHardcopyCaps(hdc: HDC;
  16301.                                                                                           lStartForm: LONG;
  16302.                                                                                           lForms: LONG;
  16303.                                                                                           phciHcInfo: PHCINFO ): LONG;
  16304.  
  16305.                   PROCEDURE [APIENTRY] DevPostDeviceModes(hab: HAB;
  16306.                                                                                       pdrivDriverData : PDRIVDATA;
  16307.                                                                                       pszDriverName: PCSZ;
  16308.                                                                                       pszDeviceName: PCSZ;
  16309.                                                                                       pszName: PCSZ;
  16310.                                                                                       flOptions: ULONG ): LONG;
  16311.  
  16312.       <* END *>
  16313.    <* END *>
  16314. <* END *>
  16315.  
  16316. <* IF DEFINED (INCL_DEVERRORS)  THEN *>
  16317.       (* AAB error codes for the DEV - same as GPI errors at present *)
  16318. <* END *>
  16319.  
  16320. (**************************** end of file **********************************)
  16321.  
  16322. (* ------------- End of file:  .\hm\pmdev.hm ------------- *)
  16323.  
  16324. (* ------------- Include file: .\hm\pmwp.hm ------------- *)
  16325. (****************************** Module Header ******************************\
  16326. *
  16327. * Module Name: PMWP.H
  16328. *
  16329. * OS/2 Presentation Manager Workplace include file.
  16330. *
  16331. * Copyright (c) International Business Machines Corporation 1981; 1988-1992
  16332. *
  16333. * ===========================================================================
  16334. *
  16335. * The folowing symbols are used in this file for conditional sections.
  16336. *
  16337. *   CONST:                To include:
  16338. *
  16339. *   INCL_WINWORKPLACE       All of Workplace Shell
  16340. *   INCL_WPCLASS            Workplace object class API's
  16341. *
  16342. * ===========================================================================
  16343. *
  16344. * Comments at the end of each TYPE line give the name tags used in
  16345. * the assembler include version of this file.
  16346. *
  16347. * The assembler include version of this file excludes lines between NOINC
  16348. * and INC comments.
  16349. *
  16350. \***************************************************************************)
  16351.  
  16352. (* NOINC *)
  16353. <* IF NOT DEFINED (PMWP_INCLUDED)  THEN *>
  16354.       (* INC *)
  16355.    <* NEW PMWP_INCLUDED + *>
  16356.  
  16357.    <* IF DEFINED (INCL_WINWORKPLACE)  THEN *>
  16358.       <* NEW INCL_WPCLASS + *>
  16359.    <* END *>
  16360.  
  16361.       (*** Common types *******************************************************)
  16362.  
  16363.       TYPE HOBJECT = LHANDLE ;
  16364.  
  16365.       (*** Object management calls ********************************************)
  16366.    <* IF DEFINED (INCL_WPCLASS) OR NOT DEFINED (INCL_NOCOMMON)  THEN *>
  16367.             (*** Standard object classes *****************************************)
  16368.  
  16369.  
  16370.             CONST CCHMAXCLASS       =       3;     (* Length of a classname     *)
  16371.  
  16372.             CONST QC_First          =       0;     (* Codes for OA_QueryContent *)
  16373.             CONST QC_Next           =       1;
  16374.             CONST QC_Last           =       2;
  16375.             CONST QC_FIRST          =    QC_First;
  16376.             CONST QC_NEXT           =    QC_Next;
  16377.             CONST QC_LAST           =    QC_Last;
  16378.  
  16379.             (*** An object's appearance (icon or bitmap or outline) **************)
  16380.  
  16381.             TYPE OBJECTIMAGE = RECORD    (* oimg *)
  16382.                   hptrObject: HPOINTER ;
  16383.             END;
  16384.             TYPE POBJECTIMAGE = POINTER TO OBJECTIMAGE;
  16385.  
  16386.             (*** Class info structure returned by WinEnumObjectClasses ***********)
  16387.             TYPE POBJCLASS = POINTER TO OBJCLASS;
  16388.             TYPE OBJCLASS = RECORD        (* ocls *)
  16389.                   pNext:        POBJCLASS;           (* Null for the last structure.. *)
  16390.                   pszClassName: PSZ;                 (* Class name                    *)
  16391.                   pszModName:   PSZ;                 (* Module name                   *)
  16392.             END;
  16393.  
  16394.  
  16395.             (*** Workplace object management functions ***************************)
  16396.  
  16397.             PROCEDURE [APIENTRY] WinRegisterObjectClass(pszClassName: PCSZ ;
  16398.                                                                                       pszModName: PCSZ ): BOOL ;
  16399.  
  16400.             PROCEDURE [APIENTRY] WinDeregisterObjectClass(pszClassName: PCSZ ): BOOL ;
  16401.  
  16402.             PROCEDURE [APIENTRY] WinReplaceObjectClass(pszOldClassName: PCSZ ;
  16403.                                                                                     pszNewClassName: PCSZ ;
  16404.                                                                                     fReplace: BOOL ): BOOL ;
  16405.  
  16406.             PROCEDURE [APIENTRY] WinEnumObjectClasses(pObjClass: POBJCLASS ;
  16407.                                                                                   pulSize: PULONG ): BOOL ;
  16408.  
  16409.             PROCEDURE [APIENTRY] WinCreateObject(pszClassName: PCSZ ;
  16410.                                                                               pszTitle: PCSZ ;
  16411.                                                                               pszSetupString: PCSZ ;
  16412.                                                                               pszLocation: PCSZ ;
  16413.                                                                               ulFlags : ULONG ): HOBJECT ;
  16414.             CONST CO_FAILIFEXISTS    = 0;
  16415.             CONST CO_REPLACEIFEXISTS = 1;
  16416.             CONST CO_UPDATEIFEXISTS  = 2;
  16417.  
  16418.             PROCEDURE [APIENTRY] WinSetObjectData(hObject: HOBJECT ;
  16419.                                                                           pszSetupString: PCSZ ): BOOL ;
  16420.  
  16421.             PROCEDURE [APIENTRY] WinDestroyObject(hObject: HOBJECT ): BOOL ;
  16422.  
  16423.             PROCEDURE [APIENTRY] WinQueryObject(pszObjectID: PCSZ ): HOBJECT ;
  16424.  
  16425.    <* END *>
  16426.  
  16427.       (*** Error codes ********************************************************)
  16428.    <* NEW INCL_WPERRORS + *>
  16429.       --#include <pmerr.h>
  16430.  
  16431.       (*** Object settings notebook page insertion structure ******************)
  16432.  
  16433.       TYPE PAGEINFO = RECORD    (* pginf *)
  16434.             cb:                 ULONG   ;
  16435.             hwndPage:           HWND    ;
  16436.             pfnwp:              PFNWP   ;
  16437.             resid:              ULONG   ;
  16438.             pCreateParams:      PVOID   ;
  16439.             dlgid:              USHORT  ;
  16440.             usPageStyleFlags:   USHORT  ;
  16441.             usPageInsertFlags:  USHORT  ;
  16442.             usSettingsFlags:    USHORT  ;
  16443.             pszName:            PSZ     ;
  16444.             idDefaultHelpPanel: USHORT  ;
  16445.             usReserved2:        USHORT  ;
  16446.             pszHelpLibraryName: PSZ     ;
  16447.             pHelpSubtable:      PUSHORT ; (* PHELPSUBTABLE when PMHELP.H is included*)
  16448.             hmodHelpSubtable:   HMODULE ;
  16449.             ulPageInsertId:     ULONG   ;
  16450.       END;
  16451.       TYPE PPAGEINFO = POINTER TO PAGEINFO;
  16452.  
  16453.       CONST  SETTINGS_PAGE_NUMBERS   =  001H;
  16454.  
  16455.       (*** Utility apis +******************************************************)
  16456.  
  16457.    <* IF NOT DEFINED (INCL_NOCOMMON)  THEN *>
  16458.             TYPE ICONPOS = RECORD    (* icp *)
  16459.                   ptlIcon:    POINTL;                                (*  Location *)
  16460.                   szIdentity: ARRAY [0..0] OF CHAR;       (* Object identity string *)
  16461.             END;
  16462.             TYPE PICONPOS = POINTER TO ICONPOS;
  16463.  
  16464.             (*********************************************************************)
  16465.       <* IF DEFINED (INCL_WINPOINTERS)  THEN *>
  16466.                   PROCEDURE [APIENTRY] WinSetFileIcon(pszFileName: PCSZ ;
  16467.                                                                             pIcnInfo: PICONINFO ): BOOL ;
  16468.       <* END *>
  16469.             PROCEDURE [APIENTRY] WinFreeFileIcon(hptr: HPOINTER ): BOOL ;
  16470.  
  16471.             PROCEDURE [APIENTRY] WinLoadFileIcon(pszFileName: PCSZ ;
  16472.                                                                                 fPrivate: BOOL ): HPOINTER ;
  16473.  
  16474.             PROCEDURE [APIENTRY] WinStoreWindowPos(pszAppName: PCSZ ;
  16475.                                                                             pszKeyName: PCSZ ;
  16476.                                                                             hwnd: HWND ): BOOL ;
  16477.  
  16478.             PROCEDURE [APIENTRY] WinRestoreWindowPos(pszAppName: PCSZ ;
  16479.                                                                                 pszKeyName: PCSZ ;
  16480.                                                                                 hwnd: HWND ): BOOL ;
  16481.  
  16482.             PROCEDURE [APIENTRY] WinShutdownSystem(hab: HAB ;
  16483.                                                                             hmq: HMQ ): BOOL ;
  16484.    <* END *>
  16485.  
  16486.       (* NOINC *)
  16487. <* END *>
  16488. (* INC *)
  16489.  
  16490. (**************************** end of file **********************************)
  16491.  
  16492. (* ------------- End of file:  .\hm\pmwp.hm ------------- *)
  16493.  
  16494. <* IF DEFINED(__NEWER_DEFINED_NAME) THEN *> (* it was '#if' 0 in the source text *)
  16495. <* IF DEFINED (INCL_AVIO)  THEN *>
  16496.    
  16497. (* ------------- Include file: .\hm\pmavio.hm ------------- *)
  16498. <* IF DEFINED(__NEWER_DEFINED_NAME) THEN *> (* it was '#if' 0 in the source text *)
  16499. (****************************** Module Header ******************************\
  16500. *
  16501. * Module Name: PMAVIO.H
  16502. *
  16503. * OS/2 Presentation Manager AVIO constants; types and function declarations
  16504. *
  16505. * Copyright (c) International Business Machines Corporation 1981; 1988-1992
  16506. *
  16507. * ===========================================================================
  16508. *
  16509. * Comments at the end of each TYPE line give the name tags used in
  16510. * the assembler include version of this file.
  16511. *
  16512. * The assembler include version of this file excludes lines between XLATOFF
  16513. * and XLATON comments.
  16514. *
  16515. \***************************************************************************)
  16516.  
  16517. <* NEW AVIO_INCLUDED + *>
  16518.  
  16519.  
  16520. TYPE HVPS  = USHORT;             (* hpvs *)
  16521. TYPE PHVPS = POINTER TO HVPS;    (* phpvs *)
  16522.  
  16523. PROCEDURE [APIENTRY16] VIO16ASSOCIATE(hdc: HDC ;
  16524.                                                                 hvps: HVPS ): USHORT  ;
  16525.  
  16526. PROCEDURE [APIENTRY16] VIO16CREATELOGFONT(pfatattrs: PFATTRS ;
  16527.                                                                         llcid: LONG ;
  16528.                                                                         pName: PSTR8 ;
  16529.                                                                         hvps: HVPS ): USHORT  ;
  16530.  
  16531. PROCEDURE [APIENTRY16] VIO16CREATEPS(phvps: PHVPS ;
  16532.                                                               sdepth: SHORT ;
  16533.                                                               swidth: SHORT ;
  16534.                                                               sFormat: SHORT ;
  16535.                                                               sAttrs: SHORT ;
  16536.                                                               hvpsReserved: HVPS ): USHORT  ;
  16537.  
  16538. PROCEDURE [APIENTRY16] VIO16DELETESETID(llcid: LONG ;
  16539.                                                                     hvps: HVPS ): USHORT  ;
  16540.  
  16541. PROCEDURE [APIENTRY16] VIO16DESTROYPS(hvps: HVPS ): USHORT  ;
  16542.  
  16543. PROCEDURE [APIENTRY16] VIO16GETDEVICECELLSIZE(psHeight: PSHORT ;
  16544.                                                                                 psWidth: PSHORT ;
  16545.                                                                                 hvps: HVPS ): USHORT  ;
  16546.  
  16547. PROCEDURE [APIENTRY16] VIO16GETORG(psRow: PSHORT ;
  16548.                                                           psColumn: PSHORT ;
  16549.                                                           hvps: HVPS ): USHORT  ;
  16550.  
  16551. PROCEDURE [APIENTRY16] VIO16QUERYFONTS(plRemfonts: PLONG ;
  16552.                                                                   afmMetrics: PFONTMETRICS ;
  16553.                                                                   lMetricsLength: LONG ;
  16554.                                                                   plFonts: PLONG ;
  16555.                                                                   pszFacename: PSZ ;
  16556.                                                                   flOptions: ULONG ;
  16557.                                                                   hvps: HVPS ): USHORT  ;
  16558.  
  16559. PROCEDURE [APIENTRY16] VIO16QUERYSETIDS(allcids: PLONG ;
  16560.                                                                     pNames: PSTR8 ;
  16561.                                                                     alTypes: PLONG ;
  16562.                                                                     lcount: LONG ;
  16563.                                                                     hvps: HVPS ): USHORT  ;
  16564.  
  16565. PROCEDURE [APIENTRY16] VIO16SETDEVICECELLSIZE(sHeight: SHORT ;
  16566.                                                                                 sWidth: SHORT ;
  16567.                                                                                 hvps: HVPS ): USHORT  ;
  16568.  
  16569. PROCEDURE [APIENTRY16] VIO16SETORG(sRow: SHORT ;
  16570.                                                           sColumn: SHORT ;
  16571.                                                           hvps: HVPS ): USHORT  ;
  16572.  
  16573. PROCEDURE [APIENTRY16] VIO16SHOWPS(sDepth: SHORT ;
  16574.                                                           sWidth: SHORT ;
  16575.                                                           soffCell: SHORT ;
  16576.                                                           hvps: HVPS ): USHORT  ;
  16577.  
  16578. (************************ Public Function *******************************
  16579. * WinDefAVioWindowProc -- Default message processing for AVio PS's
  16580. ************************************************************************)
  16581. (* mp1 and mp2 are defined as ULONG because MPARAM is a pointer type and *)
  16582. (* 32-bit compilers will thunk pointer types passed to 16-bit routines.  *)
  16583. (* This is not what is desired for WM_SIZE processing so we will declare *)
  16584. (* the function with ULONGs; non-pointer types.                          *)
  16585.  
  16586. PROCEDURE [APIENTRY16] WIN16DEFAVIOWINDOWPROC(hwnd: HWND ;
  16587.                                                                                 msg: USHORT ;
  16588.                                                                                 mp1: ULONG ;
  16589.                                                                                 mp2: ULONG ): MRESULT ;
  16590.  
  16591. CONST Vio16Associate        = VIO16ASSOCIATE;
  16592. CONST Vio16CreateLogFont    = VIO16CREATELOGFONT;
  16593. CONST Vio16CreatePS         = VIO16CREATEPS;
  16594. CONST Vio16DeleteSetId      = VIO16DELETESETID;
  16595. CONST Vio16DestroyPS        = VIO16DESTROYPS;
  16596. CONST Vio16GetDeviceCellSize= VIO16GETDEVICECELLSIZE;
  16597. CONST Vio16GetOrg           = VIO16GETORG;
  16598. CONST Vio16QueryFonts       = VIO16QUERYFONTS;
  16599. CONST Vio16QuerySetIds      = VIO16QUERYSETIDS;
  16600. CONST Vio16SetDeviceCellSize= VIO16SETDEVICECELLSIZE;
  16601. CONST Vio16SetOrg           = VIO16SETORG;
  16602. CONST Vio16ShowPS           = VIO16SHOWPS;
  16603. CONST Win16DefAVioWindowProc= WIN16DEFAVIOWINDOWPROC;
  16604.  
  16605. CONST VioAssociate          = VIO16ASSOCIATE;
  16606. CONST VioCreateLogFont      = VIO16CREATELOGFONT;
  16607. CONST VioCreatePS           = VIO16CREATEPS;
  16608. CONST VioDeleteSetId        = VIO16DELETESETID;
  16609. CONST VioDestroyPS          = VIO16DESTROYPS;
  16610. CONST VioGetDeviceCellSize  = VIO16GETDEVICECELLSIZE;
  16611. CONST VioGetOrg             = VIO16GETORG;
  16612. CONST VioQueryFonts         = VIO16QUERYFONTS;
  16613. CONST VioQuerySetIds        = VIO16QUERYSETIDS;
  16614. CONST VioSetDeviceCellSize  = VIO16SETDEVICECELLSIZE;
  16615. CONST VioSetOrg             = VIO16SETORG;
  16616. CONST VioShowPS             = VIO16SHOWPS;
  16617. CONST WinDefAVioWindowProc  = WIN16DEFAVIOWINDOWPROC;
  16618.  
  16619. (**************************** end of file **********************************)
  16620. <* END *>
  16621.  
  16622. (* ------------- End of file:  .\hm\pmavio.hm ------------- *)
  16623. <* END *>
  16624. <* END *>
  16625.  
  16626. <* IF DEFINED (INCL_SPL)  THEN *>
  16627.    
  16628. (* ------------- Include file: .\hm\pmspl.hm ------------- *)
  16629. (****************************** Module Header ******************************\
  16630. *
  16631. * Module Name: PMSPL.H
  16632. *
  16633. * OS/2 Presentation Manager Spooler constants, types and function declarations
  16634. *
  16635. * Copyright (c) International Business Machines Corporation 1981, 1988-1993
  16636. *
  16637. * ===========================================================================
  16638. *
  16639. * The following symbols are used in this file for conditional sections.
  16640. *
  16641. *   CONST:                To include:
  16642. *
  16643. *   INCL_SPLERRORS          defined if INCL_ERRORS defined
  16644. *   INCL_SPLFSE             file system emulation calls
  16645. *   INCL_SPLDOSPRINT        DosPrint APIs
  16646. *
  16647. * ===========================================================================
  16648. *
  16649. * Comments at the end of each TYPE line give the name tags used in
  16650. * the assembler include version of this file.
  16651. *
  16652. * The assembler include version of this file excludes lines between XLATOFF
  16653. * and XLATON comments.
  16654. *
  16655. \***************************************************************************)
  16656.  
  16657. <* IF NOT DEFINED (PMSPL_INCLUDED)  THEN *>
  16658.       (* XLATON *)
  16659.    <* NEW PMSPL_INCLUDED + *>
  16660.  
  16661.  
  16662.  
  16663.       (* XLATOFF *)
  16664.       (* XLATON *)
  16665.  
  16666.       (*** if error definitions are required then allow Spooler errors ********)
  16667.    <* IF DEFINED (INCL_ERRORS)  THEN *>
  16668.       <* NEW INCL_SPLERRORS + *>
  16669.    <* END *>
  16670.  
  16671.       (*** Names of various OS2SYS.INI spooler variables **********************)
  16672.  
  16673.       CONST SPL_INI_SPOOLER       =  "PM_SPOOLER"                ;
  16674.       CONST SPL_INI_QUEUE         =  "PM_SPOOLER_QUEUE"          ;
  16675.       CONST SPL_INI_PRINTER       =  "PM_SPOOLER_PRINTER"        ;
  16676.       CONST SPL_INI_PRINTERDESCR  =  "PM_SPOOLER_PRINTER_DESCR"  ;
  16677.       CONST SPL_INI_QUEUEDESCR    =  "PM_SPOOLER_QUEUE_DESCR"    ;
  16678.       CONST SPL_INI_QUEUEDD       =  "PM_SPOOLER_QUEUE_DD"       ;
  16679.       CONST SPL_INI_QUEUEDDDATA   =  "PM_SPOOLER_QUEUE_DDDATA"   ;
  16680.  
  16681.       (*** General SPL return values ******************************************)
  16682.       CONST SPL_ERROR   =  0;
  16683.       CONST SPL_OK      =  1;
  16684.  
  16685.       (*** handle to a spool file *********************************************)
  16686.       TYPE HSPL = LHANDLE;               (* hspl *)
  16687.  
  16688.       (* Used in recording of PM_Q_STD data via SplStdxxx calls *)
  16689.       TYPE HSTD  = LHANDLE;               (* hstd *)
  16690.       TYPE PHSTD = POINTER TO HSTD;
  16691.  
  16692.       (*** spooler manager open data ******************************************)
  16693.       TYPE PQMOPENDATA = POINTER TO PSZ;       (* pqmdop *)
  16694.  
  16695.  
  16696.       (*** Spooler Queue Processor interface **********************************)
  16697.  
  16698.       (* control codes for SplQpControl *)
  16699.       CONST SPLC_ABORT    = 1;
  16700.       CONST SPLC_PAUSE    = 2;
  16701.       CONST SPLC_CONTINUE = 3;
  16702.  
  16703.       (* flag defines for optional SplQpQueryFlags           *)
  16704.       (* set this to allow spooler to bypass Queue Processor *)
  16705.       (* for PM_Q_RAW jobs.  This allows print while a job   *)
  16706.       (* is still spooling.                                  *)
  16707.       CONST QP_RAWDATA_BYPASS = 000000001H;
  16708.  
  16709.       (*** handle to a spooler queue processor ********************************)
  16710.       TYPE HPROC = LHANDLE;              (* hproc *)
  16711.  
  16712.       (*** spooler processor open data ****************************************)
  16713.       TYPE PQPOPENDATA = POINTER TO PSZ;       (* pqpdop *)
  16714.  
  16715.       (*** Spooler Queue Processor interface **********************************)
  16716.       (* API's exported by Queue Processor DLL's                              *)
  16717.       PROCEDURE [EXPENTRY] SplQpOpen(cData: LONG;
  16718.       pQPDataIn: PQPOPENDATA ): HPROC ;
  16719.  
  16720.       PROCEDURE [EXPENTRY] SplQpPrint(hproc: HPROC;
  16721.       pszFileName: PCSZ): BOOL  ;
  16722.  
  16723.       PROCEDURE [EXPENTRY] SplQpClose(hproc: HPROC ): BOOL  ;
  16724.  
  16725.       PROCEDURE [EXPENTRY] SplQpControl(hproc: HPROC;
  16726.       cmdCode: LONG  ): BOOL  ;
  16727.  
  16728.       PROCEDURE [EXPENTRY] SplQpQueryDt(pcDataType: PLONG;
  16729.       paszDataTypes: PPCSZ): BOOL  ;
  16730.  
  16731.       PROCEDURE [EXPENTRY] SplQpInstall(hwnd: HWND ): BOOL  ;
  16732.  
  16733.       (* The next API is optionally exported by Queue Processors *)
  16734.       (* The flags may be set to QP_RAWDATA_BYPASS to allow the  *)
  16735.       (* spooler to print the job while spooling, bypassing this *)
  16736.       (* queue processor                                         *)
  16737.  
  16738.       PROCEDURE [EXPENTRY] SplQpQueryFlags(pulFlags: PULONG ): BOOL  ;
  16739.  
  16740.       (*************************************************************************
  16741.       * There are two definitions governing the QpOpen data block :-
  16742.       * 1) the original  QPOPENDATA, which is used as
  16743.       *    an array of PSZ and has a list of associated QPDAT defines
  16744.       *    for accessing elements of the array. This has been extended
  16745.       *    from 6 to 12 elements. The last element is a numeric type
  16746.       *    and cannot satisfactorily be accessed via array indexing.
  16747.       *
  16748.       * 2) a new SQPOPENDATA structure (see below)
  16749.       *
  16750.       * The old defn has been retained to support existing QProcs.
  16751.       *
  16752.       *************************************************************************)
  16753.  
  16754.       (*** Definition for elements within the PQPOPENDATA block ***************)
  16755.       CONST QPDAT_ADDRESS     =0;
  16756.       CONST QPDAT_DRIVER_NAME =1;
  16757.       CONST QPDAT_DRIVER_DATA =2;
  16758.       CONST QPDAT_DATA_TYPE   =3;
  16759.       CONST QPDAT_COMMENT     =4;
  16760.       CONST QPDAT_PROC_PARAMS =5;
  16761.       CONST QPDAT_SPL_PARAMS  =6;     (* SplQmOpen Spooler params **       *)
  16762.       CONST QPDAT_NET_PARAMS  =7;     (* SplQmOpen Network params **       *)
  16763.       CONST QPDAT_DOC_NAME    =8;     (* SplQmStartDoc name       **       *)
  16764.       CONST QPDAT_QUEUE_NAME  =9;     (* Queue name for job       **       *)
  16765.       CONST QPDAT_TOKEN      =10;     (* SplQmOpen token name     **       *)
  16766.       CONST QPDAT_JOBID      =11;     (* SQM job identity         **       *)
  16767.  
  16768.       TYPE SQPOPENDATA = RECORD      (* SplQpOpenData *)
  16769.             pszLogAddress:    PSZ;
  16770.             pszDriverName:    PSZ;
  16771.             pdriv:            PDRIVDATA;
  16772.             pszDataType:      PSZ;
  16773.             pszComment:       PSZ;
  16774.             pszProcParams:    PSZ;
  16775.             pszSpoolParams:   PSZ;
  16776.             pszNetworkParams: PSZ;
  16777.             pszDocName:       PSZ;
  16778.             pszQueueName:     PSZ;
  16779.             pszToken:         PSZ;
  16780.             idJobId:          USHORT;
  16781.       END;
  16782.       TYPE PSQPOPENDATA = POINTER TO SQPOPENDATA; (* ptr to SQPOPENDATA *)
  16783.  
  16784.  
  16785.       (*************************************************************************
  16786.       *** Error information and return codes
  16787.       *************************************************************************)
  16788.  
  16789.       (* Error information for SplMessageBox *)
  16790.       CONST SPLINFO_QPERROR     =  00001H;
  16791.       CONST SPLINFO_DDERROR     =  00002H;
  16792.       CONST SPLINFO_SPLERROR    =  00004H;
  16793.       CONST SPLINFO_OTHERERROR  =  00080H;
  16794.       CONST SPLINFO_INFORMATION =  00100H;
  16795.       CONST SPLINFO_WARNING     =  00200H;
  16796.       CONST SPLINFO_ERROR       =  00400H;
  16797.       CONST SPLINFO_SEVERE      =  00800H;
  16798.       CONST SPLINFO_USERINTREQD =  01000H;
  16799.  
  16800.       (* Error Data for SplMessageBox *)
  16801.       CONST SPLDATA_PRINTERJAM  =  00001H;
  16802.       CONST SPLDATA_FORMCHGREQD =  00002H;
  16803.       CONST SPLDATA_CARTCHGREQD =  00004H;
  16804.       CONST SPLDATA_PENCHGREQD  =  00008H;
  16805.       CONST SPLDATA_DATAERROR   =  00010H;
  16806.       CONST SPLDATA_UNEXPECTERROR= 00020H;
  16807.       CONST SPLDATA_OTHER       =  08000H;
  16808.  
  16809.       (* return code for fSplStdQueryLength *)
  16810.       CONST SSQL_ERROR = (-1);
  16811.  
  16812.    <* IF DEFINED (INCL_SPLERRORS)  THEN *>
  16813.       
  16814. (* ------------- Include file: .\hm\pmerr.hm ------------- *)
  16815. (* ------------- This file we'll include late. EOF. --------------- *)
  16816.  
  16817.    <* END *>
  16818.  
  16819.       TYPE SPLERR = SYSTEM.CARD32;
  16820.  
  16821.    <* IF DEFINED (INCL_SPLDOSPRINT)  THEN *>
  16822.             (* length for character arrays in structs (excluding zero terminator) *)
  16823.             CONST CNLEN         =  15;            (* Computer name length      *)
  16824.             CONST UNLEN         =  20;            (* Maximum user name length  *)
  16825.             CONST QNLEN         =  12;            (* Queue name maximum length *)
  16826.             CONST PDLEN         =   8;            (* Print destination length  *)
  16827.             CONST DTLEN         =   9;            (* Spool file data type      *)
  16828.             (* e.g. PM_Q_STD,PM_Q_RAW    *)
  16829.             CONST QP_DATATYPE_SIZE      =  15;    (* returned by SplQpQueryDt  *)
  16830.             CONST DRIV_DEVICENAME_SIZE  =  31;    (* see DRIVDATA struc        *)
  16831.             CONST DRIV_NAME_SIZE        =   8;    (* name of device driver     *)
  16832.             CONST PRINTERNAME_SIZE      =  32;    (* max printer name length   *)
  16833.             CONST FORMNAME_SIZE         =  31;    (* max form name length      *)
  16834.             CONST MAXCOMMENTSZ          =  48;    (* queue comment length      *)
  16835.  
  16836.             TYPE DRIVPROPS = RECORD     (* dprop *)
  16837.                   pszKeyName: PSZ;
  16838.                   cbBuf:      ULONG;
  16839.                   pBuf:       PVOID;
  16840.             END;
  16841.             TYPE PDRIVPROPS  = POINTER TO DRIVPROPS;
  16842.             TYPE NPDRIVPROPS = POINTER TO DRIVPROPS;
  16843.  
  16844.             TYPE PRJINFO = RECORD     (* prj1 *)
  16845.                   uJobId:       USHORT;
  16846.                   szUserName:   ARRAY [0..UNLEN] OF CHAR;
  16847.                   pad_1:        CHAR;
  16848.                   szNotifyName: ARRAY [0..CNLEN] OF CHAR;
  16849.                   szDataType:   ARRAY [0..DTLEN] OF CHAR;
  16850.                   pszParms:     PSZ;
  16851.                   uPosition:    USHORT;
  16852.                   fsStatus:     USHORT;
  16853.                   pszStatus:    PSZ;
  16854.                   ulSubmitted:  ULONG;
  16855.                   ulSize:       ULONG;
  16856.                   pszComment:   PSZ;
  16857.             END;
  16858.             TYPE PPRJINFO  = POINTER TO PRJINFO;
  16859.             TYPE NPPRJINFO = POINTER TO PRJINFO;
  16860.  
  16861.             TYPE PRJINFO2 = RECORD     (* prj2 *)
  16862.                   uJobId:       USHORT;
  16863.                   uPriority:    USHORT;
  16864.                   pszUserName:  PSZ;
  16865.                   uPosition:    USHORT;
  16866.                   fsStatus:     USHORT;
  16867.                   ulSubmitted:  ULONG;
  16868.                   ulSize:       ULONG;
  16869.                   pszComment:   PSZ;
  16870.                   pszDocument:  PSZ;
  16871.             END;
  16872.             TYPE PPRJINFO2  = POINTER TO PRJINFO2;
  16873.             TYPE NPPRJINFO2 = POINTER TO PRJINFO2;
  16874.  
  16875.             TYPE PRJINFO3 = RECORD     (* prj *)
  16876.                   uJobId:         USHORT;
  16877.                   uPriority:      USHORT;
  16878.                   pszUserName:    PSZ;
  16879.                   uPosition:      USHORT;
  16880.                   fsStatus:       USHORT;
  16881.                   ulSubmitted:    ULONG;
  16882.                   ulSize:         ULONG;
  16883.                   pszComment:     PSZ;
  16884.                   pszDocument:    PSZ;
  16885.                   pszNotifyName:  PSZ;
  16886.                   pszDataType:    PSZ;
  16887.                   pszParms:       PSZ;
  16888.                   pszStatus:      PSZ;
  16889.                   pszQueue:       PSZ;
  16890.                   pszQProcName:   PSZ;
  16891.                   pszQProcParms:  PSZ;
  16892.                   pszDriverName:  PSZ;
  16893.                   pDriverData:    PDRIVDATA;
  16894.                   pszPrinterName: PSZ;
  16895.             END;
  16896.             TYPE PPRJINFO3  = POINTER TO PRJINFO3;
  16897.             TYPE NPPRJINFO3 = POINTER TO PRJINFO3;
  16898.  
  16899.             TYPE PRDINFO = RECORD      (* prd1 *)
  16900.                   szName:       ARRAY [0..PDLEN] OF CHAR;
  16901.                   szUserName:   ARRAY [0..UNLEN] OF CHAR;
  16902.                   uJobId:       USHORT;
  16903.                   fsStatus:     USHORT;
  16904.                   pszStatus:    PSZ;
  16905.                   time:         USHORT;
  16906.             END;
  16907.             TYPE PPRDINFO  = POINTER TO PRDINFO;
  16908.             TYPE NPPRDINFO = POINTER TO PRDINFO;
  16909.  
  16910.             TYPE PRDINFO3 = RECORD     (* prd *)
  16911.                   pszPrinterName:  PSZ;
  16912.                   pszUserName:     PSZ;
  16913.                   pszLogAddr:      PSZ;
  16914.                   uJobId:          USHORT;
  16915.                   fsStatus:        USHORT;
  16916.                   pszStatus:       PSZ;
  16917.                   pszComment:      PSZ;
  16918.                   pszDrivers:      PSZ;
  16919.                   time:            USHORT;
  16920.                   usTimeOut:       USHORT;
  16921.             END;
  16922.             TYPE PPRDINFO3  = POINTER TO PRDINFO3;
  16923.             TYPE NPPRDINFO3 = POINTER TO PRDINFO3;
  16924.  
  16925.             TYPE PRQINFO = RECORD     (* prq1 *)
  16926.                   szName:           ARRAY [0..QNLEN] OF CHAR;
  16927.                   pad_1:            CHAR;
  16928.                   uPriority:        USHORT;
  16929.                   uStartTime:       USHORT;
  16930.                   uUntilTime:       USHORT;
  16931.                   pszSepFile:       PSZ;
  16932.                   pszPrProc:        PSZ;
  16933.                   pszDestinations:  PSZ;
  16934.                   pszParms:         PSZ;
  16935.                   pszComment:       PSZ;
  16936.                   fsStatus:         USHORT;
  16937.                   cJobs:            USHORT;
  16938.             END;
  16939.             TYPE PPRQINFO  = POINTER TO PRQINFO;
  16940.             TYPE NPPRQINFO = POINTER TO PRQINFO;
  16941.  
  16942.             TYPE PRQINFO3 = RECORD    (* prq *)
  16943.                   pszName:         PSZ;
  16944.                   uPriority:       USHORT;
  16945.                   uStartTime:      USHORT;
  16946.                   uUntilTime:      USHORT;
  16947.                   fsType:          USHORT;
  16948.                   pszSepFile:      PSZ;
  16949.                   pszPrProc:       PSZ;
  16950.                   pszParms:        PSZ;
  16951.                   pszComment:      PSZ;
  16952.                   fsStatus:        USHORT;
  16953.                   cJobs:           USHORT;
  16954.                   pszPrinters:     PSZ;
  16955.                   pszDriverName:   PSZ;
  16956.                   pDriverData:     PDRIVDATA;
  16957.             END;
  16958.             TYPE PPRQINFO3  = POINTER TO PRQINFO3;
  16959.             TYPE NPPRQINFO3 = POINTER TO PRQINFO3;
  16960.  
  16961.             TYPE PRQINFO6 = RECORD    (* prq6 *)
  16962.                   pszName:           PSZ;
  16963.                   uPriority:         USHORT;
  16964.                   uStartTime:        USHORT;
  16965.                   uUntilTime:        USHORT;
  16966.                   fsType:            USHORT;
  16967.                   pszSepFile:        PSZ;
  16968.                   pszPrProc:         PSZ;
  16969.                   pszParms:          PSZ;
  16970.                   pszComment:        PSZ;
  16971.                   fsStatus:          USHORT;
  16972.                   cJobs:             USHORT;
  16973.                   pszPrinters:       PSZ;
  16974.                   pszDriverName:     PSZ;
  16975.                   pDriverData:       PDRIVDATA;
  16976.                   pszRemoteComputerName: PSZ;
  16977.                   pszRemoteQueueName: PSZ;
  16978.             END;
  16979.             TYPE PPRQINFO6  = POINTER TO PRQINFO6;
  16980.             TYPE NPPRQINFO6 = POINTER TO PRQINFO6;
  16981.  
  16982.             (*
  16983.             * structure for DosPrintJobGetId
  16984.             *)
  16985.             TYPE PRIDINFO = RECORD    (* prjid *)
  16986.                   uJobId:         USHORT;
  16987.                   szComputerName: ARRAY [0..CNLEN] OF CHAR;
  16988.                   szQueueName:    ARRAY [0..QNLEN] OF CHAR;
  16989.                   pad_1:          CHAR;
  16990.             END;
  16991.             TYPE PPRIDINFO  = POINTER TO PRIDINFO;
  16992.             TYPE NPPRIDINFO = POINTER TO PRIDINFO;
  16993.  
  16994.             (*
  16995.             * structure for DosPrintDriverEnum
  16996.             *)
  16997.             TYPE PRDRIVINFO = RECORD   (* prdid *)
  16998.                   szDrivName: ARRAY [0..DRIV_NAME_SIZE+1+DRIV_DEVICENAME_SIZE] OF CHAR;
  16999.             END;
  17000.             TYPE PPRDRIVINFO  = POINTER TO PRDRIVINFO;
  17001.             TYPE NPPRDRIVINFO = POINTER TO PRDRIVINFO;
  17002.  
  17003.             (*
  17004.             * structure for DosPrintQProcessorEnum
  17005.             *)
  17006.             TYPE PRQPROCINFO = RECORD   (* prqp *)
  17007.                   szQProcName: ARRAY [0..QNLEN] OF CHAR;
  17008.             END;
  17009.             TYPE PPRQPROCINFO  = POINTER TO PRQPROCINFO;
  17010.             TYPE NPPRQPROCINFO = POINTER TO PRQPROCINFO;
  17011.  
  17012.             (*
  17013.             * structure for DosPrintPortEnum Level 0
  17014.             *)
  17015.             TYPE PRPORTINFO = RECORD   (* prpo *)
  17016.                   szPortName: ARRAY [0..PDLEN] OF CHAR;
  17017.             END;
  17018.             TYPE PPRPORTINFO  = POINTER TO PRPORTINFO;
  17019.             TYPE NPPRPORTINFO = POINTER TO PRPORTINFO;
  17020.  
  17021.             (*
  17022.             * structure for DosPrintPortEnum Level 1
  17023.             *)
  17024.             TYPE PRPORTINFO1 = RECORD   (* prpo1 *)
  17025.                   pszPortName :           PSZ;
  17026.                   pszPortDriverName :     PSZ;
  17027.                   pszPortDriverPathName : PSZ;
  17028.             END;
  17029.             TYPE PPRPORTINFO1  = POINTER TO PRPORTINFO1;
  17030.             TYPE NPPRPORTINFO1 = POINTER TO PRPORTINFO1;
  17031.  
  17032.  
  17033.             (*** Values for parmnum in DosPrintQSetInfo/SplSetQueue  *************)
  17034.             CONST PRQ_PRIORITY_PARMNUM         =   2;
  17035.             CONST PRQ_STARTTIME_PARMNUM        =   3;
  17036.             CONST PRQ_UNTILTIME_PARMNUM        =   4;
  17037.             CONST PRQ_SEPARATOR_PARMNUM        =   5;
  17038.             CONST PRQ_PROCESSOR_PARMNUM        =   6;
  17039.             CONST PRQ_DESTINATIONS_PARMNUM     =   7;
  17040.             CONST PRQ_PARMS_PARMNUM            =   8;
  17041.             CONST PRQ_COMMENT_PARMNUM          =   9;
  17042.             CONST PRQ_TYPE_PARMNUM             =  10;
  17043.             CONST PRQ_PRINTERS_PARMNUM         =  12;
  17044.             CONST PRQ_DRIVERNAME_PARMNUM       =  13;
  17045.             CONST PRQ_DRIVERDATA_PARMNUM       =  14;
  17046.             CONST PRQ_REMOTE_COMPUTER_PARMNUM  =  15;
  17047.             CONST PRQ_REMOTE_QUEUE_PARMNUM     =  16;
  17048.             CONST PRQ_MAXPARMNUM               =  16;
  17049.  
  17050.             (*** Print Queue Priority ********************************************)
  17051.             CONST PRQ_MAX_PRIORITY             =   1;       (* highest priority *)
  17052.             CONST PRQ_DEF_PRIORITY             =   5;
  17053.             CONST PRQ_MIN_PRIORITY             =   9;       (* lowest priority  *)
  17054.             CONST PRQ_NO_PRIORITY              =   0;
  17055.  
  17056.             (*** Print queue status bitmask and values for level 1 ***************)
  17057.             CONST PRQ_STATUS_MASK              =   3;
  17058.             CONST PRQ_ACTIVE                   =   0;
  17059.             CONST PRQ_PAUSED                   =   1;       (* queue is held    *)
  17060.             CONST PRQ_ERROR                    =   2;
  17061.             CONST PRQ_PENDING                  =   3;       (* pending deletion *)
  17062.  
  17063.             (*** Print queue status bits for level 3 *****************************)
  17064.             CONST PRQ3_PAUSED                 =  01H;      (* queue is held    *)
  17065.             CONST PRQ3_PENDING                =  02H;      (* pending deletion *)
  17066.  
  17067.             (*** Print queue type bits for level 3 *******************************)
  17068.             CONST PRQ3_TYPE_RAW       =  00001H; (* spools printer-specific data *)
  17069.             CONST PRQ3_TYPE_BYPASS    =  00002H; (* allow print while spooling   *)
  17070.             CONST PRQ3_TYPE_APPDEFAULT=  00004H; (* set for Application default Q*)
  17071.  
  17072.             (*** Values for parmnum in DosPrintJobSetInfo/SplSetJob **************)
  17073.             CONST PRJ_NOTIFYNAME_PARMNUM     =   3;
  17074.             CONST PRJ_DATATYPE_PARMNUM       =   4;
  17075.             CONST PRJ_PARMS_PARMNUM          =   5;
  17076.             CONST PRJ_POSITION_PARMNUM       =   6;
  17077.             CONST PRJ_JOBFILEINUSE_PARMNUM   =   7;
  17078.             CONST PRJ_COMMENT_PARMNUM        =  11;
  17079.             CONST PRJ_DOCUMENT_PARMNUM       =  12;
  17080.             CONST PRJ_STATUSCOMMENT_PARMNUM  =  13;
  17081.             CONST PRJ_PRIORITY_PARMNUM       =  14;
  17082.             CONST PRJ_PROCPARMS_PARMNUM      =  16;
  17083.             CONST PRJ_DRIVERDATA_PARMNUM     =  18;
  17084.             CONST PRJ_MAXPARMNUM             =  18;
  17085.  
  17086.             (*** Bitmap masks for status field of PRJINFO. ***********************)
  17087.             (* 2-7 bits also used in device status *)
  17088.             CONST PRJ_QSTATUS     = 00003H;    (* Bits 0,1  *)
  17089.             CONST PRJ_DEVSTATUS   = 00ffcH;    (* 2-11 bits *)
  17090.             CONST PRJ_COMPLETE    = 00004H;    (* Bit 2     *)
  17091.             CONST PRJ_INTERV      = 00008H;    (* Bit 3     *)
  17092.             CONST PRJ_ERROR       = 00010H;    (* Bit 4     *)
  17093.             CONST PRJ_DESTOFFLINE = 00020H;    (* Bit 5     *)
  17094.             CONST PRJ_DESTPAUSED  = 00040H;    (* Bit 6     *)
  17095.             CONST PRJ_NOTIFY      = 00080H;    (* Bit 7     *)
  17096.             CONST PRJ_DESTNOPAPER = 00100H;    (* Bit 8     *)
  17097.             CONST PRJ_DESTFORMCHG = 00200H;    (* BIT 9     *)
  17098.             CONST PRJ_DESTCRTCHG  = 00400H;    (* BIT 10    *)
  17099.             CONST PRJ_DESTPENCHG  = 00800H;    (* BIT 11    *)
  17100.             CONST PRJ_JOBFILEINUSE= 04000H;    (* Bit 14    *)
  17101.             CONST PRJ_DELETED     = 08000H;    (* Bit 15    *)
  17102.  
  17103.             (*** Values of PRJ_QSTATUS bits in fsStatus field of PRJINFO. ********)
  17104.             CONST PRJ_QS_QUEUED              =   0;
  17105.             CONST PRJ_QS_PAUSED              =   1;
  17106.             CONST PRJ_QS_SPOOLING            =   2;
  17107.             CONST PRJ_QS_PRINTING            =   3;
  17108.  
  17109.             (*** Print Job Priority **********************************************)
  17110.             CONST PRJ_MAX_PRIORITY           =  99;         (* lowest priority  *)
  17111.             CONST PRJ_MIN_PRIORITY           =   1;         (* highest priority *)
  17112.             CONST PRJ_NO_PRIORITY            =   0;
  17113.  
  17114.  
  17115.             (*** Bitmap masks for status field of PRDINFO. ***********************)
  17116.             CONST PRD_STATUS_MASK     =  00003H;    (* Bits 0,1 *)
  17117.             CONST PRD_DEVSTATUS       =  00ffcH;    (* 2-11 bits *)
  17118.  
  17119.             (*** Values of PRD_STATUS_MASK bits in fsStatus field of PRDINFO. ****)
  17120.             CONST PRD_ACTIVE           =      0;
  17121.             CONST PRD_PAUSED           =      1;
  17122.  
  17123.             (*** Control codes used in DosPrintDestControl/SplControlDevice ******)
  17124.             CONST PRD_DELETE           =         0;
  17125.             CONST PRD_PAUSE            =         1;
  17126.             CONST PRD_CONT             =         2;
  17127.             CONST PRD_RESTART          =         3;
  17128.  
  17129.             (*** Values for parmnum in DosPrintDestSetInfo/SplSetDevice **********)
  17130.             CONST PRD_LOGADDR_PARMNUM  =    3 ;
  17131.             CONST PRD_COMMENT_PARMNUM  =    7 ;
  17132.             CONST PRD_DRIVERS_PARMNUM  =    8 ;
  17133.             CONST PRD_TIMEOUT_PARMNUM  =    10;
  17134.  
  17135.             (*** structure for SplEnumPrinter ************************************)
  17136.             TYPE PRINTERINFO = RECORD    (* prtin *)
  17137.                   flType:                  ULONG;
  17138.                   pszComputerName:         PSZ;
  17139.                   pszPrintDestinationName: PSZ;
  17140.                   pszDescription:          PSZ;
  17141.                   pszLocalName:            PSZ;
  17142.             END;
  17143.             TYPE PPRINTERINFO = POINTER TO PRINTERINFO;
  17144.  
  17145.             (*** Flags for flType in  PRINTERINFO and SplEnumPrinter *************)
  17146.             CONST    SPL_PR_QUEUE         =   000000001H; (* include queues *)
  17147.             CONST    SPL_PR_DIRECT_DEVICE =   000000002H; (* unattached devices *)
  17148.             CONST    SPL_PR_QUEUED_DEVICE =   000000004H; (* queued devices *)
  17149.             CONST    SPL_PR_LOCAL_ONLY    =   000000100H; (* exclude remote queues *)
  17150.  
  17151.  
  17152.    <* END *>
  17153.  
  17154.       (*********************************************************************)
  17155.       (*                      FUNCTION PROTOTYPES                          *)
  17156.       (*                                                                   *)
  17157.       (* In the case of the DosPrintxxx, the API is presented by new name  *)
  17158.       (* with the old name in parenthesis.                                 *)
  17159.       (*********************************************************************)
  17160.  
  17161.       PROCEDURE [APIENTRY] SplQmOpen(pszToken: PCSZ;
  17162.                                                       lCount: LONG;
  17163.                                                       pqmdopData: PQMOPENDATA ): HSPL ;
  17164.  
  17165.       PROCEDURE [APIENTRY] SplQmStartDoc(hspl: HSPL;
  17166.                                                               pszDocName: PCSZ ): BOOL ;
  17167.       PROCEDURE [APIENTRY] SplQmWrite(hspl: HSPL;
  17168.                                                         lCount: LONG;
  17169.                                                         pData: PVOID ): BOOL ;
  17170.  
  17171.       PROCEDURE [APIENTRY] SplQmEndDoc(hspl: HSPL ): BOOL ;
  17172.  
  17173.       PROCEDURE [APIENTRY] SplQmClose(hspl: HSPL ): BOOL ;
  17174.  
  17175.       PROCEDURE [APIENTRY] SplQmAbort(hspl: HSPL ): BOOL ;
  17176.  
  17177.       PROCEDURE [APIENTRY] SplQmAbortDoc(hspl: HSPL ): BOOL ;
  17178.  
  17179.       PROCEDURE [APIENTRY] SplMessageBox(pszLogAddr: PCSZ;
  17180.                                                                   fErrInfo: ULONG;
  17181.                                                                   fErrData: ULONG;
  17182.                                                                   pszText: PCSZ;
  17183.                                                                   pszCaption: PCSZ;
  17184.                                                                   idWindow: ULONG;
  17185.                                                                   fStyle: ULONG ): ULONG  ;
  17186.  
  17187.    <* IF DEFINED (INCL_SPLFSE)  THEN *>
  17188.             (* types HFILE, PHFILE are defined in bsedos.h *)
  17189.             (*** Direct Device File System Interface **************************)
  17190.             PROCEDURE [APIENTRY] PrtOpen(pszDeviceName: PCSZ;
  17191.                                                             phDevice: PHFILE;
  17192.                                                             pActionTaken: PULONG;
  17193.                                                             cbFileSize: ULONG;
  17194.                                                             uFileAttr: ULONG;
  17195.                                                             openFlag: ULONG;
  17196.                                                             openMode: ULONG;
  17197.                                                             reserved: ULONG): ULONG  ;
  17198.  
  17199.             PROCEDURE [APIENTRY] PrtClose(hDevice: HFILE ): ULONG  ;
  17200.  
  17201.             PROCEDURE [APIENTRY] PrtWrite(hDevice: HFILE;
  17202.                                                               pchData: PVOID;
  17203.                                                               cbData: ULONG;
  17204.                                                               pcbWritten: PULONG ): ULONG  ;
  17205.  
  17206.             PROCEDURE [APIENTRY] PrtDevIOCtl(pData: PVOID;
  17207.                                                                     pParms: PVOID;
  17208.                                                                     uFunction: ULONG;
  17209.                                                                     uCategory: ULONG;
  17210.                                                                     hDevice: HFILE ): ULONG  ;
  17211.  
  17212.             PROCEDURE [APIENTRY] PrtAbort(hDevice: HFILE );
  17213.    <* END *>
  17214.  
  17215.       PROCEDURE [APIENTRY] SplStdOpen(hdc: HDC ): BOOL ;
  17216.  
  17217.       PROCEDURE [APIENTRY] SplStdClose(hdc: HDC ): BOOL ;
  17218.  
  17219.       PROCEDURE [APIENTRY] SplStdStart(hdc: HDC ): BOOL ;
  17220.  
  17221.       PROCEDURE [APIENTRY] SplStdStop(hdc: HDC ): HSTD ;
  17222.  
  17223.       PROCEDURE [APIENTRY] SplStdDelete(hMetaFile: HSTD ): BOOL ;
  17224.  
  17225.       PROCEDURE [APIENTRY] SplStdGetBits(hMetaFile: HSTD;
  17226.                                                               offData: LONG;
  17227.                                                               cbData: LONG;
  17228.                                                               pchData: PCH  ): BOOL ;
  17229.  
  17230.       PROCEDURE [APIENTRY] SplStdQueryLength(hMetaFile: HSTD ): LONG ;
  17231.  
  17232.  
  17233.       (*              SplCreateDevice(DosPrintDestAdd) *)
  17234.       PROCEDURE [APIENTRY] SplCreateDevice(pszComputerName: PCSZ;
  17235.                                                                       ulLevel: ULONG;
  17236.                                                                       pBuf: PVOID;
  17237.                                                                       cbBuf: ULONG ): SPLERR ;
  17238.  
  17239.       (*              SplControlDevice(DosPrintDestControl) *)
  17240.       PROCEDURE [APIENTRY] SplControlDevice(pszComputerName: PCSZ;
  17241.                                                                         pszPortName: PCSZ;
  17242.                                                                         ulControl: ULONG ): SPLERR ;
  17243.  
  17244.       (*              SplDeleteDevice(DosPrintDestDel) *)
  17245.       PROCEDURE [APIENTRY] SplDeleteDevice(pszComputerName: PCSZ;
  17246.                                                                       pszPrintDeviceName: PCSZ ): SPLERR ;
  17247.  
  17248.  
  17249.       (*              SplEnumDevice(DosPrintDestEnum) *)
  17250.       PROCEDURE [APIENTRY] SplEnumDevice(pszComputerName: PCSZ;
  17251.                                                                   ulLevel: ULONG;
  17252.                                                                   pBuf: PVOID;
  17253.                                                                   cbBuf: ULONG;
  17254.                                                                   pcReturned: PULONG;
  17255.                                                                   pcTotal: PULONG;
  17256.                                                                   pcbNeeded: PULONG;
  17257.                                                                   pReserved: PVOID  ): SPLERR ;
  17258.  
  17259.       (*              SplQueryDevice(DosPrintDestGetInfo) *)
  17260.       PROCEDURE [APIENTRY] SplQueryDevice(pszComputerName: PCSZ;
  17261.                                                                     pszPrintDeviceName: PCSZ;
  17262.                                                                     ulLevel: ULONG;
  17263.                                                                     pBuf: PVOID;
  17264.                                                                     cbBuf: ULONG;
  17265.                                                                     pcbNeeded: PULONG ): SPLERR ;
  17266.  
  17267.       (*              SplSetDevice(DosPrintDestSetInfo) *)
  17268.       PROCEDURE [APIENTRY] SplSetDevice(pszComputerName: PCSZ;
  17269.                                                                 pszPrintDeviceName: PCSZ;
  17270.                                                                 ulLevel: ULONG;
  17271.                                                                 pBuf: PVOID;
  17272.                                                                 cbBuf: ULONG;
  17273.                                                                 ulParmNum: ULONG ): SPLERR ;
  17274.  
  17275.       (*              SplReleaseJob(DosPrintJobContinue) *)
  17276.       PROCEDURE [APIENTRY] SplReleaseJob(pszComputerName: PCSZ;
  17277.                                                                   pszQueueName: PCSZ;
  17278.                                                                   ulJob: ULONG ): SPLERR ;
  17279.  
  17280.       (*              SplDeleteJob(DosPrintJobDel) *)
  17281.       PROCEDURE [APIENTRY] SplDeleteJob(pszComputerName: PCSZ;
  17282.                                                                 pszQueueName: PCSZ;
  17283.                                                                 ulJob: ULONG ): SPLERR ;
  17284.  
  17285.       (*              SplEnumJob(DosPrintJobEnum) *)
  17286.       PROCEDURE [APIENTRY] SplEnumJob(pszComputerName: PCSZ;
  17287.                                                             pszQueueName: PCSZ;
  17288.                                                             ulLevel: ULONG;
  17289.                                                             pBuf: PVOID;
  17290.                                                             cbBuf: ULONG;
  17291.                                                             pcReturned: PULONG;
  17292.                                                             pcTotal: PULONG;
  17293.                                                             pcbNeeded: PULONG;
  17294.                                                             pReserved: PVOID  ): SPLERR ;
  17295.  
  17296.       (*** See above for change to PRIDINFO datatype for this API. *********)
  17297.  
  17298.       (*              SplQueryJob(DosPrintJobGetInfo)  *)
  17299.       PROCEDURE [APIENTRY] SplQueryJob(pszComputerName: PCSZ;
  17300.                                                               pszQueueName: PCSZ;
  17301.                                                               ulJob: ULONG;
  17302.                                                               ulLevel: ULONG;
  17303.                                                               pBuf: PVOID;
  17304.                                                               cbBuf: ULONG;
  17305.                                                               pcbNeeded: PULONG ): SPLERR ;
  17306.  
  17307.       (*              SplHoldJob(DosPrintJobPause)   *)
  17308.       PROCEDURE [APIENTRY] SplHoldJob(pszComputerName: PCSZ;
  17309.                                                             pszQueueName: PCSZ;
  17310.                                                             ulJob: ULONG ): SPLERR ;
  17311.  
  17312.       (*              SplSetJob(DosPrintJobSetInfo)*)
  17313.       PROCEDURE [APIENTRY] SplSetJob(pszComputerName: PCSZ;
  17314.                                                           pszQueueName: PCSZ;
  17315.                                                           ulJob: ULONG;
  17316.                                                           ulLevel: ULONG;
  17317.                                                           pBuf: PVOID;
  17318.                                                           cbBuf: ULONG;
  17319.                                                           ulParmNum: ULONG ): SPLERR ;
  17320.  
  17321.       (*              SplCreateQueue(DosPrintQAdd) *)
  17322.       PROCEDURE [APIENTRY] SplCreateQueue(pszComputerName: PCSZ;
  17323.                                                                     ulLevel: ULONG;
  17324.                                                                     pBuf: PVOID;
  17325.                                                                     cbBuf: ULONG ): SPLERR ;
  17326.  
  17327.       (*              SplReleaseQueue(DosPrintQContinue) *)
  17328.       PROCEDURE [APIENTRY] SplReleaseQueue(pszComputerName: PCSZ;
  17329.                                                                       pszQueueName: PCSZ ): SPLERR ;
  17330.  
  17331.  
  17332.       (*              SplDeleteQueue(DosPrintQDel) *)
  17333.       PROCEDURE [APIENTRY] SplDeleteQueue(pszComputerName: PCSZ;
  17334.                                                                     pszQueueName: PCSZ ): SPLERR ;
  17335.  
  17336.  
  17337.       (*              SplEnumQueue(DosPrintQEnum) *)
  17338.       PROCEDURE [APIENTRY] SplEnumQueue(pszComputerName: PCSZ;
  17339.                                                                 ulLevel: ULONG;
  17340.                                                                 pBuf: PVOID;
  17341.                                                                 cbBuf: ULONG;
  17342.                                                                 pcReturned: PULONG;
  17343.                                                                 pcTotal: PULONG;
  17344.                                                                 pcbNeeded: PULONG;
  17345.                                                                 pReserved: PVOID  ): SPLERR ;
  17346.  
  17347.       (*               SplQueryQueue(DosPrintQGetInfo) *)
  17348.       PROCEDURE [APIENTRY]  SplQueryQueue(pszComputerName: PCSZ;
  17349.                                                                     pszQueueName: PCSZ;
  17350.                                                                     ulLevel: ULONG;
  17351.                                                                     pBuf: PVOID;
  17352.                                                                     cbBuf: ULONG;
  17353.                                                                     pcbNeeded: PULONG ): SPLERR ;
  17354.  
  17355.       (*              SplHoldQueue(DosPrintQPause) *)
  17356.       PROCEDURE [APIENTRY] SplHoldQueue(pszComputerName: PCSZ;
  17357.                                                                 pszQueueName: PCSZ ): SPLERR ;
  17358.  
  17359.  
  17360.       (*              SplPurgeQueue(DosPrintQPurge) *)
  17361.       PROCEDURE [APIENTRY] SplPurgeQueue(pszComputerName: PCSZ;
  17362.                                                                   pszQueueName: PCSZ ): SPLERR ;
  17363.  
  17364.  
  17365.       (*               SplSetQueue(DosPrintQSetInfo) *)
  17366.       PROCEDURE [APIENTRY]  SplSetQueue(pszComputerName: PCSZ;
  17367.                                                                 pszQueueName: PCSZ;
  17368.                                                                 ulLevel: ULONG;
  17369.                                                                 pBuf: PVOID;
  17370.                                                                 cbBuf: ULONG;
  17371.                                                                 ulParmNum: ULONG ): SPLERR ;
  17372.  
  17373.       (*               SplEnumDriver(DosPrintDriverEnum) *)
  17374.       PROCEDURE [APIENTRY]  SplEnumDriver(pszComputerName: PCSZ;
  17375.                                                                     ulLevel: ULONG;
  17376.                                                                     pBuf: PVOID;
  17377.                                                                     cbBuf: ULONG;
  17378.                                                                     pcReturned: PULONG;
  17379.                                                                     pcTotal: PULONG;
  17380.                                                                     pcbNeeded: PULONG;
  17381.                                                                     pReserved: PVOID  ): SPLERR ;
  17382.  
  17383.       (*               SplEnumPort(DosPrintPortEnum) *)
  17384.       PROCEDURE [APIENTRY]  SplEnumPort(pszComputerName: PCSZ;
  17385.                                                                 ulLevel: ULONG;
  17386.                                                                 pBuf: PVOID;
  17387.                                                                 cbBuf: ULONG;
  17388.                                                                 pcReturned: PULONG;
  17389.                                                                 pcTotal: PULONG;
  17390.                                                                 pcbNeeded: PULONG;
  17391.                                                                 pReserved: PVOID  ): SPLERR ;
  17392.  
  17393.       (*               SplEnumQueueProcessor(DosPrintQProcessorEnum) *)
  17394.       PROCEDURE [APIENTRY]  SplEnumQueueProcessor(pszComputerName: PCSZ;
  17395.                                                                                     ulLevel: ULONG;
  17396.                                                                                     pBuf: PVOID;
  17397.                                                                                     cbBuf: ULONG;
  17398.                                                                                     pcReturned: PULONG;
  17399.                                                                                     pcTotal: PULONG;
  17400.                                                                                     pcbNeeded: PULONG;
  17401.                                                                                     pReserved: PVOID  ): SPLERR ;
  17402.  
  17403.  
  17404.       PROCEDURE [APIENTRY] SplEnumPrinter(pszComputerName: PCSZ;
  17405.                                                                     uLevel: ULONG;
  17406.                                                                     flType: ULONG;
  17407.                                                                     pBuf: PVOID;
  17408.                                                                     cbbuf: ULONG;
  17409.                                                                     pcReturned: PULONG;
  17410.                                                                     pcTotal: PULONG;
  17411.                                                                     pcbNeeded: PULONG;
  17412.                                                                     pReserved: PVOID  ): SPLERR ;
  17413.  
  17414.       PROCEDURE [APIENTRY] SplCopyJob(pszSrcComputerName: PCSZ;
  17415.                                                             pszSrcQueueName: PCSZ;
  17416.                                                             ulSrcJob: ULONG;
  17417.                                                             pszTrgComputerName: PCSZ;
  17418.                                                             pszTrgQueueName: PCSZ;
  17419.                                                             pulTrgJob: PULONG): SPLERR ;
  17420.  
  17421.  
  17422.       CONST DosPrintDestControl    =   SplControlDevice   ;
  17423.       CONST DosPrintDestGetInfo    =   SplQueryDevice     ;
  17424.       CONST DosPrintDestEnum       =   SplEnumDevice      ;
  17425.       CONST DosPrintJobContinue    =   SplReleaseJob      ;
  17426.       CONST DosPrintJobPause       =   SplHoldJob         ;
  17427.       CONST DosPrintJobDel         =   SplDeleteJob       ;
  17428.       CONST DosPrintJobGetInfo     =   SplQueryJob        ;
  17429.       CONST DosPrintJobSetInfo     =   SplSetJob          ;
  17430.       CONST DosPrintJobEnum        =   SplEnumJob         ;
  17431.       CONST DosPrintQAdd           =   SplCreateQueue     ;
  17432.       CONST DosPrintQPause         =   SplHoldQueue       ;
  17433.       CONST DosPrintQContinue      =   SplReleaseQueue    ;
  17434.       CONST DosPrintQDel           =   SplDeleteQueue     ;
  17435.       CONST DosPrintQGetInfo       =   SplQueryQueue      ;
  17436.       CONST DosPrintQSetInfo       =   SplSetQueue        ;
  17437.       CONST DosPrintQEnum          =   SplEnumQueue       ;
  17438.       CONST DosPrintDestAdd        =   SplCreateDevice    ;
  17439.       CONST DosPrintDestSetInfo    =   SplSetDevice       ;
  17440.       CONST DosPrintDestDel        =   SplDeleteDevice    ;
  17441.       CONST DosPrintQPurge         =   SplPurgeQueue      ;
  17442.       CONST DosPrintDriverEnum     =   SplEnumDriver      ;
  17443.       CONST DosPrintQProcessorEnum =   SplEnumQueueProcessor;
  17444.       CONST DosPrintPortEnum       =   SplEnumPort        ;
  17445.  
  17446. <* END *>
  17447. (**************************** end of file **********************************)
  17448.  
  17449. (* ------------- End of file:  .\hm\pmspl.hm ------------- *)
  17450. <* END *>
  17451.  
  17452. <* IF DEFINED (INCL_PIC)  THEN *>
  17453.    
  17454. (* ------------- Include file: .\hm\pmpic.hm ------------- *)
  17455. (****************************** Module Header ******************************\
  17456. *
  17457. * Module Name: PMPIC.H
  17458. *
  17459. * OS/2 Presentation Manager Picture functions include file.
  17460. *
  17461. * Copyright (c) International Business Machines Corporation 1981, 1988-1992
  17462. *
  17463. * ===========================================================================
  17464. *
  17465. * Comments at the end of each typedef line give the name tags used in
  17466. * the assembler include version of this file.
  17467. *
  17468. * The assembler include version of this file excludes lines between XLATOFF
  17469. * and XLATON comments.
  17470. *
  17471. \***************************************************************************)
  17472.  
  17473. <* NEW PIC_INCLUDED + *>
  17474.  
  17475. (*** type of picture to print **********************************************)
  17476. CONST PIP_MF     =  1;
  17477. CONST PIP_PIF    =  2;
  17478.  
  17479. (*** type of conversion required *******************************************)
  17480. CONST PIC_PIFTOMET = 0;
  17481. CONST PIC_SSTOFONT = 2;
  17482.  
  17483. PROCEDURE [APIENTRY] PicPrint(hab: HAB;
  17484.                                               pszFilename: PCSZ;
  17485.                                               lType: LONG;
  17486.                                               pszParams: PCSZ ): BOOL;
  17487.  
  17488. PROCEDURE [APIENTRY] PicIchg(hab: HAB;
  17489.                                             pszFilename1: PCSZ;
  17490.                                             pszFilename2: PCSZ;
  17491.                                             lType: LONG ): BOOL;
  17492.  
  17493.  
  17494. (**************************** end of file **********************************)
  17495.  
  17496. (* ------------- End of file:  .\hm\pmpic.hm ------------- *)
  17497. <* END *>
  17498.  
  17499. <* IF DEFINED (INCL_ORDERS)  THEN *>
  17500.    
  17501. (* ------------- Include file: .\hm\pmord.hm ------------- *)
  17502. (****************************** Module Header ******************************\
  17503. *
  17504. * Module Name: PMORD.H
  17505. *
  17506. * OS/2 include file which defines all the structures and constants
  17507. * that can be used to build or interpret GOCA orders for the GPI
  17508. *
  17509. * Copyright (c) International Business Machines Corporation 1981, 1988-1992
  17510. *
  17511. * ===========================================================================
  17512. *
  17513. * The orders fall into 4 categories :-
  17514. *
  17515. * 1) 1-byte orders
  17516. *
  17517. * 2) 2-byte orders    - second byte contains the value
  17518. *
  17519. * 3) Long orders      - second byte gives the order length, subsequent bytes
  17520. *                       contain the values (up to 256 bytes long)
  17521. *
  17522. * 4) Very long orders - third and fourth bytes gives the order length,
  17523. *                       subsequent bytes contain the values (up to 64K long)
  17524. *
  17525. * ===========================================================================
  17526. *
  17527. * Comments at the end of each TYPE line give the name tags used in
  17528. * the assembler include version of this file.
  17529. *
  17530. * The assembler include version of this file excludes lines between XLATOFF
  17531. * and XLATON comments.
  17532. *
  17533. \***************************************************************************)
  17534.  
  17535.  
  17536. <* NEW ORD_INCLUDED + *>
  17537.  
  17538. --#pragma pack(1)      (* pack on byte boundary *)
  17539.  
  17540. (***************************************************************************\
  17541. *
  17542. * Miscellaneous structures used in this file
  17543. *
  17544. \***************************************************************************)
  17545.  
  17546. (* form of RECTL with shorts instead of longs *)
  17547. TYPE RECT1S = RECORD        (* rcs *)
  17548.       xLeft:   SHORT;
  17549.       yBottom: SHORT;
  17550.       xRight:  SHORT;
  17551.       yTop:    SHORT;
  17552. END;
  17553.  
  17554. (* form of POINTL with 1 byte offsets instead of longs *)
  17555. TYPE ODPOINT = RECORD         (* odpt *)
  17556.       dx: CHAR;
  17557.       dy: CHAR;
  17558. END;
  17559.  
  17560. (* form of SIZEL with shorts instead of longs *)
  17561. TYPE SIZES = RECORD           (* sizs *)
  17562.       cx: SHORT;
  17563.       cy: SHORT;
  17564. END;
  17565.  
  17566.  
  17567. (* unsigned two-byte swapped integer *)
  17568. TYPE SWPUSHORT = RECORD       (* swpus *)
  17569.       HiByte: UCHAR;
  17570.       LoByte: UCHAR;
  17571. END;
  17572.  
  17573. (***************************************************************************\
  17574. *
  17575. * 1-byte orders
  17576. *
  17577. \***************************************************************************)
  17578.  
  17579. (* macro to tell whether this is a 1-byte order *)
  17580. --CONST BYTE_ORDER(oc)   ((oc)==OCODE_GNOP1 || (oc)==OCODE_GESD)
  17581.  
  17582. (* 1-byte order codes *)
  17583. CONST OCODE_GNOP1  =  000H;            (* No-operation                *)
  17584. CONST OCODE_GESD   =  0FFH;            (* End symbol definition       *)
  17585.  
  17586. (***************************************************************************\
  17587. *
  17588. * 2-byte orders
  17589. *
  17590. \***************************************************************************)
  17591.  
  17592. (* definitions to help determine whether an order code is a 2-byte order *)
  17593. CONST OCODE2_1     =  080H;
  17594. CONST OCODE2_2     =  088H;
  17595.  
  17596. --CONST SHORT_ORDER(oc)  ((((oc)^OCODE2_1)&OCODE2_2)==OCODE2_2)
  17597.  
  17598. (* General 2-byte order structure *)
  17599. TYPE ORDER = RECORD           (* ord *)
  17600.       idCode:  UCHAR;
  17601.       uchData: UCHAR;
  17602. END;
  17603.  
  17604. (* 2-byte order codes *)
  17605. CONST OCODE_GBAR    = 068H;            (* Begin area                  *)
  17606. CONST OCODE_GCFIG   = 07DH;            (* Close figure                *)
  17607. CONST OCODE_GEEL    = 049H;            (* End element                 *)
  17608. CONST OCODE_GEPTH   = 07FH;            (* End path                    *)
  17609. CONST OCODE_GEPROL  = 03EH;            (* End prologue                *)
  17610. CONST OCODE_GPOP    = 03FH;            (* Pop                         *)
  17611. CONST OCODE_GSBMX   = 00DH;            (* Set background mix          *)
  17612. CONST OCODE_GPSBMX  = 04DH;            (* Push & set b/g mix          *)
  17613. CONST OCODE_GSCD    = 03AH;            (* Set char direction          *)
  17614. CONST OCODE_GPSCD   = 07AH;            (* Push & set char direction   *)
  17615. CONST OCODE_GSCR    = 039H;            (* Set char precision          *)
  17616. CONST OCODE_GPSCR   = 079H;            (* Push & set char precision   *)
  17617. CONST OCODE_GSCS    = 038H;            (* Set char set                *)
  17618. CONST OCODE_GPSCS   = 078H;            (* Push & set char set         *)
  17619. CONST OCODE_GSCOL   = 00AH;            (* Set color                   *)
  17620. CONST OCODE_GPSCOL  = 04AH;            (* Push & set color            *)
  17621. CONST OCODE_GSLE    = 01AH;            (* Set line end                *)
  17622. CONST OCODE_GPSLE   = 05AH;            (* Push & set line end         *)
  17623. CONST OCODE_GSLJ    = 01BH;            (* Set line join               *)
  17624. CONST OCODE_GPSLJ   = 05BH;            (* Push & set line join        *)
  17625. CONST OCODE_GSLT    = 018H;            (* Set line type               *)
  17626. CONST OCODE_GPSLT   = 058H;            (* Push & set line type        *)
  17627. CONST OCODE_GSLW    = 019H;            (* Set line width              *)
  17628. CONST OCODE_GPSLW   = 059H;            (* Push & set line width       *)
  17629. CONST OCODE_GSMP    = 03BH;            (* Set marker precision        *)
  17630. CONST OCODE_GPSMP   = 07BH;            (* Push & set marker precision *)
  17631. CONST OCODE_GSMS    = 03CH;            (* Set marker set              *)
  17632. CONST OCODE_GPSMS   = 07CH;            (* Push & set marker set       *)
  17633. CONST OCODE_GSMT    = 029H;            (* Set marker symbol           *)
  17634. CONST OCODE_GPSMT   = 069H;            (* Push & set marker symbol    *)
  17635. CONST OCODE_GSMX    = 00CH;            (* Set mix                     *)
  17636. CONST OCODE_GPSMX   = 04CH;            (* Push & set mix              *)
  17637. CONST OCODE_GSPS    = 008H;            (* Set pattern set             *)
  17638. CONST OCODE_GPSPS   = 048H;            (* Push & set pattern set      *)
  17639. CONST OCODE_GSPT    = 028H;            (* Set pattern symbol          *)
  17640. CONST OCODE_GPSPT   = 009H;            (* Push & set pattern symbol   *)
  17641.  
  17642. (* constants for 2-byte orders *)
  17643.  
  17644. (* Begin area *)
  17645. CONST GBAR_RESERVED  = 080H;
  17646. CONST GBAR_BOUNDARY  = 0C0H;
  17647. CONST GBAR_NOBOUNDARY= 080H;
  17648. CONST GBAR_WINDING   = 0A0H;
  17649. CONST GBAR_ALTERNATE = 080H;
  17650.  
  17651. (* Set Character Precision *)
  17652. CONST GSCR_PRECISION = 00FH;
  17653.  
  17654. (***************************************************************************\
  17655. *
  17656. * Long orders
  17657. *
  17658. \***************************************************************************)
  17659.  
  17660. (* definitions to help determine whether an order code is a long order *)
  17661.  
  17662. CONST OCODE_VLONG   = 0FEH;
  17663.  
  17664. --CONST LONG_ORDER(oc) (!((oc)==OCODE_VLONG||BYTE_ORDER(oc)||SHORT_ORDER(oc)))
  17665.  
  17666. (* long order structure *)
  17667. CONST LORDER_ML = 253;
  17668. TYPE LORDER = RECORD          (* lord *)
  17669.       idCode:       UCHAR;
  17670.       uchLength:    UCHAR;
  17671.       uchData:      ARRAY [0..LORDER_ML-1] OF UCHAR;
  17672. END;
  17673.  
  17674. (* Long orders for which the length of data is normally zero *)
  17675. CONST OCODE_GEAR   =  060H;            (* End Area                    *)
  17676. CONST OCODE_GEIMG  =  093H;            (* End Image                   *)
  17677.  
  17678. (* Long orders for which the data is contained in a type already defined *)
  17679.  
  17680. (* Character String *)
  17681. CONST OCODE_GCCHST =  083H;            (* char string at curr posn    *)
  17682. CONST GCCHST_MC    =  255;              (* Max len of string in bytes  *)
  17683.  
  17684. CONST OCODE_GCHST  =  0C3H;            (* char string at given pos    *)
  17685. CONST GCHST_SMC    =  251;              (* Max len of string (S)       *)
  17686. CONST GCHST_LMC    =  247;              (* Max len of string (L)       *)
  17687.  
  17688. (* Character String Move *)
  17689. CONST OCODE_GCCHSTM=  0B1H;            (* char string move at c.p.    *)
  17690. CONST GCCHSTM_MC   =  255;              (* Max len of string in byte   *)
  17691.  
  17692. CONST OCODE_GCHSTM =  0F1H;            (* char string move at g.p.    *)
  17693. CONST GCHSTM_SMC   =  251;              (* Max len of string (S)       *)
  17694. CONST GCHSTM_LMC   =  247;              (* Max len of string (L)       *)
  17695.  
  17696. (* Comment *)
  17697. CONST OCODE_GCOMT  =  001H;            (* Comment                     *)
  17698. CONST GCOMT_ML     =  255;              (* Maximum len of comment data *)
  17699.  
  17700. (* Image *)
  17701. CONST OCODE_GIMD   =  092H;            (* Image data                  *)
  17702. CONST GIMD_ML      =  255;              (* Maximum len of image data   *)
  17703.  
  17704. (* Full Arc *)
  17705. CONST OCODE_GCFARC =  087H;            (* full arc at current posn    *)
  17706. CONST OCODE_GFARC  =  0C7H;            (* full arc at given posn      *)
  17707.  
  17708. (* Label *)
  17709. CONST OCODE_GLABL  =  0D3H;            (* Label                       *)
  17710.  
  17711. (* Set Current Position *)
  17712. CONST OCODE_GSCP   =  021H;            (* Set current position        *)
  17713. CONST OCODE_GPSCP  =  061H;            (* Push and set curr posn      *)
  17714.  
  17715. (* Bezier spline *)
  17716. CONST OCODE_GCBEZ  =  0A5H;            (* Bezier spline at curr pos   *)
  17717. CONST GCBEZ_SMB    =  21;               (* Max number of splines (S)   *)
  17718. CONST GCBEZ_LMB    =  10;               (* Max number of splines (L)   *)
  17719.  
  17720. CONST OCODE_GBEZ   =  0E5H;            (* Bezier spline at given pos  *)
  17721. CONST GBEZ_SMB     =  20;               (* Max number of splines (S)   *)
  17722. CONST GBEZ_LMB     =  10;               (* Max number of splines (L)   *)
  17723.  
  17724. (* Fillet *)
  17725. CONST OCODE_GCFLT  =  085H;            (* fillet at current posn      *)
  17726. CONST GCFLT_SMP    =  63;               (* Max number of points (S)    *)
  17727. CONST GCFLT_LMP    =  31;               (* Max number of points (L)    *)
  17728.  
  17729. CONST OCODE_GFLT   =  0C5H;            (* fillet at given position    *)
  17730. CONST GFLT_SMP     =  62;               (* Max number of points (S)    *)
  17731. CONST GFLT_LMP     =  30;               (* Max number of points (L)    *)
  17732.  
  17733. (* Polyline *)
  17734. CONST OCODE_GCLINE =  081H;            (* polyline at current posn    *)
  17735. CONST GCLINE_SMP   =  63;               (* Max number of points (S)    *)
  17736. CONST GCLINE_LMP   =  31;               (* Max number of points (L)    *)
  17737.  
  17738. CONST OCODE_GLINE  =  0C1H;            (* polyline at given posn      *)
  17739. CONST GLINE_SMP    =  62;               (* Max number of points (S)    *)
  17740. CONST GLINE_LMP    =  30;               (* Max number of points (L)    *)
  17741.  
  17742. (* Polymarker *)
  17743. CONST OCODE_GCMRK  =  082H;            (* marker at current posn      *)
  17744. CONST GCMRK_SMP    =  63;               (* Max number of points (S)    *)
  17745. CONST GCMRK_LMP    =  31;               (* Max number of points (L)    *)
  17746.  
  17747. CONST OCODE_GMRK   =  0C2H;            (* marker at given posn        *)
  17748. CONST GMRK_SMP     =  62;               (* Max number of points (S)    *)
  17749. CONST GMRK_LMP     =  30;               (* Max number of points (L)    *)
  17750.  
  17751. (* Relative Line *)
  17752. CONST OCODE_GCRLINE=  0A1H;            (* Relative line at curr pos   *)
  17753. CONST GCRLINE_MP   =  127;              (* Max number of points        *)
  17754.  
  17755. CONST OCODE_GRLINE =  0E1H;            (* Relative line at givn pos   *)
  17756. CONST GRLINE_SMP   =  125;              (* Max number of points (S)    *)
  17757. CONST GRLINE_LMP   =  123;              (* Max number of points (L)    *)
  17758.  
  17759. (* Set Background Color *)
  17760. CONST OCODE_GSBCOL  = 025H;            (* Set background color        *)
  17761. CONST OCODE_GPSBCOL = 065H;            (* Push and set b/g color      *)
  17762.  
  17763. (* Set Extended Color *)
  17764. CONST OCODE_GSECOL  = 026H;            (* Set extended color          *)
  17765. CONST OCODE_GPSECOL = 066H;            (* Push and set ext color      *)
  17766.  
  17767. (* Extended Color values *)
  17768. CONST SECOL_DEFAULT0=  00000H;
  17769. CONST SECOL_DEFAULT1=  0FF00H;
  17770. CONST SECOL_NEUTRAL =  0FF07H;
  17771. CONST SECOL_RESET   =  0FF08H;
  17772.  
  17773. (* Set Character Angle *)
  17774. CONST OCODE_GSCA    = 034H;            (* Set character angle         *)
  17775. CONST OCODE_GPSCA   = 074H;            (* Push and set char angle     *)
  17776.  
  17777. (* Set Character Shear *)
  17778. CONST OCODE_GSCH    = 035H;            (* Set character shear         *)
  17779. CONST OCODE_GPSCH   = 075H;            (* Push and set char shear     *)
  17780.  
  17781. (* Set Fractional Line Width *)
  17782. CONST OCODE_GSFLW   = 011H;            (* Set fractional line width   *)
  17783. CONST OCODE_GPSFLW  = 051H;            (* Push and set frac l width   *)
  17784.  
  17785. (* Set Pick Identifier *)
  17786. CONST OCODE_GSPIK   = 043H;            (* Set pick identifier         *)
  17787. CONST OCODE_GPSPIK  = 023H;            (* Push and set pick id        *)
  17788.  
  17789.  
  17790. (* Long Orders for which a structure can be defined for the data *)
  17791.  
  17792. (* Arc *)
  17793. CONST OCODE_GCARC   = 086H;            (* Arc at Current Position     *)
  17794. CONST OCODE_GARC    = 0C6H;            (* Arc at Given Position       *)
  17795.  
  17796. TYPE ORDERS_GCARC = RECORD    (* osgcarc *)
  17797.       ptInter: POINTS;
  17798.       ptEnd:   POINTS;
  17799. END;
  17800.  
  17801. TYPE ORDERL_GCARC = RECORD     (* olgcarc *)
  17802.       ptInter: POINTL;
  17803.       ptEnd:   POINTL;
  17804. END;
  17805.  
  17806. (* Begin Element *)
  17807. CONST OCODE_GBEL    = 0D2H;            (* Begin Element               *)
  17808.  
  17809. CONST GBEL_DL       = 251;
  17810. TYPE ORDER_GBEL = RECORD      (* ogbel *)
  17811.       lElementType: LONG;
  17812.       achDesc:      ARRAY [0..GBEL_DL-1] OF CHAR;
  17813. END;
  17814.  
  17815. (* Begin Image *)
  17816. CONST OCODE_GCBIMG  = 091H;            (* Begin Image at curr posn    *)
  17817. CONST OCODE_GBIMG   = 0D1H;            (* Begin Image at given posn   *)
  17818.  
  17819. TYPE ORDER_GCBIMG = RECORD    (* ogbimg *)
  17820.       uchFormat:     UCHAR;
  17821.       uchReserved:   UCHAR;
  17822.       cx:            SWPUSHORT;
  17823.       cy:            SWPUSHORT;
  17824. END;
  17825.  
  17826. (* Begin Path *)
  17827. CONST OCODE_GBPTH   = 0D0H;            (* Begin Path                  *)
  17828.  
  17829. TYPE ORDER_GBPTH = RECORD     (* ogbpth *)
  17830.       usReserved: USHORT;
  17831.       idPath:     LONG;
  17832. END;
  17833.  
  17834. (* Box *)
  17835. CONST OCODE_GCBOX   = 080H;            (* Box at current position     *)
  17836. CONST OCODE_GBOX    = 0C0H;            (* Box at given position       *)
  17837.  
  17838. TYPE ORDERS_GCBOX = RECORD    (* osgcbox *)
  17839.       fbFlags:      UCHAR;
  17840.       uchReserved:  UCHAR;
  17841.       ptCorner:     POINTS;
  17842.       hAxis:        SHORT;
  17843.       vAxis:        SHORT;
  17844. END;
  17845.  
  17846. TYPE ORDERL_GCBOX = RECORD     (* olgcbox *)
  17847.       fbFlags:       UCHAR;
  17848.       uchReserved:   UCHAR;
  17849.       ptCorner:      POINTL;
  17850.       hAxis:         LONG;
  17851.       vAxis:         LONG;
  17852. END;
  17853.  
  17854. CONST GCBOX_FILL    = 040H;
  17855. CONST GCBOX_BOUNDARY= 020H;
  17856.  
  17857. (* Call Segment *)
  17858. CONST OCODE_GCALLS  = 007H;            (* call segment                *)
  17859.  
  17860. TYPE ORDER_GCALLS = RECORD    (* ogcalls *)
  17861.       sReserved: USHORT;
  17862.       idSegment: LONG;
  17863. END;
  17864.  
  17865. (* Fill Path *)
  17866. CONST OCODE_GFPTH   = 0D7H;            (* Fill path                   *)
  17867. TYPE ORDER_GFPTH = RECORD    (* ogfpth *)
  17868.       fbFlags:      UCHAR;
  17869.       uchReserved:  UCHAR;
  17870.       idPath:       LONG;
  17871. END;
  17872.  
  17873. CONST GFPTH_ALTERNATE= 000H;
  17874. CONST GFPTH_WINDING  = 040H;
  17875. CONST GFPTH_MODIFY   = 020H;
  17876.  
  17877. (* Outline Path *)
  17878. CONST OCODE_GOPTH   = 0D4H;            (* Outline Path                *)
  17879. TYPE ORDER_GOPTH = RECORD    (* ogopth *)
  17880.       fbFlags:     UCHAR;
  17881.       uchReserved: UCHAR;
  17882.       idPath:      LONG;
  17883. END;
  17884.  
  17885. (* Modify Path *)
  17886. CONST OCODE_GMPTH= 0D8H;               (* modify path                 *)
  17887.  
  17888. TYPE ORDER_GMPTH = RECORD     (* ogmpth *)
  17889.       uchMode:      UCHAR;
  17890.       uchReserved:  UCHAR;
  17891.       idPath:       LONG;
  17892. END;
  17893.  
  17894. CONST GMPTH_STROKE   = 006H;
  17895.  
  17896. (* Partial Arc *)
  17897. CONST OCODE_GCPARC  = 0A3H;            (* Partial arc at curr posn    *)
  17898. CONST OCODE_GPARC   = 0E3H;            (* Partial arc at given posn   *)
  17899.  
  17900. TYPE ORDERS_GCPARC = RECORD   (* osgcparc *)
  17901.       ptCenter:         POINTS;
  17902.       ufx88Multiplier:  FIXED88;
  17903.       usStartAngle:     LONG;
  17904.       usSweepAngle:     LONG;
  17905. END;
  17906.  
  17907. TYPE ORDERL_GCPARC = RECORD   (* olgcparc *)
  17908.       ptCenter:       POINTL;
  17909.       ufxMultiplier:  FIXED;
  17910.       usStartAngle:   LONG;
  17911.       usSweepAngle:   LONG;
  17912. END;
  17913.  
  17914. (* Set Clip Path *)
  17915. CONST OCODE_GSCPTH  = 0B4H;            (* Set clip path               *)
  17916.  
  17917. TYPE ORDER_GSCPTH = RECORD    (* ogscpth *)
  17918.       fbFlags:       UCHAR;
  17919.       uchReserved:   UCHAR;
  17920.       idPath:        LONG;
  17921. END;
  17922.  
  17923. CONST GSCPTH_ALTERNATE= 000H;
  17924. CONST GSCPTH_WINDING  = 040H;
  17925. CONST GSCPTH_RESET    = 000H;
  17926. CONST GSCPTH_INTERSECT= 020H;
  17927.  
  17928. (* Set Arc Parameters *)
  17929. CONST OCODE_GSAP    = 022H;            (* Set arc parameters          *)
  17930. CONST OCODE_GPSAP   = 062H;            (* Push and set arc params     *)
  17931.  
  17932. TYPE ORDERS_GSAP = RECORD     (* osgsap *)
  17933.       p: SHORT;
  17934.       q: SHORT;
  17935.       r: SHORT;
  17936.       s: SHORT;
  17937. END;
  17938.  
  17939. TYPE ORDERL_GSAP = RECORD      (* olgsap *)
  17940.       p: LONG;
  17941.       q: LONG;
  17942.       r: LONG;
  17943.       s: LONG;
  17944. END;
  17945.  
  17946. (* Set Background Indexed Color *)
  17947. CONST OCODE_GSBICOL = 0A7H;            (* Set b/g indexed color       *)
  17948. CONST OCODE_GPSBICOL= 0E7H;            (* Push and set b/g ind color  *)
  17949. CONST OCODE_GSICOL  = 0A6H;            (* Set indexed color           *)
  17950. CONST OCODE_GPSICOL = 0E6H;            (* Push and set indexd color   *)
  17951.  
  17952. TYPE ORDER_GSBICOL = RECORD   (* ogbicol *)
  17953.       fbFlags:    UCHAR;
  17954.       auchColor:  ARRAY [0..2] OF UCHAR;
  17955. END;
  17956.  
  17957. CONST SICOL_SPECIFY = 000H;
  17958. CONST SICOL_SPECIAL = 040H;
  17959. CONST SICOL_DEFAULT = 080H;
  17960. CONST SICOL_BLACK   = 1;
  17961. CONST SICOL_WHITE   = 2;
  17962. CONST SICOL_ONES    = 4;
  17963. CONST SICOL_ZEROES  = 5;
  17964.  
  17965. (* Set Character Cell *)
  17966. CONST OCODE_GSCC    = 033H;            (* Set character cell          *)
  17967. CONST OCODE_GPSCC   = 003H;            (* Push and set char cell      *)
  17968.  
  17969. TYPE ORDERS_GSCC = RECORD     (* osgscc *)
  17970.       cxInt:        SHORT;
  17971.       cyInt:        SHORT;
  17972.       cxFract:      USHORT;
  17973.       cyFract:      USHORT;
  17974.       fbFlags:      UCHAR;
  17975.       uchReserved:  UCHAR;
  17976. END;
  17977.  
  17978. TYPE ORDERL_GSCC = RECORD     (* olgscc *)
  17979.       cxInt:        LONG;
  17980.       cyInt:        LONG;
  17981.       cxFract:      USHORT;
  17982.       cyFract:      USHORT;
  17983.       fbFlags:      UCHAR;
  17984.       uchReserved:  UCHAR;
  17985. END;
  17986.  
  17987. CONST GSCC_ZERODEF  = 000H;
  17988. CONST GSCC_ZEROZERO = 080H;
  17989.  
  17990. (* Set Marker Cell *)
  17991. CONST OCODE_GSMC    = 037H;            (* Set marker cell             *)
  17992. CONST OCODE_GPSMC   = 077H;            (* Push and set marker cell    *)
  17993.  
  17994. TYPE ORDERS_GSMC = RECORD     (* osgsmc *)
  17995.       cx:           SHORT;
  17996.       cy:           SHORT;
  17997.       fbFlags:      UCHAR;
  17998.       uchReserved:  UCHAR;
  17999. END;
  18000.  
  18001. TYPE ORDERL_GSMC = RECORD     (* olgsmc *)
  18002.       cx:           LONG;
  18003.       cy:           LONG;
  18004.       fbFlags:      UCHAR;
  18005.       uchReserved:  UCHAR;
  18006. END;
  18007.  
  18008. CONST GSMC_ZERODEF  = 000H;
  18009. CONST GSMC_ZEROZERO = 080H;
  18010.  
  18011. (* Set Pattern Reference Point *)
  18012. CONST OCODE_GSPRP   = 0A0H;            (* Set pattern ref point       *)
  18013. CONST OCODE_GPSPRP  = 0E0H;            (* Push and set patt ref pt    *)
  18014.  
  18015. TYPE ORDERS_GSPRP = RECORD     (* osgsprp *)
  18016.       fbFlags:     UCHAR;
  18017.       uchReserved: UCHAR;
  18018.       ptPos:       POINTS;
  18019. END;
  18020. TYPE ORDERL_GSPRP = RECORD    (* olgsprp *)
  18021.       fbFlags:     UCHAR;
  18022.       uchReserved: UCHAR;
  18023.       ptPos:       POINTL;
  18024. END;
  18025.  
  18026. CONST GSPRP_DEFAULT = 080H;
  18027. CONST GSPRP_SPECIFY = 000H;
  18028.  
  18029.  
  18030. (* Set Individual Attribute *)
  18031. CONST OCODE_GSIA    = 014H;            (* Set individual attribute    *)
  18032. CONST OCODE_GPSIA   = 054H;            (* Push and set ind attr       *)
  18033.  
  18034. CONST GSIA_VL  = 3;
  18035. TYPE ORDER_GSIA = RECORD      (* ogsia *)
  18036.       uchAttrType: UCHAR;
  18037.       uchPrimType: UCHAR;
  18038.       fbFlags:     UCHAR;
  18039.       auchValue:   ARRAY [0..GSIA_VL-1] OF UCHAR;
  18040. END;
  18041.  
  18042. CONST GSIA_COLOR    = 001H;
  18043. CONST GSIA_BCOLOR   = 002H;
  18044. CONST GSIA_MIX      = 003H;
  18045. CONST GSIA_BMIX     = 004H;
  18046. CONST GSIA_LINE     = 001H;
  18047. CONST GSIA_CHAR     = 002H;
  18048. CONST GSIA_MARKER   = 003H;
  18049. CONST GSIA_PATTERN  = 004H;
  18050. CONST GSIA_IMAGE    = 005H;
  18051. CONST GSIA_SPECIFY  = 000H;
  18052. CONST GSIA_SPECIAL  = 040H;
  18053. CONST GSIA_DEFAULT  = 080H;
  18054. CONST GSIA_BLACK    = 1;
  18055. CONST GSIA_WHITE    = 2;
  18056. CONST GSIA_ONES     = 4;
  18057. CONST GSIA_ZEROES   = 5;
  18058.  
  18059.  
  18060. (* Set Model /Viewing Transform *)
  18061. CONST OCODE_GSTM    = 024H;            (* Set model transform         *)
  18062. CONST OCODE_GPSTM   = 064H;            (* Push and set model tfm      *)
  18063.  
  18064. CONST OCODE_GSTV    = 031H;            (* Set Viewing Transform       *)
  18065.  
  18066. CONST GSTM_ML       = 16;
  18067. TYPE ORDERS_GSTM = RECORD      (* osgstm *)
  18068.       uchReserved:  UCHAR;
  18069.       fbFlags:      UCHAR;
  18070.       fsMask:       USHORT;
  18071.       asMatrix:     ARRAY [0..GSTM_ML-1] OF SHORT;
  18072. END;
  18073.  
  18074. TYPE ORDERL_GSTM = RECORD      (* olgstm *)
  18075.       uchReserved: UCHAR;
  18076.       fbFlags:     UCHAR;
  18077.       fsMask:      USHORT;
  18078.       alMatrix:    ARRAY [0..GSTM_ML-1] OF LONG;
  18079. END;
  18080.  
  18081. CONST GSTM_M11    = 08000H;
  18082. CONST GSTM_M12    = 04000H;
  18083. CONST GSTM_M13    = 02000H;
  18084. CONST GSTM_M14    = 01000H;
  18085. CONST GSTM_M21    = 00800H;
  18086. CONST GSTM_M22    = 00400H;
  18087. CONST GSTM_M23    = 00200H;
  18088. CONST GSTM_M24    = 00100H;
  18089. CONST GSTM_M31    = 00080H;
  18090. CONST GSTM_M32    = 00040H;
  18091. CONST GSTM_M33    = 00020H;
  18092. CONST GSTM_M34    = 00010H;
  18093. CONST GSTM_M41    = 00008H;
  18094. CONST GSTM_M42    = 00004H;
  18095. CONST GSTM_M43    = 00002H;
  18096. CONST GSTM_M44    = 00001H;
  18097.  
  18098. CONST GSTM_UNITY    = 000H;
  18099. CONST GSTM_AFTER    = 001H;
  18100. CONST GSTM_BEFORE   = 002H;
  18101. CONST GSTM_OVERWRITE= 003H;
  18102.  
  18103. CONST GSTV_OVERWRITE= 000H;
  18104. CONST GSTV_AFTER    = 004H;
  18105.  
  18106. (* Set Segment Boundary, Viewing Window *)
  18107.  
  18108. CONST OCODE_GSSB    = 032H;            (* Set segment boundary        *)
  18109. CONST OCODE_GSVW    = 027H;            (* Set viewing window          *)
  18110. CONST OCODE_GPSVW   = 067H;            (* Push and set view window    *)
  18111.  
  18112. CONST GSSB_ML       = 4;
  18113. TYPE ORDERS_GSSB = RECORD     (* osgssb *)
  18114.       fbFlags:   UCHAR;
  18115.       fbMask:    UCHAR;
  18116.       alMatrix:  ARRAY [0..GSSB_ML-1] OF SHORT;
  18117. END;
  18118.  
  18119. TYPE ORDERL_GSSB = RECORD     (* olgssb *)
  18120.       fbFLags:  UCHAR;
  18121.       fbMask:   UCHAR;
  18122.       alMatrix: ARRAY [0..GSSB_ML-1] OF LONG;
  18123. END;
  18124.  
  18125. CONST GSSB_XLEFT    = 020H;
  18126. CONST GSSB_XRIGHT   = 010H;
  18127. CONST GSSB_YBOTTOM  = 008H;
  18128. CONST GSSB_YTOP     = 004H;
  18129.  
  18130. CONST GSVW_INTERSECT= 000H;
  18131. CONST GSVW_REPLACE  = 080H;
  18132.  
  18133. (* Set Segment Characteristics *)
  18134. CONST OCODE_GSGCH   = 004H;            (* Set segment characteristics *)
  18135.  
  18136. CONST GSGCH_ML      = 254;
  18137. TYPE ORDER_GSGCH = RECORD     (* ogsgch *)
  18138.       uchIdent: UCHAR;
  18139.       auchData: ARRAY [0..GSGCH_ML-1] OF UCHAR;
  18140. END;
  18141.  
  18142. (* Set Stroke Line Width *)
  18143. CONST OCODE_GSSLW   = 015H;            (* Set stroke line width       *)
  18144. CONST OCODE_GPSSLW  = 055H;            (* Push and set strk l width   *)
  18145.  
  18146. TYPE ORDERS_GSSLW = RECORD    (* osgsslw *)
  18147.       fbFlags:     UCHAR;
  18148.       uchReserved: UCHAR;
  18149.       LineWidth:   SHORT;
  18150. END;
  18151.  
  18152. TYPE ORDERL_GSSLW = RECORD    (* olgsslw *)
  18153.       fbFlags:       UCHAR;
  18154.       uchReserved:   UCHAR;
  18155.       LineWidth:     LONG;
  18156. END;
  18157.  
  18158. CONST GSSLW_DEFAULT = 080H;
  18159. CONST GSSLW_SPECIFY = 000H;
  18160.  
  18161. (* Sharp Fillet at Current Position *)
  18162. CONST OCODE_GCSFLT  = 0A4H;            (* Sharp fillet at curr pos    *)
  18163. CONST OCODE_GSFLT   = 0E4H;            (* Sharp fillet at given pos   *)
  18164.  
  18165. CONST GCSFLT_SMF    = 21;
  18166. CONST GSFLT_SMF     = 20;
  18167.  
  18168. TYPE ORDERS_GCSFLT = RECORD   (* osgcsflt *)
  18169.       apt:          ARRAY [0..2*GCSFLT_SMF-1] OF POINTS;
  18170.       afxSharpness: ARRAY [0..GCSFLT_SMF-1]   OF FIXED;
  18171. END;
  18172.  
  18173. CONST GCSFLT_LMF    = 12;
  18174. CONST GSFLT_LMF     = 12;
  18175.  
  18176. TYPE ORDERL_GCSFLT = RECORD    (* olgcsflt *)
  18177.       apt:           ARRAY [0..2*GCSFLT_SMF-1] OF POINTL;
  18178.       afxSharpness:  ARRAY [0..GCSFLT_SMF-1]   OF FIXED;
  18179. END;
  18180.  
  18181. (* Bitblt *)
  18182. CONST OCODE_GBBLT   = 0D6H;            (* Bitblt                      *)
  18183.  
  18184. TYPE ORDERS_GBBLT = RECORD     (* osgbblt *)
  18185.       fsFlags:       USHORT;
  18186.       usMix:         USHORT;
  18187.       hbmSrc:        HBITMAP;
  18188.       lOptions:      LONG;
  18189.       rcsTargetRect: RECT1S;
  18190.       rclSourceRect: RECTL;
  18191. END;
  18192.  
  18193. TYPE ORDERL_GBBLT = RECORD     (* olgbblt *)
  18194.       fsFlags:       USHORT;
  18195.       usMix:         USHORT;
  18196.       hbmSrc:        HBITMAP;
  18197.       lOptions:      LONG;
  18198.       rclTargetRect: RECTL;
  18199.       rclSourceRect: RECTL;
  18200. END;
  18201.  
  18202. (* Char & break extra *)
  18203. CONST OCODE_GSCE    = 017H;            (* Set char extra                *)
  18204. CONST OCODE_GPSCE   = 057H;            (* Push and set char extra       *)
  18205. CONST OCODE_GSCBE   = 005H;            (* Set char break extra          *)
  18206. CONST OCODE_GPSCBE  = 045H;            (* Push and set char break extra *)
  18207.  
  18208. TYPE ORDER_GSCBE = RECORD      (* osgsce *)
  18209.       fbFlags:      UCHAR;
  18210.       uchReserved:  UCHAR;
  18211.       ufxextra:     FIXED;
  18212. END;
  18213. CONST ORDER_GPSCE  = ORDER_GSCBE;
  18214. CONST ORDER_GSCE   = ORDER_GSCBE;
  18215. CONST ORDER_GPSCBE = ORDER_GSCBE;
  18216.  
  18217. (* Escape *)
  18218. CONST OCODE_GESCP   = 0D5H;            (* Escape                      *)
  18219.  
  18220. (*
  18221. * type describes type of escape order, identifier gives the escape
  18222. * order if the type is registered
  18223. *)
  18224. CONST GESCP_ML      = 253;
  18225. TYPE ORDER_GESCP = RECORD     (* ogescp *)
  18226.       uchType:  UCHAR;
  18227.       uchIdent: UCHAR;
  18228.       auchData: ARRAY [0..GESCP_ML-1] OF UCHAR;    (* Escape data                 *)
  18229. END;
  18230.  
  18231. CONST GESCP_REG     = 080H;            (* identifier is registered    *)
  18232.  
  18233. (* Escape (Bitblt) *)
  18234. CONST GEBB_REGID    = 002H;            (* uchIdent - Bitblt           *)
  18235.  
  18236. CONST ETYPE_GEBB    = 0800200D5H;
  18237. CONST GEBB_LMP      = 29;
  18238. TYPE ORDERL_GEBB = RECORD      (* olgebb *)
  18239.       fbFlags:      UCHAR;
  18240.       usMix:        USHORT;
  18241.       cPoints:      UCHAR;
  18242.       hbmSrc:       HBITMAP;
  18243.       lReserved:    LONG;
  18244.       lOptions:     LONG;
  18245.       aptPoints:    ARRAY [0..GEBB_LMP-1] OF POINTL;
  18246. END;
  18247.  
  18248. (* Escape (Set Pel) *)
  18249. CONST GEPEL_REGID   = 001H;            (* uchIdent - Set Pel          *)
  18250.  
  18251. CONST ETYPE_GEPEL        = 0800100D5H;
  18252.  
  18253. (* Escape (DrawBits) *)
  18254. CONST GEDB_REGID    = 004H;          (* uchIdent - DrawBits *)
  18255.  
  18256. CONST ETYPE_GEDB         = 0800400D5H;
  18257.  
  18258. TYPE ORDERL_GEDB = RECORD     (* olgedb *)
  18259.       fsFlags:       USHORT;
  18260.       usMix:         USHORT;
  18261.       pBits:         PVOID;
  18262.       pbmi:          PBITMAPINFO2;
  18263.       lOptions:      LONG;
  18264.       rclTargetRect: RECTL;
  18265.       rclSourceRect: RECTL;
  18266. END;
  18267.  
  18268.  
  18269. (* Escape (FloodFill) *)
  18270. CONST GEFF_REGID    = 003H;        (* uchIdent - FloodFill *)
  18271.  
  18272. CONST ETYPE_GEFF         = 0800300D5H;
  18273.  
  18274. TYPE ORDERL_GEFF = RECORD      (* olgeff *)
  18275.       fsFlags:   UCHAR;
  18276.       auchColor: ARRAY [0..2] OF UCHAR;
  18277. END;
  18278.  
  18279.  
  18280. (* Element Types for attribute bundles *)
  18281. CONST ETYPE_LINEBUNDLE   = 00000FD01H;
  18282. CONST ETYPE_CHARBUNDLE   = 00000FD02H;
  18283. CONST ETYPE_MARKERBUNDLE = 00000FD03H;
  18284. CONST ETYPE_AREABUNDLE   = 00000FD04H;
  18285. CONST ETYPE_IMAGEBUNDLE  = 00000FD05H;
  18286.  
  18287.  
  18288. (***************************************************************************\
  18289. *
  18290. * Very long orders
  18291. *
  18292. \***************************************************************************)
  18293.  
  18294. (* macro to tell whether this is a very long order *)
  18295. --CONST VLONG_ORDER(oc)  ((oc)==OCODE_VLONG)
  18296.  
  18297. (* Very long order structure *)
  18298. CONST VORDER_ML= 65531;
  18299. TYPE VORDER = RECORD          (* vord *)
  18300.       idCode:       UCHAR;
  18301.       uchQualifier: UCHAR;
  18302.       uchLength:    SWPUSHORT;
  18303.       uchData:      ARRAY [0..VORDER_ML-1] OF UCHAR;
  18304. END;
  18305.  
  18306. (* Character String Extended *)
  18307. CONST OCODEQ_GCCHSTE = 0B0H;           (* Qualifier - current posn    *)
  18308. CONST OCODEQ_GCHSTE  = 0F0H;           (* Qualifier - given position  *)
  18309.  
  18310. CONST ETYPE_GCCHSTE      = 00000FEB0H;
  18311. CONST ETYPE_GCHSTE       = 00000FEF0H;
  18312.  
  18313. TYPE ORDERS_GCCHSTE = RECORD    (* osgcchste *)
  18314.       fbFlags:     UCHAR;
  18315.       uchReserved: UCHAR;
  18316.       ptRect:      ARRAY [0..1] OF POINTS;
  18317.       cchString:   SWPUSHORT;
  18318.       achString:   ARRAY [0..0] OF CHAR;
  18319.       adx:         ARRAY [0..0] OF SHORT;
  18320. END;
  18321.  
  18322. TYPE ORDERL_GCCHSTE = RECORD   (* olgcchste *)
  18323.       fbFlags:         UCHAR;
  18324.       uchReserved:     UCHAR;
  18325.       ptRect:          ARRAY [0..1] OF POINTL;
  18326.       cchString:       SWPUSHORT;
  18327.       achString:       ARRAY [0..0] OF CHAR;
  18328.       adx:             ARRAY [0..0] OF LONG;
  18329. END;
  18330.  
  18331. CONST GCCHSTE_DRAWRECT     = 080H;
  18332. CONST GCCHSTE_NORECT       = 000H;
  18333. CONST GCCHSTE_CLIP         = 040H;
  18334. CONST GCCHSTE_NOCLIP       = 000H;
  18335. CONST GCCHSTE_DEEMPHASIZE  = 020H;          (* Reserved *)
  18336. CONST GCCHSTE_NODEEMPHASIZE= 000H;
  18337. CONST GCCHSTE_LEAVEPOS     = 010H;
  18338. CONST GCCHSTE_MOVEPOS      = 000H;
  18339. CONST GCCHSTE_UNDERSCORE   = 008H;
  18340. CONST GCCHSTE_NOUNDERSCORE = 000H;
  18341. CONST GCCHSTE_STRIKEOUT    = 004H;
  18342. CONST GCCHSTE_NOSTRIKEOUT  = 000H;
  18343.  
  18344. (* Extended Escape *)
  18345. CONST OCODEQ_GEESCP  = 0D5H;         (* Qualifier - extended escape *)
  18346.  
  18347. CONST GEESCP_ML     = 65533;
  18348. TYPE ORDER_GEESCP = RECORD    (* ogeescp *)
  18349.       uchType:  UCHAR;
  18350.       uchIdent: UCHAR;
  18351.       auchData: ARRAY [0..GEESCP_ML-1] OF UCHAR;
  18352. END;
  18353.  
  18354.  
  18355. (**************************** end of file **********************************)
  18356.  
  18357. (* ------------- End of file:  .\hm\pmord.hm ------------- *)
  18358. <* END *>
  18359.  
  18360. <* IF DEFINED (INCL_FONTFILEFORMAT)  THEN *>
  18361.    
  18362. (* ------------- Include file: .\hm\pmfont.hm ------------- *)
  18363. (****************************** Module Header ******************************\
  18364. *
  18365. * Module Name: PMFONT.H
  18366. *
  18367. * OS/2 Presentation Manager type declarations for Fonts.
  18368. *
  18369. * Copyright (c) International Business Machines Corporation 1981, 1988-1992
  18370. *
  18371. * ===========================================================================
  18372. *
  18373. * Comments at the end of each TYPE line give the name tags used in
  18374. * the assembler include version of this file.
  18375. *
  18376. *
  18377. \***************************************************************************)
  18378.  
  18379. <* IF NOT DEFINED (PMFONT_INCLUDED)  THEN *>
  18380.       (* XLATON *)
  18381.    <* NEW PMFONT_INCLUDED + *>
  18382.  
  18383.       TYPE FOCAMETRICS = RECORD    (* foca *)
  18384.             ulIdentity:           ULONG;
  18385.             ulSize:               ULONG;
  18386.             szFamilyname:         ARRAY [0..31] OF CHAR;
  18387.             szFacename:           ARRAY [0..31] OF CHAR;
  18388.             usRegistryId:         SHORT;
  18389.             usCodePage:           SHORT;
  18390.             yEmHeight:            SHORT;
  18391.             yXHeight:             SHORT;
  18392.             yMaxAscender:         SHORT;
  18393.             yMaxDescender:        SHORT;
  18394.             yLowerCaseAscent:     SHORT;
  18395.             yLowerCaseDescent:    SHORT;
  18396.             yInternalLeading:     SHORT;
  18397.             yExternalLeading:     SHORT;
  18398.             xAveCharWidth:        SHORT;
  18399.             xMaxCharInc:          SHORT;
  18400.             xEmInc:               SHORT;
  18401.             yMaxBaselineExt:      SHORT;
  18402.             sCharSlope:           SHORT;
  18403.             sInlineDir:           SHORT;
  18404.             sCharRot:             SHORT;
  18405.             usWeightClass:        USHORT;
  18406.             usWidthClass:         USHORT;
  18407.             xDeviceRes:           SHORT;
  18408.             yDeviceRes:           SHORT;
  18409.             usFirstChar:          SHORT;
  18410.             usLastChar:           SHORT;
  18411.             usDefaultChar:        SHORT;
  18412.             usBreakChar:          SHORT;
  18413.             usNominalPointSize:   SHORT;
  18414.             usMinimumPointSize:   SHORT;
  18415.             usMaximumPointSize:   SHORT;
  18416.             fsTypeFlags:          SHORT;
  18417.             fsDefn:               SHORT;
  18418.             fsSelectionFlags:     SHORT;
  18419.             fsCapabilities:       SHORT;
  18420.             ySubscriptXSize:      SHORT;
  18421.             ySubscriptYSize:      SHORT;
  18422.             ySubscriptXOffset:    SHORT;
  18423.             ySubscriptYOffset:    SHORT;
  18424.             ySuperscriptXSize:    SHORT;
  18425.             ySuperscriptYSize:    SHORT;
  18426.             ySuperscriptXOffset:  SHORT;
  18427.             ySuperscriptYOffset:  SHORT;
  18428.             yUnderscoreSize:      SHORT;
  18429.             yUnderscorePosition:  SHORT;
  18430.             yStrikeoutSize:       SHORT;
  18431.             yStrikeoutPosition:   SHORT;
  18432.             usKerningPairs:       SHORT;
  18433.             sFamilyClass:         SHORT;
  18434.             pszDeviceNameOffset:  PSZ;
  18435.       END;
  18436.       TYPE PFOCAMETRICS = POINTER TO FOCAMETRICS;
  18437.  
  18438.       TYPE FONTFILEMETRICS = RECORD   (* ffm *)
  18439.             ulIdentity:          ULONG;
  18440.             ulSize:              ULONG;
  18441.             szFamilyname:        ARRAY [0..31] OF CHAR;
  18442.             szFacename:          ARRAY [0..31] OF CHAR;
  18443.             usRegistryId:        SHORT;
  18444.             usCodePage:          SHORT;
  18445.             yEmHeight:           SHORT;
  18446.             yXHeight:            SHORT;
  18447.             yMaxAscender:        SHORT;
  18448.             yMaxDescender:       SHORT;
  18449.             yLowerCaseAscent:    SHORT;
  18450.             yLowerCaseDescent:   SHORT;
  18451.             yInternalLeading:    SHORT;
  18452.             yExternalLeading:    SHORT;
  18453.             xAveCharWidth:       SHORT;
  18454.             xMaxCharInc:         SHORT;
  18455.             xEmInc:              SHORT;
  18456.             yMaxBaselineExt:     SHORT;
  18457.             sCharSlope:          SHORT;
  18458.             sInlineDir:          SHORT;
  18459.             sCharRot:            SHORT;
  18460.             usWeightClass:       USHORT;
  18461.             usWidthClass:        USHORT;
  18462.             xDeviceRes:          SHORT;
  18463.             yDeviceRes:          SHORT;
  18464.             usFirstChar:         SHORT;
  18465.             usLastChar:          SHORT;
  18466.             usDefaultChar:       SHORT;
  18467.             usBreakChar:         SHORT;
  18468.             usNominalPointSize:  SHORT;
  18469.             usMinimumPointSize:  SHORT;
  18470.             usMaximumPointSize:  SHORT;
  18471.             fsTypeFlags:         SHORT;
  18472.             fsDefn:              SHORT;
  18473.             fsSelectionFlags:    SHORT;
  18474.             fsCapabilities:      SHORT;
  18475.             ySubscriptXSize:     SHORT;
  18476.             ySubscriptYSize:     SHORT;
  18477.             ySubscriptXOffset:   SHORT;
  18478.             ySubscriptYOffset:   SHORT;
  18479.             ySuperscriptXSize:   SHORT;
  18480.             ySuperscriptYSize:   SHORT;
  18481.             ySuperscriptXOffset: SHORT;
  18482.             ySuperscriptYOffset: SHORT;
  18483.             yUnderscoreSize:     SHORT;
  18484.             yUnderscorePosition: SHORT;
  18485.             yStrikeoutSize:      SHORT;
  18486.             yStrikeoutPosition:  SHORT;
  18487.             usKerningPairs:      SHORT;
  18488.             sFamilyClass:        SHORT;
  18489.             ulReserved:          ULONG;
  18490.             panose:              PANOSE;
  18491.       END;
  18492.       TYPE PFONTFILEMETRICS = POINTER TO FONTFILEMETRICS;
  18493.  
  18494.       TYPE FONTDEFINITIONHEADER = RECORD   (* fdh *)
  18495.             ulIdentity:      ULONG;
  18496.             ulSize:          ULONG;
  18497.             fsFontdef:       SHORT;
  18498.             fsChardef:       SHORT;
  18499.             usCellSize:      SHORT;
  18500.             xCellWidth:      SHORT;
  18501.             yCellHeight:     SHORT;
  18502.             xCellIncrement:  SHORT;
  18503.             xCellA:          SHORT;
  18504.             xCellB:          SHORT;
  18505.             xCellC:          SHORT;
  18506.             pCellBaseOffset: SHORT;
  18507.       END;
  18508.       TYPE PFONTDEFINITIONHEADER = POINTER TO FONTDEFINITIONHEADER;
  18509.  
  18510.       CONST FONTDEFFONT1   =  00047H;  (* set width, height, inc. & base offset *)
  18511.       CONST FONTDEFFONT2   =  00042H;  (* set height & base offset            *)
  18512.       CONST FONTDEFFONT3   =  00042H;  (* set height & base offset            *)
  18513.       CONST FONTDEFCHAR1   =  00081H;  (* set char offset and width           *)
  18514.       CONST FONTDEFCHAR2   =  00081H;  (* set char offset and width           *)
  18515.       CONST FONTDEFCHAR3   =  000b8H;  (* set char offset, A, B, and C space  *)
  18516.       CONST SPACE_UNDEF    =  08000H;  (* space undefined = take default      *)
  18517.  
  18518.       TYPE FONTSIGNATURE = RECORD   (* fs *)
  18519.             ulIdentity:     ULONG;
  18520.             ulSize:         ULONG;
  18521.             achSignature:   ARRAY [0..11] OF CHAR;
  18522.       END;
  18523.       TYPE PFONTSIGNATURE = POINTER TO FONTSIGNATURE;
  18524.  
  18525.       TYPE ADDITIONALMETRICS = RECORD   (* am *)
  18526.             ulIdentity: ULONG;
  18527.             ulSize:     ULONG;
  18528.             panose:     PANOSE;
  18529.       END;
  18530.       TYPE PADDITIONALMETRICS = POINTER TO ADDITIONALMETRICS;
  18531.  
  18532.       TYPE FOCAFONT = RECORD   (* ff *)
  18533.             fsSignature:   FONTSIGNATURE;
  18534.             fmMetrics:     FOCAMETRICS;
  18535.             fdDefinitions: FONTDEFINITIONHEADER;
  18536.       END;
  18537.       TYPE PFOCAFONT = POINTER TO FOCAFONT;
  18538.  
  18539.       CONST FONT_SIGNATURE        =  0fffffffeH; (* Identity header start    *)
  18540.       CONST FONT_METRICS          =  000000001H; (* Identity metrics         *)
  18541.       CONST FONT_DEFINITION       =  000000002H; (* Identity definition      *)
  18542.       CONST FONT_KERNPAIRS        =  000000003H; (* Identity Kern Pairs      *)
  18543.       CONST FONT_ADDITIONALMETRICS=  000000004H; (* Identity Additional Metrics *)
  18544.       CONST FONT_ENDRECORD        =  0ffffffffH; (* Identity record end      *)
  18545.  
  18546.       (* Options for QueryFonts *)
  18547.  
  18548.       CONST QUERY_PUBLIC_FONTS    =  00001H;
  18549.       CONST QUERY_PRIVATE_FONTS   =  00002H;
  18550.  
  18551.       CONST CDEF_GENERIC          =  00001H;
  18552.       CONST CDEF_BOLD             =  00002H;
  18553.       CONST CDEF_ITALIC           =  00004H;
  18554.       CONST CDEF_UNDERSCORE       =  00008H;
  18555.       CONST CDEF_STRIKEOUT        =  00010H;
  18556.       CONST CDEF_OUTLINE          =  00020H;
  18557.  
  18558.       (* XLATOFF *)
  18559. <* END *>
  18560. (* XLATON *)
  18561.  
  18562.  
  18563. (**************************** end of file **********************************)
  18564.  
  18565. (* ------------- End of file:  .\hm\pmfont.hm ------------- *)
  18566. <* END *>
  18567.  
  18568.  
  18569. (* ------------- Include file: .\hm\pmstddlg.hm ------------- *)
  18570. (****************************** Module Header ******************************\
  18571. *
  18572. * Module Name: PMSTDDLG.H
  18573. *
  18574. * OS/2 Presentation Manager CUA controls and dialogs declarations
  18575. *
  18576. * Copyright (c) International Business Machines Corporation 1981, 1988-1992
  18577. *
  18578. * ===========================================================================
  18579. *
  18580. * The folowing symbols are used in this file for conditional sections.
  18581. *
  18582. *   CONST:                To include:
  18583. *
  18584. *   INCL_WINSTDDLGS         include all dialogs/controls
  18585. *   INCL_WINSTDBOOK         book control class
  18586. *   INCL_WINSTDCNR          container control class
  18587. *   INCL_WINSTDDRAG         standard drag dll
  18588. *   INCL_WINSTDFILE         standard file dialog
  18589. *   INCL_WINSTDFONT         standard font dialog
  18590. *   INCL_WINSTDSLIDER       slider control class
  18591. *   INCL_WINSTDSPIN         spin button control class
  18592. *   INCL_WINSTDVALSET       value set control class
  18593. *
  18594. * ===========================================================================
  18595. *
  18596. * Comments at the end of each TYPE line give the name tags used in
  18597. * the assembler include version of this file.
  18598. *
  18599. * The assembler include version of this file excludes lines between NOINC
  18600. * and INC comments.
  18601. *
  18602. \***************************************************************************)
  18603.  
  18604.  
  18605. <* NEW STDDLG_INCLUDED + *>
  18606.  
  18607.  
  18608. <* IF DEFINED (INCL_WINSTDDLGS)  THEN *>
  18609.    <* NEW INCL_WINSTDFILE + *>
  18610.    <* NEW INCL_WINSTDFONT + *>
  18611.    <* NEW INCL_WINSTDSPIN + *>
  18612.    <* NEW INCL_WINSTDDRAG + *>
  18613.    <* NEW INCL_WINSTDCNR + *>
  18614.    <* NEW INCL_WINSTDSLIDER + *>
  18615.    <* NEW INCL_WINSTDVALSET + *>
  18616.    <* NEW INCL_WINSTDBOOK + *>
  18617. <* END *>
  18618.  
  18619. <* IF (DEFINED (INCL_WINSTDCNR) OR DEFINED (INCL_WINSTDVALSET) ) THEN *>
  18620.    <* NEW INCL_WINSTDDRAG + *>
  18621. <* END *>
  18622.  
  18623. <* IF (NOT DEFINED (INCL_WINSTDFILE_INCLUDED) OR NOT DEFINED (INCL_WINSTDFILE) ) THEN *>
  18624.    <* NEW INCL_WINSTDFILE_INCLUDED + *>
  18625.       (**********************************************************************)
  18626.       (*                                                                    *)
  18627.       (*                     F I L E    D I A L O G                         *)
  18628.       (*                                                                    *)
  18629.       (**********************************************************************)
  18630.  
  18631.       (*--------------------------------------------------------------------*)
  18632.       (* File Dialog Invocation Flag Definitions.                           *)
  18633.       (*--------------------------------------------------------------------*)
  18634.       CONST FDS_CENTER          = 000000001H;(* Center within owner wnd   *)
  18635.       CONST FDS_CUSTOM          = 000000002H;(* Use custom user template  *)
  18636.       CONST FDS_FILTERUNION     = 000000004H;(* Use union of filters      *)
  18637.       CONST FDS_HELPBUTTON      = 000000008H;(* Display Help button       *)
  18638.       CONST FDS_APPLYBUTTON     = 000000010H;(* Display Apply button      *)
  18639.       CONST FDS_PRELOAD_VOLINFO = 000000020H;(* Preload volume info       *)
  18640.       CONST FDS_MODELESS        = 000000040H;(* Make dialog modeless      *)
  18641.       CONST FDS_INCLUDE_EAS     = 000000080H;(* Always load EA info       *)
  18642.       CONST FDS_OPEN_DIALOG     = 000000100H;(* Select Open dialog        *)
  18643.       CONST FDS_SAVEAS_DIALOG   = 000000200H;(* Select SaveAs dialog      *)
  18644.       CONST FDS_MULTIPLESEL     = 000000400H;(* Enable multiple selection *)
  18645.       CONST FDS_ENABLEFILELB    = 000000800H;(* Enable SaveAs Listbox     *)
  18646.  
  18647.       (*--------------------------------------------------------------------*)
  18648.       (* File Dialog Selection returned attribute                           *)
  18649.       (*--------------------------------------------------------------------*)
  18650.       CONST  FDS_EFSELECTION   = 0;
  18651.       CONST  FDS_LBSELECTION   = 1;
  18652.  
  18653.       (*--------------------------------------------------------------------*)
  18654.       (* Error Return Codes from dialog (self defining)                     *)
  18655.       (*--------------------------------------------------------------------*)
  18656.       CONST  FDS_SUCCESSFUL                       =     0;
  18657.       CONST  FDS_ERR_DEALLOCATE_MEMORY            =     1;
  18658.       CONST  FDS_ERR_FILTER_TRUNC                 =     2;
  18659.       CONST  FDS_ERR_INVALID_DIALOG               =     3;
  18660.       CONST  FDS_ERR_INVALID_DRIVE                =     4;
  18661.       CONST  FDS_ERR_INVALID_FILTER               =     5;
  18662.       CONST  FDS_ERR_INVALID_PATHFILE             =     6;
  18663.       CONST  FDS_ERR_OUT_OF_MEMORY                =     7;
  18664.       CONST  FDS_ERR_PATH_TOO_LONG                =     8;
  18665.       CONST  FDS_ERR_TOO_MANY_FILE_TYPES          =     9;
  18666.       CONST  FDS_ERR_INVALID_VERSION              =     10;
  18667.       CONST  FDS_ERR_INVALID_CUSTOM_HANDLE        =     11;
  18668.       CONST  FDS_ERR_DIALOG_LOAD_ERROR            =     12;
  18669.       CONST  FDS_ERR_DRIVE_ERROR                  =     13;
  18670.  
  18671.       (*--------------------------------------------------------------------*)
  18672.       (* File Dialog Messages.                                              *)
  18673.       (*--------------------------------------------------------------------*)
  18674.       CONST FDM_FILTER     =  WM_USER+40;  (* mp1 = PSZ pszFileName         *)
  18675.       (*                   =                   mp2 = PSZ EA .TYPE value      *)
  18676.       (*                                      mr  = TRUE -> keep file.      *)
  18677.       CONST FDM_VALIDATE   =  WM_USER+41;  (* mp1 = PSZ pszPathName         *)
  18678.       (*                                      mp2 = USHORT Field name id    *)
  18679.       (*                                      mr  = TRUE -> Valid name      *)
  18680.       CONST FDM_ERROR      =  WM_USER+42;  (* mp1 = USHORT Error message id *)
  18681.       (*                                      mp2 = NULL   reserved         *)
  18682.       (*                                      mr  = NULL -> Use default msg *)
  18683.  
  18684.       (*--------------------------------------------------------------------*)
  18685.       (* Define the type that is a pointer to an array of pointers.         *)
  18686.       (*     Hence: pointer to an array of Z string pointers.               *)
  18687.       (*--------------------------------------------------------------------*)
  18688.       TYPE  APSZ  = ARRAY [0..0] OF PSZ;
  18689.       TYPE  PAPSZ = POINTER TO APSZ;          (* papsz *)
  18690.  
  18691.       (*--------------------------------------------------------------------*)
  18692.       (* File Dialog application data structure.                            *)
  18693.       (*--------------------------------------------------------------------*)
  18694.       TYPE FILEDLG = RECORD    (* fildlg *)
  18695.             cbSize:           ULONG    ;   (* Size of FILEDLG structure.         *)
  18696.             fl:               ULONG    ;   (* FDS_ flags. Alter behavior of dlg. *)
  18697.             ulUser:           ULONG    ;   (* User defined field.                *)
  18698.             lReturn:          LONG     ;   (* Result code from dialog dismissal. *)
  18699.             lSRC:             LONG     ;   (* System return code.                *)
  18700.             pszTitle:         PSZ      ;   (* String to display in title bar.    *)
  18701.             pszOKButton:      PSZ      ;   (* String to display in OK button.    *)
  18702.             pfnDlgProc:       PFNWP    ;   (* Entry point to custom dialog proc. *)
  18703.             pszIType:         PSZ      ;   (* Pointer to string containing       *)
  18704.             (*                                initial EA type filter. Type       *)
  18705.             (*                                does not have to exist in list.    *)
  18706.             papszITypeList:   PAPSZ    ;   (* Pointer to table of pointers that  *)
  18707.             (*                                point to null terminated Type      *)
  18708.             (*                                strings. End of table is marked    *)
  18709.             (*                                by a NULL pointer.                 *)
  18710.             pszIDrive:        PSZ      ;   (* Pointer to string containing       *)
  18711.             (*                                initial drive. Drive does not      *)
  18712.             (*                                have to exist in drive list.       *)
  18713.             papszIDriveList:  PAPSZ    ;   (* Pointer to table of pointers that  *)
  18714.             (*                                point to null terminated Drive     *)
  18715.             (*                                strings. End of table is marked    *)
  18716.             (*                                by a NULL pointer.                 *)
  18717.             hMod:             HMODULE  ;   (* Custom File Dialog template.       *)
  18718.                                                 (* ____________ CCHMAXPATH=260 defined in bsedos.h *)
  18719.             szFullFile:       ARRAY [0..CCHMAXPATH-1] OF CHAR; (*     *)
  18720.             (*                                Initial or selected fully          *)
  18721.             (*                                qualified path and file.           *)
  18722.             papszFQFilename:  PAPSZ    ;   (* Pointer to table of pointers that  *)
  18723.             (*                                point to null terminated FQFname   *)
  18724.             (*                                strings. End of table is marked    *)
  18725.             (*                                by a NULL pointer.                 *)
  18726.             ulFQFCount:       ULONG    ;   (* Number of files selected           *)
  18727.             usDlgId:          USHORT   ;   (* Custom dialog id.                  *)
  18728.             x:                SHORT    ;   (* X coordinate of the dialog         *)
  18729.             y:                SHORT    ;   (* Y coordinate of the dialog         *)
  18730.             sEAType:          SHORT    ;   (* Selected file's EA Type.           *)
  18731.       END;
  18732.       TYPE PFILEDLG = POINTER TO FILEDLG;
  18733.  
  18734.       (*--------------------------------------------------------------------*)
  18735.       (* File Dialog - Function Prototype                                   *)
  18736.       (*--------------------------------------------------------------------*)
  18737.  
  18738.       PROCEDURE [APIENTRY] WinFileDlg(hwndP: HWND;
  18739.                                                               hwndO: HWND;
  18740.                                                               pfild: PFILEDLG ): HWND    ;
  18741.  
  18742.       PROCEDURE [APIENTRY] WinDefFileDlgProc(hwnd: HWND;
  18743.                                                                             msg: ULONG;
  18744.                                                                             mp1: MPARAM;
  18745.                                                                             mp2: MPARAM ): MRESULT ;
  18746.  
  18747.       PROCEDURE [APIENTRY] WinFreeFileDlgList(papszFQFilename: PAPSZ): BOOL;
  18748.  
  18749.       (*--------------------------------------------------------------------*)
  18750.       (* File Dialog - dialog and control ids                               *)
  18751.       (*--------------------------------------------------------------------*)
  18752.       CONST   DID_FILE_DIALOG           =  256;
  18753.       CONST   DID_FILENAME_TXT          =  257;
  18754.       CONST   DID_FILENAME_ED           =  258;
  18755.       CONST   DID_DRIVE_TXT             =  259;
  18756.       CONST   DID_DRIVE_CB              =  260;
  18757.       CONST   DID_FILTER_TXT            =  261;
  18758.       CONST   DID_FILTER_CB             =  262;
  18759.       CONST   DID_DIRECTORY_TXT         =  263;
  18760.       CONST   DID_DIRECTORY_LB          =  264;
  18761.       CONST   DID_FILES_TXT             =  265;
  18762.       CONST   DID_FILES_LB              =  266;
  18763.       CONST   DID_HELP_PB               =  267;
  18764.       CONST   DID_APPLY_PB              =  268;
  18765.       CONST   DID_OK_PB                 =  DID_OK;
  18766.       CONST   DID_CANCEL_PB             =  DID_CANCEL;
  18767.  
  18768.       CONST   IDS_FILE_ALL_FILES_SELECTOR   =   1000;
  18769.       CONST   IDS_FILE_BACK_CUR_PATH        =   1001;
  18770.       CONST   IDS_FILE_BACK_PREV_PATH       =   1002;
  18771.       CONST   IDS_FILE_BACK_SLASH           =   1003;
  18772.       CONST   IDS_FILE_BASE_FILTER          =   1004;
  18773.       CONST   IDS_FILE_BLANK                =   1005;
  18774.       CONST   IDS_FILE_COLON                =   1006;
  18775.       CONST   IDS_FILE_DOT                  =   1007;
  18776.       CONST   IDS_FILE_DRIVE_LETTERS        =   1008;
  18777.       CONST   IDS_FILE_FWD_CUR_PATH         =   1009;
  18778.       CONST   IDS_FILE_FWD_PREV_PATH        =   1010;
  18779.       CONST   IDS_FILE_FORWARD_SLASH        =   1011;
  18780.       CONST   IDS_FILE_PARENT_DIR           =   1012;
  18781.       CONST   IDS_FILE_Q_MARK               =   1013;
  18782.       CONST   IDS_FILE_SPLAT                =   1014;
  18783.       CONST   IDS_FILE_SPLAT_DOT            =   1015;
  18784.       CONST   IDS_FILE_SAVEAS_TITLE         =   1016;
  18785.       CONST   IDS_FILE_SAVEAS_FILTER_TXT    =   1017;
  18786.       CONST   IDS_FILE_SAVEAS_FILENM_TXT    =   1018;
  18787.       CONST   IDS_FILE_DUMMY_FILE_NAME      =   1019;
  18788.       CONST   IDS_FILE_DUMMY_FILE_EXT       =   1020;
  18789.       CONST   IDS_FILE_DUMMY_DRIVE          =   1021;
  18790.       CONST   IDS_FILE_DUMMY_ROOT_DIR       =   1022;
  18791.       CONST   IDS_FILE_PATH_PTR             =   1023;
  18792.       CONST   IDS_FILE_VOLUME_PREFIX        =   1024;
  18793.       CONST   IDS_FILE_VOLUME_SUFFIX        =   1025;
  18794.       CONST   IDS_FILE_PATH_PTR2            =   1026;
  18795.       CONST   IDS_FILE_INVALID_CHARS        =   1027;
  18796.  
  18797.       CONST   IDS_FILE_BAD_DRIVE_NAME         = 1100;
  18798.       CONST   IDS_FILE_BAD_DRIVE_OR_PATH_NAME = 1101;
  18799.       CONST   IDS_FILE_BAD_FILE_NAME          = 1102;
  18800.       CONST   IDS_FILE_BAD_FQF                = 1103;
  18801.       CONST   IDS_FILE_BAD_NETWORK_NAME       = 1104;
  18802.       CONST   IDS_FILE_BAD_SUB_DIR_NAME       = 1105;
  18803.       CONST   IDS_FILE_DRIVE_NOT_AVAILABLE    = 1106;
  18804.       CONST   IDS_FILE_FQFNAME_TOO_LONG       = 1107;
  18805.       CONST   IDS_FILE_OPEN_DIALOG_NOTE       = 1108;
  18806.       CONST   IDS_FILE_PATH_TOO_LONG          = 1109;
  18807.       CONST   IDS_FILE_SAVEAS_DIALOG_NOTE     = 1110;
  18808.  
  18809.       CONST   IDS_FILE_DRIVE_DISK_CHANGE      = 1120;
  18810.       CONST   IDS_FILE_DRIVE_NOT_READY        = 1122;
  18811.       CONST   IDS_FILE_DRIVE_LOCKED           = 1123;
  18812.       CONST   IDS_FILE_DRIVE_NO_SECTOR        = 1124;
  18813.       CONST   IDS_FILE_DRIVE_SOME_ERROR       = 1125;
  18814.       CONST   IDS_FILE_DRIVE_INVALID          = 1126;
  18815.       CONST   IDS_FILE_INSERT_DISK_NOTE       = 1127;
  18816.       CONST   IDS_FILE_OK_WHEN_READY          = 1128;
  18817.  
  18818. <* END *>
  18819.  
  18820.  
  18821. <* IF (NOT DEFINED (INCL_WINSTDFONT_INCLUDED) OR NOT DEFINED (INCL_WINSTDFONT) ) THEN *>
  18822.    <* NEW INCL_WINSTDFONT_INCLUDED + *>
  18823.       (**********************************************************************)
  18824.       (*                                                                    *)
  18825.       (*                     F O N T    D I A L O G                         *)
  18826.       (*                                                                    *)
  18827.       (**********************************************************************)
  18828.  
  18829.       (**********************************************************************)
  18830.       (* Font Dialog Creation Structure                                     *)
  18831.       (**********************************************************************)
  18832.  
  18833.       TYPE FONTDLG = RECORD    (* fntdlg *)
  18834.             cbSize:                  ULONG   ;(* sizeof(FONTDLG)                 *)
  18835.             hpsScreen:               HPS     ;(* Screen presentation space       *)
  18836.             hpsPrinter:              HPS     ;(* Printer presentation space      *)
  18837.             pszTitle:                PSZ     ;(* Application supplied title      *)
  18838.             pszPreview:              PSZ     ;(* String to print in preview wndw *)
  18839.             pszPtSizeList:           PSZ     ;(* Application provided size list  *)
  18840.             pfnDlgProc:              PFNWP   ;(* Dialog subclass procedure       *)
  18841.             pszFamilyname:           PSZ     ;(* Family name of font             *)
  18842.             fxPointSize:             FIXED   ;(* Point size the user selected    *)
  18843.             fl:                      ULONG   ;(* FNTS_* flags - dialog styles    *)
  18844.             flFlags:                 ULONG   ;(* FNTF_* state flags              *)
  18845.             flType:                  ULONG   ;(* Font type option bits           *)
  18846.             flTypeMask:              ULONG   ;(* Mask of which font types to use *)
  18847.             flStyle:                 ULONG   ;(* The selected style bits         *)
  18848.             flStyleMask:             ULONG   ;(* Mask of which style bits to use *)
  18849.             clrFore:                 LONG    ;(* Selected foreground color       *)
  18850.             clrBack:                 LONG    ;(* Selected background color       *)
  18851.             ulUser:                  ULONG   ;(* Blank field for application     *)
  18852.             lReturn:                 LONG    ;(* Return Value of the Dialog      *)
  18853.             lSRC:                    LONG    ;(* System return code.             *)
  18854.             lEmHeight:               LONG    ;(* Em height of the current font   *)
  18855.             lXHeight:                LONG    ;(* X height of the current font    *)
  18856.             lExternalLeading:        LONG    ;(* External Leading of font        *)
  18857.             hMod:                    HMODULE ;(* Module to load custom template  *)
  18858.             fAttrs:                  FATTRS  ;(* Font attribute structure        *)
  18859.             sNominalPointSize:       SHORT   ;(* Nominal Point Size of font      *)
  18860.             usWeight:                USHORT  ;(* The boldness of the font        *)
  18861.             usWidth:                 USHORT  ;(* The width of the font           *)
  18862.             x:                       SHORT   ;(* X coordinate of the dialog      *)
  18863.             y:                       SHORT   ;(* Y coordinate of the dialog      *)
  18864.             usDlgId:                 USHORT  ;(* ID of a custom dialog template  *)
  18865.             usFamilyBufLen:          USHORT  ;(* Length of family buffer provided*)
  18866.             usReserved:              USHORT  ;(* reserved                        *)
  18867.       END;
  18868.       TYPE PFONTDLG = POINTER TO FONTDLG;
  18869.  
  18870.       (**********************************************************************)
  18871.       (* Font Dialog Style Flags                                            *)
  18872.       (**********************************************************************)
  18873.       CONST FNTS_CENTER             = 000000001H;(* Center in owner dialog*)
  18874.       CONST FNTS_CUSTOM             = 000000002H;(* Use custom template   *)
  18875.       CONST FNTS_OWNERDRAWPREVIEW   = 000000004H;(* Allow app to draw     *)
  18876.       CONST FNTS_HELPBUTTON         = 000000008H;(* Display Help button   *)
  18877.       CONST FNTS_APPLYBUTTON        = 000000010H;(* Display Apply button  *)
  18878.       CONST FNTS_RESETBUTTON        = 000000020H;(* Display Reset button  *)
  18879.       CONST FNTS_MODELESS           = 000000040H;(* Make dialog modeless  *)
  18880.       CONST FNTS_INITFROMFATTRS     = 000000080H;(* Initialize from FATTRs*)
  18881.       CONST FNTS_BITMAPONLY         = 000000100H;(* Only allow bitmap font*)
  18882.       CONST FNTS_VECTORONLY         = 000000200H;(* Only allow vector font*)
  18883.       CONST FNTS_FIXEDWIDTHONLY     = 000000400H;(* Only allow monospaced *)
  18884.       CONST FNTS_PROPORTIONALONLY   = 000000800H;(* Only proportional font*)
  18885.       CONST FNTS_NOSYNTHESIZEDFONTS = 000001000H;(* Don't synthesize fonts*)
  18886.  
  18887.       (**********************************************************************)
  18888.       (* Font Dialog Flags                                                  *)
  18889.       (**********************************************************************)
  18890.       CONST FNTF_NOVIEWSCREENFONTS    =  1;
  18891.       CONST FNTF_NOVIEWPRINTERFONTS   =  2;
  18892.       CONST FNTF_SCREENFONTSELECTED   =  4;
  18893.       CONST FNTF_PRINTERFONTSELECTED  =  8;
  18894.  
  18895.       (**********************************************************************)
  18896.       (* Color code definitions                                             *)
  18897.       (**********************************************************************)
  18898.       CONST CLRC_FOREGROUND           =  1;
  18899.       CONST CLRC_BACKGROUND           =  2;
  18900.  
  18901.       (**********************************************************************)
  18902.       (* Filter List message string identifiers                             *)
  18903.       (**********************************************************************)
  18904.       CONST FNTI_BITMAPFONT       =  00001H;
  18905.       CONST FNTI_VECTORFONT       =  00002H;
  18906.       CONST FNTI_FIXEDWIDTHFONT   =  00004H;
  18907.       CONST FNTI_PROPORTIONALFONT =  00008H;
  18908.       CONST FNTI_SYNTHESIZED      =  00010H;
  18909.       CONST FNTI_DEFAULTLIST      =  00020H;
  18910.       CONST FNTI_FAMILYNAME       =  00100H;
  18911.       CONST FNTI_STYLENAME        =  00200H;
  18912.       CONST FNTI_POINTSIZE        =  00400H;
  18913.  
  18914.       (**********************************************************************)
  18915.       (* Error Return Codes from dialog (self defining)                     *)
  18916.       (**********************************************************************)
  18917.       CONST  FNTS_SUCCESSFUL                      =     0;
  18918.       CONST  FNTS_ERR_INVALID_DIALOG              =     3;
  18919.       CONST  FNTS_ERR_ALLOC_SHARED_MEM            =     4;
  18920.       CONST  FNTS_ERR_INVALID_PARM                =     5;
  18921.       CONST  FNTS_ERR_OUT_OF_MEMORY               =     7;
  18922.       CONST  FNTS_ERR_INVALID_VERSION             =    10;
  18923.       CONST  FNTS_ERR_DIALOG_LOAD_ERROR           =    12;
  18924.  
  18925.       (**********************************************************************)
  18926.       (* Font Dialog Messages                                               *)
  18927.       (**********************************************************************)
  18928.       CONST FNTM_FACENAMECHANGED  = WM_USER+50;  (* mp1 = PSZ pszFacename   *)
  18929.       CONST FNTM_POINTSIZECHANGED = WM_USER+51;  (* mp1 = PSZ pszPointSize, *)
  18930.       (*                                            mp2 = FIXED fxPointSize *)
  18931.       CONST FNTM_STYLECHANGED     = WM_USER+52;  (* mp1 = PSTYLECHANGE pstyc*)
  18932.       CONST FNTM_COLORCHANGED     = WM_USER+53;  (* mp1 = LONG clr          *)
  18933.       (*                                            mp2 = USHORT codeClr    *)
  18934.       CONST FNTM_UPDATEPREVIEW    = WM_USER+54;  (* mp1 = HWND hWndPreview  *)
  18935.       CONST FNTM_FILTERLIST       = WM_USER+55;  (* mp1 = PSZ pszFacename   *)
  18936.       (*                                            mp2 = USHORT usStrStyle *)
  18937.       (*                                            mr=TRUE(Add),FALSE(Dont)*)
  18938.  
  18939.       (**********************************************************************)
  18940.       (* Stylechange message parameter structure                            *)
  18941.       (**********************************************************************)
  18942.       TYPE STYLECHANGE = RECORD    (* stylc *)
  18943.             usWeight:         USHORT;
  18944.             usWeightOld:      USHORT;
  18945.             usWidth:          USHORT;
  18946.             usWidthOld:       USHORT;
  18947.             flType:           ULONG;
  18948.             flTypeOld:        ULONG;
  18949.             flTypeMask:       ULONG;
  18950.             flTypeMaskOld:    ULONG;
  18951.             flStyle:          ULONG;
  18952.             flStyleOld:       ULONG;
  18953.             flStyleMask:      ULONG;
  18954.             flStyleMaskOld:   ULONG;
  18955.       END;
  18956.       TYPE PSTYLECHANGE = POINTER TO STYLECHANGE;
  18957.  
  18958.       (**********************************************************************)
  18959.       (* Font Dialog Function Prototypes                                    *)
  18960.       (**********************************************************************)
  18961.       PROCEDURE [APIENTRY] WinFontDlg(hwndP: HWND;
  18962.                                                               hwndO: HWND;
  18963.                                                               pfntd: PFONTDLG ): HWND    ;
  18964.  
  18965.       PROCEDURE [APIENTRY] WinDefFontDlgProc(hwnd: HWND;
  18966.                                                                             msg: ULONG;
  18967.                                                                             mp1: MPARAM;
  18968.                                                                             mp2: MPARAM ): MRESULT ;
  18969.  
  18970.       (**********************************************************************)
  18971.       (* font dialog and control id's                                       *)
  18972.       (**********************************************************************)
  18973.       CONST DID_FONT_DIALOG         = 300;
  18974.       CONST DID_NAME                = 301;
  18975.       CONST DID_STYLE               = 302;
  18976.       CONST DID_DISPLAY_FILTER      = 303;
  18977.       CONST DID_PRINTER_FILTER      = 304;
  18978.       CONST DID_SIZE                = 305;
  18979.       CONST DID_SAMPLE              = 306;
  18980.       CONST DID_OUTLINE             = 307;
  18981.       CONST DID_UNDERSCORE          = 308;
  18982.       CONST DID_STRIKEOUT           = 309;
  18983.       CONST DID_HELP_BUTTON         = 310;
  18984.       CONST DID_APPLY_BUTTON        = 311;
  18985.       CONST DID_RESET_BUTTON        = 312;
  18986.       CONST DID_OK_BUTTON           = DID_OK;
  18987.       CONST DID_CANCEL_BUTTON       = DID_CANCEL;
  18988.       CONST DID_NAME_PREFIX         = 313;
  18989.       CONST DID_STYLE_PREFIX        = 314;
  18990.       CONST DID_SIZE_PREFIX         = 315;
  18991.       CONST DID_SAMPLE_GROUPBOX     = 316;
  18992.       CONST DID_EMPHASIS_GROUPBOX   = 317;
  18993.       CONST DID_FONT_ISO_SUPPORT    = 318;
  18994.       CONST DID_FONT_ISO_UNTESTED   = 319;
  18995.  
  18996.       (**********************************************************************)
  18997.       (* Stringtable id's                                                   *)
  18998.       (**********************************************************************)
  18999.       CONST IDS_FONT_SAMPLE         =   350;
  19000.       CONST IDS_FONT_BLANK          =   351;
  19001.       CONST IDS_FONT_KEY_0          =   352;
  19002.       CONST IDS_FONT_KEY_9          =   353;
  19003.       CONST IDS_FONT_KEY_SEP        =   354;
  19004.       CONST IDS_FONT_DISP_ONLY      =   355;
  19005.       CONST IDS_FONT_PRINTER_ONLY   =   356;
  19006.       CONST IDS_FONT_COMBINED       =   357;
  19007.       CONST IDS_FONT_WEIGHT1        =   358;
  19008.       CONST IDS_FONT_WEIGHT2        =   359;
  19009.       CONST IDS_FONT_WEIGHT3        =   360;
  19010.       CONST IDS_FONT_WEIGHT4        =   361;
  19011.       CONST IDS_FONT_WEIGHT5        =   362;
  19012.       CONST IDS_FONT_WEIGHT6        =   363;
  19013.       CONST IDS_FONT_WEIGHT7        =   364;
  19014.       CONST IDS_FONT_WEIGHT8        =   365;
  19015.       CONST IDS_FONT_WEIGHT9        =   366;
  19016.       CONST IDS_FONT_WIDTH1         =   367;
  19017.       CONST IDS_FONT_WIDTH2         =   368;
  19018.       CONST IDS_FONT_WIDTH3         =   369;
  19019.       CONST IDS_FONT_WIDTH4         =   370;
  19020.       CONST IDS_FONT_WIDTH5         =   371;
  19021.       CONST IDS_FONT_WIDTH6         =   372;
  19022.       CONST IDS_FONT_WIDTH7         =   373;
  19023.       CONST IDS_FONT_WIDTH8         =   374;
  19024.       CONST IDS_FONT_WIDTH9         =   375;
  19025.       CONST IDS_FONT_OPTION0        =   376;
  19026.       CONST IDS_FONT_OPTION1        =   377;
  19027.       CONST IDS_FONT_OPTION2        =   378;
  19028.       CONST IDS_FONT_OPTION3        =   379;
  19029.       CONST IDS_FONT_POINT_SIZE_LIST=   380;
  19030.  
  19031. <* END *>
  19032.  
  19033.  
  19034. <* IF (NOT DEFINED (INCL_WINSTDSPIN_INCLUDED) OR NOT DEFINED (INCL_WINSTDSPIN) ) THEN *>
  19035.    <* NEW INCL_WINSTDSPIN_INCLUDED + *>
  19036.       (**********************************************************************)
  19037.       (*                                                                    *)
  19038.       (*                          S P I N    B U T T O N                    *)
  19039.       (*                                                                    *)
  19040.       (**********************************************************************)
  19041.  
  19042.       (**********************************************************************)
  19043.       (* SPINBUTTON Creation Flags                                          *)
  19044.       (**********************************************************************)
  19045.  
  19046.       (**********************************************************************)
  19047.       (* Character Acceptance                                               *)
  19048.       (**********************************************************************)
  19049.       CONST SPBS_ALLCHARACTERS= 000000000H;(* Default: All chars accepted *)
  19050.       CONST SPBS_NUMERICONLY  = 000000001H;(* Only 0 - 9 accepted & VKeys *)
  19051.       CONST SPBS_READONLY     = 000000002H;(* No chars allowed in entryfld*)
  19052.  
  19053.       (**********************************************************************)
  19054.       (* Type of Component                                                  *)
  19055.       (**********************************************************************)
  19056.       CONST SPBS_MASTER       = 000000010H;
  19057.       CONST SPBS_SERVANT      = 000000000H;(* Default: Servant            *)
  19058.  
  19059.       (**********************************************************************)
  19060.       (* Type of Justification                                              *)
  19061.       (**********************************************************************)
  19062.       CONST SPBS_JUSTDEFAULT  =000000000H;(* Default: Same as Left        *)
  19063.       CONST SPBS_JUSTLEFT     =000000008H;
  19064.       CONST SPBS_JUSTRIGHT    =000000004H;
  19065.       CONST SPBS_JUSTCENTER   =00000000CH;
  19066.  
  19067.       (**********************************************************************)
  19068.       (* Border or not                                                      *)
  19069.       (**********************************************************************)
  19070.       CONST SPBS_NOBORDER    = 000000020H;(* Borderless SpinField         *)
  19071.       (*                                       Default is to have a border. *)
  19072.  
  19073.       (**********************************************************************)
  19074.       (* Fast spin or not                                                   *)
  19075.       (**********************************************************************)
  19076.       CONST SPBS_FASTSPIN    = 000000100H;(* Allow fast spinning.  Fast   *)
  19077.       (*                                       spinning is performed by     *)
  19078.       (*                                       skipping over numbers        *)
  19079.  
  19080.       (**********************************************************************)
  19081.       (* Pad numbers on front with 0's                                      *)
  19082.       (**********************************************************************)
  19083.       CONST SPBS_PADWITHZEROS= 000000080H;(* Pad the number with zeroes   *)
  19084.  
  19085.       (**********************************************************************)
  19086.       (* SPINBUTTON Messages                                                *)
  19087.       (**********************************************************************)
  19088.  
  19089.       (**********************************************************************)
  19090.       (* Notification from Spinbutton to the application is sent in a       *)
  19091.       (* WM_CONTROL message.                                                *)
  19092.       (**********************************************************************)
  19093.       CONST SPBN_UPARROW     =  020AH;    (* up arrow button was pressed  *)
  19094.       CONST SPBN_DOWNARROW   =  020BH;    (* down arrow button was pressed*)
  19095.       CONST SPBN_ENDSPIN     =  020CH;    (* mouse button was released    *)
  19096.       CONST SPBN_CHANGE      =  020DH;    (* spinfield text has changed   *)
  19097.       CONST SPBN_SETFOCUS    =  020EH;    (* spinfield received focus     *)
  19098.       CONST SPBN_KILLFOCUS   =  020FH;    (* spinfield lost focus         *)
  19099.  
  19100.       (**********************************************************************)
  19101.       (* Messages from application to Spinbutton                            *)
  19102.       (**********************************************************************)
  19103.       CONST SPBM_OVERRIDESETLIMITS= 0200H;  (* Set spinbutton limits without*)
  19104.       (*                                        resetting the current value *)
  19105.       CONST SPBM_QUERYLIMITS      = 0201H;  (* Query limits set by          *)
  19106.       (*                                        SPBM_SETLIMITS              *)
  19107.       CONST SPBM_SETTEXTLIMIT     = 0202H;  (* Max entryfield characters    *)
  19108.       CONST SPBM_SPINUP           = 0203H;  (* Tell entry field to spin up  *)
  19109.       CONST SPBM_SPINDOWN         = 0204H;  (* Tell entry field to spin down*)
  19110.       CONST SPBM_QUERYVALUE       = 0205H;  (* Tell entry field to send     *)
  19111.       (*                                        current value               *)
  19112.  
  19113.       (**********************************************************************)
  19114.       (* Query Flags                                                        *)
  19115.       (**********************************************************************)
  19116.       CONST SPBQ_UPDATEIFVALID   = 0;       (* Default                      *)
  19117.       CONST SPBQ_ALWAYSUPDATE    = 1;
  19118.       CONST SPBQ_DONOTUPDATE     = 3;
  19119.  
  19120.       (**********************************************************************)
  19121.       (* Return value for Empty Field.                                      *)
  19122.       (*    If ptr too long, variable sent in query msg                     *)
  19123.       (**********************************************************************)
  19124.       CONST SPBM_SETARRAY        =  0206H;  (* Change the data to spin      *)
  19125.       CONST SPBM_SETLIMITS       =  0207H;  (* Change the numeric Limits    *)
  19126.       CONST SPBM_SETCURRENTVALUE =  0208H;  (* Change the current value     *)
  19127.       CONST SPBM_SETMASTER       =  0209H;  (* Tell entryfield who master is*)
  19128.  
  19129. <* END *>
  19130.  
  19131.  
  19132. <* IF NOT (DEFINED (INCL_WINSTDDRAG_INCLUDED) & DEFINED (INCL_WINSTDDRAG) ) THEN *>
  19133.    <* NEW INCL_WINSTDDRAG_INCLUDED + *>
  19134.       (**********************************************************************)
  19135.       (*                                                                    *)
  19136.       (*                D I R E C T   M A N I P U L A T I O N               *)
  19137.       (*                                                                    *)
  19138.       (**********************************************************************)
  19139.  
  19140.       CONST PMERR_NOT_DRAGGING    = 01f00H;
  19141.       CONST PMERR_ALREADY_DRAGGING= 01f01H;
  19142.  
  19143.       CONST MSGF_DRAG             = 00010H;    (* message filter identifier *)
  19144.  
  19145.       CONST WM_DRAGFIRST          = 00310H;
  19146.       CONST WM_DRAGLAST           = 0032fH;
  19147.  
  19148.       CONST DM_DROP               = 0032fH;
  19149.       CONST DM_DRAGOVER           = 0032eH;
  19150.       CONST DM_DRAGLEAVE          = 0032dH;
  19151.       CONST DM_DROPHELP           = 0032cH;
  19152.       CONST DM_ENDCONVERSATION    = 0032bH;
  19153.       CONST DM_PRINT              = 0032aH;
  19154.       CONST DM_RENDER             = 00329H;
  19155.       CONST DM_RENDERCOMPLETE     = 00328H;
  19156.       CONST DM_RENDERPREPARE      = 00327H;
  19157.       CONST DM_DRAGFILECOMPLETE   = 00326H;
  19158.       CONST DM_EMPHASIZETARGET    = 00325H;
  19159.       CONST DM_DRAGERROR          = 00324H;
  19160.       CONST DM_FILERENDERED       = 00323H;
  19161.       CONST DM_RENDERFILE         = 00322H;
  19162.       CONST DM_DRAGOVERNOTIFY     = 00321H;
  19163.       CONST DM_PRINTOBJECT        = 00320H;
  19164.       CONST DM_DISCARDOBJECT      = 0031fH;
  19165.  
  19166.       CONST DRT_ASM               = "Assembler Code";   (* drag type constants  *)
  19167.       CONST DRT_BASIC             = "BASIC Code"    ;
  19168.       CONST DRT_BINDATA           = "Binary Data"   ;
  19169.       CONST DRT_BITMAP            = "Bitmap"        ;
  19170.       CONST DRT_C                 = "C Code"        ;
  19171.       CONST DRT_COBOL             = "COBOL Code"    ;
  19172.       CONST DRT_DLL               = "Dynamic Link Library";
  19173.       CONST DRT_DOSCMD            = "DOS Command File";
  19174.       CONST DRT_EXE               = "Executable"    ;
  19175.       CONST DRT_FORTRAN           = "FORTRAN Code"  ;
  19176.       CONST DRT_ICON              = "Icon"          ;
  19177.       CONST DRT_LIB               = "Library"       ;
  19178.       CONST DRT_METAFILE          = "Metafile"      ;
  19179.       CONST DRT_OS2CMD            = "OS/2 Command File";
  19180.       CONST DRT_PASCAL            = "Pascal Code"   ;
  19181.       CONST DRT_RESOURCE          = "Resource File" ;
  19182.       CONST DRT_TEXT              = "Plain Text"    ;
  19183.       CONST DRT_UNKNOWN           = "Unknown"       ;
  19184.  
  19185.       CONST DOR_NODROP           =  00000H;   (* DM_DRAGOVER response codes *)
  19186.       CONST DOR_DROP             =  00001H;
  19187.       CONST DOR_NODROPOP         =  00002H;
  19188.       CONST DOR_NEVERDROP        =  00003H;
  19189.  
  19190.       CONST DO_COPYABLE          =  00001H;   (* supported operation flags  *)
  19191.       CONST DO_MOVEABLE          =  00002H;
  19192.       CONST DO_LINKABLE          =  00004H;
  19193.  
  19194.       CONST DC_OPEN              =  00001H;   (* source control flags       *)
  19195.       CONST DC_REF               =  00002H;
  19196.       CONST DC_GROUP             =  00004H;
  19197.       CONST DC_CONTAINER         =  00008H;
  19198.       CONST DC_PREPARE           =  00010H;
  19199.       CONST DC_REMOVEABLEMEDIA   =  00020H;
  19200.  
  19201.       CONST DO_DEFAULT           =  0BFFEH;   (* Default operation          *)
  19202.       CONST DO_UNKNOWN           =  0BFFFH;   (* Unknown operation          *)
  19203.       CONST DO_COPY              =  00010H;
  19204.       CONST DO_MOVE              =  00020H;
  19205.       CONST DO_LINK              =  00018H;
  19206.       CONST DO_CREATE            =  00040H;
  19207.  
  19208.       CONST DMFL_TARGETSUCCESSFUL = 00001H;   (* transfer reply flags       *)
  19209.       CONST DMFL_TARGETFAIL       = 00002H;
  19210.       CONST DMFL_NATIVERENDER     = 00004H;
  19211.       CONST DMFL_RENDERRETRY      = 00008H;
  19212.       CONST DMFL_RENDEROK         = 00010H;
  19213.       CONST DMFL_RENDERFAIL       = 00020H;
  19214.  
  19215.       CONST DRG_ICON        =  000000001H;  (* drag image manipulation    *)
  19216.       CONST DRG_BITMAP      =  000000002H;  (*   flags                    *)
  19217.       CONST DRG_POLYGON     =  000000004H;
  19218.       CONST DRG_STRETCH     =  000000008H;
  19219.       CONST DRG_TRANSPARENT =  000000010H;
  19220.       CONST DRG_CLOSED      =  000000020H;
  19221.  
  19222.       CONST DME_IGNOREABORT       = 1;       (* DM_DRAGERROR return values *)
  19223.       CONST DME_IGNORECONTINUE    = 2;
  19224.       CONST DME_REPLACE           = 3;
  19225.       CONST DME_RETRY             = 4;
  19226.  
  19227.       CONST DF_MOVE              =  00001H; (* DM_DRAGFILECOMPLETE flags  *)
  19228.       CONST DF_SOURCE            =  00002H;
  19229.       CONST DF_SUCCESSFUL        =  00004H;
  19230.  
  19231.       CONST DRR_SOURCE          =  1;
  19232.       CONST DRR_TARGET          =  2;
  19233.       CONST DRR_ABORT           =  3;
  19234.  
  19235.       CONST DFF_MOVE            =   1;       (* DM_DRAGERROR operation IDs *)
  19236.       CONST DFF_COPY            =   2;
  19237.       CONST DFF_DELETE          =   3;
  19238.  
  19239.  
  19240.       TYPE HSTR = LHANDLE;  (* hstr *)
  19241.  
  19242.       TYPE DRAGITEM = RECORD    (* ditem *)
  19243.             hwndItem:           HWND    ; (* conversation partner          *)
  19244.             ulItemID:           ULONG   ; (* identifies item being dragged *)
  19245.             hstrType:           HSTR    ; (* type of item                  *)
  19246.             hstrRMF:            HSTR    ; (* rendering mechanism and format*)
  19247.             hstrContainerName:  HSTR    ; (* name of source container      *)
  19248.             hstrSourceName:     HSTR    ; (* name of item at source        *)
  19249.             hstrTargetName:     HSTR    ; (* suggested name of item at dest*)
  19250.             cxOffset:           SHORT   ; (* x offset of the origin of the *)
  19251.             (*                                 image from the mouse hotspot*)
  19252.             cyOffset:           SHORT   ; (* y offset of the origin of the *)
  19253.             (*                                 image from the mouse hotspot*)
  19254.             fsControl:          USHORT  ; (* source item control flags     *)
  19255.             fsSupportedOps:     USHORT  ; (* ops supported by source       *)
  19256.       END;
  19257.       TYPE PDRAGITEM = POINTER TO DRAGITEM;
  19258.  
  19259.       TYPE DRAGINFO = RECORD    (* dinfo *)
  19260.             cbDraginfo:      ULONG    ; (* Size of DRAGINFO and DRAGITEMs*)
  19261.             cbDragitem:      USHORT   ; (* size of DRAGITEM              *)
  19262.             usOperation:     USHORT   ; (* current drag operation        *)
  19263.             hwndSource:      HWND     ; (* window handle of source       *)
  19264.             xDrop:           SHORT    ; (* x coordinate of drop position *)
  19265.             yDrop:           SHORT    ; (* y coordinate of drop position *)
  19266.             cditem:          USHORT   ; (* count of DRAGITEMs            *)
  19267.             usReserved:      USHORT   ; (* reserved for future use       *)
  19268.       END;
  19269.       TYPE PDRAGINFO = POINTER TO DRAGINFO;
  19270.  
  19271.       TYPE DRAGIMAGE = RECORD    (* dimg *)
  19272.             cb:          USHORT  ; (* size control block            *)
  19273.             cptl:        USHORT  ; (* count of pts, if DRG_POLYGON  *)
  19274.             hImage:      LHANDLE ; (* image handle passed to DrgDrag*)
  19275.             sizlStretch: SIZEL   ; (* size to strecth ico or bmp to *)
  19276.             fl:          ULONG   ; (* flags passed to DrgDrag       *)
  19277.             cxOffset:    SHORT   ; (* x offset of the origin of the *)
  19278.             (*                                      image from the mouse hotspot*)
  19279.             cyOffset:    SHORT   ; (* y offset of the origin of the *)
  19280.             (*                                      image from the mouse hotspot*)
  19281.       END;
  19282.       TYPE PDRAGIMAGE = POINTER TO DRAGIMAGE;
  19283.  
  19284.       TYPE DRAGTRANSFER = RECORD    (* dxfer *)
  19285.             cb:                 ULONG      ; (* size of control block         *)
  19286.             hwndClient:         HWND       ; (* handle of target              *)
  19287.             pditem:             PDRAGITEM  ; (* DRAGITEM being transferred    *)
  19288.             hstrSelectedRMF:    HSTR       ; (* rendering mech & fmt of choice*)
  19289.             hstrRenderToName:   HSTR       ; (* name source will use          *)
  19290.             ulTargetInfo:       ULONG      ; (* reserved for target's use     *)
  19291.             usOperation:        USHORT     ; (* operation being performed     *)
  19292.             fsReply:            USHORT     ; (* reply flags                   *)
  19293.       END;
  19294.       TYPE PDRAGTRANSFER = POINTER TO DRAGTRANSFER;
  19295.  
  19296.       TYPE RENDERFILE = RECORD    (* rndf *)
  19297.             hwndDragFiles:   HWND   ; (* conversation window           *)
  19298.             hstrSource:      HSTR   ; (* handle to source file name    *)
  19299.             hstrTarget:      HSTR   ; (* handle to target file name    *)
  19300.             fMove:           USHORT ; (* TRUE - move, FALSE - copy     *)
  19301.             usRsvd:          USHORT ; (* reserved                      *)
  19302.       END;
  19303.       TYPE PRENDERFILE = POINTER TO RENDERFILE;
  19304.  
  19305.       PROCEDURE [APIENTRY] DrgAcceptDroppedFiles(hwnd: HWND;
  19306.                                                                                         pszPath: PCSZ;
  19307.                                                                                         pszTypes: PCSZ;
  19308.                                                                                         ulDefaultOp: ULONG;
  19309.                                                                                         ulRsvd: ULONG ): BOOL      ;
  19310.  
  19311.       PROCEDURE [APIENTRY] DrgAllocDraginfo(cditem: ULONG ): PDRAGINFO ;
  19312.  
  19313.       PROCEDURE [APIENTRY] DrgAllocDragtransfer(cdxfer: ULONG ): PDRAGTRANSFER ;
  19314.  
  19315.       PROCEDURE [APIENTRY] DrgDrag(hwndSource: HWND;
  19316.                                                             pdinfo: PDRAGINFO;
  19317.                                                             pdimg: PDRAGIMAGE;
  19318.                                                             cdimg: ULONG;
  19319.                                                             vkTerminate: LONG;
  19320.                                                             pRsvd: PVOID ): HWND      ;
  19321.  
  19322.       PROCEDURE [APIENTRY] DrgDragFiles(hwnd: HWND;
  19323.                                                                       apszFiles: PPCSZ;
  19324.                                                                       apszTypes: PPCSZ;
  19325.                                                                       apszTargets: PPCSZ;
  19326.                                                                       cFiles: ULONG;
  19327.                                                                       hptrDrag: HPOINTER;
  19328.                                                                       vkTerm: ULONG;
  19329.                                                                       fSourceRender: BOOL;
  19330.                                                                       ulRsvd: ULONG ): BOOL      ;
  19331.  
  19332.       PROCEDURE [APIENTRY] DrgPostTransferMsg(hwnd: HWND;
  19333.                                                                                   msg: ULONG;
  19334.                                                                                   pdxfer: PDRAGTRANSFER;
  19335.                                                                                   fl: ULONG;
  19336.                                                                                   ulRsvd: ULONG;
  19337.                                                                                   fRetry: BOOL ): BOOL      ;
  19338.  
  19339.       PROCEDURE [APIENTRY] DrgQueryDragitem(pdinfo: PDRAGINFO;
  19340.                                                                               cbBuffer: ULONG;
  19341.                                                                               pditem: PDRAGITEM;
  19342.                                                                               iItem: ULONG ): BOOL      ;
  19343.  
  19344.       PROCEDURE [APIENTRY] DrgQueryDragitemCount(pdinfo: PDRAGINFO ): ULONG     ;
  19345.  
  19346.       PROCEDURE [APIENTRY] DrgQueryDragitemPtr(pdinfo: PDRAGINFO;
  19347.                                                                                     i: ULONG ): PDRAGITEM ;
  19348.  
  19349.       PROCEDURE [APIENTRY] DrgQueryNativeRMF(pditem: PDRAGITEM;
  19350.                                                                                 cbBuffer: ULONG;
  19351.                                                                                 pBuffer: PCHAR): BOOL      ;
  19352.  
  19353.       PROCEDURE [APIENTRY] DrgQueryNativeRMFLen(pditem: PDRAGITEM ): ULONG     ;
  19354.  
  19355.       PROCEDURE [APIENTRY] DrgQueryStrName(hstr: HSTR;
  19356.                                                                             cbBuffer: ULONG;
  19357.                                                                             pBuffer: PCSZ ): ULONG     ;
  19358.  
  19359.       PROCEDURE [APIENTRY] DrgQueryStrNameLen(hstr: HSTR ): ULONG     ;
  19360.  
  19361.       PROCEDURE [APIENTRY] DrgQueryTrueType(pditem: PDRAGITEM;
  19362.                                                                               cbBuffer: ULONG;
  19363.                                                                               pBuffer: PCSZ ): BOOL      ;
  19364.  
  19365.       PROCEDURE [APIENTRY] DrgQueryTrueTypeLen(pditem: PDRAGITEM ): ULONG     ;
  19366.  
  19367.       PROCEDURE [APIENTRY] DrgSendTransferMsg(hwnd: HWND;
  19368.                                                                                   msg: ULONG;
  19369.                                                                                   mp1: MPARAM;
  19370.                                                                                   mp2: MPARAM ): MRESULT   ;
  19371.  
  19372.       PROCEDURE [APIENTRY] DrgSetDragitem(pdinfo: PDRAGINFO;
  19373.                                                                           pditem: PDRAGITEM;
  19374.                                                                           cbBuffer: ULONG;
  19375.                                                                           iItem: ULONG ): BOOL      ;
  19376.  
  19377.       PROCEDURE [APIENTRY] DrgSetDragImage(pdinfo: PDRAGINFO;
  19378.                                                                             pdimg: PDRAGIMAGE;
  19379.                                                                             cdimg: ULONG;
  19380.                                                                             pRsvd: PVOID ): BOOL      ;
  19381.  
  19382.       PROCEDURE [APIENTRY] DrgVerifyTypeSet(pditem: PDRAGITEM;
  19383.                                                                               pszType: PCSZ;
  19384.                                                                               cbMatch: ULONG;
  19385.                                                                               pszMatch: PCSZ ): BOOL      ;
  19386.  
  19387.       PROCEDURE [APIENTRY] DrgAccessDraginfo(pdinfo: PDRAGINFO ): BOOL      ;
  19388.  
  19389.       PROCEDURE [APIENTRY] DrgAddStrHandle(psz: PCSZ ): HSTR      ;
  19390.  
  19391.       PROCEDURE [APIENTRY] DrgDeleteDraginfoStrHandles(pdinfo: PDRAGINFO ): BOOL      ;
  19392.  
  19393.       PROCEDURE [APIENTRY] DrgDeleteStrHandle(hstr: HSTR ): BOOL      ;
  19394.  
  19395.       PROCEDURE [APIENTRY] DrgFreeDraginfo(pdinfo: PDRAGINFO ): BOOL      ;
  19396.  
  19397.       PROCEDURE [APIENTRY] DrgFreeDragtransfer(pdxfer: PDRAGTRANSFER ): BOOL      ;
  19398.  
  19399.       PROCEDURE [APIENTRY] DrgGetPS(hwnd: HWND ): HPS       ;
  19400.  
  19401.       PROCEDURE [APIENTRY] DrgPushDraginfo(pdinfo: PDRAGINFO;
  19402.                                                                             hwndDest: HWND ): BOOL      ;
  19403.  
  19404.       PROCEDURE [APIENTRY] DrgReleasePS(hps: HPS ): BOOL      ;
  19405.  
  19406.       PROCEDURE [APIENTRY] DrgSetDragPointer(pdinfo: PDRAGINFO;
  19407.                                                                                 hptr: HPOINTER ): BOOL      ;
  19408.  
  19409.       PROCEDURE [APIENTRY] DrgVerifyNativeRMF(pditem: PDRAGITEM;
  19410.                                                                                   pszRMF: PCSZ ): BOOL      ;
  19411.  
  19412.       PROCEDURE [APIENTRY] DrgVerifyRMF(pditem: PDRAGITEM;
  19413.                                                                       pszMech: PCSZ;
  19414.                                                                       pszFmt: PCSZ ): BOOL      ;
  19415.  
  19416.       PROCEDURE [APIENTRY] DrgVerifyTrueType(pditem: PDRAGITEM;
  19417.                                                                                 pszType: PCSZ ): BOOL      ;
  19418.  
  19419.       PROCEDURE [APIENTRY] DrgVerifyType(pditem: PDRAGITEM;
  19420.                                                                         pszType: PCSZ ): BOOL      ;
  19421.  
  19422. <* END *>
  19423.  
  19424.  
  19425. <* IF NOT (DEFINED (INCL_WINSTDCNR_INCLUDED) & DEFINED (INCL_WINSTDCNR) ) THEN *>
  19426.    <* NEW INCL_WINSTDCNR_INCLUDED + *>
  19427.       (**********************************************************************)
  19428.       (*                                                                    *)
  19429.       (*                         C O N T A I N E R                          *)
  19430.       (*                                                                    *)
  19431.       (**********************************************************************)
  19432.  
  19433.       (**********************************************************************)
  19434.       (* Error constants                                                    *)
  19435.       (**********************************************************************)
  19436.       CONST PMERR_NOFILTERED_ITEMS         = 01f02H;
  19437.       CONST PMERR_COMPARISON_FAILED        = 01f03H;
  19438.       CONST PMERR_RECORD_CURRENTLY_INSERTED= 01f04H;
  19439.       CONST PMERR_FI_CURRENTLY_INSERTED    = 01f05H;
  19440.  
  19441.       (**********************************************************************)
  19442.       (* Container control styles.                                          *)
  19443.       (**********************************************************************)
  19444.       CONST CCS_EXTENDSEL           =  000000001H;
  19445.       CONST CCS_MULTIPLESEL         =  000000002H;
  19446.       CONST CCS_SINGLESEL           =  000000004H;
  19447.       CONST CCS_AUTOPOSITION        =  000000008H;
  19448.       CONST CCS_VERIFYPOINTERS      =  000000010H;
  19449.       CONST CCS_READONLY            =  000000020H;
  19450.       CONST CCS_MINIRECORDCORE      =  000000040H;
  19451.  
  19452.       (**********************************************************************)
  19453.       (* view identifiers           (flWindowAttr)                          *)
  19454.       (**********************************************************************)
  19455.       CONST CV_TEXT                 = 000000001H; (* text view            *)
  19456.       CONST CV_NAME                 = 000000002H; (* name view            *)
  19457.       CONST CV_ICON                 = 000000004H; (* icon view            *)
  19458.       CONST CV_DETAIL               = 000000008H; (* detail view          *)
  19459.       CONST CV_FLOW                 = 000000010H; (* flow items           *)
  19460.       CONST CV_MINI                 = 000000020H; (* use mini icon        *)
  19461.       CONST CV_TREE                 = 000000040H; (* tree view            *)
  19462.  
  19463.       (**********************************************************************)
  19464.       (* Container Attributes        (flWindowAttr)                         *)
  19465.       (**********************************************************************)
  19466.       CONST CA_CONTAINERTITLE       = 000000200H;
  19467.       CONST CA_TITLESEPARATOR       = 000000400H;
  19468.       CONST CA_TITLELEFT            = 000000800H;
  19469.       CONST CA_TITLERIGHT           = 000001000H;
  19470.       CONST CA_TITLECENTER          = 000002000H;
  19471.       CONST CA_OWNERDRAW            = 000004000H;
  19472.       CONST CA_DETAILSVIEWTITLES    = 000008000H;
  19473.       CONST CA_ORDEREDTARGETEMPH    = 000010000H;
  19474.       CONST CA_DRAWBITMAP           = 000020000H;
  19475.       CONST CA_DRAWICON             = 000040000H;
  19476.       CONST CA_TITLEREADONLY        = 000080000H;
  19477.       CONST CA_OWNERPAINTBACKGROUND = 000100000H;
  19478.       CONST CA_MIXEDTARGETEMPH      = 000200000H;
  19479.       CONST CA_TREELINE             = 000400000H;
  19480.  
  19481.       (**********************************************************************)
  19482.       (* child window IDs                                                   *)
  19483.       (**********************************************************************)
  19484.       CONST CID_LEFTCOLTITLEWND    = 07FF0H; (* column title (left)       *)
  19485.       CONST CID_RIGHTCOLTITLEWND   = 07FF1H; (* right column title        *)
  19486.       CONST CID_BLANKBOX           = 07FF2H; (* blank box at bottom right *)
  19487.       CONST CID_HSCROLL            = 07FF3H; (* horizontal scroll bar     *)
  19488.       CONST CID_RIGHTHSCROLL       = 07FF4H; (* right horz scroll bar     *)
  19489.       CONST CID_CNRTITLEWND        = 07FF5H; (* Container title window    *)
  19490.       CONST CID_LEFTDVWND          = 07FF7H; (* Left Details View window  *)
  19491.       CONST CID_RIGHTDVWND         = 07FF8H; (* Right Details View window *)
  19492.       CONST CID_VSCROLL            = 07FF9H; (* vertical scroll bar       *)
  19493.       CONST CID_MLE                = 07FFAH; (* MLE window for direct edit*)
  19494.  
  19495.       (**********************************************************************)
  19496.       (* Bitmap descriptor array element.                                   *)
  19497.       (**********************************************************************)
  19498.       TYPE TREEITEMDESC = RECORD    (* treend *)
  19499.             hbmExpanded:    HBITMAP;
  19500.             hbmCollapsed:  HBITMAP;
  19501.             hptrExpanded:  HPOINTER;
  19502.             hptrCollapsed: HPOINTER;
  19503.       END;
  19504.       TYPE PTREEITEMDESC = POINTER TO TREEITEMDESC;
  19505.  
  19506.       (**********************************************************************)
  19507.       (* Field Info data structure, attribute and data types, CV_DETAIL     *)
  19508.       (**********************************************************************)
  19509.       TYPE PFIELDINFO = POINTER TO FIELDINFO;
  19510.       TYPE FIELDINFO = RECORD     (* fldinfo *)
  19511.             cb:             ULONG      ; (* size of FIELDINFO struct       *)
  19512.             flData:         ULONG      ; (* attributes of field's data     *)
  19513.             flTitle:        ULONG      ; (* attributes of field's title    *)
  19514.             pTitleData:     PVOID      ; (* title data (default is string) *)
  19515.             (*                                 If CFT_BITMAP, must be HBITMAP *)
  19516.             offStruct:      ULONG      ; (* offset from RECORDCORE to data *)
  19517.             pUserData:      PVOID      ; (* pointer to user data           *)
  19518.             pNextFieldInfo: PFIELDINFO;  (* pointer to next linked  *)
  19519.             (*                                       FIELDINFO structure   *)
  19520.             cxWidth:        ULONG      ; (* width of field in pels         *)
  19521.       END;
  19522.  
  19523.       (**********************************************************************)
  19524.       (* RECORDCORE data structure , attribute values                       *)
  19525.       (**********************************************************************)
  19526.       TYPE PRECORDCORE = POINTER TO RECORDCORE;
  19527.       TYPE RECORDCORE = RECORD    (* recc *)
  19528.             cb:               ULONG       ; (* record attributes             *)
  19529.             flRecordAttr:     ULONG       ; (* record attributes             *)
  19530.             ptlIcon:          POINTL      ; (* Position of CV_ICON item      *)
  19531.             preccNextRecord:  PRECORDCORE ; (* ptr to next record  *)
  19532.             pszIcon:          PSZ         ; (* Text for CV_ICON view         *)
  19533.             hptrIcon:         HPOINTER    ; (* Icon to display for ~CV_MINI  *)
  19534.             hptrMiniIcon:     HPOINTER    ; (* Icon to display for CV_MINI   *)
  19535.             hbmBitmap:        HBITMAP     ; (* Bitmap to display for ~CV_MINI*)
  19536.             hbmMiniBitmap:    HBITMAP     ; (* Bitmap to display for CV_MINI *)
  19537.             pTreeItemDesc:    PTREEITEMDESC ; (* Icons for the tree view       *)
  19538.             pszText:          PSZ         ; (* Text for CV_TEXT view         *)
  19539.             pszName:          PSZ         ; (* Text for CV_NAME view         *)
  19540.             pszTree:          PSZ         ; (* Text for CV_TREE view         *)
  19541.       END;
  19542.  
  19543.       (**********************************************************************)
  19544.       (* MINIRECORDCORE data structure, attribute values                    *)
  19545.       (**********************************************************************)
  19546.       TYPE PMINIRECORDCORE = POINTER TO MINIRECORDCORE;
  19547.       TYPE MINIRECORDCORE = RECORD    (* minirec *)
  19548.             cb:              ULONG       ;
  19549.             flRecordAttr:    ULONG       ; (* record attributes             *)
  19550.             ptlIcon:         POINTL      ; (* Position of CV_ICON item      *)
  19551.             preccNextRecord: PMINIRECORDCORE; (* ptr to next record *)
  19552.             pszIcon:         PSZ         ; (* Text for CV_ICON view         *)
  19553.             hptrIcon:        HPOINTER    ; (* Icon to display for ~CV_MINI  *)
  19554.       END;
  19555.  
  19556.       (**********************************************************************)
  19557.       (* CNRINFO data structure, describes the container control.           *)
  19558.       (**********************************************************************)
  19559.       TYPE CNRINFO = RECORD    (* ccinfo *)
  19560.             cb:                 ULONG       ; (* size of CNRINFO struct        *)
  19561.             pSortRecord:        PVOID       ; (* ptr to sort function,         *)
  19562.             (*                                    RECORDCORE                  *)
  19563.             pFieldInfoLast:     PFIELDINFO  ; (* pointer to last column in     *)
  19564.             (*                                    left pane of a split window.*)
  19565.             pFieldInfoObject:   PFIELDINFO  ; (* Pointer to a column to        *)
  19566.             (*                                  represent an object.  This is *)
  19567.             (*                                  the column which will receive *)
  19568.             (*                                  IN-USE emphasis.              *)
  19569.             pszCnrTitle:        PSZ         ; (* text for container title. One *)
  19570.             (*                                    string separated by line    *)
  19571.             (*                                    separators for multi-lines  *)
  19572.             flWindowAttr:       ULONG       ; (* container attrs - CV_*, CA_*  *)
  19573.             ptlOrigin:          POINTL      ; (* lower-left origin in virtual  *)
  19574.             (*                                    coordinates. CV_ICON view   *)
  19575.             cDelta:             ULONG       ; (* Application defined threshold *)
  19576.             (*                                    or number of records from   *)
  19577.             (*                                    either end of the list.     *)
  19578.             cRecords:           ULONG       ; (* number of records in container*)
  19579.             slBitmapOrIcon:     SIZEL       ; (* size of bitmap in pels        *)
  19580.             slTreeBitmapOrIcon: SIZEL       ; (* size of tree bitmaps in pels  *)
  19581.             hbmExpanded:        HBITMAP     ; (* bitmap  for tree node         *)
  19582.             hbmCollapsed:       HBITMAP     ; (* bitmap  for tree node         *)
  19583.             hptrExpanded:       HPOINTER    ; (* icon    for tree node         *)
  19584.             hptrCollapsed:      HPOINTER    ; (* icon    for tree node         *)
  19585.             cyLineSpacing:      LONG        ; (* space between two rows        *)
  19586.             cxTreeIndent:       LONG        ; (* indent for children           *)
  19587.             cxTreeLine:         LONG        ; (* thickness of the Tree Line    *)
  19588.             cFields:            ULONG       ; (* number of fields  in container*)
  19589.             xVertSplitbar:      LONG        ; (* position relative to the      *)
  19590.             (*                                    container (CV_DETAIL); if   *)
  19591.             (*                                    0FFFF then unsplit         *)
  19592.       END;
  19593.       TYPE PCNRINFO = POINTER TO CNRINFO;
  19594.  
  19595.       TYPE CDATE = RECORD    (* cdate *)
  19596.             day:   UCHAR   ; (* current day               *)
  19597.             month: UCHAR   ; (* current month             *)
  19598.             year:  USHORT  ; (* current year              *)
  19599.       END;
  19600.       TYPE PCDATE = POINTER TO CDATE;
  19601.  
  19602.       TYPE CTIME = RECORD    (* ctime *)
  19603.             hours:       UCHAR   ; (* current hour              *)
  19604.             minutes:     UCHAR   ; (* current minute            *)
  19605.             seconds:     UCHAR   ; (* current second            *)
  19606.             ucReserved:  UCHAR   ; (* reserved                  *)
  19607.       END;
  19608.       TYPE PCTIME = POINTER TO CTIME;
  19609.  
  19610.       (**********************************************************************)
  19611.       (* attribute and type values for flData and flTitle members of        *)
  19612.       (* FIELDINFO, CFA_ (attributes), CFT_ (types)                         *)
  19613.       (**********************************************************************)
  19614.       CONST CFA_LEFT          =  000000001H;(* left align text            *)
  19615.       CONST CFA_RIGHT         =  000000002H;(* right align text           *)
  19616.       CONST CFA_CENTER        =  000000004H;(* center text                *)
  19617.       CONST CFA_TOP           =  000000008H;(* top-align text             *)
  19618.       CONST CFA_VCENTER       =  000000010H;(* vertically center text     *)
  19619.       CONST CFA_BOTTOM        =  000000020H;(* bottom-align text          *)
  19620.       CONST CFA_INVISIBLE     =  000000040H;(* Specify invisible column.  *)
  19621.       CONST CFA_BITMAPORICON  =  000000100H;(* field title is bitmap      *)
  19622.       CONST CFA_SEPARATOR     =  000000200H;(* vert sep, right of fld     *)
  19623.       CONST CFA_HORZSEPARATOR =  000000400H;(* horz sep, bottom of fld    *)
  19624.  
  19625.       CONST CFA_STRING         = 000000800H;(* string of characters       *)
  19626.       CONST CFA_OWNER          = 000001000H;(* ownerdraw field            *)
  19627.       CONST CFA_DATE           = 000002000H;(* date structure             *)
  19628.       CONST CFA_TIME           = 000004000H;(* time structure             *)
  19629.       CONST CFA_FIREADONLY     = 000008000H;(* Column is read-only.       *)
  19630.       CONST CFA_FITITLEREADONLY= 000010000H;(* Column Title is read-only  *)
  19631.       CONST CFA_ULONG          = 000020000H;(* Column is number format    *)
  19632.  
  19633.       (**********************************************************************)
  19634.       (* attribute values for flRecordAttr member of RECORDCORE             *)
  19635.       (**********************************************************************)
  19636.       CONST CRA_SELECTED       = 000000001H;(* record is selected         *)
  19637.       CONST CRA_TARGET         = 000000002H;(* record has target emphasis *)
  19638.       CONST CRA_CURSORED       = 000000004H;(* cursor is on the record    *)
  19639.       CONST CRA_INUSE          = 000000008H;(* record has in-use emphasis *)
  19640.       CONST CRA_FILTERED       = 000000010H;(* record has been filtered   *)
  19641.       CONST CRA_DROPONABLE     = 000000020H;(* record can be dropped on   *)
  19642.       CONST CRA_RECORDREADONLY = 000000040H;(* record is read-only        *)
  19643.       CONST CRA_EXPANDED       = 000000080H;(* record is expanded         *)
  19644.       CONST CRA_COLLAPSED      = 000000100H;(* record is collapsed        *)
  19645.  
  19646.       (**********************************************************************)
  19647.       (* Container messages                                                 *)
  19648.       (**********************************************************************)
  19649.       CONST CM_ALLOCDETAILFIELDINFO      = 00330H;
  19650.       CONST CM_ALLOCRECORD               = 00331H;
  19651.       CONST CM_ARRANGE                   = 00332H;
  19652.       CONST CM_ERASERECORD               = 00333H;
  19653.       CONST CM_FILTER                    = 00334H;
  19654.       CONST CM_FREEDETAILFIELDINFO       = 00335H;
  19655.       CONST CM_FREERECORD                = 00336H;
  19656.       CONST CM_HORZSCROLLSPLITWINDOW     = 00337H;
  19657.       CONST CM_INSERTDETAILFIELDINFO     = 00338H;
  19658.       CONST CM_INSERTRECORD              = 00339H;
  19659.       CONST CM_INVALIDATEDETAILFIELDINFO = 0033aH;
  19660.       CONST CM_INVALIDATERECORD          = 0033bH;
  19661.       CONST CM_PAINTBACKGROUND           = 0033cH;
  19662.       CONST CM_QUERYCNRINFO              = 0033dH;
  19663.       CONST CM_QUERYDETAILFIELDINFO      = 0033eH;
  19664.       CONST CM_QUERYDRAGIMAGE            = 0033fH;
  19665.       CONST CM_QUERYRECORD               = 00340H;
  19666.       CONST CM_QUERYRECORDEMPHASIS       = 00341H;
  19667.       CONST CM_QUERYRECORDFROMRECT       = 00342H;
  19668.       CONST CM_QUERYRECORDRECT           = 00343H;
  19669.       CONST CM_QUERYVIEWPORTRECT         = 00344H;
  19670.       CONST CM_REMOVEDETAILFIELDINFO     = 00345H;
  19671.       CONST CM_REMOVERECORD              = 00346H;
  19672.       CONST CM_SCROLLWINDOW              = 00347H;
  19673.       CONST CM_SEARCHSTRING              = 00348H;
  19674.       CONST CM_SETCNRINFO                = 00349H;
  19675.       CONST CM_SETRECORDEMPHASIS         = 0034aH;
  19676.       CONST CM_SORTRECORD                = 0034bH;
  19677.       CONST CM_OPENEDIT                  = 0034cH;
  19678.       CONST CM_CLOSEEDIT                 = 0034dH;
  19679.       CONST CM_COLLAPSETREE              = 0034eH;
  19680.       CONST CM_EXPANDTREE                = 0034fH;
  19681.       CONST CM_QUERYRECORDINFO           = 00350H;
  19682.  
  19683.       (**********************************************************************)
  19684.       (* Container notifications                                            *)
  19685.       (**********************************************************************)
  19686.       CONST CN_DRAGAFTER                 = 101;
  19687.       CONST CN_DRAGLEAVE                 = 102;
  19688.       CONST CN_DRAGOVER                  = 103;
  19689.       CONST CN_DROP                      = 104;
  19690.       CONST CN_DROPHELP                  = 105;
  19691.       CONST CN_ENTER                     = 106;
  19692.       CONST CN_INITDRAG                  = 107;
  19693.       CONST CN_EMPHASIS                  = 108;
  19694.       CONST CN_KILLFOCUS                 = 109;
  19695.       CONST CN_SCROLL                    = 110;
  19696.       CONST CN_QUERYDELTA                = 111;
  19697.       CONST CN_SETFOCUS                  = 112;
  19698.       CONST CN_REALLOCPSZ                = 113;
  19699.       CONST CN_BEGINEDIT                 = 114;
  19700.       CONST CN_ENDEDIT                   = 115;
  19701.       CONST CN_COLLAPSETREE              = 116;
  19702.       CONST CN_EXPANDTREE                = 117;
  19703.       CONST CN_HELP                      = 118;
  19704.       CONST CN_CONTEXTMENU               = 119;
  19705.  
  19706.       (**********************************************************************)
  19707.       (*   Data Structures for Message Parameters                           *)
  19708.       (**********************************************************************)
  19709.  
  19710.       (**********************************************************************)
  19711.       (* Container Direct Manipulation structures                           *)
  19712.       (**********************************************************************)
  19713.       TYPE CNRDRAGINIT = RECORD    (* cdrginit *)
  19714.             hwndCnr:     HWND        ; (* Container window handle   *)
  19715.             pRecord:     PRECORDCORE ; (* record under mouse ptr    *)
  19716.             x:           LONG        ; (* x coordinate of mouse ptr *)
  19717.             y:           LONG        ; (* y coordinate of mouse ptr *)
  19718.             cx:          LONG        ; (* x offset from record      *)
  19719.             cy:          LONG        ; (* y offset from record      *)
  19720.       END;
  19721.       TYPE PCNRDRAGINIT = POINTER TO CNRDRAGINIT;
  19722.  
  19723.       (**********************************************************************)
  19724.       (* Data structure for CM_INSERTDETAILFIELDINFO                        *)
  19725.       (* This structure is used by the application to specify the position  *)
  19726.       (* of the FieldInfo structures they are inserting.                    *)
  19727.       (**********************************************************************)
  19728.       TYPE FIELDINFOINSERT = RECORD    (* fiins *)
  19729.             cb:                   ULONG       ; (* Size of structure.             *)
  19730.             pFieldInfoOrder:      PFIELDINFO  ; (* Specifies the order of the     *)
  19731.             (*                                     FieldInfo structures.          *)
  19732.             fInvalidateFieldInfo: ULONG       ; (* Invalidate on Insert.          *)
  19733.             cFieldInfoInsert:     ULONG       ; (* The number of FieldInfo        *)
  19734.             (*                                     structures to insert.          *)
  19735.       END;
  19736.       TYPE PFIELDINFOINSERT = POINTER TO FIELDINFOINSERT;
  19737.  
  19738.       (**********************************************************************)
  19739.       (* Data structure for CM_INSERTRECORD                                 *)
  19740.       (**********************************************************************)
  19741.       TYPE RECORDINSERT = RECORD    (* recins *)
  19742.             cb:                     ULONG;
  19743.             pRecordOrder:           PRECORDCORE;
  19744.             pRecordParent:          PRECORDCORE;
  19745.             fInvalidateRecord:      ULONG;
  19746.             zOrder:                 ULONG;
  19747.             cRecordsInsert:         ULONG;
  19748.       END;
  19749.       TYPE PRECORDINSERT = POINTER TO RECORDINSERT;
  19750.  
  19751.       (**********************************************************************)
  19752.       (* Data structure for CM_QUERYRECORDFROMRECT                          *)
  19753.       (**********************************************************************)
  19754.       TYPE QUERYRECFROMRECT = RECORD    (* qrecfrct *)
  19755.             cb:       ULONG;
  19756.             rect:     RECTL;
  19757.             fsSearch: ULONG;
  19758.       END;
  19759.       TYPE PQUERYRECFROMRECT = POINTER TO QUERYRECFROMRECT;
  19760.  
  19761.       (**********************************************************************)
  19762.       (* Data structure for CM_QUERYRECORDRECT                              *)
  19763.       (**********************************************************************)
  19764.       TYPE QUERYRECORDRECT = RECORD    (* qrecrct *)
  19765.             cb:                   ULONG;
  19766.             pRecord:              PRECORDCORE;
  19767.             fRightSplitWindow:    ULONG;
  19768.             fsExtent:             ULONG;
  19769.       END;
  19770.       TYPE PQUERYRECORDRECT = POINTER TO QUERYRECORDRECT;
  19771.  
  19772.       (**********************************************************************)
  19773.       (* Data structure for CM_SEARCHSTRING                                 *)
  19774.       (**********************************************************************)
  19775.       TYPE SEARCHSTRING = RECORD    (* srchstr *)
  19776.             cb:                ULONG;
  19777.             pszSearch:         PSZ;
  19778.             fsPrefix:          ULONG;
  19779.             fsCaseSensitive:   ULONG;
  19780.             usView:            ULONG;
  19781.       END;
  19782.       TYPE PSEARCHSTRING = POINTER TO SEARCHSTRING;
  19783.  
  19784.    <* IF DEFINED (INCL_WINSTDDRAG)  THEN *>
  19785.             (*******************************************************************)
  19786.             (* Data Structure for CN_DRAGLEAVE,CN_DRAGOVER,CN_DROP,CN_DROPHELP *)
  19787.             (*******************************************************************)
  19788.             TYPE CNRDRAGINFO = RECORD    (* cdrginfo *)
  19789.                   pDragInfo: PDRAGINFO;
  19790.                   pRecord:   PRECORDCORE;
  19791.             END;
  19792.             TYPE PCNRDRAGINFO = POINTER TO CNRDRAGINFO;
  19793.    <* END *>
  19794.  
  19795.       (**********************************************************************)
  19796.       (* Data structure for CN_EMPHASIS                                     *)
  19797.       (**********************************************************************)
  19798.       TYPE NOTIFYRECORDEMPHASIS = RECORD    (* nrecemph *)
  19799.             hwndCnr:          HWND;
  19800.             pRecord:          PRECORDCORE;
  19801.             fEmphasisMask:    ULONG;
  19802.       END;
  19803.       TYPE PNOTIFYRECORDEMPHASIS = POINTER TO NOTIFYRECORDEMPHASIS;
  19804.  
  19805.       (**********************************************************************)
  19806.       (* Data structure for CN_ENTER                                        *)
  19807.       (**********************************************************************)
  19808.       TYPE NOTIFYRECORDENTER = RECORD    (* notrecen *)
  19809.             hwndCnr:       HWND;
  19810.             fKey:          ULONG;
  19811.             pRecord:       PRECORDCORE;
  19812.       END;
  19813.       TYPE PNOTIFYRECORDENTER = POINTER TO NOTIFYRECORDENTER;
  19814.  
  19815.       (**********************************************************************)
  19816.       (* Data structure for CN_QUERYDELTA                                   *)
  19817.       (**********************************************************************)
  19818.       TYPE NOTIFYDELTA = RECORD    (* notdlt *)
  19819.             hwndCnr: HWND;
  19820.             fDelta:  ULONG;
  19821.       END;
  19822.       TYPE PNOTIFYDELTA = POINTER TO NOTIFYDELTA;
  19823.  
  19824.       (**********************************************************************)
  19825.       (* Data structure for CN_SCROLL                                       *)
  19826.       (**********************************************************************)
  19827.       TYPE NOTIFYSCROLL = RECORD    (* notscr *)
  19828.             hwndCnr:      HWND;
  19829.             lScrollInc:   LONG;
  19830.             fScroll:      ULONG;
  19831.       END;
  19832.       TYPE PNOTIFYSCROLL = POINTER TO NOTIFYSCROLL;
  19833.  
  19834.       (**********************************************************************)
  19835.       (* Data structure for CN_REALLOCPSZ                                   *)
  19836.       (**********************************************************************)
  19837.       TYPE CNREDITDATA = RECORD    (* cnredat *)
  19838.             cb:           ULONG;
  19839.             hwndCnr:      HWND;
  19840.             pRecord:      PRECORDCORE;
  19841.             pFieldInfo:   PFIELDINFO;
  19842.             ppszText:     POINTER TO PSZ; (*  address of PSZ        *)
  19843.             cbText:       ULONG        ;  (* size of the new text  *)
  19844.             id:           ULONG;
  19845.       END;
  19846.       TYPE PCNREDITDATA = POINTER TO CNREDITDATA;
  19847.  
  19848.       (**********************************************************************)
  19849.       (* Data structure for CM_PAINTBACKGROUND                              *)
  19850.       (**********************************************************************)
  19851.       TYPE OWNERBACKGROUND = RECORD    (* ownbckg *)
  19852.             hwnd:            HWND;
  19853.             hps:             HPS;
  19854.             rclBackground:   RECTL;
  19855.             idWindow:        LONG;
  19856.       END;
  19857.       TYPE POWNERBACKGROUND = POINTER TO OWNERBACKGROUND;
  19858.  
  19859.       (**********************************************************************)
  19860.       (* Data structure used as part of WM_DRAWITEM                         *)
  19861.       (**********************************************************************)
  19862.       TYPE CNRDRAWITEMINFO = RECORD    (* cnrdrwii *)
  19863.             pRecord:    PRECORDCORE;
  19864.             pFieldInfo: PFIELDINFO;
  19865.       END;
  19866.       TYPE PCNRDRAWITEMINFO = POINTER TO CNRDRAWITEMINFO;
  19867.  
  19868.       (**********************************************************************)
  19869.       (* Message parameter flags                                            *)
  19870.       (**********************************************************************)
  19871.       CONST CMA_TOP            =  00001H;     (* Place at top of zorder   *)
  19872.       CONST CMA_BOTTOM         =  00002H;     (* Place at bottom of zorder*)
  19873.       CONST CMA_LEFT           =  00004H;
  19874.       CONST CMA_RIGHT          =  00008H;
  19875.  
  19876.       CONST CMA_FIRST          =  00010H;     (* Add record as first      *)
  19877.       CONST CMA_LAST           =  00020H;
  19878.       CONST CMA_END            =  00040H;     (* Add record to end of list*)
  19879.       CONST CMA_PREV           =  00080H;
  19880.       CONST CMA_NEXT           =  00100H;
  19881.  
  19882.       CONST CMA_HORIZONTAL     =  00200H;
  19883.       CONST CMA_VERTICAL       =  00400H;
  19884.       CONST CMA_ICON           =  00800H;
  19885.       CONST CMA_TEXT           =  01000H;
  19886.       CONST CMA_PARTIAL        =  02000H;
  19887.       CONST CMA_COMPLETE       =  04000H;
  19888.  
  19889.       CONST CMA_PARENT         =  00001H;
  19890.       CONST CMA_FIRSTCHILD     =  00002H;
  19891.       CONST CMA_LASTCHILD      =  00004H;
  19892.  
  19893.       CONST CMA_CNRTITLE       =  00001H;     (* Container title          *)
  19894.       CONST CMA_DELTA          =  00002H;     (* Application defined      *)
  19895.       CONST CMA_FLWINDOWATTR   =  00004H;     (* Container attributes     *)
  19896.       CONST CMA_LINESPACING    =  00008H;
  19897.       CONST CMA_PFIELDINFOLAST =  00010H;     (* Ptr to last column in    *)
  19898.  
  19899.       CONST CMA_PSORTRECORD    =  00020H;     (* Pointer to sort function *)
  19900.       CONST CMA_PTLORIGIN      =  00040H;     (* Lower left origin        *)
  19901.       CONST CMA_SLBITMAPORICON =  00080H;     (* Size  of bitmap          *)
  19902.       CONST CMA_XVERTSPLITBAR  =  00100H;     (* Splitbar position        *)
  19903.       CONST CMA_PFIELDINFOOBJECT= 00200H;     (* Pointer to IN-USE        *)
  19904.       (*                                             emphasis column.       *)
  19905.  
  19906.       CONST CMA_TREEICON          = 00400H;   (* Icon for tree node      *)
  19907.       CONST CMA_TREEBITMAP        = 00800H;   (* bitmap for tree node    *)
  19908.       CONST CMA_CXTREEINDENT      = 01000H;   (* indent for children     *)
  19909.       CONST CMA_CXTREELINE        = 02000H;   (* thickness of tree line  *)
  19910.       CONST CMA_SLTREEBITMAPORICON= 04000H;   (* size of icon of tree node *)
  19911.  
  19912.       CONST CMA_ITEMORDER       = 00001H;     (* QueryRecord search flags *)
  19913.       CONST CMA_WINDOW          = 00002H;
  19914.       CONST CMA_WORKSPACE       = 00004H;
  19915.       CONST CMA_ZORDER          = 00008H;
  19916.  
  19917.       CONST CMA_DELTATOP        = 00001H;     (* Industrial - top delta   *)
  19918.       CONST CMA_DELTABOT        = 00002H;     (* Industrial - bottom delta*)
  19919.       CONST CMA_DELTAHOME       = 00004H;     (* Industrial - top of list *)
  19920.       CONST CMA_DELTAEND        = 00008H;     (* Industrial - end of list *)
  19921.  
  19922.       CONST CMA_NOREPOSITION    = 00001H;     (* InvalidateRecord flags   *)
  19923.       CONST CMA_REPOSITION      = 00002H;
  19924.       CONST CMA_TEXTCHANGED     = 00004H;
  19925.       CONST CMA_ERASE           = 00008H;
  19926.  
  19927.       CONST CMA_FREE            = 00001H;
  19928.       CONST CMA_INVALIDATE      = 00002H;
  19929.  
  19930. <* END *>
  19931.  
  19932.  
  19933. <* IF NOT (DEFINED (INCL_WINSTDSLIDER_INCLUDED) & DEFINED (INCL_WINSTDSLIDER) ) THEN *>
  19934.    <* NEW INCL_WINSTDSLIDER_INCLUDED + *>
  19935.       (**********************************************************************)
  19936.       (*                                                                    *)
  19937.       (*                            S L I D E R                             *)
  19938.       (*                                                                    *)
  19939.       (**********************************************************************)
  19940.  
  19941.       (**********************************************************************)
  19942.       (* Define messages for the slider control                             *)
  19943.       (**********************************************************************)
  19944.       CONST SLM_ADDDETENT         = 00369H;  (* Add detent niche          *)
  19945.       CONST SLM_QUERYDETENTPOS    = 0036aH;  (* Query position of detent  *)
  19946.       CONST SLM_QUERYSCALETEXT    = 0036bH;  (* Query text at tick number *)
  19947.       CONST SLM_QUERYSLIDERINFO   = 0036cH;  (* Query slider information  *)
  19948.       CONST SLM_QUERYTICKPOS      = 0036dH;  (* Query position of tick    *)
  19949.       CONST SLM_QUERYTICKSIZE     = 0036eH;  (* Query size of tick        *)
  19950.       CONST SLM_REMOVEDETENT      = 0036fH;  (* Remove detent niche       *)
  19951.       CONST SLM_SETSCALETEXT      = 00370H;  (* Set text above tick       *)
  19952.       CONST SLM_SETSLIDERINFO     = 00371H;  (* Set slider parameters     *)
  19953.       CONST SLM_SETTICKSIZE       = 00372H;  (* Set size of tick          *)
  19954.       CONST SLN_CHANGE            = 1;        (* Slider position changed   *)
  19955.       CONST SLN_SLIDERTRACK       = 2;        (* Slider dragged by user    *)
  19956.       CONST SLN_SETFOCUS          = 3;        (* Slider gaining focus      *)
  19957.       CONST SLN_KILLFOCUS         = 4;        (* Slider losing focus       *)
  19958.  
  19959.       (**********************************************************************)
  19960.       (* Slider control data structure                                      *)
  19961.       (**********************************************************************)
  19962.       TYPE SLDCDATA = RECORD    (* sldcd *)
  19963.             cbSize:                 ULONG   ; (* Size of control block             *)
  19964.             usScale1Increments:     USHORT  ; (* # of divisions on scale           *)
  19965.             usScale1Spacing:        USHORT  ; (* Space in pels between increments  *)
  19966.             usScale2Increments:     USHORT  ; (* # of divisions on scale           *)
  19967.             usScale2Spacing:        USHORT  ; (* Space in pels between increments  *)
  19968.       END;
  19969.       TYPE PSLDCDATA = POINTER TO SLDCDATA;
  19970.  
  19971.       (**********************************************************************)
  19972.       (* Slider control style flag definition                               *)
  19973.       (**********************************************************************)
  19974.       CONST SLS_HORIZONTAL      = 000000000H;(* Orient slider horizontally*)
  19975.       CONST SLS_VERTICAL        = 000000001H;(* Orient slider vertically  *)
  19976.       CONST SLS_CENTER          = 000000000H;(* Center shaft in window    *)
  19977.       CONST SLS_BOTTOM          = 000000002H;(* Offset shaft to bottom (H)*)
  19978.       CONST SLS_TOP             = 000000004H;(* Offset shaft to top (H)   *)
  19979.       CONST SLS_LEFT            = 000000002H;(* Offset shaft to left (V)  *)
  19980.       CONST SLS_RIGHT           = 000000004H;(* Offset shaft to right (V) *)
  19981.       CONST SLS_SNAPTOINCREMENT = 000000008H;(* Snap to nearest increment *)
  19982.       CONST SLS_BUTTONSBOTTOM   = 000000010H;(* Add buttons at shaft bot. *)
  19983.       CONST SLS_BUTTONSTOP      = 000000020H;(* Add buttons at shaft top  *)
  19984.       CONST SLS_BUTTONSLEFT     = 000000010H;(* Add buttons left of shaft *)
  19985.       CONST SLS_BUTTONSRIGHT    = 000000020H;(* Add buttons right of shaft*)
  19986.       CONST SLS_OWNERDRAW       = 000000040H;(* Owner draw some fields    *)
  19987.       CONST SLS_READONLY        = 000000080H;(* Provide a read only slider*)
  19988.       CONST SLS_RIBBONSTRIP     = 000000100H;(* Provide a ribbon strip    *)
  19989.       CONST SLS_HOMEBOTTOM      = 000000000H;(* Set home position at bot. *)
  19990.       CONST SLS_HOMETOP         = 000000200H;(* Set home position at top  *)
  19991.       CONST SLS_HOMELEFT        = 000000000H;(* Set home position at left *)
  19992.       CONST SLS_HOMERIGHT       = 000000200H;(* Set home position at right*)
  19993.       CONST SLS_PRIMARYSCALE1   = 000000000H;(* Scale 1 is primary scale  *)
  19994.       CONST SLS_PRIMARYSCALE2   = 000000400H;(* Scale 2 is primary scale  *)
  19995.  
  19996.       (**********************************************************************)
  19997.       (* Message attributes for setting and querying slider components      *)
  19998.       (**********************************************************************)
  19999.       CONST SMA_SCALE1              = 00001H;
  20000.       CONST SMA_SCALE2              = 00002H;
  20001.       CONST SMA_SHAFTDIMENSIONS     = 00000H;
  20002.       CONST SMA_SHAFTPOSITION       = 00001H;
  20003.       CONST SMA_SLIDERARMDIMENSIONS = 00002H;
  20004.       CONST SMA_SLIDERARMPOSITION   = 00003H;
  20005.       CONST SMA_RANGEVALUE          = 00000H;
  20006.       CONST SMA_INCREMENTVALUE      = 00001H;
  20007.       CONST SMA_SETALLTICKS         = 0FFFFH;
  20008.  
  20009.       (**********************************************************************)
  20010.       (* Ownerdraw flag definitions                                         *)
  20011.       (**********************************************************************)
  20012.       CONST SDA_RIBBONSTRIP         = 00001H;
  20013.       CONST SDA_SLIDERSHAFT         = 00002H;
  20014.       CONST SDA_BACKGROUND          = 00003H;
  20015.       CONST SDA_SLIDERARM           = 00004H;
  20016.  
  20017.       (**********************************************************************)
  20018.       (* Error return codes                                                 *)
  20019.       (**********************************************************************)
  20020.       CONST PMERR_UPDATE_IN_PROGRESS   =     01f06H;
  20021.       CONST SLDERR_INVALID_PARAMETERS  =   -1;
  20022.  
  20023. <* END *>
  20024.  
  20025.  
  20026. <* IF NOT (DEFINED (INCL_WINSTDVALSET_INCLUDED) & DEFINED (INCL_WINSTDVALSET) ) THEN *>
  20027.    <* NEW INCL_WINSTDVALSET_INCLUDED + *>
  20028.       (**********************************************************************)
  20029.       (*                                                                    *)
  20030.       (*                         V A L U E   S E T                          *)
  20031.       (*                                                                    *)
  20032.       (**********************************************************************)
  20033.  
  20034.       (**********************************************************************)
  20035.       (* Define messages for the value set control                          *)
  20036.       (**********************************************************************)
  20037.       CONST VM_QUERYITEM          = 00375H;  (* Query item at location    *)
  20038.       CONST VM_QUERYITEMATTR      = 00376H;  (* Query item attributes     *)
  20039.       CONST VM_QUERYMETRICS       = 00377H;  (* Query metrics of control  *)
  20040.       CONST VM_QUERYSELECTEDITEM  = 00378H;  (* Query selected item       *)
  20041.       CONST VM_SELECTITEM         = 00379H;  (* Set selected item         *)
  20042.       CONST VM_SETITEM            = 0037aH;  (* Set item at location      *)
  20043.       CONST VM_SETITEMATTR        = 0037bH;  (* Set item attributes       *)
  20044.       CONST VM_SETMETRICS         = 0037cH;  (* Set metrics of control    *)
  20045.  
  20046.       CONST VN_SELECT             = 120;      (* Item selected by user     *)
  20047.       CONST VN_ENTER              = 121;      (* Item entered by user      *)
  20048.       CONST VN_DRAGLEAVE          = 122;      (* Drag left control         *)
  20049.       CONST VN_DRAGOVER           = 123;      (* Drag is over item         *)
  20050.       CONST VN_DROP               = 124;      (* Drop occurred on item     *)
  20051.       CONST VN_DROPHELP           = 125;      (* Request help for drop     *)
  20052.       CONST VN_INITDRAG           = 126;      (* Drag initiated on item    *)
  20053.       CONST VN_SETFOCUS           = 127;      (* Value set gaining focus   *)
  20054.       CONST VN_KILLFOCUS          = 128;      (* Value set losing focus    *)
  20055.       CONST VN_HELP               = 129;      (* Help requested by user    *)
  20056.  
  20057.       (**********************************************************************)
  20058.       (* Value set control data structure                                   *)
  20059.       (**********************************************************************)
  20060.       TYPE VSCDATA = RECORD    (* vscd *)
  20061.             cbSize:             ULONG   ; (* Size of control block             *)
  20062.             usRowCount:         USHORT  ; (* Number of rows in value set       *)
  20063.             usColumnCount:      USHORT  ; (* Number of columns in value set    *)
  20064.       END;
  20065.       TYPE PVSCDATA = POINTER TO VSCDATA;
  20066.  
  20067.       (**********************************************************************)
  20068.       (* Value set drag initialization structure                            *)
  20069.       (**********************************************************************)
  20070.       TYPE VSDRAGINIT = RECORD    (* vsdinit *)
  20071.             hwnd:          HWND    ; (* Window handle of value set control*)
  20072.             x:             LONG    ; (* X coordinate of pointer on desktop*)
  20073.             y:             LONG    ; (* Y coordinate of pointer on desktop*)
  20074.             cx:            LONG    ; (* X offset from pointer hot spot    *)
  20075.             cy:            LONG    ; (* Y offset from pointer hot spot    *)
  20076.             usRow:         USHORT  ; (* Number of rows in value set       *)
  20077.             usColumn:      USHORT  ; (* Number of columns in value set    *)
  20078.       END;
  20079.       TYPE PVSDRAGINIT = POINTER TO VSDRAGINIT;
  20080.  
  20081.    <* IF DEFINED (INCL_WINSTDDRAG)  THEN *>
  20082.             (*******************************************************************)
  20083.             (* Value set drag information structure                            *)
  20084.             (*******************************************************************)
  20085.             TYPE VSDRAGINFO = RECORD    (* vsdinfo *)
  20086.                   pDragInfo:    PDRAGINFO ; (* Pointer to a drag info structure *)
  20087.                   usRow:        USHORT    ; (* Number of rows in value set      *)
  20088.                   usColumn:     USHORT    ; (* Number of columns in value set   *)
  20089.             END;
  20090.             TYPE PVSDRAGINFO = POINTER TO VSDRAGINFO;
  20091.    <* END *>
  20092.  
  20093.       (**********************************************************************)
  20094.       (* Value set query item text structure                                *)
  20095.       (**********************************************************************)
  20096.       TYPE VSTEXT = RECORD    (* vstext *)
  20097.             pszItemText: PSZ       ; (* Pointer to string for item text      *)
  20098.             ulBufLen:    ULONG     ; (* Length of buffer to copy string into *)
  20099.       END;
  20100.       TYPE PVSTEXT = POINTER TO VSTEXT;
  20101.  
  20102.       (**********************************************************************)
  20103.       (* Value set control style flag definition                            *)
  20104.       (**********************************************************************)
  20105.       CONST VS_BITMAP      = 00001H; (* Default all items to bitmaps      *)
  20106.       CONST VS_ICON        = 00002H; (* Default all items to icons        *)
  20107.       CONST VS_TEXT        = 00004H; (* Default all items to text strings *)
  20108.       CONST VS_RGB         = 00008H; (* Default all items to color info   *)
  20109.       CONST VS_COLORINDEX  = 00010H; (* Default all items to color indices*)
  20110.       CONST VS_BORDER      = 00020H; (* Add a border around the control   *)
  20111.       CONST VS_ITEMBORDER  = 00040H; (* Add a border around each item     *)
  20112.       CONST VS_SCALEBITMAPS= 00080H; (* Scale bitmaps to cell size        *)
  20113.       CONST VS_RIGHTTOLEFT = 00100H; (* Support right to left ordering    *)
  20114.       CONST VS_OWNERDRAW   = 00200H; (* Owner draws value set background  *)
  20115.  
  20116.       (**********************************************************************)
  20117.       (* Value set item attribute definition                                *)
  20118.       (**********************************************************************)
  20119.       CONST VIA_BITMAP      = 00001H;(* If set, item contains a bitmap    *)
  20120.       CONST VIA_ICON        = 00002H;(* If set, item contains an icon     *)
  20121.       CONST VIA_TEXT        = 00004H;(* If set, item contains text string *)
  20122.       CONST VIA_RGB         = 00008H;(* If set, item contains color value *)
  20123.       CONST VIA_COLORINDEX  = 00010H;(* If set, item contains color index *)
  20124.       CONST VIA_OWNERDRAW   = 00020H;(* If set, item is ownerdraw         *)
  20125.       CONST VIA_DISABLED    = 00040H;(* If set, item is unselectable      *)
  20126.       CONST VIA_DRAGGABLE   = 00080H;(* If set, item can be source of drag*)
  20127.       CONST VIA_DROPONABLE  = 00100H;(* If set, item can be target of drop*)
  20128.  
  20129.       (**********************************************************************)
  20130.       (* Message parameter attributes for sizing and spacing of items       *)
  20131.       (**********************************************************************)
  20132.       CONST VMA_ITEMSIZE       =      00001H;
  20133.       CONST VMA_ITEMSPACING    =      00002H;
  20134.  
  20135.       (**********************************************************************)
  20136.       (* Ownerdraw flag definitions                                         *)
  20137.       (**********************************************************************)
  20138.       CONST VDA_ITEM              =   00001H;
  20139.       CONST VDA_ITEMBACKGROUND    =   00002H;
  20140.       CONST VDA_SURROUNDING       =   00003H;
  20141.       CONST VDA_BACKGROUND        =   00004H;
  20142.  
  20143.       (**********************************************************************)
  20144.       (* Error return codes                                                 *)
  20145.       (**********************************************************************)
  20146.       CONST VSERR_INVALID_PARAMETERS   = -1;
  20147.  
  20148. <* END *>
  20149.  
  20150.  
  20151. <* IF NOT (DEFINED (INCL_WINSTDBOOK_INCLUDED) & DEFINED (INCL_WINSTDBOOK) ) THEN *>
  20152.    <* NEW INCL_WINSTDBOOK_INCLUDED + *>
  20153.       (**********************************************************************)
  20154.       (*                                                                    *)
  20155.       (*                          N O T E B O O K                           *)
  20156.       (*                                                                    *)
  20157.       (**********************************************************************)
  20158.  
  20159.       (**********************************************************************)
  20160.       (* Message ids                                                        *)
  20161.       (**********************************************************************)
  20162.       CONST BKM_CALCPAGERECT        = 00353H;(* Calc book/page rectangle  *)
  20163.       CONST BKM_DELETEPAGE          = 00354H;(* Delete page(s)            *)
  20164.       CONST BKM_INSERTPAGE          = 00355H;(* Insert page               *)
  20165.       CONST BKM_INVALIDATETABS      = 00356H;(* Invalidate tab area       *)
  20166.       CONST BKM_TURNTOPAGE          = 00357H;(* Turn to page              *)
  20167.       CONST BKM_QUERYPAGECOUNT      = 00358H;(* Query number of pages     *)
  20168.       CONST BKM_QUERYPAGEID         = 00359H;(* Query page identifier     *)
  20169.       CONST BKM_QUERYPAGEDATA       = 0035aH;(* Query page user data      *)
  20170.       CONST BKM_QUERYPAGEWINDOWHWND = 0035bH;(* Query page window handle  *)
  20171.       CONST BKM_QUERYTABBITMAP      = 0035cH;(* Query tab bitmap handle   *)
  20172.       CONST BKM_QUERYTABTEXT        = 0035dH;(* Query tab text pointer    *)
  20173.       CONST BKM_SETDIMENSIONS       = 0035eH;(* Set tab/dogear dimensions *)
  20174.       CONST BKM_SETPAGEDATA         = 0035fH;(* Set page user data        *)
  20175.       CONST BKM_SETPAGEWINDOWHWND   = 00360H;(* Set page window handle    *)
  20176.       CONST BKM_SETSTATUSLINETEXT   = 00361H;(* Set status line text      *)
  20177.       CONST BKM_SETTABBITMAP        = 00362H;(* Set tab bitmap            *)
  20178.       CONST BKM_SETTABTEXT          = 00363H;(* Set tab text              *)
  20179.       CONST BKM_SETNOTEBOOKCOLORS   = 00364H;(* Set Notebook colors       *)
  20180.       CONST BKM_QUERYPAGESTYLE      = 00365H;(* Query page style          *)
  20181.       CONST BKM_QUERYSTATUSLINETEXT = 00366H;(* Query status line text    *)
  20182.  
  20183.       CONST BKN_PAGESELECTED        = 130;    (* New page selected by user *)
  20184.       CONST BKN_NEWPAGESIZE         = 131;    (* App page size changed     *)
  20185.       CONST BKN_HELP                = 132;    (* Help notification         *)
  20186.       CONST BKN_PAGEDELETED         = 133;    (* Page deleted notification *)
  20187.  
  20188.       (**********************************************************************)
  20189.       (* Page deletion flags (usDeleteFlag)                                 *)
  20190.       (**********************************************************************)
  20191.       CONST BKA_ALL                 = 00001H;(* all pages                 *)
  20192.       CONST BKA_SINGLE              = 00002H;(* single page               *)
  20193.       CONST BKA_TAB                 = 00004H;(* minor/major section       *)
  20194.  
  20195.       (**********************************************************************)
  20196.       (* Page insertion/query order (usPageOrder, usQueryOrder)             *)
  20197.       (**********************************************************************)
  20198.       CONST BKA_LAST                = 00002H;(* Insert/Query last page    *)
  20199.       CONST BKA_FIRST               = 00004H;(* Insert/Query first page   *)
  20200.       CONST BKA_NEXT                = 00008H;(* Insert/Query after page   *)
  20201.       CONST BKA_PREV                = 00010H;(* Insert/Query before page  *)
  20202.       CONST BKA_TOP                 = 00020H;(* Query topmost page        *)
  20203.  
  20204.       (**********************************************************************)
  20205.       (* Notebook region types (usBookRegion, usType)                       *)
  20206.       (**********************************************************************)
  20207.       CONST BKA_MAJORTAB            = 00001H;(* Major Tab                 *)
  20208.       CONST BKA_MINORTAB            = 00002H;(* Minor Tab                 *)
  20209.       CONST BKA_PAGEBUTTON          = 00100H;(* Page Turning Button       *)
  20210.  
  20211.       (**********************************************************************)
  20212.       (* Page insertion/query styles (usPageStyle,usQueryEnd)               *)
  20213.       (**********************************************************************)
  20214.       CONST BKA_STATUSTEXTON        = 00001H;(* status area text          *)
  20215.       CONST BKA_MAJOR               = 00040H;(* Major Tab                 *)
  20216.       CONST BKA_MINOR               = 00080H;(* Minor Tab                 *)
  20217.       CONST BKA_AUTOPAGESIZE        = 00100H;(* Page window position/size *)
  20218.       CONST BKA_END                 = 00200H;(* Query to end of book      *)
  20219.  
  20220.       (**********************************************************************)
  20221.       (* Tab window contents (usTabDisplay)                                 *)
  20222.       (**********************************************************************)
  20223.       CONST BKA_TEXT                = 00400H;(* text data                 *)
  20224.       CONST BKA_BITMAP              = 00800H;(* bitmap                    *)
  20225.  
  20226.       (**********************************************************************)
  20227.       (* Notebook window styles (ulNotebookStyles)                          *)
  20228.       (**********************************************************************)
  20229.  
  20230.       (**********************************************************************)
  20231.       (* Backpage Orientation                                               *)
  20232.       (**********************************************************************)
  20233.       CONST BKS_BACKPAGESBR         = 000000001H;(* Bottom right          *)
  20234.       CONST BKS_BACKPAGESBL         = 000000002H;(* Bottom left           *)
  20235.       CONST BKS_BACKPAGESTR         = 000000004H;(* Top right             *)
  20236.       CONST BKS_BACKPAGESTL         = 000000008H;(* Top left              *)
  20237.  
  20238.       (**********************************************************************)
  20239.       (* Major Tab Side                                                     *)
  20240.       (**********************************************************************)
  20241.       CONST BKS_MAJORTABRIGHT       = 000000010H;(* Major tabs right      *)
  20242.       CONST BKS_MAJORTABLEFT        = 000000020H;(* Major tabs left       *)
  20243.       CONST BKS_MAJORTABTOP         = 000000040H;(* Major tabs top        *)
  20244.       CONST BKS_MAJORTABBOTTOM      = 000000080H;(* Major tabs bottom     *)
  20245.  
  20246.       (**********************************************************************)
  20247.       (* Tab Type                                                           *)
  20248.       (**********************************************************************)
  20249.       CONST BKS_SQUARETABS          = 000000000H;(* Square edged tabs     *)
  20250.       CONST BKS_ROUNDEDTABS         = 000000100H;(* Round edged tabs      *)
  20251.       CONST BKS_POLYGONTABS         = 000000200H;(* Polygon edged tabs    *)
  20252.  
  20253.       (**********************************************************************)
  20254.       (* Binding type                                                       *)
  20255.       (**********************************************************************)
  20256.       CONST BKS_SOLIDBIND           = 000000000H;(* Solid binding         *)
  20257.       CONST BKS_SPIRALBIND          = 000000400H;(* Spiral binding        *)
  20258.  
  20259.       (**********************************************************************)
  20260.       (* Status line text justification                                     *)
  20261.       (**********************************************************************)
  20262.       CONST BKS_STATUSTEXTLEFT      = 000000000H;(* Left justify text     *)
  20263.       CONST BKS_STATUSTEXTRIGHT     = 000001000H;(* Right justify text    *)
  20264.       CONST BKS_STATUSTEXTCENTER    = 000002000H;(* Center text           *)
  20265.  
  20266.       (**********************************************************************)
  20267.       (* Tab text justification                                             *)
  20268.       (**********************************************************************)
  20269.       CONST BKS_TABTEXTLEFT         = 000000000H;(* Left justify tab text *)
  20270.       CONST BKS_TABTEXTRIGHT        = 000004000H;(* Right justify tab text*)
  20271.       CONST BKS_TABTEXTCENTER       = 000008000H;(* Center tab text       *)
  20272.  
  20273.       (**********************************************************************)
  20274.       (* Notebook color presentation param attributes                       *)
  20275.       (**********************************************************************)
  20276.       CONST BKA_BACKGROUNDPAGECOLORINDEX = 00001H;(* Page Background       *)
  20277.       CONST BKA_BACKGROUNDPAGECOLOR      = 00002H;
  20278.       CONST BKA_BACKGROUNDMAJORCOLORINDEX= 00003H;(* Major Tab Background  *)
  20279.       CONST BKA_BACKGROUNDMAJORCOLOR     = 00004H;
  20280.       CONST BKA_BACKGROUNDMINORCOLORINDEX= 00005H;(* Minor Tab Background  *)
  20281.       CONST BKA_BACKGROUNDMINORCOLOR     = 00006H;
  20282.       CONST BKA_FOREGROUNDMAJORCOLORINDEX= 00007H;(* Major Tab Text        *)
  20283.       CONST BKA_FOREGROUNDMAJORCOLOR     = 00008H;
  20284.       CONST BKA_FOREGROUNDMINORCOLORINDEX= 00009H;(* Minor Tab Text        *)
  20285.       CONST BKA_FOREGROUNDMINORCOLOR     = 0000AH;
  20286.  
  20287.       (**********************************************************************)
  20288.       (* Error message ids                                                  *)
  20289.       (**********************************************************************)
  20290.       CONST BOOKERR_INVALID_PARAMETERS  = -1; (* Invalid parameters        *)
  20291.  
  20292.       (**********************************************************************)
  20293.       (* BKM_QUERYTABTEXT and BKM_QUERYSTATUSLINETEXT message structure     *)
  20294.       (**********************************************************************)
  20295.       TYPE BOOKTEXT = RECORD    (* booktxt *)
  20296.             pString: PSZ    ; (* ptr to string buffer      *)
  20297.             textLen: ULONG  ; (* length of string to query *)
  20298.       END;
  20299.       TYPE PBOOKTEXT = POINTER TO BOOKTEXT;
  20300.  
  20301.       (**********************************************************************)
  20302.       (* BKN_PAGEDELETED notify message structure                           *)
  20303.       (**********************************************************************)
  20304.       TYPE DELETENOTIFY = RECORD    (* delntfy *)
  20305.             hwndBook:           HWND    ; (* Notebook window handle    *)
  20306.             hwndPage:           HWND    ; (* App. page window handle   *)
  20307.             ulAppPageData:      ULONG   ; (* App. page data            *)
  20308.             hbmTab:             HBITMAP ; (* App. tab bitmap handle    *)
  20309.       END;
  20310.       TYPE PDELETENOTIFY = POINTER TO DELETENOTIFY;
  20311.  
  20312.       (**********************************************************************)
  20313.       (* BKN_PAGESELECTED notify message structure                          *)
  20314.       (**********************************************************************)
  20315.       TYPE PAGESELECTNOTIFY = RECORD    (* pgsntfy *)
  20316.             hwndBook:    HWND    ; (* Notebook window handle    *)
  20317.             ulPageIdCur: ULONG   ; (* Previous top page id      *)
  20318.             ulPageIdNew: ULONG   ; (* New top Page id           *)
  20319.       END;
  20320.       TYPE PPAGESELECTNOTIFY = POINTER TO PAGESELECTNOTIFY;
  20321.  
  20322. <* END *>
  20323.  
  20324. (**************************** end of file **********************************)
  20325.  
  20326. (* ------------- End of file:  .\hm\pmstddlg.hm ------------- *)
  20327.  
  20328.  
  20329. (**************************** end of file **********************************)
  20330.  
  20331. (* ------------- End of file:  .\hm\pm.hm ------------- *)
  20332. <* END *>
  20333.  
  20334. <* END *>
  20335.  
  20336. (* ------------- Include file: .\hm\pmerr.hm ------------- *)
  20337. (****************************** Module Header ******************************\
  20338. *
  20339. * Module Name: PMERR.H
  20340. *
  20341. * This file contains all the public PM error codes.
  20342. *
  20343. * This file has been constructed to bring together all the error codes
  20344. * into one place.
  20345. *
  20346. * Copyright (c) International Business Machines Corporation 1981, 1988-1992
  20347. *
  20348. * ===========================================================================
  20349. *
  20350. * Comments at the end of each typedef line give the name tags used in
  20351. * the assembler include version of this file.
  20352. *
  20353. * The assembler include version of this file excludes lines between XLATOFF
  20354. * and XLATON comments.
  20355. *
  20356. \***************************************************************************)
  20357.  
  20358. <* NEW PMERR_INCLUDED + *>
  20359.  
  20360. (****************************************************************************
  20361. *** Window Manager error codes
  20362. ****************************************************************************)
  20363.  
  20364. <* IF NOT DEFINED (INCL_WINERRORS)  THEN *>
  20365.    <* IF NOT DEFINED (INCL_WINERRORS_INCL)  THEN *>
  20366.  
  20367.       <* NEW INCL_WINERRORS_INCL + *>
  20368.  
  20369.             CONST PMERR_INVALID_HWND                 = 01001H;
  20370.             CONST PMERR_INVALID_HMQ                  = 01002H;
  20371.             CONST PMERR_PARAMETER_OUT_OF_RANGE       = 01003H;
  20372.             CONST PMERR_WINDOW_LOCK_UNDERFLOW        = 01004H;
  20373.             CONST PMERR_WINDOW_LOCK_OVERFLOW         = 01005H;
  20374.             CONST PMERR_BAD_WINDOW_LOCK_COUNT        = 01006H;
  20375.             CONST PMERR_WINDOW_NOT_LOCKED            = 01007H;
  20376.             CONST PMERR_INVALID_SELECTOR             = 01008H;
  20377.             CONST PMERR_CALL_FROM_WRONG_THREAD       = 01009H;
  20378.             CONST PMERR_RESOURCE_NOT_FOUND           = 0100AH;
  20379.             CONST PMERR_INVALID_STRING_PARM          = 0100BH;
  20380.             CONST PMERR_INVALID_HHEAP                = 0100CH;
  20381.             CONST PMERR_INVALID_HEAP_POINTER         = 0100DH;
  20382.             CONST PMERR_INVALID_HEAP_SIZE_PARM       = 0100EH;
  20383.             CONST PMERR_INVALID_HEAP_SIZE            = 0100FH;
  20384.             CONST PMERR_INVALID_HEAP_SIZE_WORD       = 01010H;
  20385.             CONST PMERR_HEAP_OUT_OF_MEMORY           = 01011H;
  20386.             CONST PMERR_HEAP_MAX_SIZE_REACHED        = 01012H;
  20387.             CONST PMERR_INVALID_HATOMTBL             = 01013H;
  20388.             CONST PMERR_INVALID_ATOM                 = 01014H;
  20389.             CONST PMERR_INVALID_ATOM_NAME            = 01015H;
  20390.             CONST PMERR_INVALID_INTEGER_ATOM         = 01016H;
  20391.             CONST PMERR_ATOM_NAME_NOT_FOUND          = 01017H;
  20392.             CONST PMERR_QUEUE_TOO_LARGE              = 01018H;
  20393.             CONST PMERR_INVALID_FLAG                 = 01019H;
  20394.             CONST PMERR_INVALID_HACCEL               = 0101AH;
  20395.             CONST PMERR_INVALID_HPTR                 = 0101BH;
  20396.             CONST PMERR_INVALID_HENUM                = 0101CH;
  20397.             CONST PMERR_INVALID_SRC_CODEPAGE         = 0101DH;
  20398.             CONST PMERR_INVALID_DST_CODEPAGE         = 0101EH;
  20399.  
  20400.             (* These are not real error codes, but just used to access special  *)
  20401.             (* error message strings used by WinGetErrorInfo to format an error *)
  20402.             (* message.                                                         *)
  20403.  
  20404.             CONST PMERR_UNKNOWN_COMPONENT_ID         = 0101fH;
  20405.             CONST PMERR_UNKNOWN_ERROR_CODE           = 01020H;
  20406.             CONST PMERR_SEVERITY_LEVELS              = 01021H;
  20407.  
  20408.             (* 01022 - 01033, 01035, 0104B - 0104C used elsewhere          *)
  20409.             CONST PMERR_INVALID_RESOURCE_FORMAT      = 01034H;
  20410.             CONST WINDBG_WINDOW_UNLOCK_WAIT          = 01035H;
  20411.             CONST PMERR_NO_MSG_QUEUE                 = 01036H;
  20412.             CONST PMERR_WIN_DEBUGMSG                 = 01037H;
  20413.             CONST PMERR_QUEUE_FULL                   = 01038H;
  20414.  
  20415.             CONST PMERR_LIBRARY_LOAD_FAILED          = 01039H;
  20416.             CONST PMERR_PROCEDURE_LOAD_FAILED        = 0103AH;
  20417.             CONST PMERR_LIBRARY_DELETE_FAILED        = 0103BH;
  20418.             CONST PMERR_PROCEDURE_DELETE_FAILED      = 0103CH;
  20419.             CONST PMERR_ARRAY_TOO_LARGE              = 0103DH;
  20420.             CONST PMERR_ARRAY_TOO_SMALL              = 0103EH;
  20421.             CONST PMERR_DATATYPE_ENTRY_BAD_INDEX     = 0103FH;
  20422.             CONST PMERR_DATATYPE_ENTRY_CTL_BAD       = 01040H;
  20423.             CONST PMERR_DATATYPE_ENTRY_CTL_MISS      = 01041H;
  20424.             CONST PMERR_DATATYPE_ENTRY_INVALID       = 01042H;
  20425.             CONST PMERR_DATATYPE_ENTRY_NOT_NUM       = 01043H;
  20426.             CONST PMERR_DATATYPE_ENTRY_NOT_OFF       = 01044H;
  20427.             CONST PMERR_DATATYPE_INVALID             = 01045H;
  20428.             CONST PMERR_DATATYPE_NOT_UNIQUE          = 01046H;
  20429.             CONST PMERR_DATATYPE_TOO_LONG            = 01047H;
  20430.             CONST PMERR_DATATYPE_TOO_SMALL           = 01048H;
  20431.             CONST PMERR_DIRECTION_INVALID            = 01049H;
  20432.             CONST PMERR_INVALID_HAB                  = 0104AH;
  20433.             CONST PMERR_INVALID_HSTRUCT              = 0104DH;
  20434.             CONST PMERR_LENGTH_TOO_SMALL             = 0104EH;
  20435.             CONST PMERR_MSGID_TOO_SMALL              = 0104FH;
  20436.             CONST PMERR_NO_HANDLE_ALLOC              = 01050H;
  20437.             CONST PMERR_NOT_IN_A_PM_SESSION          = 01051H;
  20438.             CONST PMERR_MSG_QUEUE_ALREADY_EXISTS     = 01052H;
  20439.  
  20440.             CONST PMERR_OLD_RESOURCE                 = 01055H;
  20441.    <* END *>
  20442. <* END *>
  20443.  
  20444. (***********************************************************************
  20445. *
  20446. *            Window Manager error codes
  20447. *
  20448. * 2.) PMSHL error codes
  20449. *
  20450. ***********************************************************************)
  20451.  
  20452. <* IF DEFINED (INCL_SHLERRORS)  THEN *>
  20453.  
  20454.    <* IF NOT DEFINED (INCL_SHLERRORS_INCL)  THEN *>
  20455.             (* XLATOFF *)
  20456.       <* NEW INCL_SHLERRORS_INCL + *>
  20457.             (* XLATON *)
  20458.  
  20459.             CONST PMERR_INVALID_PIB               = 01101H;
  20460.             CONST PMERR_INSUFF_SPACE_TO_ADD       = 01102H;
  20461.             CONST PMERR_INVALID_GROUP_HANDLE      = 01103H;
  20462.             CONST PMERR_DUPLICATE_TITLE           = 01104H;
  20463.             CONST PMERR_INVALID_TITLE             = 01105H;
  20464.             CONST PMERR_HANDLE_NOT_IN_GROUP       = 01107H;
  20465.             CONST PMERR_INVALID_TARGET_HANDLE     = 01106H;
  20466.             CONST PMERR_INVALID_PATH_STATEMENT    = 01108H;
  20467.             CONST PMERR_NO_PROGRAM_FOUND          = 01109H;
  20468.             CONST PMERR_INVALID_BUFFER_SIZE       = 0110AH;
  20469.             CONST PMERR_BUFFER_TOO_SMALL          = 0110BH;
  20470.             CONST PMERR_PL_INITIALISATION_FAIL    = 0110CH;
  20471.             CONST PMERR_CANT_DESTROY_SYS_GROUP    = 0110DH;
  20472.             CONST PMERR_INVALID_TYPE_CHANGE       = 0110EH;
  20473.             CONST PMERR_INVALID_PROGRAM_HANDLE    = 0110FH;
  20474.  
  20475.             CONST PMERR_NOT_CURRENT_PL_VERSION    = 01110H;
  20476.             CONST PMERR_INVALID_CIRCULAR_REF      = 01111H;
  20477.             CONST PMERR_MEMORY_ALLOCATION_ERR     = 01112H;
  20478.             CONST PMERR_MEMORY_DEALLOCATION_ERR   = 01113H;
  20479.             CONST PMERR_TASK_HEADER_TOO_BIG       = 01114H;
  20480.  
  20481.             CONST PMERR_INVALID_INI_FILE_HANDLE   = 01115H;
  20482.             CONST PMERR_MEMORY_SHARE              = 01116H;
  20483.             CONST PMERR_OPEN_QUEUE                = 01117H;
  20484.             CONST PMERR_CREATE_QUEUE              = 01118H;
  20485.             CONST PMERR_WRITE_QUEUE               = 01119H;
  20486.             CONST PMERR_READ_QUEUE                = 0111AH;
  20487.             CONST PMERR_CALL_NOT_EXECUTED         = 0111BH;
  20488.             CONST PMERR_UNKNOWN_APIPKT            = 0111CH;
  20489.             CONST PMERR_INITHREAD_EXISTS          = 0111DH;
  20490.             CONST PMERR_CREATE_THREAD             = 0111EH;
  20491.             CONST PMERR_NO_HK_PROFILE_INSTALLED   = 0111FH;
  20492.             CONST PMERR_INVALID_DIRECTORY         = 01120H;
  20493.             CONST PMERR_WILDCARD_IN_FILENAME      = 01121H;
  20494.             CONST PMERR_FILENAME_BUFFER_FULL      = 01122H;
  20495.             CONST PMERR_FILENAME_TOO_LONG         = 01123H;
  20496.             CONST PMERR_INI_FILE_IS_SYS_OR_USER   = 01124H;
  20497.             CONST PMERR_BROADCAST_PLMSG           = 01125H;
  20498.             CONST PMERR_190_INIT_DONE             = 01126H;
  20499.             CONST PMERR_HMOD_FOR_PMSHAPI          = 01127H;
  20500.             CONST PMERR_SET_HK_PROFILE            = 01128H;
  20501.             CONST PMERR_API_NOT_ALLOWED           = 01129H;
  20502.             CONST PMERR_INI_STILL_OPEN            = 0112AH;
  20503.  
  20504.             CONST PMERR_PROGDETAILS_NOT_IN_INI    = 0112BH;
  20505.             CONST PMERR_PIBSTRUCT_NOT_IN_INI      = 0112CH;
  20506.             CONST PMERR_INVALID_DISKPROGDETAILS   = 0112DH;
  20507.             CONST PMERR_PROGDETAILS_READ_FAILURE  = 0112EH;
  20508.             CONST PMERR_PROGDETAILS_WRITE_FAILURE = 0112FH;
  20509.             CONST PMERR_PROGDETAILS_QSIZE_FAILURE = 01130H;
  20510.             CONST PMERR_INVALID_PROGDETAILS       = 01131H;
  20511.             CONST PMERR_SHEPROFILEHOOK_NOT_FOUND  = 01132H;
  20512.             CONST PMERR_190PLCONVERTED            = 01133H;
  20513.             CONST PMERR_FAILED_TO_CONVERT_INI_PL  = 01134H;
  20514.             CONST PMERR_PMSHAPI_NOT_INITIALISED   = 01135H;
  20515.             CONST PMERR_INVALID_SHELL_API_HOOK_ID = 01136H;
  20516.  
  20517.             CONST PMERR_DOS_ERROR                 = 01200H;
  20518.  
  20519.             CONST PMERR_NO_SPACE                  = 01201H;
  20520.             CONST PMERR_INVALID_SWITCH_HANDLE     = 01202H;
  20521.             CONST PMERR_NO_HANDLE                 = 01203H;
  20522.             CONST PMERR_INVALID_PROCESS_ID        = 01204H;
  20523.             CONST PMERR_NOT_SHELL                 = 01205H;
  20524.             CONST PMERR_INVALID_WINDOW            = 01206H;
  20525.             CONST PMERR_INVALID_POST_MSG          = 01207H;
  20526.             CONST PMERR_INVALID_PARAMETERS        = 01208H;
  20527.             CONST PMERR_INVALID_PROGRAM_TYPE      = 01209H;
  20528.             CONST PMERR_NOT_EXTENDED_FOCUS        = 0120AH;
  20529.             CONST PMERR_INVALID_SESSION_ID        = 0120BH;
  20530.             CONST PMERR_SMG_INVALID_ICON_FILE     = 0120CH;
  20531.             CONST PMERR_SMG_ICON_NOT_CREATED      = 0120DH;
  20532.             CONST PMERR_SHL_DEBUG                 = 0120EH;
  20533.  
  20534.             CONST PMERR_OPENING_INI_FILE          = 01301H;
  20535.             CONST PMERR_INI_FILE_CORRUPT          = 01302H;
  20536.             CONST PMERR_INVALID_PARM              = 01303H;
  20537.             CONST PMERR_NOT_IN_IDX                = 01304H;
  20538.             CONST PMERR_NO_ENTRIES_IN_GROUP       = 01305H;
  20539.  
  20540.             CONST PMERR_INI_WRITE_FAIL            = 01306H;
  20541.             CONST PMERR_IDX_FULL                  = 01307H;
  20542.             CONST PMERR_INI_PROTECTED             = 01308H;
  20543.             CONST PMERR_MEMORY_ALLOC              = 01309H;
  20544.             CONST PMERR_INI_INIT_ALREADY_DONE     = 0130AH;
  20545.             CONST PMERR_INVALID_INTEGER           = 0130BH;
  20546.             CONST PMERR_INVALID_ASCIIZ            = 0130CH;
  20547.             CONST PMERR_CAN_NOT_CALL_SPOOLER      = 0130DH;
  20548.             CONST PMERR_VALIDATION_REJECTED       = PMERR_CAN_NOT_CALL_SPOOLER;
  20549.  
  20550.             CONST PMERR_WARNING_WINDOW_NOT_KILLED = 01401H;
  20551.             CONST PMERR_ERROR_INVALID_WINDOW      = 01402H;
  20552.             CONST PMERR_ALREADY_INITIALIZED       = 01403H;
  20553.             CONST PMERR_MSG_PROG_NO_MOU           = 01405H;
  20554.             CONST PMERR_MSG_PROG_NON_RECOV        = 01406H;
  20555.             CONST PMERR_WINCONV_INVALID_PATH      = 01407H;
  20556.             CONST PMERR_PI_NOT_INITIALISED        = 01408H;
  20557.             CONST PMERR_PL_NOT_INITIALISED        = 01409H;
  20558.             CONST PMERR_NO_TASK_MANAGER           = 0140AH;
  20559.             CONST PMERR_SAVE_NOT_IN_PROGRESS      = 0140BH;
  20560.             CONST PMERR_NO_STACK_SPACE            = 0140CH;
  20561.             CONST PMERR_INVALID_COLR_FIELD        = 0140dH;
  20562.             CONST PMERR_INVALID_COLR_VALUE        = 0140eH;
  20563.             CONST PMERR_COLR_WRITE                = 0140fH;
  20564.  
  20565.             CONST PMERR_TARGET_FILE_EXISTS        = 01501H;
  20566.             CONST PMERR_SOURCE_SAME_AS_TARGET     = 01502H;
  20567.             CONST PMERR_SOURCE_FILE_NOT_FOUND     = 01503H;
  20568.             CONST PMERR_INVALID_NEW_PATH          = 01504H;
  20569.             CONST PMERR_TARGET_FILE_NOT_FOUND     = 01505H;
  20570.             CONST PMERR_INVALID_DRIVE_NUMBER      = 01506H;
  20571.             CONST PMERR_NAME_TOO_LONG             = 01507H;
  20572.             CONST PMERR_NOT_ENOUGH_ROOM_ON_DISK   = 01508H;
  20573.             CONST PMERR_NOT_ENOUGH_MEM            = 01509H;
  20574.  
  20575.             CONST PMERR_LOG_DRV_DOES_NOT_EXIST    = 0150BH;
  20576.             CONST PMERR_INVALID_DRIVE             = 0150CH;
  20577.             CONST PMERR_ACCESS_DENIED             = 0150DH;
  20578.             CONST PMERR_NO_FIRST_SLASH            = 0150EH;
  20579.             CONST PMERR_READ_ONLY_FILE            = 0150FH;
  20580.             CONST PMERR_GROUP_PROTECTED           = 0151FH;
  20581.             CONST PMERR_INVALID_PROGRAM_CATEGORY  = 0152FH;
  20582.             CONST PMERR_INVALID_APPL              = 01530H;
  20583.             CONST PMERR_CANNOT_START              = 01531H;
  20584.             CONST PMERR_STARTED_IN_BACKGROUND     = 01532H;
  20585.             CONST PMERR_INVALID_HAPP              = 01533H;
  20586.             CONST PMERR_CANNOT_STOP               = 01534H;
  20587.  
  20588.             (**********************************************************************
  20589.             * Errors generated by Language Bindings layer.
  20590.             *
  20591.             * (Range 01600 thru 016FF reserved for Bindings)
  20592.             **********************************************************************)
  20593.  
  20594.             (*** SEVERITY_UNRECOVERABLE ***)
  20595.             CONST PMERR_INTERNAL_ERROR_1          = 01601H;
  20596.             CONST PMERR_INTERNAL_ERROR_2          = 01602H;
  20597.             CONST PMERR_INTERNAL_ERROR_3          = 01603H;
  20598.             CONST PMERR_INTERNAL_ERROR_4          = 01604H;
  20599.             CONST PMERR_INTERNAL_ERROR_5          = 01605H;
  20600.             CONST PMERR_INTERNAL_ERROR_6          = 01606H;
  20601.             CONST PMERR_INTERNAL_ERROR_7          = 01607H;
  20602.             CONST PMERR_INTERNAL_ERROR_8          = 01608H;
  20603.             CONST PMERR_INTERNAL_ERROR_9          = 01609H;
  20604.             CONST PMERR_INTERNAL_ERROR_10         = 0160AH;
  20605.             CONST PMERR_INTERNAL_ERROR_11         = 0160BH;
  20606.             CONST PMERR_INTERNAL_ERROR_12         = 0160CH;
  20607.             CONST PMERR_INTERNAL_ERROR_13         = 0160DH;
  20608.             CONST PMERR_INTERNAL_ERROR_14         = 0160EH;
  20609.             CONST PMERR_INTERNAL_ERROR_15         = 0160FH;
  20610.             CONST PMERR_INTERNAL_ERROR_16         = 01610H;
  20611.             CONST PMERR_INTERNAL_ERROR_17         = 01611H;
  20612.             CONST PMERR_INTERNAL_ERROR_18         = 01612H;
  20613.             CONST PMERR_INTERNAL_ERROR_19         = 01613H;
  20614.             CONST PMERR_INTERNAL_ERROR_20         = 01614H;
  20615.             CONST PMERR_INTERNAL_ERROR_21         = 01615H;
  20616.             CONST PMERR_INTERNAL_ERROR_22         = 01616H;
  20617.             CONST PMERR_INTERNAL_ERROR_23         = 01617H;
  20618.             CONST PMERR_INTERNAL_ERROR_24         = 01618H;
  20619.             CONST PMERR_INTERNAL_ERROR_25         = 01619H;
  20620.             CONST PMERR_INTERNAL_ERROR_26         = 0161AH;
  20621.             CONST PMERR_INTERNAL_ERROR_27         = 0161BH;
  20622.             CONST PMERR_INTERNAL_ERROR_28         = 0161CH;
  20623.             CONST PMERR_INTERNAL_ERROR_29         = 0161DH;
  20624.  
  20625.             (*** SEVERITY_WARNING ***)
  20626.             CONST PMERR_INVALID_FREE_MESSAGE_ID   = 01630H;
  20627.  
  20628.             (*** SEVERITY_ERROR ***)
  20629.  
  20630.             CONST PMERR_FUNCTION_NOT_SUPPORTED    = 01641H;
  20631.             CONST PMERR_INVALID_ARRAY_COUNT       = 01642H;
  20632.             CONST PMERR_INVALID_LENGTH            = 01643H;
  20633.             CONST PMERR_INVALID_BUNDLE_TYPE       = 01644H;
  20634.             CONST PMERR_INVALID_PARAMETER         = 01645H;
  20635.             CONST PMERR_INVALID_NUMBER_OF_PARMS   = 01646H;
  20636.             CONST PMERR_GREATER_THAN_64K          = 01647H;
  20637.             CONST PMERR_INVALID_PARAMETER_TYPE    = 01648H;
  20638.             CONST PMERR_NEGATIVE_STRCOND_DIM      = 01649H;
  20639.             CONST PMERR_INVALID_NUMBER_OF_TYPES   = 0164AH;
  20640.             CONST PMERR_INCORRECT_HSTRUCT         = 0164BH;
  20641.             CONST PMERR_INVALID_ARRAY_SIZE        = 0164CH;
  20642.             CONST PMERR_INVALID_CONTROL_DATATYPE  = 0164DH;
  20643.             CONST PMERR_INCOMPLETE_CONTROL_SEQU   = 0164EH;
  20644.             CONST PMERR_INVALID_DATATYPE          = 0164FH;
  20645.             CONST PMERR_INCORRECT_DATATYPE        = 01650H;
  20646.             CONST PMERR_NOT_SELF_DESCRIBING_DTYP  = 01651H;
  20647.             CONST PMERR_INVALID_CTRL_SEQ_INDEX    = 01652H;
  20648.             CONST PMERR_INVALID_TYPE_FOR_LENGTH   = 01653H;
  20649.             CONST PMERR_INVALID_TYPE_FOR_OFFSET   = 01654H;
  20650.             CONST PMERR_INVALID_TYPE_FOR_MPARAM   = 01655H;
  20651.             CONST PMERR_INVALID_MESSAGE_ID        = 01656H;
  20652.             CONST PMERR_C_LENGTH_TOO_SMALL        = 01657H;
  20653.             CONST PMERR_APPL_STRUCTURE_TOO_SMALL  = 01658H;
  20654.             CONST PMERR_INVALID_ERRORINFO_HANDLE  = 01659H;
  20655.             CONST PMERR_INVALID_CHARACTER_INDEX   = 0165AH;
  20656.  
  20657.             (**********************************************************************
  20658.             * End of Errors generated by Language Bindings layer.
  20659.             *
  20660.             * (Range 01600 thru 016FF reserved for Bindings)
  20661.             **********************************************************************)
  20662.    <* END *>
  20663. <* END *>
  20664.  
  20665. (**********************************************************************\
  20666. *
  20667. *            Workplace Shell error codes
  20668. *
  20669. * PMWP error codes
  20670. *
  20671. \**********************************************************************)
  20672.  
  20673. <* IF DEFINED (INCL_WPERRORS)  THEN *>
  20674.  
  20675.    <* IF NOT DEFINED (INCL_WPERRORS_INCL)  THEN *>
  20676.             (* XLATOFF *)
  20677.       <* NEW INCL_WPERRORS_INCL + *>
  20678.             (* XLATON *)
  20679.  
  20680.             CONST WPERR_PROTECTED_CLASS           = 01700H;
  20681.             CONST WPERR_INVALID_CLASS             = 01701H;
  20682.             CONST WPERR_INVALID_SUPERCLASS        = 01702H;
  20683.             CONST WPERR_NO_MEMORY                 = 01703H;
  20684.             CONST WPERR_SEMAPHORE_ERROR           = 01704H;
  20685.             CONST WPERR_BUFFER_TOO_SMALL          = 01705H;
  20686.             CONST WPERR_CLSLOADMOD_FAILED         = 01706H;
  20687.             CONST WPERR_CLSPROCADDR_FAILED        = 01707H;
  20688.             CONST WPERR_OBJWORD_LOCATION          = 01708H;
  20689.             CONST WPERR_INVALID_OBJECT            = 01709H;
  20690.             CONST WPERR_MEMORY_CLEANUP            = 0170AH;
  20691.             CONST WPERR_INVALID_MODULE            = 0170BH;
  20692.             CONST WPERR_INVALID_OLDCLASS          = 0170CH;
  20693.             CONST WPERR_INVALID_NEWCLASS          = 0170DH;
  20694.             CONST WPERR_NOT_IMMEDIATE_CHILD       = 0170EH;
  20695.             CONST WPERR_NOT_WORKPLACE_CLASS       = 0170FH;
  20696.             CONST WPERR_CANT_REPLACE_METACLS      = 01710H;
  20697.             CONST WPERR_INI_FILE_WRITE            = 01711H;
  20698.             CONST WPERR_INVALID_FOLDER            = 01712H;
  20699.             CONST WPERR_BUFFER_OVERFLOW           = 01713H;
  20700.             CONST WPERR_OBJECT_NOT_FOUND          = 01714H;
  20701.             CONST WPERR_INVALID_HFIND             = 01715H;
  20702.             CONST WPERR_INVALID_COUNT             = 01716H;
  20703.             CONST WPERR_INVALID_BUFFER            = 01717H;
  20704.             CONST WPERR_ALREADY_EXISTS            = 01718H;
  20705.             CONST WPERR_INVALID_FLAGS             = 01719H;
  20706.             CONST WPERR_INVALID_OBJECTID          = 01720H;
  20707.  
  20708.    <* END *>
  20709. <* END *>
  20710.  
  20711.  
  20712. (********************************************************************
  20713. *** GPI error codes
  20714. ********************************************************************)
  20715. <* IF DEFINED(INCL_GPIERRORS) THEN *>
  20716.    <* IF NOT DEFINED(INCL_GPIERRORS_INCL) THEN *>
  20717.             (* XLATOFF *)
  20718.       <* NEW INCL_GPIERRORS_INCL + *>
  20719.             (* XLATON *)
  20720.  
  20721.             (* AAB error codes for the GPI *)
  20722.             CONST PMERR_OK                          = 00000H;
  20723.             CONST PMERR_ALREADY_IN_AREA             = 02001H;
  20724.             CONST PMERR_ALREADY_IN_ELEMENT          = 02002H;
  20725.             CONST PMERR_ALREADY_IN_PATH             = 02003H;
  20726.             CONST PMERR_ALREADY_IN_SEG              = 02004H;
  20727.             CONST PMERR_AREA_INCOMPLETE             = 02005H;
  20728.             CONST PMERR_BASE_ERROR                  = 02006H;
  20729.             CONST PMERR_BITBLT_LENGTH_EXCEEDED      = 02007H;
  20730.             CONST PMERR_BITMAP_IN_USE               = 02008H;
  20731.             CONST PMERR_BITMAP_IS_SELECTED          = 02009H;
  20732.             CONST PMERR_BITMAP_NOT_FOUND            = 0200AH;
  20733.             CONST PMERR_BITMAP_NOT_SELECTED         = 0200BH;
  20734.             CONST PMERR_BOUNDS_OVERFLOW             = 0200CH;
  20735.             CONST PMERR_CALLED_SEG_IS_CHAINED       = 0200DH;
  20736.             CONST PMERR_CALLED_SEG_IS_CURRENT       = 0200EH;
  20737.             CONST PMERR_CALLED_SEG_NOT_FOUND        = 0200FH;
  20738.             CONST PMERR_CANNOT_DELETE_ALL_DATA      = 02010H;
  20739.             CONST PMERR_CANNOT_REPLACE_ELEMENT_0    = 02011H;
  20740.             CONST PMERR_COL_TABLE_NOT_REALIZABLE    = 02012H;
  20741.             CONST PMERR_COL_TABLE_NOT_REALIZED      = 02013H;
  20742.             CONST PMERR_COORDINATE_OVERFLOW         = 02014H;
  20743.             CONST PMERR_CORR_FORMAT_MISMATCH        = 02015H;
  20744.             CONST PMERR_DATA_TOO_LONG               = 02016H;
  20745.             CONST PMERR_DC_IS_ASSOCIATED            = 02017H;
  20746.             CONST PMERR_DESC_STRING_TRUNCATED       = 02018H;
  20747.             CONST PMERR_DEVICE_DRIVER_ERROR_1       = 02019H;
  20748.             CONST PMERR_DEVICE_DRIVER_ERROR_2       = 0201AH;
  20749.             CONST PMERR_DEVICE_DRIVER_ERROR_3       = 0201BH;
  20750.             CONST PMERR_DEVICE_DRIVER_ERROR_4       = 0201CH;
  20751.             CONST PMERR_DEVICE_DRIVER_ERROR_5       = 0201DH;
  20752.             CONST PMERR_DEVICE_DRIVER_ERROR_6       = 0201EH;
  20753.             CONST PMERR_DEVICE_DRIVER_ERROR_7       = 0201FH;
  20754.             CONST PMERR_DEVICE_DRIVER_ERROR_8       = 02020H;
  20755.             CONST PMERR_DEVICE_DRIVER_ERROR_9       = 02021H;
  20756.             CONST PMERR_DEVICE_DRIVER_ERROR_10      = 02022H;
  20757.             CONST PMERR_DEV_FUNC_NOT_INSTALLED      = 02023H;
  20758.             CONST PMERR_DOSOPEN_FAILURE             = 02024H;
  20759.             CONST PMERR_DOSREAD_FAILURE             = 02025H;
  20760.             CONST PMERR_DRIVER_NOT_FOUND            = 02026H;
  20761.             CONST PMERR_DUP_SEG                     = 02027H;
  20762.             CONST PMERR_DYNAMIC_SEG_SEQ_ERROR       = 02028H;
  20763.             CONST PMERR_DYNAMIC_SEG_ZERO_INV        = 02029H;
  20764.             CONST PMERR_ELEMENT_INCOMPLETE          = 0202AH;
  20765.             CONST PMERR_ESC_CODE_NOT_SUPPORTED      = 0202BH;
  20766.             CONST PMERR_EXCEEDS_MAX_SEG_LENGTH      = 0202CH;
  20767.             CONST PMERR_FONT_AND_MODE_MISMATCH      = 0202DH;
  20768.             CONST PMERR_FONT_FILE_NOT_LOADED        = 0202EH;
  20769.             CONST PMERR_FONT_NOT_LOADED             = 0202FH;
  20770.             CONST PMERR_FONT_TOO_BIG                = 02030H;
  20771.             CONST PMERR_HARDWARE_INIT_FAILURE       = 02031H;
  20772.             CONST PMERR_HBITMAP_BUSY                = 02032H;
  20773.             CONST PMERR_HDC_BUSY                    = 02033H;
  20774.             CONST PMERR_HRGN_BUSY                   = 02034H;
  20775.             CONST PMERR_HUGE_FONTS_NOT_SUPPORTED    = 02035H;
  20776.             CONST PMERR_ID_HAS_NO_BITMAP            = 02036H;
  20777.             CONST PMERR_IMAGE_INCOMPLETE            = 02037H;
  20778.             CONST PMERR_INCOMPAT_COLOR_FORMAT       = 02038H;
  20779.             CONST PMERR_INCOMPAT_COLOR_OPTIONS      = 02039H;
  20780.             CONST PMERR_INCOMPATIBLE_BITMAP         = 0203AH;
  20781.             CONST PMERR_INCOMPATIBLE_METAFILE       = 0203BH;
  20782.             CONST PMERR_INCORRECT_DC_TYPE           = 0203CH;
  20783.             CONST PMERR_INSUFFICIENT_DISK_SPACE     = 0203DH;
  20784.             CONST PMERR_INSUFFICIENT_MEMORY         = 0203EH;
  20785.             CONST PMERR_INV_ANGLE_PARM              = 0203FH;
  20786.             CONST PMERR_INV_ARC_CONTROL             = 02040H;
  20787.             CONST PMERR_INV_AREA_CONTROL            = 02041H;
  20788.             CONST PMERR_INV_ARC_POINTS              = 02042H;
  20789.             CONST PMERR_INV_ATTR_MODE               = 02043H;
  20790.             CONST PMERR_INV_BACKGROUND_COL_ATTR     = 02044H;
  20791.             CONST PMERR_INV_BACKGROUND_MIX_ATTR     = 02045H;
  20792.             CONST PMERR_INV_BITBLT_MIX              = 02046H;
  20793.             CONST PMERR_INV_BITBLT_STYLE            = 02047H;
  20794.             CONST PMERR_INV_BITMAP_DIMENSION        = 02048H;
  20795.             CONST PMERR_INV_BOX_CONTROL             = 02049H;
  20796.             CONST PMERR_INV_BOX_ROUNDING_PARM       = 0204AH;
  20797.             CONST PMERR_INV_CHAR_ANGLE_ATTR         = 0204BH;
  20798.             CONST PMERR_INV_CHAR_DIRECTION_ATTR     = 0204CH;
  20799.             CONST PMERR_INV_CHAR_MODE_ATTR          = 0204DH;
  20800.             CONST PMERR_INV_CHAR_POS_OPTIONS        = 0204EH;
  20801.             CONST PMERR_INV_CHAR_SET_ATTR           = 0204FH;
  20802.             CONST PMERR_INV_CHAR_SHEAR_ATTR         = 02050H;
  20803.             CONST PMERR_INV_CLIP_PATH_OPTIONS       = 02051H;
  20804.             CONST PMERR_INV_CODEPAGE                = 02052H;
  20805.             CONST PMERR_INV_COLOR_ATTR              = 02053H;
  20806.             CONST PMERR_INV_COLOR_DATA              = 02054H;
  20807.             CONST PMERR_INV_COLOR_FORMAT            = 02055H;
  20808.             CONST PMERR_INV_COLOR_INDEX             = 02056H;
  20809.             CONST PMERR_INV_COLOR_OPTIONS           = 02057H;
  20810.             CONST PMERR_INV_COLOR_START_INDEX       = 02058H;
  20811.             CONST PMERR_INV_COORD_OFFSET            = 02059H;
  20812.             CONST PMERR_INV_COORD_SPACE             = 0205AH;
  20813.             CONST PMERR_INV_COORDINATE              = 0205BH;
  20814.             CONST PMERR_INV_CORRELATE_DEPTH         = 0205CH;
  20815.             CONST PMERR_INV_CORRELATE_TYPE          = 0205DH;
  20816.             CONST PMERR_INV_CURSOR_BITMAP           = 0205EH;
  20817.             CONST PMERR_INV_DC_DATA                 = 0205FH;
  20818.             CONST PMERR_INV_DC_TYPE                 = 02060H;
  20819.             CONST PMERR_INV_DEVICE_NAME             = 02061H;
  20820.             CONST PMERR_INV_DEV_MODES_OPTIONS       = 02062H;
  20821.             CONST PMERR_INV_DRAW_CONTROL            = 02063H;
  20822.             CONST PMERR_INV_DRAW_VALUE              = 02064H;
  20823.             CONST PMERR_INV_DRAWING_MODE            = 02065H;
  20824.             CONST PMERR_INV_DRIVER_DATA             = 02066H;
  20825.             CONST PMERR_INV_DRIVER_NAME             = 02067H;
  20826.             CONST PMERR_INV_DRAW_BORDER_OPTION      = 02068H;
  20827.             CONST PMERR_INV_EDIT_MODE               = 02069H;
  20828.             CONST PMERR_INV_ELEMENT_OFFSET          = 0206AH;
  20829.             CONST PMERR_INV_ELEMENT_POINTER         = 0206BH;
  20830.             CONST PMERR_INV_END_PATH_OPTIONS        = 0206CH;
  20831.             CONST PMERR_INV_ESC_CODE                = 0206DH;
  20832.             CONST PMERR_INV_ESCAPE_DATA             = 0206EH;
  20833.             CONST PMERR_INV_EXTENDED_LCID           = 0206FH;
  20834.             CONST PMERR_INV_FILL_PATH_OPTIONS       = 02070H;
  20835.             CONST PMERR_INV_FIRST_CHAR              = 02071H;
  20836.             CONST PMERR_INV_FONT_ATTRS              = 02072H;
  20837.             CONST PMERR_INV_FONT_FILE_DATA          = 02073H;
  20838.             CONST PMERR_INV_FOR_THIS_DC_TYPE        = 02074H;
  20839.             CONST PMERR_INV_FORMAT_CONTROL          = 02075H;
  20840.             CONST PMERR_INV_FORMS_CODE              = 02076H;
  20841.             CONST PMERR_INV_FONTDEF                 = 02077H;
  20842.             CONST PMERR_INV_GEOM_LINE_WIDTH_ATTR    = 02078H;
  20843.             CONST PMERR_INV_GETDATA_CONTROL         = 02079H;
  20844.             CONST PMERR_INV_GRAPHICS_FIELD          = 0207AH;
  20845.             CONST PMERR_INV_HBITMAP                 = 0207BH;
  20846.             CONST PMERR_INV_HDC                     = 0207CH;
  20847.             CONST PMERR_INV_HJOURNAL                = 0207DH;
  20848.             CONST PMERR_INV_HMF                     = 0207EH;
  20849.             CONST PMERR_INV_HPS                     = 0207FH;
  20850.             CONST PMERR_INV_HRGN                    = 02080H;
  20851.             CONST PMERR_INV_ID                      = 02081H;
  20852.             CONST PMERR_INV_IMAGE_DATA_LENGTH       = 02082H;
  20853.             CONST PMERR_INV_IMAGE_DIMENSION         = 02083H;
  20854.             CONST PMERR_INV_IMAGE_FORMAT            = 02084H;
  20855.             CONST PMERR_INV_IN_AREA                 = 02085H;
  20856.             CONST PMERR_INV_IN_CALLED_SEG           = 02086H;
  20857.             CONST PMERR_INV_IN_CURRENT_EDIT_MODE    = 02087H;
  20858.             CONST PMERR_INV_IN_DRAW_MODE            = 02088H;
  20859.             CONST PMERR_INV_IN_ELEMENT              = 02089H;
  20860.             CONST PMERR_INV_IN_IMAGE                = 0208AH;
  20861.             CONST PMERR_INV_IN_PATH                 = 0208BH;
  20862.             CONST PMERR_INV_IN_RETAIN_MODE          = 0208CH;
  20863.             CONST PMERR_INV_IN_SEG                  = 0208DH;
  20864.             CONST PMERR_INV_IN_VECTOR_SYMBOL        = 0208EH;
  20865.             CONST PMERR_INV_INFO_TABLE              = 0208FH;
  20866.             CONST PMERR_INV_JOURNAL_OPTION          = 02090H;
  20867.             CONST PMERR_INV_KERNING_FLAGS           = 02091H;
  20868.             CONST PMERR_INV_LENGTH_OR_COUNT         = 02092H;
  20869.             CONST PMERR_INV_LINE_END_ATTR           = 02093H;
  20870.             CONST PMERR_INV_LINE_JOIN_ATTR          = 02094H;
  20871.             CONST PMERR_INV_LINE_TYPE_ATTR          = 02095H;
  20872.             CONST PMERR_INV_LINE_WIDTH_ATTR         = 02096H;
  20873.             CONST PMERR_INV_LOGICAL_ADDRESS         = 02097H;
  20874.             CONST PMERR_INV_MARKER_BOX_ATTR         = 02098H;
  20875.             CONST PMERR_INV_MARKER_SET_ATTR         = 02099H;
  20876.             CONST PMERR_INV_MARKER_SYMBOL_ATTR      = 0209AH;
  20877.             CONST PMERR_INV_MATRIX_ELEMENT          = 0209BH;
  20878.             CONST PMERR_INV_MAX_HITS                = 0209CH;
  20879.             CONST PMERR_INV_METAFILE                = 0209DH;
  20880.             CONST PMERR_INV_METAFILE_LENGTH         = 0209EH;
  20881.             CONST PMERR_INV_METAFILE_OFFSET         = 0209FH;
  20882.             CONST PMERR_INV_MICROPS_DRAW_CONTROL    = 020A0H;
  20883.             CONST PMERR_INV_MICROPS_FUNCTION        = 020A1H;
  20884.             CONST PMERR_INV_MICROPS_ORDER           = 020A2H;
  20885.             CONST PMERR_INV_MIX_ATTR                = 020A3H;
  20886.             CONST PMERR_INV_MODE_FOR_OPEN_DYN       = 020A4H;
  20887.             CONST PMERR_INV_MODE_FOR_REOPEN_SEG     = 020A5H;
  20888.             CONST PMERR_INV_MODIFY_PATH_MODE        = 020A6H;
  20889.             CONST PMERR_INV_MULTIPLIER              = 020A7H;
  20890.             CONST PMERR_INV_NESTED_FIGURES          = 020A8H;
  20891.             CONST PMERR_INV_OR_INCOMPAT_OPTIONS     = 020A9H;
  20892.             CONST PMERR_INV_ORDER_LENGTH            = 020AAH;
  20893.             CONST PMERR_INV_ORDERING_PARM           = 020ABH;
  20894.             CONST PMERR_INV_OUTSIDE_DRAW_MODE       = 020ACH;
  20895.             CONST PMERR_INV_PAGE_VIEWPORT           = 020ADH;
  20896.             CONST PMERR_INV_PATH_ID                 = 020AEH;
  20897.             CONST PMERR_INV_PATH_MODE               = 020AFH;
  20898.             CONST PMERR_INV_PATTERN_ATTR            = 020B0H;
  20899.             CONST PMERR_INV_PATTERN_REF_PT_ATTR     = 020B1H;
  20900.             CONST PMERR_INV_PATTERN_SET_ATTR        = 020B2H;
  20901.             CONST PMERR_INV_PATTERN_SET_FONT        = 020B3H;
  20902.             CONST PMERR_INV_PICK_APERTURE_OPTION    = 020B4H;
  20903.             CONST PMERR_INV_PICK_APERTURE_POSN      = 020B5H;
  20904.             CONST PMERR_INV_PICK_APERTURE_SIZE      = 020B6H;
  20905.             CONST PMERR_INV_PICK_NUMBER             = 020B7H;
  20906.             CONST PMERR_INV_PLAY_METAFILE_OPTION    = 020B8H;
  20907.             CONST PMERR_INV_PRIMITIVE_TYPE          = 020B9H;
  20908.             CONST PMERR_INV_PS_SIZE                 = 020BAH;
  20909.             CONST PMERR_INV_PUTDATA_FORMAT          = 020BBH;
  20910.             CONST PMERR_INV_QUERY_ELEMENT_NO        = 020BCH;
  20911.             CONST PMERR_INV_RECT                    = 020BDH;
  20912.             CONST PMERR_INV_REGION_CONTROL          = 020BEH;
  20913.             CONST PMERR_INV_REGION_MIX_MODE         = 020BFH;
  20914.             CONST PMERR_INV_REPLACE_MODE_FUNC       = 020C0H;
  20915.             CONST PMERR_INV_RESERVED_FIELD          = 020C1H;
  20916.             CONST PMERR_INV_RESET_OPTIONS           = 020C2H;
  20917.             CONST PMERR_INV_RGBCOLOR                = 020C3H;
  20918.             CONST PMERR_INV_SCAN_START              = 020C4H;
  20919.             CONST PMERR_INV_SEG_ATTR                = 020C5H;
  20920.             CONST PMERR_INV_SEG_ATTR_VALUE          = 020C6H;
  20921.             CONST PMERR_INV_SEG_CH_LENGTH           = 020C7H;
  20922.             CONST PMERR_INV_SEG_NAME                = 020C8H;
  20923.             CONST PMERR_INV_SEG_OFFSET              = 020C9H;
  20924.             CONST PMERR_INV_SETID                   = 020CAH;
  20925.             CONST PMERR_INV_SETID_TYPE              = 020CBH;
  20926.             CONST PMERR_INV_SET_VIEWPORT_OPTION     = 020CCH;
  20927.             CONST PMERR_INV_SHARPNESS_PARM          = 020CDH;
  20928.             CONST PMERR_INV_SOURCE_OFFSET           = 020CEH;
  20929.             CONST PMERR_INV_STOP_DRAW_VALUE         = 020CFH;
  20930.             CONST PMERR_INV_TRANSFORM_TYPE          = 020D0H;
  20931.             CONST PMERR_INV_USAGE_PARM              = 020D1H;
  20932.             CONST PMERR_INV_VIEWING_LIMITS          = 020D2H;
  20933.             CONST PMERR_JFILE_BUSY                  = 020D3H;
  20934.             CONST PMERR_JNL_FUNC_DATA_TOO_LONG      = 020D4H;
  20935.             CONST PMERR_KERNING_NOT_SUPPORTED       = 020D5H;
  20936.             CONST PMERR_LABEL_NOT_FOUND             = 020D6H;
  20937.             CONST PMERR_MATRIX_OVERFLOW             = 020D7H;
  20938.             CONST PMERR_METAFILE_INTERNAL_ERROR     = 020D8H;
  20939.             CONST PMERR_METAFILE_IN_USE             = 020D9H;
  20940.             CONST PMERR_METAFILE_LIMIT_EXCEEDED     = 020DAH;
  20941.             CONST PMERR_NAME_STACK_FULL             = 020DBH;
  20942.             CONST PMERR_NOT_CREATED_BY_DEVOPENDC    = 020DCH;
  20943.             CONST PMERR_NOT_IN_AREA                 = 020DDH;
  20944.             CONST PMERR_NOT_IN_DRAW_MODE            = 020DEH;
  20945.             CONST PMERR_NOT_IN_ELEMENT              = 020DFH;
  20946.             CONST PMERR_NOT_IN_IMAGE                = 020E0H;
  20947.             CONST PMERR_NOT_IN_PATH                 = 020E1H;
  20948.             CONST PMERR_NOT_IN_RETAIN_MODE          = 020E2H;
  20949.             CONST PMERR_NOT_IN_SEG                  = 020E3H;
  20950.             CONST PMERR_NO_BITMAP_SELECTED          = 020E4H;
  20951.             CONST PMERR_NO_CURRENT_ELEMENT          = 020E5H;
  20952.             CONST PMERR_NO_CURRENT_SEG              = 020E6H;
  20953.             CONST PMERR_NO_METAFILE_RECORD_HANDLE   = 020E7H;
  20954.             CONST PMERR_ORDER_TOO_BIG               = 020E8H;
  20955.             CONST PMERR_OTHER_SET_ID_REFS           = 020E9H;
  20956.             CONST PMERR_OVERRAN_SEG                 = 020EAH;
  20957.             CONST PMERR_OWN_SET_ID_REFS             = 020EBH;
  20958.             CONST PMERR_PATH_INCOMPLETE             = 020ECH;
  20959.             CONST PMERR_PATH_LIMIT_EXCEEDED         = 020EDH;
  20960.             CONST PMERR_PATH_UNKNOWN                = 020EEH;
  20961.             CONST PMERR_PEL_IS_CLIPPED              = 020EFH;
  20962.             CONST PMERR_PEL_NOT_AVAILABLE           = 020F0H;
  20963.             CONST PMERR_PRIMITIVE_STACK_EMPTY       = 020F1H;
  20964.             CONST PMERR_PROLOG_ERROR                = 020F2H;
  20965.             CONST PMERR_PROLOG_SEG_ATTR_NOT_SET     = 020F3H;
  20966.             CONST PMERR_PS_BUSY                     = 020F4H;
  20967.             CONST PMERR_PS_IS_ASSOCIATED            = 020F5H;
  20968.             CONST PMERR_RAM_JNL_FILE_TOO_SMALL      = 020F6H;
  20969.             CONST PMERR_REALIZE_NOT_SUPPORTED       = 020F7H;
  20970.             CONST PMERR_REGION_IS_CLIP_REGION       = 020F8H;
  20971.             CONST PMERR_RESOURCE_DEPLETION          = 020F9H;
  20972.             CONST PMERR_SEG_AND_REFSEG_ARE_SAME     = 020FAH;
  20973.             CONST PMERR_SEG_CALL_RECURSIVE          = 020FBH;
  20974.             CONST PMERR_SEG_CALL_STACK_EMPTY        = 020FCH;
  20975.             CONST PMERR_SEG_CALL_STACK_FULL         = 020FDH;
  20976.             CONST PMERR_SEG_IS_CURRENT              = 020FEH;
  20977.             CONST PMERR_SEG_NOT_CHAINED             = 020FFH;
  20978.             CONST PMERR_SEG_NOT_FOUND               = 02100H;
  20979.             CONST PMERR_SEG_STORE_LIMIT_EXCEEDED    = 02101H;
  20980.             CONST PMERR_SETID_IN_USE                = 02102H;
  20981.             CONST PMERR_SETID_NOT_FOUND             = 02103H;
  20982.             CONST PMERR_STARTDOC_NOT_ISSUED         = 02104H;
  20983.             CONST PMERR_STOP_DRAW_OCCURRED          = 02105H;
  20984.             CONST PMERR_TOO_MANY_METAFILES_IN_USE   = 02106H;
  20985.             CONST PMERR_TRUNCATED_ORDER             = 02107H;
  20986.             CONST PMERR_UNCHAINED_SEG_ZERO_INV      = 02108H;
  20987.             CONST PMERR_UNSUPPORTED_ATTR            = 02109H;
  20988.             CONST PMERR_UNSUPPORTED_ATTR_VALUE      = 0210AH;
  20989.             CONST PMERR_ENDDOC_NOT_ISSUED           = 0210BH;
  20990.             CONST PMERR_PS_NOT_ASSOCIATED           = 0210CH;
  20991.             CONST PMERR_INV_FLOOD_FILL_OPTIONS      = 0210DH;
  20992.             CONST PMERR_INV_FACENAME                = 0210EH;
  20993.             CONST PMERR_PALETTE_SELECTED            = 0210FH;
  20994.             CONST PMERR_NO_PALETTE_SELECTED         = 02110H;
  20995.             CONST PMERR_INV_HPAL                    = 02111H;
  20996.             CONST PMERR_PALETTE_BUSY                = 02112H;
  20997.             CONST PMERR_START_POINT_CLIPPED         = 02113H;
  20998.             CONST PMERR_NO_FILL                     = 02114H;
  20999.             CONST PMERR_INV_FACENAMEDESC            = 02115H;
  21000.             CONST PMERR_INV_BITMAP_DATA             = 02116H;
  21001.             CONST PMERR_INV_CHAR_ALIGN_ATTR         = 02117H;
  21002.             CONST PMERR_INV_HFONT                   = 02118H;
  21003.             CONST PMERR_HFONT_IS_SELECTED           = 02119H;
  21004.             CONST PMERR_DRVR_NOT_SUPPORTED          = 02120H;
  21005.  
  21006.    <* END *>
  21007. <* END *>
  21008.  
  21009. (****************************************************************************
  21010. *** Device Manager error codes
  21011. ****************************************************************************)
  21012.  
  21013. (* None yet *)
  21014.  
  21015. (****************************************************************************
  21016. *** Spooler error codes
  21017. ****************************************************************************)
  21018. <* IF DEFINED (INCL_SPLERRORS)  THEN *>
  21019.    <* IF NOT DEFINED (INCL_SPLERRORS_INCL)  THEN *>
  21020.             (* XLATOFF *)
  21021.       <* NEW INCL_SPLERRORS_INCL + *>
  21022.             (* XLATON *)
  21023.  
  21024.             CONST PMERR_SPL_DRIVER_ERROR            = 04001H;
  21025.             CONST PMERR_SPL_DEVICE_ERROR            = 04002H;
  21026.             CONST PMERR_SPL_DEVICE_NOT_INSTALLED    = 04003H;
  21027.             CONST PMERR_SPL_QUEUE_ERROR             = 04004H;
  21028.             CONST PMERR_SPL_INV_HSPL                = 04005H;
  21029.             CONST PMERR_SPL_NO_DISK_SPACE           = 04006H;
  21030.             CONST PMERR_SPL_NO_MEMORY               = 04007H;
  21031.             CONST PMERR_SPL_PRINT_ABORT             = 04008H;
  21032.             CONST PMERR_SPL_SPOOLER_NOT_INSTALLED   = 04009H;
  21033.             CONST PMERR_SPL_INV_FORMS_CODE          = 0400AH;
  21034.             CONST PMERR_SPL_INV_PRIORITY            = 0400BH;
  21035.             CONST PMERR_SPL_NO_FREE_JOB_ID          = 0400CH;
  21036.             CONST PMERR_SPL_NO_DATA                 = 0400DH;
  21037.             CONST PMERR_SPL_INV_TOKEN               = 0400EH;
  21038.             CONST PMERR_SPL_INV_DATATYPE            = 0400FH;
  21039.             CONST PMERR_SPL_PROCESSOR_ERROR         = 04010H;
  21040.             CONST PMERR_SPL_INV_JOB_ID              = 04011H;
  21041.             CONST PMERR_SPL_JOB_NOT_PRINTING        = 04012H;
  21042.             CONST PMERR_SPL_JOB_PRINTING            = 04013H;
  21043.             CONST PMERR_SPL_QUEUE_ALREADY_EXISTS    = 04014H;
  21044.             CONST PMERR_SPL_INV_QUEUE_NAME          = 04015H;
  21045.             CONST PMERR_SPL_QUEUE_NOT_EMPTY         = 04016H;
  21046.             CONST PMERR_SPL_DEVICE_ALREADY_EXISTS   = 04017H;
  21047.             CONST PMERR_SPL_DEVICE_LIMIT_REACHED    = 04018H;
  21048.             CONST PMERR_SPL_STATUS_STRING_TRUNC     = 04019H;
  21049.             CONST PMERR_SPL_INV_LENGTH_OR_COUNT     = 0401AH;
  21050.             CONST PMERR_SPL_FILE_NOT_FOUND          = 0401BH;
  21051.             CONST PMERR_SPL_CANNOT_OPEN_FILE        = 0401CH;
  21052.             CONST PMERR_SPL_DRIVER_NOT_INSTALLED    = 0401DH;
  21053.             CONST PMERR_SPL_INV_PROCESSOR_DATTYPE   = 0401EH;
  21054.             CONST PMERR_SPL_INV_DRIVER_DATATYPE     = 0401FH;
  21055.             CONST PMERR_SPL_PROCESSOR_NOT_INST      = 04020H;
  21056.             CONST PMERR_SPL_NO_SUCH_LOG_ADDRESS     = 04021H;
  21057.             CONST PMERR_SPL_PRINTER_NOT_FOUND       = 04022H;
  21058.             CONST PMERR_SPL_DD_NOT_FOUND            = 04023H;
  21059.             CONST PMERR_SPL_QUEUE_NOT_FOUND         = 04024H;
  21060.             CONST PMERR_SPL_MANY_QUEUES_ASSOC       = 04025H;
  21061.             CONST PMERR_SPL_NO_QUEUES_ASSOCIATED    = 04026H;
  21062.             CONST PMERR_SPL_INI_FILE_ERROR          = 04027H;
  21063.             CONST PMERR_SPL_NO_DEFAULT_QUEUE        = 04028H;
  21064.             CONST PMERR_SPL_NO_CURRENT_FORMS_CODE   = 04029H;
  21065.             CONST PMERR_SPL_NOT_AUTHORISED          = 0402AH;
  21066.             CONST PMERR_SPL_TEMP_NETWORK_ERROR      = 0402BH;
  21067.             CONST PMERR_SPL_HARD_NETWORK_ERROR      = 0402CH;
  21068.             CONST PMERR_DEL_NOT_ALLOWED             = 0402DH;
  21069.             CONST PMERR_CANNOT_DEL_QP_REF           = 0402EH;
  21070.             CONST PMERR_CANNOT_DEL_QNAME_REF        = 0402FH;
  21071.             CONST PMERR_CANNOT_DEL_PRINTER_DD_REF   = 04030H;
  21072.             CONST PMERR_CANNOT_DEL_PRN_NAME_REF     = 04031H;
  21073.             CONST PMERR_CANNOT_DEL_PRN_ADDR_REF     = 04032H;
  21074.             CONST PMERR_SPOOLER_QP_NOT_DEFINED      = 04033H;
  21075.             CONST PMERR_PRN_NAME_NOT_DEFINED        = 04034H;
  21076.             CONST PMERR_PRN_ADDR_NOT_DEFINED        = 04035H;
  21077.             CONST PMERR_PRINTER_DD_NOT_DEFINED      = 04036H;
  21078.             CONST PMERR_PRINTER_QUEUE_NOT_DEFINED   = 04037H;
  21079.             CONST PMERR_PRN_ADDR_IN_USE             = 04038H;
  21080.             CONST PMERR_SPL_TOO_MANY_OPEN_FILES     = 04039H;
  21081.             CONST PMERR_SPL_CP_NOT_REQD             = 0403AH;
  21082.             CONST PMERR_UNABLE_TO_CLOSE_DEVICE      = 04040H;
  21083.  
  21084.             CONST PMERR_SPL_ERROR_1       =   ( SPLERR_BASE + 4001 );
  21085.             CONST PMERR_SPL_ERROR_2       =   ( SPLERR_BASE + 4002 );
  21086.             CONST PMERR_SPL_ERROR_3       =   ( SPLERR_BASE + 4003 );
  21087.             CONST PMERR_SPL_ERROR_4       =   ( SPLERR_BASE + 4004 );
  21088.             CONST PMERR_SPL_ERROR_5       =   ( SPLERR_BASE + 4005 );
  21089.             CONST PMERR_SPL_ERROR_6       =   ( SPLERR_BASE + 4006 );
  21090.             CONST PMERR_SPL_ERROR_7       =   ( SPLERR_BASE + 4007 );
  21091.             CONST PMERR_SPL_ERROR_8       =   ( SPLERR_BASE + 4008 );
  21092.             CONST PMERR_SPL_ERROR_9       =   ( SPLERR_BASE + 4009 );
  21093.             CONST PMERR_SPL_ERROR_10      =   ( SPLERR_BASE + 4010 );
  21094.             CONST PMERR_SPL_ERROR_11      =   ( SPLERR_BASE + 4011 );
  21095.             CONST PMERR_SPL_ERROR_12      =   ( SPLERR_BASE + 4012 );
  21096.             CONST PMERR_SPL_ERROR_13      =   ( SPLERR_BASE + 4013 );
  21097.             CONST PMERR_SPL_ERROR_14      =   ( SPLERR_BASE + 4014 );
  21098.             CONST PMERR_SPL_ERROR_15      =   ( SPLERR_BASE + 4015 );
  21099.             CONST PMERR_SPL_ERROR_16      =   ( SPLERR_BASE + 4016 );
  21100.             CONST PMERR_SPL_ERROR_17      =   ( SPLERR_BASE + 4017 );
  21101.             CONST PMERR_SPL_ERROR_18      =   ( SPLERR_BASE + 4018 );
  21102.             CONST PMERR_SPL_ERROR_19      =   ( SPLERR_BASE + 4019 );
  21103.             CONST PMERR_SPL_ERROR_20      =   ( SPLERR_BASE + 4020 );
  21104.             CONST PMERR_SPL_ERROR_21      =   ( SPLERR_BASE + 4021 );
  21105.             CONST PMERR_SPL_ERROR_22      =   ( SPLERR_BASE + 4022 );
  21106.             CONST PMERR_SPL_ERROR_23      =   ( SPLERR_BASE + 4023 );
  21107.             CONST PMERR_SPL_ERROR_24      =   ( SPLERR_BASE + 4024 );
  21108.             CONST PMERR_SPL_ERROR_25      =   ( SPLERR_BASE + 4025 );
  21109.             CONST PMERR_SPL_ERROR_26      =   ( SPLERR_BASE + 4026 );
  21110.             CONST PMERR_SPL_ERROR_27      =   ( SPLERR_BASE + 4027 );
  21111.             CONST PMERR_SPL_ERROR_28      =   ( SPLERR_BASE + 4028 );
  21112.             CONST PMERR_SPL_ERROR_29      =   ( SPLERR_BASE + 4029 );
  21113.             CONST PMERR_SPL_ERROR_30      =   ( SPLERR_BASE + 4030 );
  21114.             CONST PMERR_SPL_ERROR_31      =   ( SPLERR_BASE + 4031 );
  21115.             CONST PMERR_SPL_ERROR_32      =   ( SPLERR_BASE + 4032 );
  21116.             CONST PMERR_SPL_ERROR_33      =   ( SPLERR_BASE + 4033 );
  21117.             CONST PMERR_SPL_ERROR_34      =   ( SPLERR_BASE + 4034 );
  21118.             CONST PMERR_SPL_ERROR_35      =   ( SPLERR_BASE + 4035 );
  21119.             CONST PMERR_SPL_ERROR_36      =   ( SPLERR_BASE + 4036 );
  21120.             CONST PMERR_SPL_ERROR_37      =   ( SPLERR_BASE + 4037 );
  21121.             CONST PMERR_SPL_ERROR_38      =   ( SPLERR_BASE + 4038 );
  21122.             CONST PMERR_SPL_ERROR_39      =   ( SPLERR_BASE + 4039 );
  21123.             CONST PMERR_SPL_ERROR_40      =   ( SPLERR_BASE + 4040 );
  21124.  
  21125.             CONST PMERR_SPLMSGBOX_INFO_CAPTION   = ( SPLERR_BASE + 4041 );
  21126.             CONST PMERR_SPLMSGBOX_WARNING_CAPTION= ( SPLERR_BASE + 4042 );
  21127.             CONST PMERR_SPLMSGBOX_ERROR_CAPTION  = ( SPLERR_BASE + 4043 );
  21128.             CONST PMERR_SPLMSGBOX_SEVERE_CAPTION = ( SPLERR_BASE + 4044 );
  21129.  
  21130.             CONST PMERR_SPLMSGBOX_JOB_DETAILS    = ( SPLERR_BASE + 4045 );
  21131.  
  21132.             CONST PMERR_SPLMSGBOX_ERROR_ACTION   = ( SPLERR_BASE + 4046 );
  21133.             CONST PMERR_SPLMSGBOX_SEVERE_ACTION  = ( SPLERR_BASE + 4047 );
  21134.  
  21135.             CONST PMERR_SPLMSGBOX_BIT_0_TEXT     = ( SPLERR_BASE + 4048 );
  21136.             CONST PMERR_SPLMSGBOX_BIT_1_TEXT     = ( SPLERR_BASE + 4049 );
  21137.             CONST PMERR_SPLMSGBOX_BIT_2_TEXT     = ( SPLERR_BASE + 4050 );
  21138.             CONST PMERR_SPLMSGBOX_BIT_3_TEXT     = ( SPLERR_BASE + 4051 );
  21139.             CONST PMERR_SPLMSGBOX_BIT_4_TEXT     = ( SPLERR_BASE + 4052 );
  21140.             CONST PMERR_SPLMSGBOX_BIT_5_TEXT     = ( SPLERR_BASE + 4053 );
  21141.             CONST PMERR_SPLMSGBOX_BIT_15_TEXT    = ( SPLERR_BASE + 4054 );
  21142.             CONST PMERR_SPL_NOPATHBUFFER         = ( SPLERR_BASE + 4055 );
  21143.  
  21144.             CONST PMERR_SPL_ALREADY_INITIALISED  = ( SPLERR_BASE + 4093 );
  21145.             CONST PMERR_SPL_ERROR                = ( SPLERR_BASE + 4095 );
  21146.  
  21147.  
  21148.             CONST NERR_BASE    =   2100;
  21149.             CONST NERR_NetNotStarted    =  (NERR_BASE+2);   (* The NETWKSTA.SYS workstation driver isn't installed. *)
  21150.             CONST NERR_RedirectedPath   =  (NERR_BASE+17);  (* The operation is invalid on a redirected resource. *)
  21151.             CONST NERR_BufTooSmall      =  (NERR_BASE+23);  (* The API return buffer is too small. *)
  21152.             CONST NERR_InvalidAPI       =  (NERR_BASE+42);  (* The requested API isn't supported on the remote server. *)
  21153.             CONST NERR_QNotFound        =  (NERR_BASE+50);  (* The printer queue does not exist. *)
  21154.             CONST NERR_JobNotFound      =  (NERR_BASE+51);  (* The print job does not exist. *)
  21155.             CONST NERR_DestNotFound     =  (NERR_BASE+52);  (* The printer destination cannot be found. *)
  21156.             CONST NERR_DestExists       =  (NERR_BASE+53);  (* The printer destination already exists. *)
  21157.             CONST NERR_QExists          =  (NERR_BASE+54);  (* The printer queue already exists. *)
  21158.             CONST NERR_QNoRoom          =  (NERR_BASE+55);  (* No more printer queues can be added. *)
  21159.             CONST NERR_JobNoRoom        =  (NERR_BASE+56);  (* No more print jobs can be added.  *)
  21160.             CONST NERR_DestNoRoom       =  (NERR_BASE+57);  (* No more printer destinations can be added. *)
  21161.             CONST NERR_DestIdle         =  (NERR_BASE+58);  (* This printer destination is idle and cannot accept control operations. *)
  21162.             CONST NERR_DestInvalidOp    =  (NERR_BASE+59);  (* This printer destination request contains an invalid control function. *)
  21163.             CONST NERR_SpoolerNotLoaded =  (NERR_BASE+61);  (* The spooler is not running. *)
  21164.             CONST NERR_DestInvalidState =  (NERR_BASE+62);  (* This operation cannot be performed on the print destination in its current state. *)
  21165.             CONST NERR_JobInvalidState  =  (NERR_BASE+64);  (* This operation cannot be performed on the print job in its current state. *)
  21166.             CONST NERR_SpoolNoMemory    =  (NERR_BASE+65);  (* A spooler memory allocation failure occurred. *)
  21167.             CONST NERR_DriverNotFound   =  (NERR_BASE+66);  (* The device driver does not exist. *)
  21168.             CONST NERR_DataTypeInvalid  =  (NERR_BASE+67);  (* The datatype is not supported by the processor. *)
  21169.             CONST NERR_ProcNotFound     =  (NERR_BASE+68);  (* The print processor is not installed. *)
  21170.             CONST NERR_BadDev           =  (NERR_BASE+241); (* The requested device is invalid. *)
  21171.             CONST NERR_CommDevInUse     =  (NERR_BASE+243); (* This device is already in use as a communications device. *)
  21172.             CONST NERR_InvalidComputer  = (NERR_BASE+251); (* This computername is invalid. *)
  21173.             CONST NERR_OpenFiles        =  (NERR_BASE+301); (* There are open files on the connection.    *)
  21174.             CONST NERR_LocalDrive       =  (NERR_BASE+305); (* The drive letter is in use locally. *)
  21175.  
  21176.    <* END *>
  21177. <* END *>
  21178.  
  21179. (****************************************************************************
  21180. *** Picture Utilities error codes
  21181. ****************************************************************************)
  21182. <* IF DEFINED (INCL_PICERRORS)  THEN *>
  21183.    <* IF NOT DEFINED (INCL_PICERRORS_INCL)  THEN *>
  21184.             (* XLATOFF *)
  21185.       <* NEW INCL_PICERRORS_INCL + *>
  21186.             (* XLATON *)
  21187.  
  21188.             CONST PMERR_INV_TYPE        = 05001H;
  21189.             CONST PMERR_INV_CONV        = 05002H;
  21190.             CONST PMERR_INV_SEGLEN      = 05003H;
  21191.             CONST PMERR_DUP_SEGNAME     = 05004H;
  21192.             CONST PMERR_INV_XFORM       = 05005H;
  21193.             CONST PMERR_INV_VIEWLIM     = 05006H;
  21194.             CONST PMERR_INV_3DCOORD     = 05007H;
  21195.             CONST PMERR_SMB_OVFLOW      = 05008H;
  21196.             CONST PMERR_SEG_OVFLOW      = 05009H;
  21197.             CONST PMERR_PIC_DUP_FILENAME= 05010H;
  21198.  
  21199.    <* END *>
  21200. <* END *>
  21201.  
  21202.  
  21203. (****************************************************************************
  21204. *    numbers from 05100  to 05fff are reserved.
  21205. ****************************************************************************)
  21206.  
  21207. (**************************** end of file **********************************)
  21208.  
  21209. (* ------------- End of file:  .\hm\pmerr.hm ------------- *)
  21210. END OS2.
  21211.  
  21212. (* ------------- End of file:  .\hm\os2.hm ------------- *)
  21213.