You can use LONGCHAR variables as parameters and return values in procedures, user-defined functions, and methods. ABL passes LONGCHAR parameters by value. This means that the value of the LONGCHAR in memory is copied and passed to the receiving procedure or function. Note that if your application involves passing large LONGCHAR values, this can be an expensive process.
Since LONGCHAR values can be parameters to an Application Server, the CODEPAGE metadata is marshaled and sent along with the data itself. This does not cause a compatibility problem since LONGCHAR is a Release 10 data type and only Release 10 Application Servers and clients recognize it. An error is returned if a LONGCHAR is passed to a Progress Release 9 AppServer. LONGCHAR values are not allowed as return values from a user-defined function or method from the AppServer to the client.