Warning: This file has been marked up for HTML

VERSION 4.00
Begin VB.Form frmAddress 
   BorderStyle     =   1  'Fixed Single
   Caption         =   "Addresses"
   ClientHeight    =   6765
   ClientLeft      =   1125
   ClientTop       =   1530
   ClientWidth     =   9435
   Height          =   7170
   Left            =   1065
   LinkTopic       =   "Form1"
   LockControls    =   -1  'True
   MaxButton       =   0   'False
   MinButton       =   0   'False
   ScaleHeight     =   6765
   ScaleWidth      =   9435
   Top             =   1185
   Width           =   9555
   Begin VB.OptionButton optIndex 
      Caption         =   "Use &Numeric Index"
      Height          =   315
      Index           =   0
      Left            =   4560
      TabIndex        =   37
      Top             =   5820
      Value           =   -1  'True
      Width           =   1815
   End
   Begin VB.OptionButton optIndex 
      Caption         =   "Use &Address Object"
      Height          =   315
      Index           =   1
      Left            =   6480
      TabIndex        =   36
      Top             =   5820
      Width           =   1815
   End
   Begin VB.CheckBox chkGroupsOnly 
      Caption         =   "Groups &Only"
      Height          =   315
      Left            =   7080
      TabIndex        =   35
      Top             =   6240
      Width           =   2235
   End
   Begin VB.CommandButton cmdSystemAddressBook 
      Caption         =   "Account.&SystemAddressBook"
      Height          =   375
      Left            =   6300
      TabIndex        =   13
      Top             =   3120
      Width           =   2955
   End
   Begin VB.CommandButton cmdFrequentContacts 
      Caption         =   "Account.&FrequentContacts"
      Height          =   375
      Left            =   3240
      TabIndex        =   12
      Top             =   3120
      Width           =   2955
   End
   Begin VB.CommandButton cmdDefaultAddressBook 
      Caption         =   "Account.&DefaultAddressBook"
      Height          =   375
      Left            =   180
      TabIndex        =   11
      Top             =   3120
      Width           =   2955
   End
   Begin VB.CommandButton cmdLogin 
      Caption         =   "&Login"
      Default         =   -1  'True
      Height          =   375
      Left            =   120
      TabIndex        =   33
      Top             =   120
      Width           =   4275
   End
   Begin VB.TextBox txtParameters 
      Height          =   315
      Left            =   120
      TabIndex        =   1
      Text            =   "/ph-"
      Top             =   960
      Width           =   4275
   End
   Begin VB.TextBox txtUserID 
      Height          =   315
      Left            =   120
      TabIndex        =   0
      Text            =   "UserID"
      Top             =   600
      Width           =   4275
   End
   Begin VB.TextBox txtItem 
      Height          =   315
      Left            =   4560
      TabIndex        =   31
      Top             =   6240
      Width           =   975
   End
   Begin VB.CommandButton cmdGoto 
      Caption         =   "<- &Goto Index"
      Height          =   315
      Left            =   5580
      TabIndex        =   32
      Top             =   6240
      Width           =   1275
   End
   Begin VB.Frame Frame2 
      Caption         =   "Additional Address Information"
      Height          =   2115
      Left            =   4560
      TabIndex        =   30
      Top             =   3600
      Width           =   4755
      Begin VB.Label lblMembersCount 
         Height          =   255
         Left            =   1440
         TabIndex        =   27
         Top             =   1500
         Width           =   3255
      End
      Begin VB.Label lblFieldsCount 
         Height          =   255
         Left            =   1440
         TabIndex        =   25
         Top             =   1260
         Width           =   3255
      End
      Begin VB.Label Label1 
         Alignment       =   1  'Right Justify
         Caption         =   "Index:"
         Height          =   255
         Index           =   10
         Left            =   60
         TabIndex        =   28
         Top             =   1740
         Width           =   1275
      End
      Begin VB.Label Label1 
         Alignment       =   1  'Right Justify
         Caption         =   "Members Count:"
         Height          =   255
         Index           =   9
         Left            =   60
         TabIndex        =   26
         Top             =   1500
         Width           =   1275
      End
      Begin VB.Label Label1 
         Alignment       =   1  'Right Justify
         Caption         =   "Fields Count:"
         Height          =   255
         Index           =   11
         Left            =   60
         TabIndex        =   24
         Top             =   1260
         Width           =   1275
      End
      Begin VB.Label lblIndex 
         Height          =   255
         Left            =   1440
         TabIndex        =   29
         Top             =   1740
         Width           =   3255
      End
      Begin VB.Label lblObjType 
         Height          =   255
         Left            =   1440
         TabIndex        =   23
         Top             =   1020
         Width           =   3255
      End
      Begin VB.Label Label1 
         Alignment       =   1  'Right Justify
         Caption         =   "Object Type:"
         Height          =   255
         Index           =   8
         Left            =   60
         TabIndex        =   22
         Top             =   1020
         Width           =   1275
      End
      Begin VB.Label lblEmailType 
         Height          =   255
         Left            =   1440
         TabIndex        =   21
         Top             =   780
         Width           =   3255
      End
      Begin VB.Label Label1 
         Alignment       =   1  'Right Justify
         Caption         =   "Email Type:"
         Height          =   255
         Index           =   7
         Left            =   60
         TabIndex        =   20
         Top             =   780
         Width           =   1275
      End
      Begin VB.Label lblEmailAddress 
         Height          =   255
         Left            =   1440
         TabIndex        =   19
         Top             =   540
         Width           =   3255
      End
      Begin VB.Label Label1 
         Alignment       =   1  'Right Justify
         Caption         =   "Email Address:"
         Height          =   255
         Index           =   6
         Left            =   60
         TabIndex        =   18
         Top             =   540
         Width           =   1275
      End
      Begin VB.Label lblDisplayName 
         Height          =   255
         Left            =   1440
         TabIndex        =   17
         Top             =   300
         Width           =   3255
      End
      Begin VB.Label Label1 
         Alignment       =   1  'Right Justify
         Caption         =   "Display Name:"
         Height          =   255
         Index           =   5
         Left            =   60
         TabIndex        =   16
         Top             =   300
         Width           =   1275
      End
   End
   Begin VB.Frame Frame1 
      Caption         =   "Account Information"
      Height          =   1155
      Left            =   4560
      TabIndex        =   8
      Top             =   120
      Width           =   4755
      Begin VB.Label lblTCPIPPort 
         Height          =   255
         Left            =   1440
         TabIndex        =   7
         Top             =   780
         Width           =   3255
      End
      Begin VB.Label lblTCPIPAddress 
         Height          =   255
         Left            =   1440
         TabIndex        =   5
         Top             =   540
         Width           =   3255
      End
      Begin VB.Label lblPathToHost 
         Height          =   255
         Left            =   1440
         TabIndex        =   3
         Top             =   300
         Width           =   3255
      End
      Begin VB.Label Label1 
         Alignment       =   1  'Right Justify
         Caption         =   "TCP/IP Port:"
         Height          =   255
         Index           =   4
         Left            =   60
         TabIndex        =   6
         Top             =   780
         Width           =   1275
      End
      Begin VB.Label Label1 
         Alignment       =   1  'Right Justify
         Caption         =   "TCP/IP Address:"
         Height          =   255
         Index           =   3
         Left            =   60
         TabIndex        =   4
         Top             =   540
         Width           =   1275
      End
      Begin VB.Label Label1 
         Alignment       =   1  'Right Justify
         Caption         =   "Path to Host:"
         Height          =   255
         Index           =   0
         Left            =   60
         TabIndex        =   2
         Top             =   300
         Width           =   1275
      End
   End
   Begin VB.ListBox lstAddressBookEntries 
      Height          =   2715
      IntegralHeight  =   0   'False
      Left            =   120
      TabIndex        =   15
      Top             =   3840
      Width           =   4275
   End
   Begin ComctlLib.ProgressBar ProgressBar1 
      Align           =   2  'Align Bottom
      Height          =   120
      Left            =   0
      TabIndex        =   34
      Top             =   6645
      Width           =   9435
      _ExtentX        =   16642
      _ExtentY        =   212
      _Version        =   327680
      Appearance      =   1
      MouseIcon       =   "Address.frx":0000
   End
   Begin ComctlLib.ListView lvAddressBooks 
      Height          =   1275
      Left            =   120
      TabIndex        =   10
      Top             =   1740
      Width           =   9195
      _ExtentX        =   16219
      _ExtentY        =   2249
      View            =   3
      LabelEdit       =   1
      LabelWrap       =   0   'False
      HideSelection   =   0   'False
      _Version        =   327680
      ForeColor       =   -2147483640
      BackColor       =   -2147483643
      Appearance      =   1
      MouseIcon       =   "Address.frx":001C
      NumItems        =   8
      BeginProperty ColumnHeader(1) {0713E8C7-850A-101B-AFC0-4210102A8DA7} 
         Key             =   "Name"
         Object.Tag             =   ""
         Text            =   "Name"
         Object.Width           =   2540
      EndProperty
      BeginProperty ColumnHeader(2) {0713E8C7-850A-101B-AFC0-4210102A8DA7} 
         Key             =   "ObjType"
         Object.Tag             =   ""
         Text            =   "Obj Type"
         Object.Width           =   2540
      EndProperty
      BeginProperty ColumnHeader(3) {0713E8C7-850A-101B-AFC0-4210102A8DA7} 
         Key             =   "Subtype"
         Object.Tag             =   ""
         Text            =   "Subtype"
         Object.Width           =   2540
      EndProperty
      BeginProperty ColumnHeader(4) {0713E8C7-850A-101B-AFC0-4210102A8DA7} 
         Key             =   "Entries"
         Object.Tag             =   ""
         Text            =   "Entries"
         Object.Width           =   2540
      EndProperty
      BeginProperty ColumnHeader(5) {0713E8C7-850A-101B-AFC0-4210102A8DA7} 
         Key             =   "FieldDefinitions"
         Object.Tag             =   ""
         Text            =   "Field Definitions"
         Object.Width           =   2540
      EndProperty
      BeginProperty ColumnHeader(6) {0713E8C7-850A-101B-AFC0-4210102A8DA7} 
         Key             =   "SortOrder"
         Object.Tag             =   ""
         Text            =   "Sort Order"
         Object.Width           =   2540
      EndProperty
      BeginProperty ColumnHeader(7) {0713E8C7-850A-101B-AFC0-4210102A8DA7} 
         Key             =   "Default"
         Object.Tag             =   ""
         Text            =   "Default"
         Object.Width           =   2540
      EndProperty
      BeginProperty ColumnHeader(8) {0713E8C7-850A-101B-AFC0-4210102A8DA7} 
         Key             =   "ProviderID"
         Object.Tag             =   ""
         Text            =   "Provider ID"
         Object.Width           =   2540
      EndProperty
   End
   Begin VB.Line Line1 
      X1              =   120
      X2              =   9300
      Y1              =   1380
      Y2              =   1380
   End
   Begin VB.Label Label1 
      Caption         =   "Address &Books"
      Height          =   195
      Index           =   2
      Left            =   120
      TabIndex        =   9
      Top             =   1500
      Width           =   9195
   End
   Begin VB.Label Label1 
      Caption         =   "Address Book &Entries"
      Height          =   195
      Index           =   1
      Left            =   120
      TabIndex        =   14
      Top             =   3600
      Width           =   4275
   End
