Trying to automate Outlook as
Microsoft.Office.Interop.Outlook.Application myApp = new Microsoft.Office.Interop.Outlook.ApplicationClass();
Microsoft.Office.Interop.Outlook.NameSpace mapiNameSpace = myApp.GetNamespace("MAPI");
and getting following exception at second line i.e. GetNamespace
Unable to cast COM object of type
'Microsoft.Office.Interop.Outlook.ApplicationClass' to interface type
'Microsoft.Office.Interop.Outlook._Application'. This operation
failed because the QueryInterface call on the COM component for the
interface with IID '{00063001-0000-0000-C000-000000000046}' failed
due to the following error: No such interface supported (Exception
from HRESULT: 0x80004002 (E_NOINTERFACE)).
I am using .Net Framework 4
and Outlook 2013
.
Is this the only solution!!! as I am trying to avoid making any changes to the registry.
Edit
this didn't fix the problem.
Edit
If the referenced library is Office 15 and the installed library is 10 or 12, would it work?
I've been stumped by this problem for days. This worked for me:
I just realized that Outlook 2013 is 64 bit... And my C# app had in Project Properties -> Build "Any CPU" as platform target and a check-mark in "Prefer 32-bit".
I changed the Platform target to x64 and it worked!
The exception looks quite obvious, this should work
var myApp = new Microsoft.Office.Interop.Outlook.Application();
you just can't get a cast exception with that line above.
This exception usually happens when you had two versions of Office installed and then uninstalled one. Run a repair installation for your still installed Office, this should fix the registry keys.
have you tried this?
Microsoft.Office.Interop.Outlook.Application myApp = new Microsoft.Office.Interop.Outlook.Application();
Microsoft.Office.Interop.Outlook.NameSpace mapiNameSpace = myApp.GetNamespace("MAPI");
The fix of the 9.5 version didn't work for me, as there was no excessive 9.5 field.
In my case, the problem was that when I downgraded to Outlook 2010 I have modified the installation location (i.e. not in the default ProgramFiles folder).
However, windows didn’t update accordingly the value in ‘HKEY_CLASSES_ROOT\TypeLib{00062FFF-0000-0000-C000-000000000046}\9.4\0\win64’.
After manually updating the value and pointing it to the right location, the problem was resolved.
I ran into the exact same error message you have, my problem was I had installed Office 2016 x64 while the app that was trying to call into it was compiled as x86. Switching to x86 Office 2016 solved the issue for me.
//DECLARE
Microsoft.Office.Interop.Outlook.Application app = null;
Microsoft.Office.Interop.Outlook.NameSpace ns = null;
//INITIALISE
app = new Microsoft.Office.Interop.Outlook.Application();
ns = app.Session;
For me removing 9.5 entry from this registry works:
HKEY_CLASSES_ROOT\TypeLib\{00062FFF-0000-0000-C000-000000000046}