VERSION 5.00
Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX"
Begin VB.Form frm_Main 
   BorderStyle     =   3  'Fixed Dialog
   Caption         =   "Phone Book"
   ClientHeight    =   3690
   ClientLeft      =   150
   ClientTop       =   435
   ClientWidth     =   6660
   Icon            =   "frm_Main.frx":0000
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MinButton       =   0   'False
   ScaleHeight     =   3690
   ScaleWidth      =   6660
   StartUpPosition =   2  'CenterScreen
   Begin MSComctlLib.StatusBar sbr_PhoneBook 
      Align           =   2  'Align Bottom
      Height          =   375
      Left            =   0
      TabIndex        =   2
      Top             =   3315
      Width           =   6660
      _ExtentX        =   11748
      _ExtentY        =   661
      Style           =   1
      SimpleText      =   "Welcome to Phone Book Version 2.0"
      _Version        =   393216
      BeginProperty Panels {8E3867A5-8586-11D1-B16A-00C0F0283628} 
         NumPanels       =   1
         BeginProperty Panel1 {8E3867AB-8586-11D1-B16A-00C0F0283628} 
         EndProperty
      EndProperty
      BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
         Name            =   "Tahoma"
         Size            =   8.25
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
   End
   Begin MSComctlLib.ListView lvw_PhoneBook 
      Height          =   2175
      Left            =   465
      TabIndex        =   1
      Top             =   705
      Width           =   5655
      _ExtentX        =   9975
      _ExtentY        =   3836
      View            =   3
      LabelEdit       =   1
      LabelWrap       =   -1  'True
      HideSelection   =   -1  'True
      FullRowSelect   =   -1  'True
      GridLines       =   -1  'True
      _Version        =   393217
      ForeColor       =   -2147483640
      BackColor       =   -2147483643
      BorderStyle     =   1
      Appearance      =   1
      BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
         Name            =   "Tahoma"
         Size            =   8.25
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      NumItems        =   5
      BeginProperty ColumnHeader(1) {BDD1F052-858B-11D1-B16A-00C0F0283628} 
         Text            =   "First Name"
         Object.Width           =   2540
      EndProperty
      BeginProperty ColumnHeader(2) {BDD1F052-858B-11D1-B16A-00C0F0283628} 
         SubItemIndex    =   1
         Text            =   "Last Name"
         Object.Width           =   3087
      EndProperty
      BeginProperty ColumnHeader(3) {BDD1F052-858B-11D1-B16A-00C0F0283628} 
         SubItemIndex    =   2
         Text            =   "Telephone Number"
         Object.Width           =   6174
      EndProperty
      BeginProperty ColumnHeader(4) {BDD1F052-858B-11D1-B16A-00C0F0283628} 
         SubItemIndex    =   3
         Text            =   "EMail"
         Object.Width           =   3528
      EndProperty
      BeginProperty ColumnHeader(5) {BDD1F052-858B-11D1-B16A-00C0F0283628} 
         SubItemIndex    =   4
         Text            =   "Address"
         Object.Width           =   4410
      EndProperty
   End
   Begin MSComctlLib.TabStrip tab_Main 
      Height          =   2775
      Left            =   360
      TabIndex        =   0
      Top             =   255
      Width           =   5895
      _ExtentX        =   10398
      _ExtentY        =   4895
      MultiRow        =   -1  'True
      _Version        =   393216
      BeginProperty Tabs {1EFB6598-857C-11D1-B16A-00C0F0283628} 
         NumTabs         =   9
         BeginProperty Tab1 {1EFB659A-857C-11D1-B16A-00C0F0283628} 
            Caption         =   "A  B  C"
            ImageVarType    =   2
         EndProperty
         BeginProperty Tab2 {1EFB659A-857C-11D1-B16A-00C0F0283628} 
            Caption         =   "D E F"
            ImageVarType    =   2
         EndProperty
         BeginProperty Tab3 {1EFB659A-857C-11D1-B16A-00C0F0283628} 
            Caption         =   "G H I"
            ImageVarType    =   2
         EndProperty
         BeginProperty Tab4 {1EFB659A-857C-11D1-B16A-00C0F0283628} 
            Caption         =   "J K L"
            ImageVarType    =   2
         EndProperty
         BeginProperty Tab5 {1EFB659A-857C-11D1-B16A-00C0F0283628} 
            Caption         =   "M N O"
            ImageVarType    =   2
         EndProperty
         BeginProperty Tab6 {1EFB659A-857C-11D1-B16A-00C0F0283628} 
            Caption         =   "P Q R"
            ImageVarType    =   2
         EndProperty
         BeginProperty Tab7 {1EFB659A-857C-11D1-B16A-00C0F0283628} 
            Caption         =   "S T U"
            ImageVarType    =   2
         EndProperty
         BeginProperty Tab8 {1EFB659A-857C-11D1-B16A-00C0F0283628} 
            Caption         =   "V W X"
            ImageVarType    =   2
         EndProperty
         BeginProperty Tab9 {1EFB659A-857C-11D1-B16A-00C0F0283628} 
            Caption         =   "Y Z"
            ImageVarType    =   2
         EndProperty
      EndProperty
      BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
         Name            =   "Tahoma"
         Size            =   9
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
   End
   Begin VB.Menu pdm_File 
      Caption         =   "&File"
      Begin VB.Menu pdi_ShowPhoneBook 
         Caption         =   "&Show Phone Book"
         Shortcut        =   ^S
         Visible         =   0   'False
      End
      Begin VB.Menu Separator01 
         Caption         =   "-"
         Visible         =   0   'False
      End
      Begin VB.Menu pdi_AddNewPerson 
         Caption         =   "&Add New Person"
         Shortcut        =   ^A
      End
      Begin VB.Menu pdi_EditAPerson 
         Caption         =   "&Edit A Person"
         Shortcut        =   ^E
      End
      Begin VB.Menu pdi_FindAPerson 
         Caption         =   "&Find A Person"
         Shortcut        =   ^F
      End
      Begin VB.Menu Separator02 
         Caption         =   "-"
      End
      Begin VB.Menu pdi_SystemTrayIcon 
         Caption         =   "System&Tray Icon"
         Shortcut        =   ^T
      End
      Begin VB.Menu Separator03 
         Caption         =   "-"
      End
      Begin VB.Menu pdi_Exit 
         Caption         =   "E&xit"
         Shortcut        =   ^X
      End
   End
   Begin VB.Menu pdm_Tools 
      Caption         =   "&Tools"
      Begin VB.Menu pdi_PrintPreview 
         Caption         =   "Print Pre&view"
         Shortcut        =   ^V
      End
      Begin VB.Menu pdi_Print 
         Caption         =   "&Print..."
         Shortcut        =   ^P
      End
   End
   Begin VB.Menu pdm_Help 
      Caption         =   "&Help"
      Begin VB.Menu pdi_About 
         Caption         =   "Abo&ut Phone Book"
      End
   End
