home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / dtx9302 / signals / ts / macro0.mod < prev    next >
Encoding:
Modula Implementation  |  1992-06-29  |  1.7 KB  |  72 lines

  1. IMPLEMENTATION MODULE Macro0;
  2.  
  3.  
  4. PROCEDURE SHORT1FROMMP( mp : Win.MPARAM) : CARDINAL;
  5. BEGIN
  6.   RETURN CARDINAL( LONGCARD( mp) MOD 65536);
  7. END SHORT1FROMMP;
  8.  
  9. PROCEDURE SHORT2FROMMP( mp : Win.MPARAM) : CARDINAL;
  10. BEGIN
  11.   RETURN CARDINAL( LONGCARD( mp) DIV 65536);
  12. END SHORT2FROMMP;
  13.  
  14.  
  15. PROCEDURE MPFROM2SHORT( v1,v2 : CARDINAL) : Win.MPARAM;
  16. BEGIN
  17.   RETURN Win.MPARAM( LONGCARD( v1) + 65536 * LONGCARD( v2));
  18. END MPFROM2SHORT;
  19.  
  20. PROCEDURE MPFROMSHORT( v : CARDINAL) : Win.MPARAM; (* ??? *)
  21. BEGIN
  22.   RETURN Win.MPARAM( LONGCARD( v) + 65536 * LONGCARD( 0));
  23. END MPFROMSHORT;
  24.  
  25.  
  26. PROCEDURE IntMax( a,b : INTEGER) : INTEGER;
  27. BEGIN
  28.   IF a > b THEN
  29.     RETURN a;
  30.   END;
  31.   RETURN b;
  32. END IntMax;
  33.  
  34. PROCEDURE IntMin( a,b : INTEGER) : INTEGER;
  35. BEGIN
  36.   IF a < b THEN
  37.     RETURN a;
  38.   END;
  39.   RETURN b;
  40. END IntMin;
  41.  
  42.  
  43. PROCEDURE COMMANDMSGcmd( VAR msgadr : CARDINAL) : CARDINAL;
  44.           (* eigentlich besser mp1 auswerten !!!                        *)
  45.           (* einfacher CAST per Win.COMMANDMSG klappt nicht, da         *)
  46.           (* Reihenfolge der Parameterübergabe statt l -> r ist r -> l  *)
  47.           (*                                   in ClientWndProc         *)
  48. TYPE  CARDPTR   = POINTER TO CARDINAL;
  49. BEGIN
  50.   RETURN [Seg( msgadr):Ofs( msgadr)-4 CARDPTR]^;
  51. END COMMANDMSGcmd;
  52.  
  53.  
  54. PROCEDURE MOUSEMSGx( VAR msg : CARDINAL) : LONGINT;     (* mp1 *)
  55. VAR v : INTEGER;
  56. TYPE INTPTR = POINTER TO INTEGER;
  57. BEGIN
  58.   v := [Seg( msg):Ofs( msg)-4 INTPTR]^;
  59.   RETURN LONGINT( v);
  60. END MOUSEMSGx;
  61.  
  62. PROCEDURE MOUSEMSGy( VAR msg : CARDINAL) : LONGINT;     (* mp1 *)
  63. VAR v : INTEGER;
  64. TYPE INTPTR = POINTER TO INTEGER;
  65. BEGIN
  66.   v := [Seg( msg):Ofs( msg)-2 INTPTR]^;
  67.   RETURN LONGINT( v);
  68. END MOUSEMSGy;
  69.  
  70.  
  71. END Macro0.
  72.