End
Attribute VB_Name = "frmAddress"
Attribute VB_Creatable = False
Attribute VB_Exposed = False
'/***************************************************************************
'$name: ADDRESS.FRM
'$version: 1.0 
'$date_modified: 121298 
'$description: This app lists all of the AddressBooks on a system and allows
'               you to select them and display the AddressBookEntries for the
'               AddressBook.  It will also display the information for the
'               selected AddressBookEntry.
'$owner: GroupWise SDK Team Lead
'Copyright (c) 1998 Novell, Inc. All Rights Reserved.
'
'THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND TREATIES.
'USE AND REDISTRIBUTION OF THIS WORK IS SUBJECT TO THE LICENSE AGREEMENT
'ACCOMPANYING THE SOFTWARE DEVELOPMENT KIT (SDK) THAT CONTAINS THIS WORK.
'PURSUANT TO THE SDK LICENSE AGREEMENT, NOVELL HEREBY GRANTS TO DEVELOPER A
'ROYALTY-FREE, NON-EXCLUSIVE LICENSE TO INCLUDE NOVELL'S SAMPLE CODE IN ITS
'PRODUCT. NOVELL GRANTS DEVELOPER WORLDWIDE DISTRIBUTION RIGHTS TO MARKET,
'DISTRIBUTE, OR SELL NOVELL'S SAMPLE CODE AS A COMPONENT OF DEVELOPER'S
'PRODUCTS. NOVELL SHALL HAVE NO OBLIGATIONS TO DEVELOPER OR DEVELOPER'S
'CUSTOMERS WITH RESPECT TO THIS CODE.
'****************************************************************************/

