title: Unable to cast COM object - Microsoft outlook & C#
body: <p>I have written this code to view the unread items in my outlook mail box and here is the code:</p>
  
  <pre><code> Microsoft.Office.Interop.Outlook.Application app;
   Microsoft.Office.Interop.Outlook.Items items; 
   Microsoft.Office.Interop.Outlook.NameSpace ns; 
   Microsoft.Office.Interop.Outlook.MAPIFolder inbox;
  
   Microsoft.Office.Interop.Outlook.Application application = new Microsoft.Office.Interop.Outlook.Application();
          app = application;
          ns =  application.Session;
          inbox = ns.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);
          items = inbox.Items;
          foreach (Microsoft.Office.Interop.Outlook.MailItem mail in items)
          {
              if (mail.UnRead == true)
              {
                  MessageBox.Show(mail.Subject.ToString());
              }
          }
  </code></pre>
  
  <p>but on the foreach loop I am getting this error:</p>
  
  <blockquote>
    <p>"Unable to cast COM object of type 'System.__ComObject' to interface type 'Microsoft.Office.Interop.Outlook.MailItem'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{00063034-0000-0000-C000-000000000046}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE))."</p>
  </blockquote>
  
  <p>Can you please assist me how to resolve this error?</p>