home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / mod201j.zip / modula2.exe / os2api / bdcalls.def < prev    next >
Text File  |  1995-01-21  |  7KB  |  176 lines

  1. DEFINITION MODULE BDCALLS;
  2.  
  3. (*************************************************************************
  4.   OS/2 2.x or 3.0  Bidi public interface definition file
  5.  
  6.   (c) 1995 by Juergen Neuhoff
  7. **************************************************************************)
  8.  
  9. (*$XL+    Modula-2 language extensions: '_' allowed for symbol names     *)
  10. (*$A      default alignment for record fields                            *)
  11. (*$API16+ 32 to 16 bit thunking for API functions                        *)
  12.  
  13. IMPORT SYSTEM;
  14.  
  15. TYPE
  16.   PCHAR16  = SYSTEM.DWORD;  (* 16:16 pointer to CHAR or CHAR array *)
  17.   APIRET16 = CARDINAL;
  18.  
  19.  
  20. CONST (* BidiHotKeys in BIDISTRUCT *)
  21. (*
  22.    The following defined value may be used to Enable/Disable the Bidi      
  23.    keyboard hot keys.                                                      
  24.    To enable a hot key, perform an 'OR' operation on the Bidi hot key flag 
  25.    word in the KBVCBTYPE  structure with the required defined value.       
  26.    To disable a hot key, perform an 'AND NOT' operation on the Bidi hot key
  27.    flag word in the KBVCBTYPE  structure with the required defined value.  
  28. *)
  29.   BDHKFLAG_PUSH        = VAL( CARDINAL, 0004H );
  30.   BDHKFLAG_END_PUSH    = VAL( CARDINAL, 0008H );
  31.   BDHKFLAG_AUTO_PUSH   = VAL( CARDINAL, 0010H );
  32.   BDHKFLAG_FIELD_REV   = VAL( CARDINAL, 0020H );
  33.   BDHKFLAG_SCREEN_REV  = VAL( CARDINAL, 0040H );
  34.   BDHKFLAG_BIDI_POPUP  = VAL( CARDINAL, 0200H );
  35.   BDHKFLAG_AUTOMATIC   = VAL( CARDINAL, 0400H );
  36.   BDHKFLAG_INITIAL     = VAL( CARDINAL, 0800H );
  37.   BDHKFLAG_MIDDLE      = VAL( CARDINAL, 1000H );
  38.   BDHKFLAG_FINAL       = VAL( CARDINAL, 2000H );
  39.   BDHKFLAG_ISOLATED    = VAL( CARDINAL, 4000H );
  40.  
  41. CONST (* Bidi Flags in BIDISTRUCT *)
  42. (*
  43.    The following defined value may be used to Enable/Disable the Bidi    
  44.    functions.                                                            
  45.    To enable a Bidi function, perform an 'OR' operation on the Bidi flags
  46.    word in the BDKBVCB  structure with the required defined value.       
  47.    To disable a Bidi fuction, perform an 'AND NOT' operation on the Bidi 
  48.    flags word in the BDKBVCB  structure with the required defined value. 
  49. *)
  50.   BDFLAG_AUTOPUSH_RTL  = VAL( CARDINAL, 0001H );
  51.   BDFLAG_AUTOPUSH_LTR  = VAL( CARDINAL, 0002H );
  52.   BDFLAG_PUSHLEVEL     = VAL( CARDINAL, 0004H );
  53.   BDFLAG_LAYER         = VAL( CARDINAL, 0010H );
  54.   BDFLAG_FIELD_REV     = VAL( CARDINAL, 0020H );
  55.  
  56. CONST (*  CSD in BIDIATT *)
  57. (*
  58.    The following defined value may be used to select the specified 
  59.    bit in the Bidi Attributes.                                     
  60. *)
  61.   BDCSD_AUTOMATIC     = VAL( LONGCARD, 00000000H );
  62.   BDCSD_PASSTHRU      = VAL( LONGCARD, 00000001H );
  63.   BDCSD_BASE          = VAL( LONGCARD, 00000010H );
  64.   BDCSD_INITIAL       = VAL( LONGCARD, 00000011H );
  65.   BDCSD_MIDDLE        = VAL( LONGCARD, 00000012H );
  66.   BDCSD_FINAL         = VAL( LONGCARD, 00000013H );
  67.   BDCSD_ISOLATED      = VAL( LONGCARD, 00000014H );
  68.   BDNUM_ARABIC        = VAL( LONGCARD, 00000000H );
  69.   BDNUM_PASSTHRU      = VAL( LONGCARD, 00001000H );
  70.   BDNUM_HINDU         = VAL( LONGCARD, 00002000H );
  71.   BDORIENT_LTR        = VAL( LONGCARD, 00000000H );
  72.   BDORIENT_RTL        = VAL( LONGCARD, 00010000H );
  73.   BD_LEVEL            = VAL( LONGCARD, 30000000H );
  74.   BD_SUPPORT          = VAL( LONGCARD, 00000000H );
  75.  
  76. (*$A2  WORD alignment for record fields >= 2 bytes *)
  77.  
  78. TYPE (* the keyboard control block structure *)
  79.   BDKVCB              = RECORD 
  80.     BDLength            : CARDINAL;    
  81.     BDVersionId         : CARDINAL;    
  82.     BDAtts              : LONGCARD;    
  83.     Reserved            : LONGCARD;    
  84.     BDHotKeyFlags       : CARDINAL;    
  85.     BDFlags             : CARDINAL;    
  86.     Reserved2           : ARRAY [0..63] OF SHORTCARD;
  87.                         END;
  88.  
  89. TYPE (* the printer control block structure *)
  90.   BDPRCB              = RECORD
  91.     PRLength            : CARDINAL;  
  92.     PRAtts              : LONGCARD;  
  93.     Reserved            : ARRAY [0..13] OF SHORTCARD;
  94.                         END;
  95.  
  96. TYPE (* the Character Shape Determination structure *)
  97.   CSDRec              = RECORD
  98.     RecLength           : LONGCARD;    
  99.     Buffer              : PCHAR16;     
  100.     BufferLength        : LONGCARD;    
  101.     BufferIndex         : LONGCARD;    
  102.                         END;
  103.  
  104. (*$A  default alignment for record fields *)
  105.  
  106. PROCEDURE NlsQueryBidiAtt
  107. (
  108.   Effect                : LONGINT;
  109.   VAR RetInfo           : ARRAY OF SYSTEM.BYTE
  110. )                       : APIRET16;
  111.  
  112. PROCEDURE NlsSetBidiAtt
  113. (
  114.   Effect                : LONGINT;
  115.   VAR SetInfo           : ARRAY OF SYSTEM.BYTE
  116. )                       : APIRET16;
  117.  
  118. PROCEDURE NlsShapeBidiString
  119. (
  120.   BidiAtts              : LONGCARD;
  121.   Reserved              : LONGCARD;
  122.   FAR VAR Source        : ARRAY OF SYSTEM.BYTE;  (* in a 16-bit segment *)
  123.   FAR VAR Target        : ARRAY OF SYSTEM.BYTE;  (* in a 16-bit segment *)
  124.   Length                : LONGCARD;
  125.   Increment             : LONGCARD 
  126. )                       : APIRET16;
  127.  
  128. PROCEDURE NlsEditShape
  129. (
  130.   BidiAtts              : LONGCARD;
  131.   Effect                : LONGINT;
  132.   FAR VAR Source        : CSDRec;                (* in a 16-bit segment *)
  133.   FAR VAR Target        : CSDRec;                (* in a 16-bit segment *)
  134.   VAR CSDState          : LONGCARD;
  135.   Increment             : LONGCARD
  136. )                       : APIRET16;
  137.  
  138. PROCEDURE NlsInverseString
  139. (
  140.   FAR VAR Source        : ARRAY OF SYSTEM.BYTE;  (* in a 16-bit segment *)
  141.   FAR VAR Target        : ARRAY OF SYSTEM.BYTE;  (* in a 16-bit segment *)
  142.   Length                : LONGCARD;
  143.   Increment             : LONGCARD
  144. )                       : APIRET16;
  145.  
  146. PROCEDURE NlsConvertBidiNumerics
  147. (
  148.   BidiAtts              : LONGCARD;
  149.   Reserved              : LONGINT;
  150.   FAR VAR Source        : ARRAY OF SYSTEM.BYTE;  (* in a 16-bit segment *)
  151.   FAR VAR Target        : ARRAY OF SYSTEM.BYTE;  (* in a 16-bit segment *)
  152.   Length                : LONGCARD;
  153.   Increment             : LONGCARD
  154. )                       : APIRET16;
  155.  
  156. PROCEDURE NlsSetBidiPrint
  157. (
  158.   BidiAtts              : LONGCARD;
  159.   Length                : LONGCARD;
  160.   FileHandle            : CARDINAL
  161. )                       : APIRET16;
  162.  
  163. PROCEDURE NlsConvertBidiString
  164. (
  165.   FAR VAR Source        : ARRAY OF SYSTEM.BYTE;  (* in a 16-bit segment *)
  166.   FAR VAR Target        : ARRAY OF SYSTEM.BYTE;  (* in a 16-bit segment *)
  167.   Length                : LONGCARD;
  168.   Increment             : LONGCARD;
  169.   SBidiAtts             : LONGCARD;
  170.   TBidiAtts             : LONGCARD;
  171.   Reserved              : LONGCARD
  172. )                       : APIRET16;
  173.  
  174.  
  175. END BDCALLS.
  176.