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
Antwort Antwort
Szin

Registriert seit: 3. Mai 2006
13 Beiträge
 
Delphi 2007 Professional
 
#1

COM Object und ProgId

  Alt 3. Mai 2006, 12:57
Hallo!
Bin Anfänger in Bezug auf das programmieren von COM Objekten und ich suche nun nach einer Möglichkeit eine ProgId zu vergeben. In der Typbibliothek kann ich da nix einstellen, oder?
Grüße,
André
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: COM Object und ProgId

  Alt 3. Mai 2006, 13:08
Herzlich willkommen in der Delphi-PRAXiS, André.

In einer halbwegs modernen Delphi IDE kannst du im Editor mit dem Tastenkürzel Strg+Umsch+G einen GUID erzeugen.

PS: Ist keine schlechte Idee, wenn du deine Delphi-Version in dein DP-Profil einträgst.

Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
Szin

Registriert seit: 3. Mai 2006
13 Beiträge
 
Delphi 2007 Professional
 
#3

Re: COM Object und ProgId

  Alt 3. Mai 2006, 13:23
Ich will ein wenig weiter ausholen. Ich bin dabei ein Yahoo Widget zu basteln. Das sind kleine Applikationen die auf einer Widgetengine laufen und über JavaScript gesteuert werden. Nun kann man dort auch COM-Objekte verwednen. Dazu gibts die Funktion COM.createObject(progid) die die ProgId des COM objekts haben will.
Nun Hab ich es schon geschafft ein COM Objekt in Delphi zu registrieren, aber es erscheint nicht unter einem Namen im "OLE/COM Object Viewer"
In einem tut für C++ wurde der Name der DllRegisterServer Funktion mit übergeben, diese hat in Delphi allerdings nur einen anderen Parameter...
Wie also gebe ich meinem COM-Objekt einen Namen den die JS-Funktion findet?

P.S. profil ist aktualisiert
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: COM Object und ProgId

  Alt 3. Mai 2006, 13:49
Es kann sehr gut sein, dass du es nur übersiehst. Leider musst du beim Tool OLEVIEW wissen, wo es steht - du kannst nicht danach suchen. Suchen kannst du aber in der Registry, z.B. nach deinem Delphi Projektnamen. Ich habe soeben eine ActiveXForm registriert und fand diese dann in OLEVIEW im Zweig "All Objects" unter dem ClassName meiner Form "ActiveFormX".

marabu
  Mit Zitat antworten Zitat
Szin

Registriert seit: 3. Mai 2006
13 Beiträge
 
Delphi 2007 Professional
 
#5

Re: COM Object und ProgId

  Alt 3. Mai 2006, 13:53
ok, unter "all objects" war es als "MyCOMObject Object" und die ProgId ist mit "ComTest.MyCOMObject" angegeben. Leider stürzt die JWE bei createObject trotzdem ab
Jetzt tapp ich komplett im dunkeln wo das nun dran liegen könnte...
  Mit Zitat antworten Zitat
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
Antwort Antwort


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 07:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz