AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

COM Object und ProgId

Ein Thema von Szin · begonnen am 3. Mai 2006 · letzter Beitrag vom 28. Apr 2008
 
MatthiasR

Registriert seit: 21. Apr 2005
193 Beiträge
 
#6

Re: COM Object und ProgId

  Alt 28. Apr 2008, 14:28
Ich krame den Thread mal hervor für eine Frage meinerseits: eine ProgID setzt sich ja immer aus dem Bibliotheksnamen + "." + CoClass des zu verwendenen COM-Objekts zusammen. Um zu überprüfen, ob ein COM-Server bereits im System bekannt ist, verwende ich Shmias Funktion
Delphi-Quellcode:
function ProgIDExists(const ProgID: WideString): Boolean;
var
  tmp: TGUID;
begin
  Result := Succeeded(CLSIDFromProgID(PWideChar(ProgID), tmp));
end;
Anhand von MSXML wollte ich nun mal diese Funktion etwas testen. Ich übergebe als ProgID z.B. "Msxml2.DOMDocument40", weil "DOMDocument40" laut der importierten TLB-Pascal-Datei der Name der CoClass für das Interface IXMLDOMDocument2 ist. Der Aufruf geht jedoch schief, man muss scheinbar statt "Msxml2.DOMDocument40" "Msxml2.DOMDocument.4.0" übergeben. Jetzt frage ich mich natürlich: wieso? Wie kommt diese Diskrepanz zustande? Und woher weiß ich dann überhaupt (ohne Dr. Google befragen zu müssen), welche ProgID ich in Delphi der Funktion ProgIDExists übergeben muss, wenn es schon bei MSXML nicht hinhaut?
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:52 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