Option Explicit

' Arrays for enumeration constants
Private sAddressTypeConstants(5) As String
Private sAddressBookTypeConstants(3) As String
Private sAddressBookSubtypeConstants(2) As String
Private sSortConstants(2) As String

' GroupWise Object API variabls
Private GWRootAccount As Object
Private GWAddressBook As Object
Private GWAddressBooks As Object
Private GWAddressBookEntries As Object

' Status flags
Private bErrorFlag As Boolean

Private Sub chkGroupsOnly_Click()

    If Not bErrorFlag Then
        
        Screen.MousePointer = vbHourglass
        
        ' Update AddressBookEntries ListBox
        Call GetAddressBookEntries
    
        Screen.MousePointer = vbDefault
        
    End If
    
    bErrorFlag = False
    
End Sub

Private Sub Form_Load()
    
    ' Center the form
    Me.Move (Screen.Width - Me.Width) \ 2, (Screen.Height - Me.Height) \ 2
    
    'Assign enumeration Constants (See Object Browser - F2)
    sAddressTypeConstants(egwUnknown) = "Unknown"
    sAddressTypeConstants(egwUser) = "User"
    sAddressTypeConstants(egwCompany) = "Company"
    sAddressTypeConstants(egwResource) = "Resource"
    sAddressTypeConstants(egwGroup) = "Group"
    
    sAddressBookTypeConstants(egwUnknownBook) = "Unknown Book"
    sAddressBookTypeConstants(egwNovellPersonal) = "Novell Personal"
    sAddressBookTypeConstants(egwNovellSystem) = "Novell System"
    
    sAddressBookSubtypeConstants(egwOther) = "Other"
    sAddressBookSubtypeConstants(egwFrequentContact) = "Frequent Contact"
    
    sSortConstants(egwAscending) = "Ascending"
    sSortConstants(egwDescending) = "Descending"
    
