Nitzer, ¡viva el REDEFINES!

En realidad lo que hice fue redefinir el string en un array de Integers:
Entonces en el cliente hago:
Código COBOL:
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 wsmsg pic x(24).
01 FILLER REDEFINES wsmsg.
05 wsINT OCCURS 6 TIMES PIC S9(9) COMP-5.
01 IDX-1 PIC S9(4) COMP-5.
PROCEDURE DIVISION.
move "Text" OF CmText1 to wsmsg
IF "State" OF Winsock1 = 7
MOVE 1 TO IDX-1
PERFORM UNTIL IDX-1 > 6
INVOKE Winsock1 "SendData" USING wsINT(IDX-1)
ADD 1 TO IDX-1
END-PERFORM
END-IF
Y en el servidor:
Código COBOL:
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 wsmsg pic x(24).
01 FILLER REDEFINES wsmsg.
05 wsINT OCCURS 6 TIMES PIC S9(9) COMP-5.
01 IDX-1 PIC S9(4) COMP-5.
LINKAGE SECTION.
01 POW-ARG-BYTESTOTAL PIC S9(9) COMP-5.
PROCEDURE DIVISION USING POW-ARG-BYTESTOTAL.
MOVE 1 TO IDX-1
PERFORM UNTIL IDX-1 > 6
INVOKE Winsock1 "GetData" USING wsINT(IDX-1) 3
ADD 1 TO IDX-1
END-PERFORM
MOVE wsmsg TO "Caption" OF CmStatic9
Joseg, según he visto, todos los tipos derivan del Variant:
Código VB:
Public Const vbArray As Microsoft.VisualBasic.VariantType = 8192
Public Const vbBoolean As Microsoft.VisualBasic.VariantType = 11
Public Const vbByte As Microsoft.VisualBasic.VariantType = 17
Public Const vbDate As Microsoft.VisualBasic.VariantType = 7
Public Const vbDecimal As Microsoft.VisualBasic.VariantType = 14
Public Const vbLong As Microsoft.VisualBasic.VariantType = 20
Public Const vbString As Microsoft.VisualBasic.VariantType = 8
Public Const vbLong As Microsoft.VisualBasic.VariantType = 20
Public Const vbInteger As Microsoft.VisualBasic.VariantType = 3
Public Const vbSingle As Microsoft.VisualBasic.VariantType = 4
Seguro que el "String" tiene su TypeDef que se compone por campos nativos, pero no he encontrado la información necesaria, así que pensé en el REDEFINES.