![]() |
COM + (un)typisierte Zeiger
hi
ist es möglich mit COM-Objekte typisierte Zeiger zu verwenden? Wenn ja, wie geht das (auch mit type lib (TLB)) ? Geht das in der Steigerung auch mit untypisierten Zeigern (+ Größenangabe)? Ist es überhaupt möglich WinAPI Handles (sind alle Prozessbezogen, können aber mit DuplicateHandle übertragen werden!) zu verwenden? thx |
Re: COM + (un)typisierte Zeiger
24h sind um, daher
** ping ** |
Re: COM + (un)typisierte Zeiger
Hallo,
auch nach mehrmaligem Lesen deines Beitrags bin ich nicht sicher, ob ich dich verstehe. Typisierte Zeiger in COM-Objekten? Klar: PInteger, PChar, ... TLB? Brauchst du nur für early binding ... Untypisierte Zeiger mit Größenangabe? Was hast du da vor? Freundliche Grüße |
Re: COM + (un)typisierte Zeiger
Naja ich dachte eigentlich, dass ich ein Ergebnis zurückgeliefert von eine C-Funktion, in ein COM-Objekt verwandeln könnte.
Als einfaches Beispiel liefert ConvertStringSidToSidW einen Zeiger auf eine TSID Struktur. Kann nun eine Methode in einem COM-Objekt, diese Datestruktur empfangen, um das COM-Objekt zu initialisieren? |
Re: COM + (un)typisierte Zeiger
Da ein COM-Object häufig in einer DLL erzeugt wird und diese DLL wiederum oft in C geschrieben wurde, kannst du also davon ausgehen, dass eine C-Library dir ein Interface zurückgeben kann. Ich denke, da müsste es entsprechende Kapitel zur ActiveX-Erstellung in deinem C-Handbuch geben.
Deine letzte Frage ist für mich schon wieder verwirrend, da ich mich mit deinem Spezialgebiet so gut wie nie beschäftige. Ich weiß gar nicht von welchem COM-Object du schreibst - es scheint ein bestimmtes zu sein. |
Re: COM + (un)typisierte Zeiger
Beispiel:
Ich will ein eigenes COM-Objekt erstellen. Das heißt z.B. TCOMSid . Es verwaltet eine SID (Name, Autoritäten, usw). Ich frage mich, ob es eine Methode in einem COM-Objekt gegeben kann, die wie folgt aussieht:
Delphi-Quellcode:
Diese Methode holt die benötigten Daten aus der SID und initialisiert Eigenschaften des COM-Objekts.
procedure InitSid(const Sid : PSid); safecall;
Die COM-Objekte verbleiben in der Sprache Delphi. |
Re: COM + (un)typisierte Zeiger
Wenn du das COM-Object mit D7 entwerfen würdest, dann würdest du es COMSid nennen, ihm vielleicht ein Interface ICOMSid verpassen un diesem eine Methode Init. Der Methode ordnest du einen Parameter zu, den Typ machst du vorher bekannt und wählst ihn dann im TLB-Editor als VAR-Parameter aus. Warum willst du das mit C machen?
|
Re: COM + (un)typisierte Zeiger
Wie mache ich den Typ bekannt?
|
Re: COM + (un)typisierte Zeiger
Natürlich weißt du, dass du einen Typ per type-declaration bekannt machst!
Ich habe mal im PSDK nachgesehen, was es mit PSID auf sich hat und jetzt ahne ich, was dein Problem ist: variable length structure - kann das sein? Solche Strukturen benötigen eine Größenangabe oder einen Delimiter. Mit SID solltest du dich aber besser auskennen als ich. |
Re: COM + (un)typisierte Zeiger
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz