CIDC Africa 2020 (in 2022) starts Thursday September 22 - Time Schedule for USA

Disclaimer: RZ stated about plans to change compilers in his abstracts for CIDC2020. Thereby, everything I’m saying regarding the future CW version can become discarded.

Variables of the BSTRING types are initialized with the NULL reference even if the AUTO attribute presents. Ditto for variables of the ANY type. Compound structures (GROUP, QUEUE, CLASS) having fields of the BSTRING type must be declared without the AUTO attribute.

Variables of the BSTRING type are intended to be used for the interfacing with the OLE API only, Therefore any changes of the BSTRING variable’s value destroy its old value. This is true for usage of CLEAR too. So, usage of fields of the BSTRING type in QUEUEs very problematic. The only way is to have them OVERed for another field of the LONG type:

Q    QUEUE
BZ     LONG
BS     BSTRING,OVER(BZ)
...
     END

Variables of the BSTRING type can be used as parameters of controls’ USE attribute. Size of value can be entered to an ENTRY control is determined by control’s picture.

It is strongly discouraged to have extra references to the value of the BSTRING variable.

ADDRESS(BS) returns address of current string pointed by BS.

LEN(BS) returns the length (in wide chars) of current string pointed by BS. SIZE(BS) returns the size (in bytes) allocated for the current value of BS.

2 Likes