End
Attribute VB_Name = "frm_Main"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub Form_Load()
    Dim v_sSQL As String
    Dim v_sActiveConnection As String
    Dim v_iLoop As Integer
    Dim v_iIndex As Integer
    
    v_sSQL = "SELECT * FROM PhoneBook WHERE FirstName Like "
    v_sActiveConnection = "Provider=Microsoft.Jet.OLEDB.3.51;Data Source=" & App.Path & "\PhoneBook.mdb"
    
    Set v_rsPhoneBook = New Recordset
    For v_iLoop = 1 To frm_Main.lvw_PhoneBook.ListItems.Count
        frm_Main.lvw_PhoneBook.ListItems.Remove 1
    Next v_iLoop
    
    v_rsPhoneBook.Open v_sSQL & "'A%' OR FirstName LIKE 'B%' OR FirstName LIKE 'C%' ORDER BY FirstName", v_sActiveConnection

    While Not v_rsPhoneBook.EOF
        v_iIndex = v_iIndex + 1
        frm_Main.lvw_PhoneBook.ListItems.Add , , v_rsPhoneBook.Fields!FirstName
        frm_Main.lvw_PhoneBook.ListItems(v_iIndex).ListSubItems.Add 1, , v_rsPhoneBook.Fields!LastName
        frm_Main.lvw_PhoneBook.ListItems(v_iIndex).ListSubItems.Add 2, , v_rsPhoneBook.Fields!TelNo
        If Not IsNull(v_rsPhoneBook.Fields!EMail) Then
            frm_Main.lvw_PhoneBook.ListItems(v_iIndex).ListSubItems.Add 3, , v_rsPhoneBook.Fields!EMail
        End If
        If Not IsNull(v_rsPhoneBook.Fields!Address) Then
            frm_Main.lvw_PhoneBook.ListItems(v_iIndex).ListSubItems.Add 4, , v_rsPhoneBook.Fields!Address
        End If
        v_rsPhoneBook.MoveNext
    Wend
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim v_lMsg As Single
    
    v_lMsg = X / Screen.TwipsPerPixelX
    Select Case v_lMsg
        Case WM_LBUTTONUP
        Case WM_RBUTTONUP
            If pSystemTrayOnly Then
                frm_Main.pdi_ShowPhoneBook.Visible = True
                frm_Main.Separator01.Visible = True
            End If
            PopupMenu frm_Main.pdm_File
        Case WM_MOUSEMOVE
        Case WM_LBUTTONDOWN
        Case WM_LBUTTONDBLCLK
            frm_Main.pdi_ShowPhoneBook.Visible = False
            frm_Main.Separator01.Visible = False
            frm_Main.Show
        Case WM_RBUTTONDOWN
        Case WM_RBUTTONDBLCLK
        Case Else
    End Select
End Sub

Private Sub Form_Unload(Cancel As Integer)
    Call Shell_NotifyIcon(NIM_DELETE, nfIconData)
End Sub

Private Sub pdi_About_Click()
    frm_About.Show vbModal
End Sub

Private Sub pdi_AddNewPerson_Click()
    frm_AddNew.Show vbModal
End Sub

Private Sub pdi_AdvancedSearch_Click()
    frm_AdvancedSearch.Show vbModal
End Sub

Private Sub pdi_EditAPerson_Click()
    frm_Edit.Show vbModal
End Sub

Private Sub pdi_Exit_Click()
    Call Shell_NotifyIcon(NIM_DELETE, nfIconData)
    Unload frm_Main
End Sub

Private Sub pdi_FindAPerson_Click()
    frm_Find.Show vbModal
End Sub

Private Sub pdi_Print_Click()
    Dim v_rsPrint As New Recordset
    Dim v_sActiveConnection As String
    Dim v_iCurrentX, v_iCurrentY As Integer

    On Error GoTo Err
    
    v_sActiveConnection = "Provider=Microsoft.Jet.OLEDB.3.51;Data Source=" & App.Path & "\PhoneBook.mdb"
    v_rsPrint.Open "SELECT * FROM PhoneBook ORDER BY FirstName", v_sActiveConnection
    
    Printer.CurrentX = 1440
    Printer.CurrentY = 1800
    v_iCurrentX = 1440
    v_iCurrentY = 1800
        
    Printer.FontBold = True
    Printer.Print "First Name";
    Printer.CurrentX = 2940
    Printer.Print "Last Name";
    Printer.CurrentX = 5140
    Printer.Print "Telephone Number"
        
    Printer.FontBold = False
    While Not v_rsPrint.EOF
        If v_iCurrentY >= (Printer.ScaleHeight) - 1800 Then
            Printer.EndDoc
            v_iCurrentY = 1800
        End If
        v_iCurrentY = v_iCurrentY + Printer.TextHeight(v_rsPrint.Fields!FirstName)
        
        Printer.Line (v_iCurrentX - 60, v_iCurrentY)-(Printer.ScaleWidth - v_iCurrentX + 60, v_iCurrentY), , B
        Printer.Line (v_iCurrentX - 60, v_iCurrentY)-(2860, v_iCurrentY), , B
        Printer.Line (v_iCurrentX - 60, v_iCurrentY)-(5060, v_iCurrentY), , B
                
        Printer.CurrentX = 1440
        Printer.Print v_rsPrint.Fields!FirstName;
        Printer.CurrentX = 2940
        Printer.Print v_rsPrint.Fields!LastName;
        Printer.CurrentX = 5140
        Printer.Print v_rsPrint.Fields!TelNo
        v_rsPrint.MoveNext
    Wend
    Printer.EndDoc
    Exit Sub
    
Err:
    MsgBox Err.Description, vbCritical
End Sub

Private Sub pdi_PrintPreview_Click()
    With frm_PrintPreview
        .pic_Preview.Width = Printer.Width
        .pic_Preview.Height = Printer.Height
        .pic_Shadow.Width = .pic_Preview.Width
        .pic_Shadow.Height = .pic_Preview.Height
        
        .pic_Preview.ScaleLeft = Printer.ScaleLeft
        .pic_Preview.ScaleTop = Printer.ScaleTop
        .pic_Preview.ScaleWidth = Printer.ScaleWidth
        .pic_Preview.ScaleHeight = Printer.ScaleHeight
        .pic_Shadow.ScaleWidth = .pic_Preview.ScaleWidth
        .pic_Shadow.ScaleHeight = .pic_Preview.ScaleHeight
        
        Call MakePrintPreview
        .Show vbModal
    End With
End Sub

Private Sub pdi_ShowPhoneBook_Click()
    frm_Main.pdi_ShowPhoneBook.Visible = False
    frm_Main.Separator01.Visible = False
    frm_Main.pdi_SystemTrayIcon.Checked = False
    pSystemTrayOnly = False
    frm_Main.Show
End Sub

Private Sub pdi_SystemTrayIcon_Click()
    frm_Main.pdi_SystemTrayIcon.Checked = True
    frm_Main.Hide
    pSystemTrayOnly = True
End Sub

Private Sub tab_Main_Click()
    Dim v_sSQL As String
    Dim v_sActiveConnection As String
    Dim v_iLoop As Integer
    Dim v_iIndex As Integer
    
    v_sSQL = "SELECT * FROM PhoneBook WHERE FirstName Like "
    v_sActiveConnection = "Provider=Microsoft.Jet.OLEDB.3.51;Data Source=" & App.Path & "\PhoneBook.mdb"
    
    For v_iLoop = 1 To frm_Main.lvw_PhoneBook.ListItems.Count
        frm_Main.lvw_PhoneBook.ListItems.Remove 1
    Next v_iLoop
    
    Set v_rsPhoneBook = New Recordset
    Select Case frm_Main.tab_Main.SelectedItem.Index
    Case 1:
        v_rsPhoneBook.Open v_sSQL & "'A%' OR FirstName LIKE 'B%' OR FirstName LIKE 'C%' ORDER BY FirstName", v_sActiveConnection
    Case 2:
        v_rsPhoneBook.Open v_sSQL & "'D%' OR FirstName LIKE 'E%' OR FirstName LIKE 'F%' ORDER BY FirstName", v_sActiveConnection
    Case 3:
        v_rsPhoneBook.Open v_sSQL & "'G%' OR FirstName LIKE 'H%' OR FirstName LIKE 'I%' ORDER BY FirstName", v_sActiveConnection
    Case 4:
        v_rsPhoneBook.Open v_sSQL & "'J%' OR FirstName LIKE 'K%' OR FirstName LIKE 'L%' ORDER BY FirstName", v_sActiveConnection
    Case 5:
        v_rsPhoneBook.Open v_sSQL & "'M%' OR FirstName LIKE 'N%' OR FirstName LIKE 'O%' ORDER BY FirstName", v_sActiveConnection
    Case 6:
        v_rsPhoneBook.Open v_sSQL & "'P%' OR FirstName LIKE 'Q%' OR FirstName LIKE 'R%' ORDER BY FirstName", v_sActiveConnection
    Case 7:
        v_rsPhoneBook.Open v_sSQL & "'S%' OR FirstName LIKE 'T%' OR FirstName LIKE 'U%' ORDER BY FirstName", v_sActiveConnection
    Case 8:
        v_rsPhoneBook.Open v_sSQL & "'V%' OR FirstName LIKE 'W%' OR FirstName LIKE 'X%' ORDER BY FirstName", v_sActiveConnection
    Case 9:
        v_rsPhoneBook.Open v_sSQL & "'Y%' OR FirstName LIKE 'Z%' ORDER BY FirstName", v_sActiveConnection
    End Select
    
    While Not v_rsPhoneBook.EOF
        v_iIndex = v_iIndex + 1
        frm_Main.lvw_PhoneBook.ListItems.Add , , v_rsPhoneBook.Fields!FirstName
        frm_Main.lvw_PhoneBook.ListItems(v_iIndex).ListSubItems.Add 1, , v_rsPhoneBook.Fields!LastName
        frm_Main.lvw_PhoneBook.ListItems(v_iIndex).ListSubItems.Add 2, , v_rsPhoneBook.Fields!TelNo
        If Not IsNull(v_rsPhoneBook.Fields!EMail) Then
            frm_Main.lvw_PhoneBook.ListItems(v_iIndex).ListSubItems.Add 3, , v_rsPhoneBook.Fields!EMail
        End If
        If Not IsNull(v_rsPhoneBook.Fields!Address) Then
            frm_Main.lvw_PhoneBook.ListItems(v_iIndex).ListSubItems.Add 4, , v_rsPhoneBook.Fields!Address
        End If
        v_rsPhoneBook.MoveNext
    Wend
End Sub
