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