Sets a variable of type MEMPTR to the value of a particular memory location.
The following example calls a DLL routine that returns a pointer to a structure, extracts an address at byte 5 of the structure, uses SET-POINTER-VALUE to assign the address to an ABL MEMPTR, and displays the character string at the address:
DEFINE VARIABLE person_struct AS MEMPTR NO-UNDO. /* pointer to structure */ DEFINE VARIABLE name AS MEMPTR NO-UNDO. /* pointer to name */ SET-SIZE(person_struct) = 8. RUN person_info (OUTPUT person_struct). SET-POINTER-VALUE(name) = GET-LONG(person_struct,5). DISPLAY GET-STRING(name,1) FORMAT "x(50)". SET-SIZE(person_struct) = 0. PROCEDURE person_info EXTERNAL "person.dll" PERSISTENT: DEFINE OUTPUT PARAMETER person_struct AS MEMPTR. END PROCEDURE. |