Frage

Ich bin mit diesem nicht vertraut ist, und kann einen Kick-Start verwenden.

Ich bin mit ATL (unmanaged C ++) Benutzersteuerung und möchte das Shockwave ActiveX-Objekt verwenden. Ich muss wissen, wie es zu erklären, so dass ich eine Eigenschaft oder eine Methode aufrufen.

Zum Beispiel, wenn ich ein Variable zuweisen könnte, dann würde ich gerne nennen "nicht fest> Loadmovie ()

Ich weiß, das Super ist lächerlich ... fast peinlich, es hier zu fragen. ;) (Fast)

War es hilfreich?

Lösung

Wenn Sie die dll #import (was ich empfehlen, wenn sie mit COM zu arbeiten, weil es Ihr Leben so viel einfacher macht), können Sie einen Smart-Pointer mit dem CLSID des Objekts gepaart verwenden. Denken Sie daran, dass Smart-Pointer-Klassen haben die Post-fix 'Ptr' nach dem Schnittstellennamen.

Zum Beispiel:

ISomeInterfacePtr pSomeInterface( CLSID_SomeComponent );
HRESULT hr = pSomeInterface->SomeMethod();

Ich hoffe, das hilft.

EDIT: Wenn Sie die HRESULT der Zuordnung überprüfen möchten, können Sie wie folgt vor:

ISomeInterfacePtr pSomeInterface = 0;
HRESULT hr = pSomeInterface.CreateInstance( CLSID_SomeComponent );

Andere Tipps

I cut & paste den notwendigen Code so oft ich kann die genaue Syntax nicht erinnern, aber Sie müssen:

erhält eine CComPtr <> der richtigen Schnittstelle, CreateInstance das Objekt Query-Interface die Schnittstelle, die Sie erhalten möchten (vorausgesetzt, Sie die CComPtr nicht verwenden)

dann rufen Methoden auf sie.

Alternativ können Sie die dll #import, dann wird der Compiler eine C ++ Klasse mit allen Methoden und Eigenschaften für Sie generiert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top