End Sub

Private Sub Form_Unload(Cancel As Integer)
    
    ' Cleanup global API variables
    Set GWAddressBookEntries = Nothing
    Set GWAddressBooks = Nothing
    Set GWAddressBook = Nothing
    Set GWRootAccount = Nothing

End Sub

Private Sub cmdLogin_Click()
    
Dim objApplication As Object

    Screen.MousePointer = vbHourglass
    
    ' Release API objects so you can login again
    Set GWAddressBookEntries = Nothing
    Set GWAddressBooks = Nothing
    Set GWAddressBook = Nothing
    Set GWRootAccount = Nothing
    
    ' Initialize controls
    lvAddressBooks.ListItems.Clear
    lstAddressBookEntries.Clear
    
    ' Get the application object
    Me.Caption = "Creating GroupWare Session...": DoEvents
    Set objApplication = CreateObject("NovellGroupWareSession")
    
    ' Login to GroupWise API
    Me.Caption = "Logging In...": DoEvents
    Set GWRootAccount = objApplication.Login(txtUserID, txtParameters)
    
    ' Display GroupWise Account properties
    lblPathToHost = GWRootAccount.PathToHost
    lblTCPIPAddress = GWRootAccount.TCPIPAddress
    lblTCPIPPort = GWRootAccount.TCPIPPort
    
    'Get Address Books
    Call GetAddressBooks
    
    Screen.MousePointer = vbDefault

End Sub

Private Sub cmdDefaultAddressBook_Click()

    Screen.MousePointer = vbHourglass
    
    On Error GoTo cmdDefaultAddressBook_Click_Err
    
    ' Get the AddressBookEntries for the Default AddressBook
    Set GWAddressBook = GWRootAccount.DefaultAddressBook
    Call GetAddressBookEntries
    
cmdDefaultAddressBook_Click_Err:

    Screen.MousePointer = vbDefault
    
End Sub

Private Sub cmdFrequentContacts_Click()

    Screen.MousePointer = vbHourglass
    
    On Error GoTo cmdFrequentContacts_Click_Err
    
    ' Get the AddressBookEntries for the Frequent Contacts AddressBook
    Set GWAddressBook = GWRootAccount.FrequentContacts
    Call GetAddressBookEntries
    
cmdFrequentContacts_Click_Err:
    
    Screen.MousePointer = vbDefault

End Sub

