How to get Explorer & Inspector selected mail item using Outlook Object Model (OOM) & .Net?

In this article, we are going to see how we can get Explorer & Inspector selected mail item using Outlook Object Model (OOM) & .Net and process it.

 '[Code Snippet : VB.Net, .Net Framework 2.0/3.5, Outlook Object Model (OOM)]
 ...
            'Declaration part
             Dim ThisOutlookSession As Outlook.Application = New Outlook.Application
             Dim NS As Outlook.NameSpace = ThisOutlookSession.Session
             Dim objsel As Object
            'Check it's Inspector or Explorer Window
             If TypeName(ThisOutlookSession.ActiveWindow) = "Inspector" Then
                 MsgBox("Inspector")
                 objsel = ThisOutlookSession.ActiveInspector.CurrentItem
                 MsgBox(objsel.Subject)
             Else
                 MsgBox("Explorer")
                'Get the selected item for processing
                 objsel = ThisOutlookSession.ActiveExplorer.Selection.Item(1)
                'Check the relevant item and process per your logic
                 If (TypeOf objsel Is Outlook.MailItem) Then
                     Dim mailItem As Outlook.MailItem = _
                         TryCast(objsel, Outlook.MailItem)
                     MsgBox("Mail Item's Subject" & mailItem.Subject)
                     'Implement your business logic here
                     ...
                 ElseIf (TypeOf objsel Is Outlook.ContactItem) Then
                     Dim contactItem As Outlook.ContactItem = _
                        TryCast(objsel, Outlook.ContactItem)
                     MsgBox("Contact Item's Subject" & contactItem.Subject)
                     'Implement your business logic here
                     ...
                 ElseIf (TypeOf objsel Is Outlook. _
                 AppointmentItem) Then
                     Dim apptItem As Outlook.AppointmentItem = _
                        TryCast(objsel, Outlook.AppointmentItem)
                     MsgBox("Appointment Item's Subject" & apptItem.Subject)
                     'Implement your business logic here
                     ...
                 ElseIf (TypeOf objsel Is Outlook.TaskItem) Then
                     Dim taskItem As Outlook.TaskItem = _
                         TryCast(objsel, Outlook.TaskItem)
                     MsgBox("Task Item's Body" & taskItem.Body)
                     'Implement your business logic here
                     ...
                 ElseIf (TypeOf objsel Is Outlook.MeetingItem) Then
                     Dim meetingItem As Outlook.MeetingItem = _
                         TryCast(objsel, Outlook.MeetingItem)
                     MsgBox("Meeting Item's subject" & meetingItem.Subject)
                     'Implement your business logic here
                     ...
                 End If
             End If
             'Release the unwanted objects
             objsel = Nothing
 ...

Applicable environment: Outlook 2007, Outlook Object Model, VB.Net, .Net Framework 2.0/3.5