Getting/Creating an Outlook Application in Windows 7

16

I'm trying to get the current running version of Outlook or start up Outlook in case it is not running, but I am having some issues in getting or creating the Outlook Application object in Windows 7. I think it has something to do with the user priviliges that are restrictive in Vista and 7. I am working with Outlook 2010.

edit: These errors only appear if I already have an Outlook 2010 instance started. If Outlook is not started, the application can run smoothly (it can start an Outlook instance by itself).

If anybody can tell me how to correctly get the Outlook Application version, that would be really helpful.

The code I'm running is a long try-catch block that keeps on triggering exceptions:


try
{
  // create an application instance of Outlook
  oApp = new Microsoft.Office.Interop.Outlook.Application();
}
catch(System.Exception ex)
{
  try
  {
     // get Outlook in another way
     oApp = Marshal.GetActiveObject("Outlook.Application") as Microsoft.Office.Interop.Outlook.Application;
  }
  catch (System.Exception ex2)
  {
     // try some other way to get the object
     oApp = Activator.CreateInstance(Type.GetTypeFromProgID("Outlook.Application")) as Microsoft.Office.Interop.Outlook.Application;
  }
}

The application throws me the following exceptions:

When I try to create a new Outlook application instance:

Retrieving the COM class factory for component with CLSID {0006F03A-0000-0000-C000-000000000046} failed due to the following error: 80080005.

When I try to get the Outlook app instance:

Operation unavailable (Exception from HRESULT: 0x800401E3 (MK_E_UNAVAILABLE))

When I try to Create an instance through the Activator

Retrieving the COM class factory for component with CLSID {0006F03A-0000-0000-C000-000000000046} failed due to the following error: 80080005.

Thank you!

c#
windows-7
outlook
outlook-2010
asked on Stack Overflow Sep 20, 2010 by Andrei • edited Sep 20, 2010 by Andrei

5 Answers

32

Apparently these errors were triggered because I was running Outlook and the application on different user permission levels (one of them as administrator and the other one as regular user).

answered on Stack Overflow Sep 23, 2010 by Andrei
4
  1. In start menu select Run
  2. Type dcomcnfg and click OK
  3. Component Services window is opened.
  4. Expand the nodes Component Services -> MyComputer -> DCOM Config .
  5. Right click on the application (Outlook Message Attachment) and select properties.
  6. Click on Identity tab whatever necessary.
  7. Click on “The interactive user" then OK
answered on Stack Overflow Sep 30, 2012 by Moustafa
2

It is true that if you are running a standalone application from Visual Studio or debugging from Visual Studio which use office products, you should be having same access level for both (Visual Studio and Office Products) and that is one of the reasons why this issue occurs but I am seeing online that so many people have this issue while initializing outlook object in a service. I hope what resolved the issue for me would help others too. Please follow along the steps.

  1. Go to command prompt, type the following and press enter. This opens Component Services:

    mmc comexp.msc /32

enter image description here

enter image description here

  1. Expand the nodes Component Services -> MyComputer -> DCOM Config

  2. Now find out your desired application (In this case, Outlook Message Attachment) and right click on the application (If you follow these steps, this issue related all office applications can be resolved) and select properties.

  3. Go to Identity tab and select The interactive user and press OK. This should resolve your issue.

enter image description here

The interactive user is nothing but the logged on user. When you are trying to access office products through service, the access level has to be same and that is the reason you need to specify proper user. If you want to run the service on a server without logging onto it, you need to make sure that the server has a user account which will be used for running the service as well as running office products as specified in Properties as This user (Please look at the Properties dialog box). If you want to learn about the different types of user accounts mentioned in this dialog box, please refer to the following Microsoft link.

http://msdn.microsoft.com/en-us/library/windows/desktop/ms692541%28v=vs.85%29.aspx

answered on Stack Overflow Dec 31, 2014 by Dhruv Rangunwala • edited Jan 2, 2015 by Dhruv Rangunwala
1

It looks as if your Office installation has become corrupted.

Try to repair the installation by rerunning setup as Administrator.

answered on Stack Overflow Sep 20, 2010 by Dirk Vollmar
0

In my case it was Visual Studio ran as Administrator causing the issue. When I ran it as normal user I got rid of this error finally.

answered on Stack Overflow Apr 7, 2014 by intersum

User contributions licensed under CC BY-SA 3.0