Private Sub cmdSystemAddressBook_Click()

    Screen.MousePointer = vbHourglass
    
    On Error GoTo cmdSystemAddressBook_Click_Err
    
    ' Get the AddressBookEntries for the System AddressBook
    Set GWAddressBook = GWRootAccount.SystemAddressBook
    Call GetAddressBookEntries
    
cmdSystemAddressBook_Click_Err:
    
    Screen.MousePointer = vbDefault

End Sub

Private Sub cmdGoto_Click()

    ' Goes to the AddressBookEntry based on the given index from the text box
    lstAddressBookEntries.ListIndex = Val(txtItem) - 1

End Sub

Private Sub lvAddressBooks_ItemClick(ByVal Item As ListItem)

    Screen.MousePointer = vbHourglass
    
    On Error GoTo lvAddressBooks_ItemClick_Err
    
    ' Get the AddressBookEntries for the selected AddressBook
    Set GWAddressBook = GWAddressBooks(Item.Index)
    Call GetAddressBookEntries

lvAddressBooks_ItemClick_Err:
    
    Screen.MousePointer = vbDefault
    
End Sub

Private Sub lstAddressBookEntries_Click()

Dim objAddresses As Addresses
Dim objAddress As AddressBookEntry
Dim sAddress As String

    Screen.MousePointer = vbHourglass
    
    On Error Resume Next
    
    ' Get an AddressBookEntry object
    Set objAddress = GWAddressBookEntries(lstAddressBookEntries.ItemData(lstAddressBookEntries.ListIndex))
    If Err Then
        MsgBox "Set objAddress = GWAddressBookEntries(lstAddressBookEntries.ItemData (lstAddressBookEntries.ListIndex))"
        Err.Clear
    End If
    
    If optindex(0) = True Then
        
        ' Get an AddressBookEntry using a numeric index from above call
        Call GetAddressBookEntry(objAddress)
        If Err Then
            MsgBox "Error using numeric index"
            Err.Clear
        End If
    Else
        
        ' Check for an EmailAddress
        If Len(objAddress.EmailAddress) Then
            
            ' Save the EmailAddress string
            sAddress = objAddress.EmailAddress
            If Err Then
                MsgBox "sAddress = objAddress.EmailAddress"
                Err.Clear
            End If
            
            ' Perform a Find with the previously saved EmailAddress string
            Set objAddresses = GWAddressBookEntries.Find("(<E-Mail Address> contains """ & sAddress & """)")
            If Err Then
                MsgBox "Set objAddresses = GWAddressBookEntries.Find(""(<E-Mail Address> contains """ & sAddress & """)"")"
                Err.Clear
            End If
        Else
        
            ' Save the DisplayName string if there was no EmailAddress
            sAddress = objAddress.DisplayName
            If Err Then
                MsgBox "sAddress = objAddress.DisplayName"
                Err.Clear
            End If
            
            ' Perform a Find with the previously saved DisplayName string
            Set objAddresses = GWAddressBookEntries.Find("(Name contains """ & sAddress & """)")
            If Err Then
                MsgBox "Set objAddresses = GWAddressBookEntries.Find(""(Name contains """ & sAddress & """)"")"
                Err.Clear
            End If
        End If
        
        ' Get an AddressBookEntry using an Address object
        Call GetAddressBookEntry( _
             GWAddressBookEntries(objAddresses(1)) _
                                )
    End If
    
    Screen.MousePointer = vbDefault
    
End Sub

Private Sub GetAddressBooks()
    
Dim objAddressBook As Object
Dim objListItem As ListItem
Dim lCount As Long

    Me.Caption = "Getting Address Books...": DoEvents
    
    ' Get the AddressBooks collection
    Set GWAddressBooks = GWRootAccount.AddressBooks
    
    If GWAddressBooks.Count Then ProgressBar1.Max = GWAddressBooks.Count
    
    ' Display the AddressBooks in the ListView
    For Each objAddressBook In GWAddressBooks
        Set objListItem = lvAddressBooks.ListItems.Add(, , objAddressBook.Name)
        With objListItem
            objListItem.SubItems(1) = sAddressBookTypeConstants(objAddressBook.ObjType)
            objListItem.SubItems(2) = sAddressBookSubtypeConstants(objAddressBook.Subtype)
            objListItem.SubItems(3) = objAddressBook.AddressBookEntries.Count
            objListItem.SubItems(4) = objAddressBook.FieldDefinitions.Count
            objListItem.SubItems(5) = sSortConstants(objAddressBook.SortOrder)
            objListItem.SubItems(6) = objAddressBook.Default
            objListItem.SubItems(7) = objAddressBook.ProviderID
        End With
        
        ' Display progress
        lCount = lCount + 1
        ProgressBar1 = lCount
    Next
    
    ProgressBar1 = 0

End Sub

Private Sub GetAddressBookEntries()

Dim objAddressBookEntry As Object
Dim lCount As Long

    Me.Caption = "Getting Address Book Entries...": DoEvents
    
    ' Initialize controls
    Call ClearInfo
    lstAddressBookEntries.Clear
    
    On Error GoTo GetAddressBookEntries_Err
    
    ' Get the AddressBookEntries collection form the AddressBook passed in
    Set GWAddressBookEntries = GWAddressBook.AddressBookEntries
    
    On Error GoTo 0
    
    If GWAddressBookEntries.Count Then ProgressBar1.Max = GWAddressBookEntries.Count
    
    ' Display the AddressBookEntries in the ListBox
    For Each objAddressBookEntry In GWAddressBookEntries
        lCount = lCount + 1
        
        If chkGroupsOnly = vbChecked Then
            
            ' Display only Groups if the "Groups Only" CheckBox is checked
            If objAddressBookEntry.ObjType = egwGroup Then
                lstAddressBookEntries.AddItem objAddressBookEntry.DisplayName
                
                ' Save the Index for quick access when selecting the item in the ListBox
                lstAddressBookEntries.ItemData(lstAddressBookEntries.NewIndex) = lCount
            End If
        Else
        
            ' Display all AddressBookEntiries
            lstAddressBookEntries.AddItem objAddressBookEntry.DisplayName
            
            ' Save the Index for quick access
            lstAddressBookEntries.ItemData(lstAddressBookEntries.NewIndex) = lCount
        End If
        
        ProgressBar1 = lCount
    Next
    
    ProgressBar1 = 0
    
    ' Select the first item in the ListBox
    If lstAddressBookEntries.ListCount Then lstAddressBookEntries.ListIndex = 0
    
    Exit Sub
    
GetAddressBookEntries_Err:
    
    bErrorFlag = True
    chkGroupsOnly = vbUnchecked
    MsgBox "You must first select an Address Book.", vbInformation
    
End Sub

Private Sub GetAddressBookEntry(objAddressBookEntry As Object)
    
    On Error Resume Next
    
    ' Initialize controls
    Call ClearInfo
    
    ' Display all AddressBookEntry information
    lblDisplayName = objAddressBookEntry.DisplayName
    If Err Then lblDisplayName = Err.Description: Err.Clear
    lblDisplayName.Refresh
    
    lblEmailAddress = objAddressBookEntry.EmailAddress
    If Err Then lblEmailAddress = Err.Description: Err.Clear
    lblEmailAddress.Refresh
    
    lblEmailType = objAddressBookEntry.EmailType
    If Err Then lblEmailType = Err.Description: Err.Clear
    lblEmailType.Refresh
    
    lblObjType = objAddressBookEntry.ObjType & " = " & _
                 sAddressTypeConstants(objAddressBookEntry.ObjType)
    If Err Then lblObjType = Err.Description: Err.Clear
    lblObjType.Refresh
    
    lblFieldsCount = objAddressBookEntry.Fields.Count
    If Err Then lblFieldsCount = Err.Description: Err.Clear
    lblFieldsCount.Refresh
    
    lblMembersCount = objAddressBookEntry.Members.Count
    If Err Then lblMembersCount = Err.Description: Err.Clear
    lblMembersCount.Refresh
    
    lblIndex = lstAddressBookEntries.ItemData(lstAddressBookEntries.ListIndex)
    If Err Then lblIndex = Err.Description: Err.Clear
    lblIndex.Refresh

End Sub

Private Sub ClearInfo()
    
    lblDisplayName = ""
    lblEmailAddress = ""
    lblEmailType = ""
    lblObjType = ""
    lblFieldsCount = ""
    lblMembersCount = ""
    lblIndex = ""

End Sub

Private Sub txtParameters_GotFocus()

    ' Position the cursor at the end of the text in the TextBox
    txtParameters.SelStart = Len(txtParameters)
    
End Sub

Private Sub txtUserID_GotFocus()

    ' Select contents of TextBox
    txtUserID.SelStart = 0
    txtUserID.SelLength = Len(txtUserID)
    
End Sub