expertenaustausch > microsoft.* > microsoft.vc

Peter Mairhofer (24.05.2010, 00:09)
Hi,

Wie füge ich mit VS .NET 2003 zu einem vorhandenem MFC Projekt (ohne
ATL!) eine COM Implementierung (z.B. von IInternetZoneManager) hinzu?

Ich hoffe dass das überhaupt möglich ist :)

Vielen Dank!
Peter
Martin Richter [MVP] (24.05.2010, 13:00)
Hallo Peter!

> Wie füge ich mit VS .NET 2003 zu einem vorhandenem MFC Projekt (ohne
> ATL!) eine COM Implementierung (z.B. von IInternetZoneManager) hinzu?
> Ich hoffe dass das überhaupt möglich ist :)


#import !?
Peter Mairhofer (24.05.2010, 15:10)
Hallo Martin!

Am 24.05.2010 13:00, schrieb Martin Richter [MVP]:
> Hallo Peter!
>> Wie füge ich mit VS .NET 2003 zu einem vorhandenem MFC Projekt (ohne
>> ATL!) eine COM Implementierung (z.B. von IInternetZoneManager) hinzu?
>> Ich hoffe dass das überhaupt möglich ist :)

> #import !?


Hmm, ich meine das anders. Ich möchte IInternetZoneManager
*implementieren*. Dafür kann ich z.B. ein neues Projekt erstellen.

Die Frage ist aber ob es möglich ist dass ich das direkt in meinem MFC
Projekt machen kann.

Ich stelle mir das irgendwie so vor dass ich auf Projekt --> Klasse
hinzufügen klicke, dann den Namen der Klasse eingebe und die
Basisklassen (Interfaces, z.B. IInternetZoneManager, IUnknown, ...) die
ich dann implementieren kann und direkt in meinem MFC Projekt verwenden
kann.

LG
Peter
Martin Richter (24.05.2010, 17:44)
Hallo Peter!

> Hmm, ich meine das anders. Ich möchte IInternetZoneManager
> *implementieren*. Dafür kann ich z.B. ein neues Projekt erstellen.
> Die Frage ist aber ob es möglich ist dass ich das direkt in meinem MFC
> Projekt machen kann.
> Ich stelle mir das irgendwie so vor dass ich auf Projekt --> Klasse
> hinzufügen klicke, dann den Namen der Klasse eingebe und die
> Basisklassen (Interfaces, z.B. IInternetZoneManager, IUnknown, ...) die
> ich dann implementieren kann und direkt in meinem MFC Projekt verwenden
> kann.


Das würde ich mit ATL machen. Du kannst auch en MFC weg gegen, aber der
ist unbequemer, weil er keine Mehrfachableitung verwendet sonden rfür
alle Interfaces innere Klassen erzeugt.
Geht auch, aber ich finde ATL eleganter.

Wie es geht steht in TN038:

- oder hier
Peter Mairhofer (25.05.2010, 15:31)
Am 24.05.2010 17:44, schrieb Martin Richter:
> Hallo Peter!
> [...]
> Das würde ich mit ATL machen. Du kannst auch en MFC weg gegen, aber der
> ist unbequemer, weil er keine Mehrfachableitung verwendet sonden rfür
> alle Interfaces innere Klassen erzeugt.
> Geht auch, aber ich finde ATL eleganter.
> Wie es geht steht in TN038:
>
> - oder hier
>


Vielen Dank!

Wie es aussieht brauche ich das zum Glück eh nicht mehr da mein Problem
lt. <htgjb2$1ga$1> gelöst scheint.

Dennoch: Hast du zufällig so einen coolen Link wie oben auch für die ATL
parat?

Kurz: Ich gehe einfach auf Projekteinstellungen, hake "Verwendung von
ATL" an ... und dann?

LG
Peter
Martin Richter [MVP] (25.05.2010, 15:49)
Hallo Peter!

> Kurz: Ich gehe einfach auf Projekteinstellungen, hake "Verwendung von
> ATL" an ... und dann?


Keine Ahnung. Mit dem Wizard arbeite ich nicht.
Ich erzeuge eine IDL wie ich sie brauche und implementiere die Objekte
entsprechend, manchmal auch mit der Hilfe der Klassen-Ansicht:

class ATL_NO_VTABLE CComDummy :
public CObject,
public CComObjectRootEx<CComSingleThreadModel>,
public IDispatchImpl<Com::Dummy, &Com::IID_Dummy, &Com::LIBID_DummyLib,
/*wMajor =*/ 1, /*wMinor =*/ 0>
....
Ähnliche Themen