это немного обычный подход к попытке «захватить» активный объект внешнего вида ... Особенно, если активного объекта нет.Более стандартный подход - это нечто вроде:
outlookApplication = new Application();
outlookNamespace = m_OutlookApplication.GetNamespace("mapi");
// If an outlook app is already open, then it will reuse that
// session. Else it will perform a fresh logon.
outlookNamespace.Logon(accountName, password, true, true);