'argsdemo scriptlib Class Arguments Private counter As Integer Private args() As Variant Public Sub add( var As Variant) Redim Preserve args( counter ) If Isobject ( var ) Then Set args( counter ) = var Else args( counter ) = var End If counter = counter + 1 End Sub Public Function getNth( nth As Integer ) As Variant If Isobject ( args(nth) ) Then Set getNth = args(nth) Else getNth = args(nth) End If End Function Public Function getAll As Variant getAll = args End Function Public Function length As Integer length = Ubound( args ) + 1 End Function End Class 'accept an Arguments-object Sub argumentsAsObject( args As Arguments ) Select Case args.length Case 1 Msgbox "Name: " + args.getNth(0) Case 2 Msgbox "Name: " + args.getNth(0) + Chr(13) + "Address: " + args.getNth(1).subject(0) Case Else Dim strTemp As String Dim counter As Integer Forall item In args.getAll '35 - Product object (I know it's a NotesDocument) If Datatype( item ) = 35 Then strTemp = strTemp + "Item at index " + Cstr( counter ) + ": doc[" + item.subject(0) + "]" + Chr(13) Else strTemp = strTemp + "Item at index " + Cstr( counter ) + ": " + item + Chr(13) End If counter = counter + 1 End Forall Msgbox strTemp End Select End Sub 'Code for Test-agent 'options Option Public Option Declare Use "argsdemo" Sub Initialize Dim s As New NotesSession Dim args As New Arguments Dim doc As NotesDocument Set doc = s.CurrentDatabase.CreateDocument doc.subject = "Some mostly harmless planet" Call args.add( "Tommy Valand" ) Call argumentsAsObject( args ) Call args.add( doc ) Call argumentsAsObject( args ) Call args.add( "Always pack your towel!" ) Call argumentsAsObject( args ) End Sub