) (03/18/88)
Following is some source code that obtains the FKEY resource to dump the screen to the printer. From the fkeyhandle, I get a pointer(fkeyptr) to the FKEY resource that prints the screen. Does anyone know of a way to reference the pointer to the resource in Lightspeed Pascal? ____________________________________________________________ fkeyhandle := GetResource('FKEY',4); if not(fkeyhandle = 0) then fkeyptr = fkeyhandle^; {dereference the handle} else writeln('ERROR! Did not get the resource'); { Thanks to Ephraim Vishniac @ think.com for the technique } _____________________________________________________________ Gerald Ngui ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Gerald T. Ngui University of Wisconsin, Madison ARPA: geraldn@puff.cs.wisc.edu ngui@gumby.cs.wisc.edu ngui@daffy.cs.wisc.edu UUCP: ...!{harvard,ihnp4,seismo,topaz}!uwvax!puff!gerald ...!{harvard,ihnp4,seismo,topaz}!uwvax!{gumby,daffy}!ngui ICBM: 70 82 51 N 88 23 12 W CompuServe: 71620, 605 :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
rs4u+@andrew.cmu.edu (Richard Siegel) (03/21/88)
If you're trying to actually *call* the FKEY from Lightspeed Pascal, the way to do it is as follows: fkeyH := GetResource('FKEY', 4); if (fkeyH <> NIL) then begin MoveHHi(fkeyH); HLock(fkeyH); CallFKey(fkeyH); ReleaseResource(fkeyH); end; the procedure "CallFKey" is as follows: procedure CallFKey(codeH : Handle); inline $205F, $2050, $4E90; This bit of code pops the last argument off the stack, dereferences it (into a0, I think), and JSRs to that address. Notice that you can use the same technique to call code resources that take multiple arguments... -Rich