Outlook application object

  • Thread starter Thread starter Markus Donath
  • Start date Start date
M

Markus Donath

I want to create an Outlook-appointment using .NET VC.
My Visual Basic example starts with:

Dim oApp As Microsoft.Office.Interop.Outlook.Application = New
Microsoft.Office.Interop.Outlook.Application

But my C++ translation:

Microsoft::Office::Interop::Outlook::Application *oApp = new
Microsoft::Office::Interop::Outlook::Application;


does not compile. ('You cannot create an instance of an interface' or
something like that). Does anybody know, what's wrong here?

Markus
 
Hi Markus,

Markus Donath said:
I want to create an Outlook-appointment using .NET VC.
My Visual Basic example starts with:

Dim oApp As Microsoft.Office.Interop.Outlook.Application = New
Microsoft.Office.Interop.Outlook.Application

But my C++ translation:

Microsoft::Office::Interop::Outlook::Application *oApp = new
Microsoft::Office::Interop::Outlook::Application;


does not compile. ('You cannot create an instance of an interface' or
something like that). Does anybody know, what's wrong here?

Why not copy the exact error message?

Do you use VC2003 or VC2005?

In VC2003 I would expect that something like ApplicationClass or
_ApplicationClass would be available which represents the so called COM
coclass. A coclass is an object you can instantiate and use by an interface
it implements, which would be Application in thiscase.

In VC2005 you would want to use the new C++/CLI which uses ^ instead of *
for managed pointers and gcnew instead of new.
 
Markus Donath said:
I want to create an Outlook-appointment using .NET VC.
My Visual Basic example starts with:

Dim oApp As Microsoft.Office.Interop.Outlook.Application = New
Microsoft.Office.Interop.Outlook.Application

But my C++ translation:

Microsoft::Office::Interop::Outlook::Application *oApp = new
Microsoft::Office::Interop::Outlook::Application;


does not compile. ('You cannot create an instance of an interface' or
something like that). Does anybody know, what's wrong here?

You have to use CoCreateInstance to create an instance of a COM class. You
can't do it with new.

-cd
 
SvenC said:
Hi Markus,



Why not copy the exact error message?

Because it is produced by German version of Visual Studio .NET 2003 and
thus, the error message is in German:

error C3153: 'Microsoft::Office::Interop::Outlook::Application': Sie
können keine Instanz einer Schnittstelle erstellen
Do you use VC2003 or VC2005?
VC2003


In VC2003 I would expect that something like ApplicationClass or
_ApplicationClass would be available which represents the so called COM
coclass. A coclass is an object you can instantiate and use by an interface
it implements, which would be Application in thiscase.

Have you got an example?
 
Carl said:
You have to use CoCreateInstance to create an instance of a COM class. You
can't do it with new.

-cd

I would be happy, if you could give an example for 'CoCreateInstance' in
this context.

Markus
 
|I want to create an Outlook-appointment using .NET VC.
| My Visual Basic example starts with:
|
| Dim oApp As Microsoft.Office.Interop.Outlook.Application = New
| Microsoft.Office.Interop.Outlook.Application
|
| But my C++ translation:
|
| Microsoft::Office::Interop::Outlook::Application *oApp = new
| Microsoft::Office::Interop::Outlook::Application;
|
|
| does not compile. ('You cannot create an instance of an interface' or
| something like that). Does anybody know, what's wrong here?
|
| Markus

Application refers to an interface which obviously cannot be instantiated,
you need to create an instance of ApplicationClass like :

Microsoft::Office::Interop::Outlook::ApplicationClass *oApp = new
Microsoft::Office::Interop::Outlook::ApplicationClass();


Willy.
 
"Carl Daniel [VC++ MVP]" <[email protected]>
wrote in message | | >I want to create an Outlook-appointment using .NET VC.
| > My Visual Basic example starts with:
| >
| > Dim oApp As Microsoft.Office.Interop.Outlook.Application = New
| > Microsoft.Office.Interop.Outlook.Application
| >
| > But my C++ translation:
| >
| > Microsoft::Office::Interop::Outlook::Application *oApp = new
| > Microsoft::Office::Interop::Outlook::Application;
| >
| >
| > does not compile. ('You cannot create an instance of an interface' or
| > something like that). Does anybody know, what's wrong here?
|
| You have to use CoCreateInstance to create an instance of a COM class.
You
| can't do it with new.
|
| -cd
|

Hmmm... this is a managed client, and the interop assembly is a managed
wrapper, so there is no problem to new an instance of the ApplicationClass.

Willy.

|
 
Willy said:
|I want to create an Outlook-appointment using .NET VC.
| My Visual Basic example starts with:
|
| Dim oApp As Microsoft.Office.Interop.Outlook.Application = New
| Microsoft.Office.Interop.Outlook.Application
|
| But my C++ translation:
|
| Microsoft::Office::Interop::Outlook::Application *oApp = new
| Microsoft::Office::Interop::Outlook::Application;
|
|
| does not compile. ('You cannot create an instance of an interface' or
| something like that). Does anybody know, what's wrong here?
|
| Markus

Application refers to an interface which obviously cannot be instantiated,
you need to create an instance of ApplicationClass like :

Microsoft::Office::Interop::Outlook::ApplicationClass *oApp = new
Microsoft::Office::Interop::Outlook::ApplicationClass();


Willy.
Okay, that's it. Thank you.
Markus
 
Back
Top