Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Ole - Fehlermeldung

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
27.02.2003, 10:47 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Ich hab folgenden Source kopiert: http://support.microsoft.com/?kbid=220600
bekomme aber immer die Fehlermeldung:
"'_Application' : nichtdeklarierter Bezeichner"

Wie muss man da einbinden, dass der Fehler nicht mehr kommt?
Danke im Voraus!!
mfg mike
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
27.02.2003, 13:30 Uhr
Christian
C/C++ Master
(Operator)


Hi!

Hast du dir denn mit den benötigten Typbibliotheken denn die Wrapperklassen erstellen lassen?

Grüße
--
Grüße, Christian
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
27.02.2003, 16:54 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Welche Bibliotheken muss ich da einbinden? Hab beim Assi einfach "ActiveX" nutzen angeklickt...

mfg mike
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
27.02.2003, 18:30 Uhr
Christian
C/C++ Master
(Operator)


Hi!

Mit der MFC und COM funktioniert das so, dass die COM Schnittstellen, die du für die Ansteuerung von Outlook brauchst, abgeleitet werden von einer Wrapperklasse, die dann wiederrum die Funktionen der Schnittstellen kaspseln und diese über die Invoke Methode der dualen Schnttstellen aufrufen. Was konkret heißt, dass du zuerst diese Klassen erstellen musst, also mit dem Klassenassi neue Klasse hinzufügen und dann aus Typbibliothek. In einer Typbibliothek werden in einem binären Format die Informationen über Schnittstellen und COM Klassen hinterlegt. Du musst dann die entsprechende Outlook TypBib. auswählen, die findest du normalerweise unter Programme/Office10/...
Dann einfach alle Schnittstellen anwählen, so dass du alle verwenden kannst.
Bei mir funktioniert es wunderbar.
Ach ja, in dem Code ist ein kleiner Fehler; bei mir muss ich _NameSpace verwenden nicht NameSpace.

Ich hoffe, das war einigermaßen verständlich.

Grüße, Christian
--
Grüße, Christian
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
28.02.2003, 09:32 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Danke für die ausführliche Erklärung!!!!
Bin leider noch ein noob auf dem Sektor der COM. Ist das das mit der IClassFactory? Muss ich da die Outlook msoutl.olb einbinden?

mfg mike
PS: Kann man das eigentlich nahtlos in einen View einbinden oder wird da Outlook nur geöffnet? Weißt du zufällig, wie das ActiveX steuerelement "Outlook View" funktioniert? In der MSDN steht leider nichts...
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
28.02.2003, 12:29 Uhr
Christian
C/C++ Master
(Operator)


*g*

Np Prob, COM ist mein Lieblingsgebiet.

Mach das einfach so:

Neue MFC Anwendung erstellen, dialogbasiert.
Dann einen Button setzen und die entsprechende Behandlungsroutine einfügen- So weit so gut.
Jetzt suchst du dir die Typbibliothek von Outlook, bei mir ist sie unter:

CProgramme\Office10\Msoutl.odl (ODL: Object Definition Language, beschreibt also COM Objekte)

Da du nun weißt wo sie ist kannst du mit dem Klassenassi den Button neue Klasse erstellen aus Typbibliothek und da wählst du dann einfach die odl Datei aus, die du vorhin schon gesucht hast. Jetzt wird dir aufgelistet welche COM Klassen-Definitionen sich in der ODL Datei befinden und diejenigen, die du auswählst, werden dann gewrapped, also abgeleitet und eine Klasse erstellt, die du dann verwenden kannst. Einfach alle auswählen. Es wird jetzt eine Headerdatei und eine Cpp Datei erstellt.
In deiner Dialogklassen cpp Datei musst du die Headerdatei jetzt einbinden, dann kannst du den Code komplett kopieren, der von Microsoft ist.

____________

Was du damit jetzt eingetlich gemacht hast nennt sich Automation. COM ermöglicht es über Prozessgrenzen, also von deinem Prog. zu Outlook, hinweg Funktionen aufzurufen und so quasi Outlook fernzusteuern. Genau das ist gemeint mit Automation.

____________

Die IClassFactory ist eine Schnittstelle, die COM Klassen erzeugen kann, aber das führt ein wenig zu weit. :-) Aber wenns dich interessiert, dann kannst du ja mein COM Tutorial auf meiner Seite durchlesen. :-)

Wie das AX von Outlook funktioniert weiß ich leider nicht, habs noch nicht verwendet bis jetzt.


Ich hoffe, es funktioniert jetzt. Grüße, Christian
--
Grüße, Christian
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
28.02.2003, 19:50 Uhr
Volle



Hallo zusammen,

ein sehr hilfreiches Tool hierfür ist der OLE- Object- Viewer. Gerade wenn man den Dateinamen nicht weiß oder sowas.

Grüße, Volle.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
03.03.2003, 10:03 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Danke für eure Antworten!!
Das ist mir jetzt richtig peinlich. Ich konnte die Msoutl.odl Datei nirgends finden bzw. ich hatte nirgends odl Dateien (außer im VC++ Ordner).
Kann man da irgendwas mit der DLL und import drixen? Hab nämlich ein Automatisierungssample von Excel und dort wurde es so ähnlich gelöst.
Wenn ich jetzt einen Server Container erstelle, kann man da Outlook in meinem Programm öffnen?

Danke im Voraus!!
mfg mike
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
03.03.2003, 17:39 Uhr
Christian
C/C++ Master
(Operator)


Hi!

Ohne die ODLs wird es schwierig. Aber eigentlich kann das gar nicht sein, dass auf deinem Rechner diese Datei(en) nicht vorhanden sind. (zumindest könnte ich es mir nicht erklären)

Das Problem ist eben das, dass dein Programm ja wissen muss, wie die Schnittstellen, die von Outlook bereitgestellt werden, aussehen und genau das steht ja in der Typbibliothek.

Am besten nochmal nachsehen:
Du kannst die OLE Ansicht einmal verwenden und dort auf den Knoten Type Libraries klicken.
Dann suchst du nach Microsoft Outlook Objekt Library (oder sowas ähnliches) und klickst es an. Auf der rechten Seite kannst du dann ablesen (unter win32=...) wo sich die ODL Datei befindet.

Vielleicht ist sie ja doch vorhanden.

Grüße, Christian
--
Grüße, Christian
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
03.03.2003, 19:54 Uhr
Volle



Hi,

also beim 6er Studio ging das mit dem Klassenassi:

Klasse hinzufügen->aus TypenBibliothek

Da konnte man dann auch eine DLL angeben. Vorausgesetzt, diese war nach COM- Vorgaben erstellt.

Ich weiß allerdings nicht, wie das Pendant dazu im 7er Studio heißt. Einen KA gibt es ja dort nicht mehr in dieser Form.

Vielleicht bekomme ich es raus.

Grüße, Volle.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: