Frage

Ich arbeite an einem Projekt mit dem Microsoft Unified Communications-Client-API; uccapi.dll. Ich verwende auch CodeGear C ++ Builder 2010, nicht visual Studio. Nach der Registrierung der DLL mit RegSVR32 und des Imports als Typbibliothek in C ++ Builder 2010 wurden uccapi_tlb- und uccapi_ocx-Dateien generiert. Wenn ich diese in mein neues Projekt importiert habe, versuche ich den MSDN-Richtlinie zum Erstellen eines Bürokommunikators-Clients, der in der Unterzeichnung in den Bürokommunikationsserver eingerichtet ist.

In diesem Zusammenhang habe ich zwei Fragen:

  • Was ist die richtige Art, auf die durch den OCX verfügbaren COM-Schnittstellen zuzugreifen?

Ich habe bisher mehrere Möglichkeiten gefunden, Zugangspunkte zu erstellen, z. B.

generasacodicetagpre.

und

generasacodicetagpre.

und

generasacodicetagpre.

und

generasacodicetagpre.

Die drei scheinen sich gut zu funktionieren. Letztere geben mir eine Behauptung fehlgeschlagen: Intf!= 0 Fehler mit 0 × 40000015 Ausnahme. Verwenden eines der drei Top-IDs, auf das ich auf Methoden zugreifen kann, und initialisieren Sie die Platform -Anschnittstelle.

Wenn Sie jedoch eine derselben Taktik ausprobieren, um auf eine andere Schnittstelle zuzugreifen, z. B. iucccceText , iuccurimanager oder iuccuri , die alle haben Ein CLSID, der in der Datei _tlb.h definiert ist, erhalte ich entweder in den ersten beiden Fällen einen Fehler "Klasse nicht registriert" oder im dritten Fall ein HRESULT-Fehler. Was mich zu meiner nächsten Frage bringt.

  • Verwenden des OLE-Viewers Alle Schnittstellen werden wie möglich angemeldet. Warum sollten nicht alle Co-Creatable-Klassen in der DLL in der Registrierung bei der DLL registriert sein? Und was könnte der Grund sein, warum sie nicht ähnlich handeln?

edit1 von uccapilib_tlb.h:

generasacodicetagpre.

War es hilfreich?

Lösung

Dieses Problem wird bereits ausführlich in der Embarcadero Foren .

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