| Quick Reference |
This document provides Visual Basic examples of how programs generated with the IDL generator are used with various data types.
Program 'ConstA' Is
Define Data Parameter
1 Client (A80) In
1 Mail (A80) In Out
End-Define
Function GetMail(S1 As String, S2 As String) As String
Dim Client As String * 80
Dim Mail As String * 80
Client = S1
Mail = S2
obj.ConstA Client, Mail ' Perform call to dcom object
GetMail = Mail
End Function
Program 'ConstAN' Is
Define Data Parameter
1 Client (A80/3) In
1 Mail (A80/2) In Out
End-Define
Private Function GetMail(S1 As String, S2 As String) As String()
Dim Client(2) As String
Dim Mail(1) As String
Dim tempStr As String * 80 ' string with fixed size
For i = 0 To UBound(Client)
tempStr = S1
Client(i) = tempStr
Next
For i = 0 To UBound(Mail)
tempStr = S2
Mail(i) = tempStr
Next
obj.ConstAN Client, Mail ' Perform call to dcom object
GetMail = Mail
End Function
Program 'ArrayAV' Is
Define Data Parameter
1 Client (AV) In
1 Mail (AV) In Out
End-Define
Private Function GetMail(S1 As String, S2 As String) As String()
Dim Client As String
Dim Mail As String
Client = S1
Mail = S2
obj.ArrayAV Client, Mail ' Perform call to dcom object
GetMail = Mail
End Function
Program 'ArrayAVVV' Is
Define Data Parameter
1 Client (AV/V,V) In
1 Mail (AV/V,V) In Out
End-Define
Private Function GetMail(S1 As String, S2 As String) As Variant()
Dim Client() As Variant ' ** define array parameter
Dim Mail() As Variant ' ** define array parameter
ReDim Client(4)
ReDim Mail(2)
Dim m_str() As String
For i = 0 To UBound(Client)
ReDim m_str(2)
For j = 0 To UBound(m_str)
m_str(j) = Str(i) & Str(j) & S1 ' assign a string
Next j
Client(i) = m_str ' assign a new array
Next i
For i = 0 To UBound(Mail)
ReDim m_str(1)
For j = 0 To UBound(m_str)
m_str(j) = Str(i) & Str(j) & S2 ' assign a string
Next j
Mail(i) = m_str ' assign a new array
Next i
obj.ArrayAVVV Client, Mail ' Perform call to dcom object
GetMail = Mail
End Function
Program 'ArrayAVnn' Is
Define Data Parameter
1 Client (AV/2) In
1 Mail (AV/5) In Out
1 Server (AV/7) Out
End-Define
Private Function GetMail(S1 As String, S2 As String) As String()
Dim Client() As String
Dim Mail() As String
Dim Server() As String
ReDim Client(1) '2 elements
ReDim Mail(4) '5 elements
For i = 0 To UBound(Client)
Client(i) = S1 & " " & CStr(i)
Next i
For i = 0 To UBound(Mail)
Mail(i) = S2 & " " & CStr(i)
Next i
obj.ArrayAVnn Client, Mail, Server ' Perform call to dcom object
GetMail = Server
End Function
Program 'ArrayAVnnnn' Is
Define Data Parameter
1 Client (AV/2,3) In
1 Mail (AV/5,7) In Out
1 Server (AV/7,9) Out
End-Define
Private Function GetMail(S1 As String, S2 As String) As Variant()
Dim Client() As String
Dim Mail() As String
Dim Server() As String
ReDim Client(1, 2) '2,3 elements
ReDim Mail(4, 6) '5,7 elements
For i = 0 To UBound(Client, 1)
For j = 0 To UBound(Client, 2)
Client(i, j) = S1 & " " & CStr(i) & " " & CStr(j)
Next j
Next i
For i = 0 To UBound(Mail, 1)
For j = 0 To UBound(Mail, 2)
Mail(i, j) = S2 & " " & CStr(i) & " " & CStr(j)
Next j
Next i
obj.ArrayAVnnnn Client, Mail, Server ' Perform call to dcom object
GetMail = Server
End Function
Program 'ArrayAVnnnnnn' Is
Define Data Parameter
1 Client (AV/2,3,4) In
1 Mail (AV/5,7,8) In Out
1 Server (AV/9,6,3) Out
End-Define
See illustration for client (AV/2,3,4) under Example of Arrays with Fixed Bounds.
Private Function GetMail(S1 As String, S2 As String) As Variant()
Dim Client() As String
Dim Mail() As String
Dim Server() As String
ReDim Client(1, 2, 3) '2,3,4 elements
ReDim Mail(4, 6, 7) '5,7,8 elements
For i = 0 To UBound(Client, 1)
For j = 0 To UBound(Client, 2)
For k = 0 To UBound(Client, 3)
Client(i, j, k) = S1 & " " & CStr(i) & " " & CStr(j) & " "
& CStr(k)
Next k
Next j
Next i
For i = 0 To UBound(Mail, 1)
For j = 0 To UBound(Mail, 2)
For k = 0 To UBound(Mail, 3)
Mail(i, j, k) = S2 & " " & CStr(i) & " " & CStr(j) & " "
& CStr(k)
Next k
Next j
Next i
obj.ArrayAVnnnnnn Client, Mail, Server ' Perform call to dcom object
GetMail = Server
End Function
Program 'ArrayAVVVV' Is
Define Data Parameter
1 Client (AV/V,V,V) In
1 Mail (AV/V,V,V) In Out
1 Server (AV/V,V,V) In Out
End-Define
See illustration for client (AV/V,V,V) under Three-dimensional Array with Variable Upper Bounds.
Private Function GetMail(S1 As String, S2 As String) As Variant()
Dim Client() As Variant
Dim Mail() As Variant
Dim Server() As Variant
ReDim Client(4)
ReDim Mail(2)
Dim m_str() As String
Dim m_Array() As Variant
For i = 0 To UBound(Client)
ReDim m_Array(8)
For j = 0 To UBound(m_Array)
ReDim m_str(2)
For k = 0 To UBound(m_str)
m_str(k) = S1 & Str(i) & Str(j) & S1 ' assign a string
Next k
m_Array(j) = m_str
Next j
Client(i) = m_str ' assign a new array
Next i
For i = 0 To UBound(Mail)
ReDim m_Array(8)
For j = 0 To UBound(m_Array)
ReDim m_str(2)
For k = 0 To UBound(m_str)
m_str(k) = S1 & Str(i) & Str(j) & S2 ' assign a string
Next k
m_Array(j) = m_str
Next j
Mail(i) = m_str ' assign a new array
Next i
obj.ArrayAVVV Client, Mail, Server ' Perform call to dcom object
GetMail = Mail
End Function
Program 'ConstInn' Is
Define Data Parameter
1 Client (I4/4) In
1 Mail (I4/5) In Out
End-Define
Private Function GetMail(L1 As Long, L2 As Long) As Long()
Dim Client(3) As Long ' define I4 as Long, I2 as Integer and I1 as Integer
Dim Mail(4) As Long
For i = 0 To UBound(Client)
Client(i) = L1
Next
For i = 0 To UBound(Mail)
Mail(i) = L2
Next
obj.ConstInn Client, Mail ' Perform call to dcom object
GetMail = Mail
End Function
Program 'Int2VV' Is
Define Data Parameter
1 Client (I2/V,V) In
1 Mail (I2/V,V) In Out
End-Define
Private Function GetMail(I1 As Integer, I2 As Integer) As Integer()
Dim Client() As Variant ' ** define array parameter
Dim Mail() As Variant ' ** define array parameter
Dim ClientValue() As Integer
Dim MailValue() As Integer
ReDim Client(8)
ReDim Mail(3)
ReDim ClientValue(4)
ReDim MailValue(5)
For i = 0 To UBound(Client)
For j = 0 To UBound(ClientValue)
ClientValue(j) = i * j + I1 ' write any data into the elements
Next j
Client(i) = ClientValue ' assign the new array to an element of the main array
Next i
For i = 0 To UBound(Mail)
For j = 0 To UBound(MailValue)
MailValue(j) = i * j + I2 ' write any data into the elements
Next j
Mail(i) = MailValue ' assign the new array to an element of the main array
Next i
obj.Int2VV Client, Mail ' Perform call to dcom object
GetMail = Mail
End Function
Program 'Int4NN' Is
Define Data Parameter
1 Client (I4/5,4) In
1 Mail (I4/6,3) In Out
1 Server (I4/3,2) Out
End-Define
Private Function GetMail(I1 As Long, I2 As Long) As Long()
Dim Client() As Long ' define I4 as Long, I2 as Integer and I1 as Integer
Dim Mail() As Long
Dim Server() As Long
ReDim Client(4,3)
ReDim Mail(5,2)
For i = 0 To UBound(Client, 1)
For j = 0 To UBound(Client, 2)
Client(i, j) = i * j + I1 ' write any data into the elements
Next j
Next i
For i = 0 To UBound(Mail, 1)
For j = 0 To UBound(Mail, 2)
Mail(i, j) = i * j + I2 ' write any data into the elements
Next j
Next i
obj.Int4VV Client, Mail, Server ' Perform call to dcom object
GetMail = Server
End Function
Program 'Int2VVV' Is
Define Data Parameter
1 Client (I2/V,V,V) In
1 Mail (I2/V,V,V) In Out
1 Server (I2/V,V,V) Out
End-Define
Private Function GetMail(I1 As Integer, I2 As Integer) As Integer()
Dim Client() As Variant
Dim Mail() As Variant
Dim Server() As Variant
Dim ClientWrap() As Variant
Dim MailWrap() As Variant
Dim ClientValue() As Integer ' define I4 as Long, I2 as Integer and I1 as Integer
Dim MailValue() As Integer
ReDim Client(4)
ReDim Mail(5)
ReDim ClientWrap(10)
ReDim MailWrap(23)
ReDim ClientValue(200)
ReDim MailValue(238)
For i = 0 To UBound(Client)
For j = 0 To UBound(ClientWrap)
For k = 0 To UBound(ClientValue)
ClientValue(k) = k + i * j + I1 ' write any data into the elements
Next k
ClientWrap(j) = ClientValue
Next j
Client(i) = ClientWrap
Next i
For i = 0 To UBound(Mail)
For j = 0 To UBound(MailWrap)
For k = 0 To UBound(MailValue)
MailValue(k) = k + i * j + I2 ' write any data into the elements
Next k
MailWrap(j) = MailValue
Next j
Mail(i) = MailWrap
Next i
obj.Int2VVV Client, Mail, Server ' Perform call to dcom object
GetMail = Server
End Function
Program 'NUnVV' Is
Define Data Parameter
1 Client (NU21/V,V) In
1 Mail (NU21/V,V) In Out
End-Define
Private Function GetMail() As String()
Dim Client() As Variant ' ** define array parameter
Dim Mail() As Variant ' ** define array parameter
Dim ClientValue() As String
Dim MailValue() As String
ReDim Client(8)
ReDim Mail(3)
ReDim ClientValue(4)
ReDim MailValue(5)
For i = 0 To UBound(Client)
For j = 0 To UBound(ClientValue)
ClientValue(j) = "55456698" ' write any data into the elements
Next j
Client(i) = ClientValue ' assign the new array to an element of the main array
Next i
For i = 0 To UBound(Mail)
For j = 0 To UBound(MailValue)
MailValue(j) = "548799875465" ' write any data into the elements
Next j
Mail(i) = MailValue ' assign the new array to an element of the main array
Next i
obj.NUnVV Client, Mail ' Perform call to dcom object
GetMail = Mail
End Function
Program 'PnXVV' Is
Define Data Parameter
1 Client (P12.2/V,V) In
1 Mail (P12.2/V,V) In Out
End-Define
Private Function GetMail() As String()
Dim Client() As Variant ' ** define array parameter
Dim Mail() As Variant ' ** define array parameter
Dim ClientValue() As String
Dim MailValue() As String
ReDim Client(8)
ReDim Mail(3)
ReDim ClientValue(4)
ReDim MailValue(5)
For i = 0 To UBound(Client)
For j = 0 To UBound(ClientValue)
ClientValue(j) = "1234568" & "." & "65" ' write any data into the
elements
Next j
Client(i) = ClientValue ' assign the new array to an element of the main array
Next i
For i = 0 To UBound(Mail)
For j = 0 To UBound(MailValue)
MailValue(j) = "8799875" & "." & "32" ' write any data into the
elements
Next j
Mail(i) = MailValue ' assign the new array to an element of the main array
Next i
obj.PnXVV Client, Mail ' Perform call to dcom object
GetMail = Mail
End Function
Program 'LV' Is
Define Data Parameter
1 Client (L/V) In
1 Mail (L/V) In Out
1 Server (L/V) Out
End-Define
Private Function GetMail() As Boolean()
Dim Client() As Boolean
Dim Mail() As Boolean
Dim Server() As Boolean
ReDim Client(8)
ReDim Mail(3)
For i = 0 To UBound(Client)
Client(i) = True
Next i
For i = 0 To UBound(Mail)
Mail(i) = False
Next i
obj.LV Client, Mail, Server ' Perform call to dcom object
GetMail = Mail
End Function
Program 'DateProc' Is
Define Data Parameter
1 Client (D) In
1 Mail (D) In Out
1 Server (D) Out
End-Define
Private Function GetMail() As String Dim Client As Date Dim Mail As Date Dim Server As Date Dim s As String ' set the input data with the current date Client = Date Mail = Date obj.DateProc Client, Mail, Server ' work with the returned data s = Mail & " " & Server GetMail = s End Function
Program 'DateProcVV' Is
Define Data Parameter
1 Client (D/V,V) In
1 Mail (D/V,V) In Out
1 Server (D/V,V) Out
End-Define
Private Function GetMail() As String
Dim Client() As Variant
Dim Mail() As Variant
Dim Server() As Variant
Dim Value() As Double ' Use a Double instead of a Date datetype
Dim s As String
Redim Client(5)
Redim Value(12)
For i = 0 To UBound(Client)
For j = 0 To UBound(Value)
' set the input data with the current date
Value(j) = Date
Next j
Client(i) = Value
Next i
Redim Mail(5)
Redim Value(12)
For i = 0 To UBound(Mail)
For j = 0 To UBound(Value)
' set the input data with the current date
Value(j) = Date
Next j
Mail(i) = Value
Next i
obj.DateProcVV Client, Mail, Server
' work with the returned data
s = ""
For i = 0 To UBound(Mail)
Value = Mail(i)
For j = 0 To UBound(Value)
s = s & CDate(Value(j)) ' Convert the data to a Date data type if necessary
Next j
s = s & " "
Next i
s = ""
For i = 0 To UBound(Server)
Value = Server(i)
For j = 0 To UBound(Value)
s = s & CDate(Value(j))
Next j
s = s & " "
Next i
GetMail = s
End Function
Program 'ProcF4V' Is
Define Data Parameter
1 Client (F4/V) In
1 Mail (F4/V) In Out
1 Server (F4/V) Out
End-Define
Private Function GetMail() As String
Dim Client() As Single
Dim Mail() As Single
Dim Server() As Single
Dim s As String
Redim Client(5)
For i = 0 To UBound(Client)
Client(i) = 1.5542 + (i * 1.57)
Next i
Redim Mail(28)
For i = 0 To UBound(Mail)
Mail(i) = -1.554 + (i * 1.57)
Next i
obj.ProcF4V Client, Mail, Server
s = ""
For i = LBound(Server) To UBound(Server)
s = " " & Str(Server(i))
Next i
GetMail = s
End Function
Program 'ProcF8VV' Is
Define Data Parameter
1 Client (F8/V,V) In
1 Mail (F8/V,V) In Out
1 Server (F8/V,V) Out
End-Define
Private Function GetMail() As String
Dim Client() As Variant
Dim Mail() As Variant
Dim Server() As Variant
Dim Value() As Double
Dim s As String
Redim Client(5)
Redim Value(33)
For i = 0 To UBound(Client)
For j = 0 To UBound(Value)
Value(j) = 1.5587 + (j * 1.57) + i
Next j
Client(i) = Value
Next i
Redim Mail(42)
Redim Value(3)
For i = 0 To UBound(Mail)
For j = 0 To UBound(Value)
Value(j) = -5021.327 + (j * 3.889) - i
Next j
Mail(i) = Value
Next i
obj.ProcF8VV Client, Mail, Server
s = ""
For i = LBound(Server) To UBound(Server)
Value = Server(i)
For j = LBound(Value) To UBound(Value)
s = " " & Str(Value(j))
Next j
Next i
GetMail = s
End Function
Program 'Bin1nn' Is
Define Data Parameter
1 Client (B1/100) In
1 Mail (B1/100) In Out
End-Define
Private Function GetMail(B1 As Byte, B2 As Byte) As Byte()
Dim Client() As Byte
Dim Mail() As Byte
ReDim Client(99)
ReDim Mail(99)
' Client
For j = 0 To UBound(Client)
Client(j) = j + B1
Next j
'Mail
For j = 0 To UBound(Mail)
Mail(j) = j + B2
Next j
obj.Bin1nn Client, Mail
GetMail = Mail
End Function
Program 'BinXnn' Is
Define Data Parameter
1 Client (B10/12) In
1 Mail (B10/12) In Out
End-Define
Private Function GetMail() As Byte()
Dim Client() As Byte
Dim Mail() As Byte
ReDim Client(11, 9)
ReDim Mail(11, 9)
' Client
For j = 0 To UBound(Client, 1)
For i = 0 To UBound(Client, 2)
Client(j, i) = j + i
Next i
Next j
'Mail
For j = 0 To UBound(Mail, 1)
For i = 0 To UBound(Mail, 2)
Mail(j, i) = j + i + 6
Next i
Next j
obj.BinXnn Client, Mail
GetMail = Mail
End Function
Program 'BinV' Is
Define Data Parameter
1 Client (BV) In
1 Mail (BV) In Out
End-Define
Private Function GetMail() As Byte()
Dim Client As Variant
Dim Mail As Variant
Dim ClientValue() As Byte
Dim MailValue() As Byte
ReDim ClientValue(8)
ReDim MailValue(4)
For j = 0 To UBound(ClientValue)
ClientValue(j) = j + 6
Next j
For j = 0 To UBound(MailValue)
MailValue(j) = j + 8
Next j
Client = ClientValue
Mail = MailValue
obj.BinV Client, Mail
GetMail = Mail
End Function
Program 'BinVnn' Is
Define Data Parameter
1 Client (BV/3) In
1 Mail (BV/5) In Out
End-Define
Private Function GetMail() As Byte()
Dim Client() As Variant
Dim Mail() As Variant
Dim ClientValue() As Byte
Dim MailValue() As Byte
ReDim Client(2) ' /3
ReDim Mail(4) ' /4
ReDim ClientValue(3)
ReDim MailValue(5)
For i = 0 To UBound(Client)
For j = 0 To UBound(ClientValue)
ClientValue(j) = j + 2
Next j
Client(i) = ClientValue
Next i
For i = 0 To UBound(Mail)
For j = 0 To UBound(MailValue)
MailValue(j) = j + 3
Next j
Mail(i) = MailValue
Next i
obj.BinVnn Client, Mail
GetMail = Mail
End Function
Program 'Binnn' Is
Define Data Parameter
1 Client (B12) In
1 Mail (B30) In Out
End-Define
Private Function GetMail() As Variant()
Dim Client() As Variant
Dim Mail() As Variant
Dim ClientValue() As Byte
Dim MailValue() As Byte
ReDim ClientValue(11) ' must be 11 ( = 12 elements -> B12)
For j = 0 To UBound(ClientValue)
ClientValue(j) = j + 6
Next j
Client = ClientValue
ReDim MailValue(29) ' must be 29 ( = 30 elements -> B30)
For j = 0 To UBound(MailValue)
MailValue(j) = j + 6
Next j
Mail = MailValue
obj.Binnn Client, Mail
GetMail = Mail
End Function
Program 'BinVV' Is
Define Data Parameter
1 Client (BV/V) In
1 Mail (BV/V) In Out
End-Define
Private Function GetMail() As Variant()
Dim Client() As Variant
Dim Mail() As Variant
Dim ClientValue() As Byte
Dim MailValue() As Byte
ReDim Client(5)
ReDim ClientValue(32)
For i = 0 To UBound(Client)
For j = 0 To UBound(ClientValue)
ClientValue(j) = j + i + 2
Next j
Client(i) = ClientValue
Next i
ReDim Mail(33)
ReDim MailValue(20)
For i = 0 To UBound(Mail)
For j = 0 To UBound(MailValue)
MailValue(j) = j + i + 2
Next j
Mail(i) = MailValue
Next i
obj.BinVV Client, Mail
GetMail = Mail
End Function
Program 'BinVxx' Is
Define Data Parameter
1 Client (BV10) In
1 Mail (BV12) In Out
End-Define
Private Function GetMail() As Variant
Dim Client As Variant
Dim Mail As Variant
Dim ClientValue() As Byte
Dim MailValue() As Byte
ReDim ClientValue(9) ' 9 ( = 10 elements) or less
For j = 0 To UBound(ClientValue)
ClientValue(j) = j + 6
Next j
Client(i) = ClientValue
ReDim MailValue(11) ' 11 ( = 12 elements) or less
For j = 0 To UBound(MailValue)
MailValue(j) = j + 7
Next j
Mail(i) = MailValue
obj.BinVxx Client, Mail
GetMail = Mail
End Function
Program 'BinnnV' Is
Define Data Parameter
1 Client (B4/V) In
1 Mail (B2/V) In Out
End-Define
Private Function GetMail() As Variant
Dim Client() As Variant
Dim Mail() As Variant
Dim ClientValue() As Byte
Dim MailValue() As Byte
ReDim Client(22)
ReDim ClientValue(3) ' B4
For i = 0 To UBound(Client)
For j = 0 To UBound(ClientValue)
ClientValue(j) = j + i + 2
Next j
Client(i) = ClientValue
Next i
ReDim Mail(15)
ReDim MailValue(1) ' B2
For i = 0 To UBound(Mail)
For j = 0 To UBound(MailValue)
MailValue(j) = j + i + 2
Next j
Mail(i) = MailValue
Next i
obj.BinnnV Client, Mail
GetMail = Mail
End Function
Program 'BinVVV' Is
Define Data Parameter
1 Client (BV/V,V) In
1 Mail (BV/V,V) In Out
1 Server (BV/V,V) Out
End-Define
Private Function GetMail() As Variant()
Dim Client() As Variant
Dim Mail() As Variant
Dim Server() As Variant
Dim ClientWrap() As Variant
Dim MailWrap() As Variant
Dim ClientValue() As Byte
Dim MailValue() As Byte
' Define the Bounds of the Arrays
ReDim Client(8)
ReDim ClientWrap(12)
ReDim ClientValue(4)
ReDim Mail(3)
ReDim MailWrap(6)
ReDim MailValue(5)
' Setup the Arrays
For i = 0 To UBound(Client)
For j = 0 To UBound(ClientWrap)
For k = 0 To UBound(ClientValue)
ClientValue(k) = k+j+i+1 ' write any data into the elements
Next k
ClientWrap(j) = ClientValue
Next j
Client(i) = ClientWrap ' assign the new array to an element of the main array
Next i
For i = 0 To UBound(Mail)
For j = 0 To UBound(MailWrap)
For k = 0 To UBound(MailValue)
MailValue(k) = k+j+i+2 ' write any data into the elements
Next k
MailWrap(j) = MailValue
Next j
Mail(i) = MailWrap ' assign the new array to an element of the main array
Next i
obj.BinVVV Client, Mail, Server
GetMail = Mail
End Function
Program 'BinVnnnnnn' Is
Define Data Parameter
1 Client (BV/3,4,6) In
1 Mail (BV/5,2,5) In Out
1 Server (BV/2,8,2) Out
End-Define
Private Function GetMail() As Variant()
Dim Client() As Variant
Dim Mail() As Variant
Dim Server() As Variant
Dim ClientValue() As Byte
Dim MailValue() As Byte
' Define the Bounds of the Arrays
ReDim Client(2,3,5)
ReDim Mail(4,1,4)
' Setup the Arrays
For i = 0 To UBound(Client, 1)
For j = 0 To UBound(Client, 2)
For k = 0 To UBound(Client, 3)
ReDim ClientValue(9 + i + j + k)
For m = 0 To UBound(ClientValue)
ClientValue(m) = i + j + k + m
Next m
Client(i, j, k) = ClientValue ' write any data into the elements
Next k
Next j
Next i
For i = 0 To UBound(Mail, 1)
For j = 0 To UBound(Mail, 2)
For k = 0 To UBound(Mail, 3)
ReDim MailValue(3 + i + j + k)
For m = 0 To UBound(MailValue)
MailValue(m) = i + j + k + m
Next m
Mail(i, j, k) = MailValue ' write any data into the elements
Next k
Next j
Next i
obj.BinVnnnnnn Client, Mail, Server
GetMail = Mail
End Function
Program 'BinVVVV' Is
Define Data Parameter
1 Client (BV/V,V,V) In
1 Mail (BV/V,V,V) In Out
1 Server (BV/V,V,V) Out
End-Define
Private Function GetMail() As Variant()
Dim Client() As Variant
Dim Mail() As Variant
Dim Server() As Variant
Dim ClientWrap() As Variant
Dim MailWrap() As Variant
Dim ClientValue() As Byte
Dim MailValue() As Byte
ReDim Client(3)
For i = 0 To UBound(Client)
ReDim ClientWrap(i + 1)
For j = 0 To UBound(ClientWrap)
ReDim ClientValue(j + 3)
For k = 0 To UBound(ClientValue)
ClientValue(k) = i + j + k
Next k
ClientWrap(j) = ClientValue
Next j
Client(i) = ClientWrap
Next i
ReDim Mail(7)
For i = 0 To UBound(Mail)
ReDim MailWrap(i + 2)
For j = 0 To UBound(MailWrap)
ReDim MailValue(j + 1)
For k = 0 To UBound(MailValue)
MailValue(k) = i + j + k
Next k
MailWrap(j) = MailValue
Next j
Mail(i) = MailWrap
Next i
obj.BinVVVV Client, Mail, Server
GetMail = Server
End Function
Program 'PGroup1' Is
Define Data Parameter
1 Data In Out
2 Client (AV)
2 Mail (AV)
End-Define
Private Sub GetMail()
obj.PGroup1_Data.Client = "Caroline"
obj.PGroup1_Data.Mail = "Susan"
obj.PGroup1 obj.PGroup1_Data
if obj.PGroup1_Data.Mail <> "Humpty Dumpty" Then
MsgBox "Humpty Dumpty is not in"
end if
End Sub
Program 'PGroup2' Is
Define Data Parameter
1 Data (/2) In Out
2 Client (AV)
2 Mail (AV)
End-Define
Private Sub GetMail()
For i = 0 To UBound(obj.PGroup2_Data)
obj.PGroup2_Data(i).Client = "Caroline"
obj.PGroup2_Data(i).Mail = "Susan"
Next I
obj.PGroup2 obj.PGroup2_Data
if obj.PGroup2_Data(0).Mail <> "Humpty Dumpty" Then
MsgBox "Humpty Dumpty is not in"
end if
End Sub
Program 'PGroup3' Is
Define Data Parameter
1 Data (/2) In Out
2 Client1 (AV)
2 Mail1 (AV)
2 SecondLevel (/1:2) In Out
3 Client2 (AV)
3 Mail2 (AV)
1 User (AV) In Out
End-Define
Private Sub GetMail()
Dim User As String
For i = 0 To UBound(obj.PGroup3_Data)
obj.PGroup3_Data(i).Client1 = "Caroline"
obj.PGroup3_Data(i).Mail1 = "Susan"
For j = LBound(obj.PGroup3_Data(i).SecondLevel) To UBound(obj.PGroup3_Data(i).SecondLevel)
obj.PGroup3_Data(i).SecondLevel(j).Client2 = "Alice"
obj.PGroup3_Data(i).SecondLevel(j).Mail2 = "Mary"
Next j
Next i
User = "Minime"
obj.PGroup3 obj.PGroup3_Data, User
if obj.PGroup3_Data(0).Mail1 <> "Humpty Dumpty" And _
obj.PGroup3_Data(0).Mail1.SecondLevel(0).Mail2 = "Humpty Dumpty" Then
MsgBox "Humpty Dumpty is not in today, but tomorrow"
end if
End Sub
Program 'PGroup4' Is
Define Data Parameter
1 Data (/2,3) In Out
2 Client (AV)
2 Mail (AV)
End-Define
Private Sub GetMail()
For i = 0 To UBound(obj.PGroup4_Data, 1)
For j = 0 To UBound(obj.PGroup4_Data, 2)
obj.PGroup4_Data(i, j).Client = "Caroline"
obj.PGroup4_Data(i, j).Mail = "Susan"
Next j
Next i
obj.PGroup4 obj.PGroup4_Data
if obj.PGroup3_Data(0, 0).Mail1 <> "Humpty Dumpty" Then
MsgBox "Humpty Dumpty is not in today, but tomorrow"
end if
End Sub
Library 'InpLIB' Is
Program 'PROG' Is
Define Data Parameter
1 I In
2 inp (/1:100)
3 name (a100)
End-Define
Dim Iinpall() As Object
Dim obj As Object
Dim str As String
Set obj = CreateObject("EOL.InpLIB")
obj.ServerAddress = "localhost@RPC/SRV1/CALLNAT"
Iinpall = obj.PROG_i.inp_all
For i = LBound(Iinpall) To UBound(Iinpall)
Iinpall(i).Name = "test"
Next i
' call the DCOM method
obj.PROG obj.PROG_i
Iinpall = obj.PROG_i.inp_all
For i = LBound(Iinpall) To UBound(Iinpall)
str = Iinpall(i).Name
Next i
Struct 'SU' is
Define Data Parameter
1 Name (AV)
1 Age (I2)
End-Define
Program 'ConstSU' Is
Define Data Parameter
1 Client ('SU') In
1 Mail ('SU') In Out
End-Define
Private Function GetMail() As Boolean
Dim ClientSu As Object ' Client structure
Dim MailSu As Object ' Mail structure
Set ClientSu = obj.createStructure_SU
Set MailSu = obj.createStructure_SU
ClientSu.Name = "Caroline"
ClientSu.Age = 21
MailSu.Name = "Susan"
MailSu.Age = 24
obj.ConstSU ClientSu, MailSu
If MailSu.Name <> "Humpty Dumpty" Then
GetMail = False
Else
GetMail = True
End If
End Function
Struct 'SU' is
Define Data Parameter
1 Name (AV)
1 Age (I2)
End-Define
Program 'ConstSUnn' Is
Define Data Parameter
1 Client ('SU'/3) In
1 Mail ('SU'/3) In Out
End-Define
Private Function GetMail() As Object()
Dim ClientSu(2) As Object ' Client structure
Dim MailSu(2) As Object ' Mail structure
For i = 0 To UBound(Client)
Set ClientSu(i) = obj.createStructure_SU
Next i
For i = 0 To UBound(MailSu)
Set MailSu(i) = obj.createStructure_SU
Next i
ClientSu(0).Name = "Asterix"
ClientSu(0).Age = 31
ClientSu(1).Name = "Automatix"
ClientSu(1).Age = 34
ClientSu(2).Name = "Idefix"
ClientSu(2).Age = 7
MailSu(0).Name = "Falbala"
MailSu(0).Age = 19
MailSu(1).Name = "Gutemine"
MailSu(1).Age = 50
MailSu(2).Name = "Cleopatra"
MailSu(2).Age = 21
obj.ConstSU ClientSu, MailSu
GetMail = MailSu
End Function
Struct 'SU' is
Define Data Parameter
1 Name (A40)
1 Age (I2)
End-Define
Program 'ConstSUnn' Is
Define Data Parameter
1 Client ('SU'/V) In
1 Mail ('SU'/V) In Out
End-Define
Private Function GetMail() As Object()
Dim ClientSu() As Object ' Client structure
Dim MailSu() As Object ' Mail structure
ReDim ClientSu(3) As Object
ReDim MailSu(2) As Object
For i = 0 To UBound(Client)
Set ClientSu(i) = obj.createStructure_SU
Next i
For i = 0 To UBound(MailSu)
Set MailSu(i) = obj.createStructure_SU
Next i
ClientSu(0).Name = "Asterix"
ClientSu(0).Age = 31
ClientSu(1).Name = "Automatix"
ClientSu(1).Age = 34
ClientSu(2).Name = "Idefix"
ClientSu(2).Age = 7
ClientSu(3).Name = "Obelix"
ClientSu(3).Age = 30
MailSu(0).Name = "Falbala"
MailSu(0).Age = 19
MailSu(1).Name = "Gutemine"
MailSu(1).Age = 50
MailSu(2).Name = "Cleopatra"
MailSu(2).Age = 21
obj.ConstSU ClientSu, MailSu
GetMail = MailSu
End Function
Struct 'SU' is
Define Data Parameter
1 Name (A20)
1 Age (I2)
End-Define
Program 'ConstSUvv' Is
Define Data Parameter
1 Client ('SU'/V,V) In
1 Mail ('SU'/V,V) In Out
End-Define
Private Function GetMail() As Variant()
Dim ClientSu() As Variant ' Client structure
Dim MailSu() As Object ' Mail structure
Dim i as Integer
Dim j as Integer
' helper variable
Dim ClientSu1() As Object
ReDim ClientSu(3)
ReDim ClientSu1(6)
For i = 0 To UBound(ClientSu)
For j = 0 To UBound(ClientSu1)
Set ClientSu1(j) = obj.createStructure_SU()
ClientSu1(j).Name = "ClientName_" & Str(j)
ClientSu1(j).Age = j
Next
ClientSu(i) = ClientSu1
Next
' helper variable
Dim MailSu1() As Object
ReDim MailSu(5)
ReDim MailSu1(2)
For i = 0 To UBound(MailSu)
For j = 0 To UBound(MailSu1)
Set MailSu1(j) = obj.createStructure_SU()
MailSu1(j).Name = "MailName_" & Str(j)
MailSu1(j).Age = j+2
Next
MailSu(i) = MailSu1
Next
obj.ConstSUvv ClientSu, MailSu
GetMail = MailSu
End Function
Struct 'SU' is
Define Data Parameter
1 Name (A20)
1 Age (I2)
End-Define
Program 'ConstSUvvv' Is
Define Data Parameter
1 Client ('SU2'/V,V,V) In
1 Mail ('SU2'/V,V,V) In Out
End-Define
Private Function GetMail() As Variant()
Dim ClientSu() As Variant ' Client structure
Dim MailSu() As Object ' Mail structure
' helper variable
Dim ClientSU1() As Variant
Dim ClientSU2() As Object
ReDim ClientSu(3)
ReDim ClientSu1(6)
ReDim ClientSu2(2)
For i = 0 To UBound(ClientSu)
For j = 0 To UBound(ClientSu1)
For k = 0 To UBound(ClientSu2)
Set ClientSu2(k) = obj.createStructure_SU()
ClientSu2(k).Name = "ClientName_" & Str(k)
ClientSu2(k).Age = k
Next
ClientSu1(j) = ClientSu2
Next
ClientSu(i) = ClientSu1
Next
' helper variable
Dim MailSu1() As Variant
Dim MailSu2() As Object
ReDim MailSu(5)
ReDim MailSu1(2)
ReDim MailSu2(7)
For i = 0 To UBound(MailSu)
For j = 0 To UBound(MailSu1)
For k = 0 To UBound(MailSu2)
Set MailSu2(k) = obj.createStructure_SU()
MailSu2(k).Name = "MailName_" & Str(k)
MailSu2(k).Age = k+2
Next
MailSu1(j) = MailSu2
Next
MailSu(i) = MailSu1
Next
obj.ConstSU ClientSu, MailSu
GetMail = MailSu
End Function