Buon giorno Aurora,
the "normal" variable type to use in VO is "string".
C/C++, the language in which Windows is written, does not knows that
datatype.
In these languages (and some more) a string is defined as a sequence of
bytes terminated by a byte with the value of 0 (zero).
This datatype exists also in VO, and is called "PSZ" - a Pointer to a
String terminated with Zero.
So, if you have to interface with the Windows API you cannot use a
string, but you have to use a PSZ.
The function "String2PSZ()" does exactly what it says:
a memory part is allocated, and string content is copied there, and
terminated with a zero byte. The a pointer to this memory allocation is
returned, and this can be passed to the Windows API call.
If the function/method ends, the memory is released to the OS.
Wolfgang
--