COM Spezifikationen?
-
Wo finde ich genaue COM-Spezifikationen, ich wurde in der MSDN nicht fündig und bei Google finden sich nur gröbere Erklärungen.
Will aber wissen ob COM-Objekte Exceptions werfen dürfen und wenn ja ob die das auch bei QueryInterface() machen dürfen.
Zudem wären ein paar zusätzliche Informationen über die Mindestanforderungen an ein COM-Objekt ganz nützlich.
Hat jemand gute Quellen zu diesem Thema?
MfG SideWinder
-
http://www.microsoft.com/com/resources/comdocs.asp
Ob das drinn steht was du suchst weiss ich nicht, habe auch nicht nachgesehen.
Viel Spass
mfg JJ
-
Meines Wissens ist das Werfen von C++-Exceptions über COM-"Grenzen" nirgends erlaubt. Dafür ist auschliesslich IErrorInfo & Co zuständig.
mfg JJ
-
Also wenn du mit Exceptions Structured Exception Handling meinst, das dürfen sie nicht. Aber sie dürfen natürlich E_EXCEPTION zurückliefern.
Mindestanforderungen? Ich würde sagen, ein frisch erzeugtes ATL Projekt ist ziemlich minimal.
Hab nur das hier gefunden:
http://www.daimi.au.dk/~datpete/COT/COM_SPEC/html/com_spec.html
Auf der Platte hab ich's als Word Docs herumliegen, war irgendwann mal von Microsoft saugbar.
-
Will aber wissen ob COM-Objekte Exceptions werfen dürfen und wenn ja ob die das auch bei QueryInterface() machen dürfen.
Das sollte doch wohl logisch sein, das das nicht geht.
Wie sollen denn Programme in anderen Sprachen oder anderen Compilern diese Exceptions abfangen?
-
Nach 7689 Beiträgen weißt du immer noch nicht, dass wir unterschiedliche Fachforen haben? Ich fass' es ja nicht.
Ich denke mal die besten Informationen rund um COM findest du in Büchern und Artikeln von COM-Guru Don Box.
Will aber wissen ob COM-Objekte Exceptions werfen dürfen
Wohl kaum. Schon das Werfen über DLL-Grenzen funktioniert unter Win meines Wissens nach nicht. Bei out-of-process-Servern wird's dann wohl noch etwas problematischer. Da hätten die COM-Leute von Anfang an mit Exceptions (und deren Marshalling) planen müssen (sowie die CORBA-Leute).
Nur was hat das alles mit Standard-C++ zu tun?
-
Es geht um Klassenarchitektur. Das ist C++ und hat soviel mit WinAPI zu tun wie Nicky Lauder mit Fußball.
-
@JohnDoe: Danke genau das habe ich gesucht

@***: Hmm so hab ichs mir auch gedacht, aber im Endeffekt ists dann doch eher WinAPI als Standard-C++ (da dann ja doch Artikel dazu in der MSDN aufgetaucht sind).
Mit 9216 Beiträgen kann man sich zudem endgültig nicht mehr irren

MfG SideWinder
-
Es geht um Klassenarchitektur. Das ist C++ und hat soviel mit WinAPI zu tun wie Nicky Lauder mit Fußball
Muss ich es wirklich Schritt für Schritt durchgehen?
Wo finde ich genaue COM-Spezifikationen
Sicher nicht im ISO/IEC 14882.
Will aber wissen ob COM-Objekte Exceptions werfen dürfen
Steht sicher nicht im ISO/IEC 14882.
ja ob die das auch bei QueryInterface() machen dürfen
QueryInterface liefert als Suchstring ganz genau 0 Treffer im ISO/IEC 14882.
Zudem wären ein paar zusätzliche Informationen über die Mindestanforderungen an ein COM-Objekt ganz nützlich.
Im ISO/IEC 14882 findet sich ganz genau kein Wort zum Thema Mindestanforderungen für COM-Objekte. Nicht mal, dass jedes COM-Objekt von IUnknown erben muss.
Hat jemand gute Quellen zu diesem Thema?
Ich wette die Besten Quellen haben die Leute, die COM-Programmieren und ich wette 97.5% der Leute die COM-Programmieren programmieren unter Windows. Weiterhin tippe ich, dass ca. 50% der Leute COM in C oder C++ programmieren.
Daraus schließe ich, dass das WinAPI-Forum der beste Platz für diese Frage ist.Mit 9216 Beiträgen kann man sich zudem endgültig nicht mehr irren
Wir könnten darüber diskutieren ob das Rund um-Forum (oder MFC) nicht der bessere Ort für die Frage wäre. Ich kann mich also durchaus irren.
Eins weiß ich aber sicher:
Im *Standard*-C++ Forum ist diese Frage nicht gut aufgehoben und darüber diskutiere ich nicht.
-
Der Thread ist schon längst beantwortet, ich habe meine Antwort im Standard-C++-Forum bereits bekommen. Also aus schluss Ende.
MfG SideWinder
-
@HumeSikkins
Wo findest du denn Infos zu dem Model CORBA oder LYX? auch im ISO-Standard? Nö, benutzt keinerlei API Funktionen (wie COM) sondern nur Standardsachen (wie COM) zwar noch mehr als COM aber tut nichts zu Sache.Es handelt sich hier um Klassenarchitektur und das ist definitiv C++. Nur weil die Papers von MS sind, heißt es noch lange nicht das es WinAPI ist, nebenbei: Es gibt auch Programme unter Linux die COM benutzen.
Also kusch, zurück nach C++.
