Fehlermeldung bei Verwendung Word & Outlook (2003) mit C#-Applikation

08/01/2009 - 11:17 von M.Erlinger | Report spam
Hallo

ich versuche gerade folgende Beispiel-Anwendung von dem Link
http://support.microsoft.com/kb/819398/en-us#3
zu testen, und anschließend in eine eigene Applikation zu integrieren.

Leider bekomme ich von dieser Beispiel-Anwendung schon eine
Fehlermeldung beim Ausführend, und zwar bei der Code-Zeile:
//Automate the Outlook mail item.
Outlook.MailItemClass mItem = (Outlook.MailItemClass)
doc.MailEnvelope.Item;

die Fehlermeldung lautet:
==Unable to cast COM object of type 'System.__ComObject' to class type
'Microsoft.Office.Interop.Outlook.MailItemClass'.
COM components that enter the CLR and do not support IProvideClassInfo
or that
do not have any interop assembly registered will be wrapped in
the __ComObject type.
Instances of this type cannot be cast to any other class;
however they can be cast to interfaces as long as the underlying COM
component supports QueryInterface calls for the IID of the interface.

Office-XP-Pias wurden installiert; und auch sonst kann ich Word zum
Beispiel ohne Probleme über C# einbinden und verwenden
Kann mir zu diesem Problem bitte jemand weiterhelfen ??
Danke & Grüsse
Michael
 

Lesen sie die antworten

#1 Frank Dzaebel
09/01/2009 - 08:34 | Warnen spam
Hallo Michael,

ich versuche gerade folgende Beispiel-Anwendung von dem Link
http://support.microsoft.com/kb/819398/en-us#3
zu testen, und anschließend in eine eigene Applikation zu integrieren.
Leider bekomme ich von dieser Beispiel-Anwendung schon eine
Fehlermeldung [...]



Man benutzt hier die Schnittstellen und nicht die Klasse.
Ersetze die entsprechenden Codezeilen des
Microsoft-Artikels durch:

Outlook.MailItem mItem = doc.MailEnvelope.Item as Outlook.MailItem;
mItem.To = strTo;
mItem.BCC = strBCC;
mItem.CC = strCC;
mItem.Subject = strSubject;
mItem.BodyFormat = Outlook.OlBodyFormat.olFormatHTML;
mItem.HTMLBody = GetString(strBody);
Outlook.ItemEvents_Event olEvents = (Outlook.ItemEvents_Event)mItem;
olEvents.Close += new
Outlook.ItemEvents_CloseEventHandler(olEvents_Close);

//

void olEvents_Close(ref bool Cancel)
{
object oMissing = System.Reflection.Missing.Value;
wApp.Quit(ref oMissing, ref oMissing, ref oMissing);
}


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen