home *** CD-ROM | disk | FTP | other *** search
Modula Implementation | 1992-06-29 | 1.7 KB | 72 lines |
- IMPLEMENTATION MODULE Macro0;
-
-
- PROCEDURE SHORT1FROMMP( mp : Win.MPARAM) : CARDINAL;
- BEGIN
- RETURN CARDINAL( LONGCARD( mp) MOD 65536);
- END SHORT1FROMMP;
-
- PROCEDURE SHORT2FROMMP( mp : Win.MPARAM) : CARDINAL;
- BEGIN
- RETURN CARDINAL( LONGCARD( mp) DIV 65536);
- END SHORT2FROMMP;
-
-
- PROCEDURE MPFROM2SHORT( v1,v2 : CARDINAL) : Win.MPARAM;
- BEGIN
- RETURN Win.MPARAM( LONGCARD( v1) + 65536 * LONGCARD( v2));
- END MPFROM2SHORT;
-
- PROCEDURE MPFROMSHORT( v : CARDINAL) : Win.MPARAM; (* ??? *)
- BEGIN
- RETURN Win.MPARAM( LONGCARD( v) + 65536 * LONGCARD( 0));
- END MPFROMSHORT;
-
-
- PROCEDURE IntMax( a,b : INTEGER) : INTEGER;
- BEGIN
- IF a > b THEN
- RETURN a;
- END;
- RETURN b;
- END IntMax;
-
- PROCEDURE IntMin( a,b : INTEGER) : INTEGER;
- BEGIN
- IF a < b THEN
- RETURN a;
- END;
- RETURN b;
- END IntMin;
-
-
- PROCEDURE COMMANDMSGcmd( VAR msgadr : CARDINAL) : CARDINAL;
- (* eigentlich besser mp1 auswerten !!! *)
- (* einfacher CAST per Win.COMMANDMSG klappt nicht, da *)
- (* Reihenfolge der Parameterübergabe statt l -> r ist r -> l *)
- (* in ClientWndProc *)
- TYPE CARDPTR = POINTER TO CARDINAL;
- BEGIN
- RETURN [Seg( msgadr):Ofs( msgadr)-4 CARDPTR]^;
- END COMMANDMSGcmd;
-
-
- PROCEDURE MOUSEMSGx( VAR msg : CARDINAL) : LONGINT; (* mp1 *)
- VAR v : INTEGER;
- TYPE INTPTR = POINTER TO INTEGER;
- BEGIN
- v := [Seg( msg):Ofs( msg)-4 INTPTR]^;
- RETURN LONGINT( v);
- END MOUSEMSGx;
-
- PROCEDURE MOUSEMSGy( VAR msg : CARDINAL) : LONGINT; (* mp1 *)
- VAR v : INTEGER;
- TYPE INTPTR = POINTER TO INTEGER;
- BEGIN
- v := [Seg( msg):Ofs( msg)-2 INTPTR]^;
- RETURN LONGINT( v);
- END MOUSEMSGy;
-
-
- END Macro0.