Ich bin ziemlich sicher, dass Sie keine benutzerdefinierte Proxy/Stub-DLL bereitstellen müssen, wenn Sie Ihre Schnittstelle (n) auf automatisierungskompatible Typen beschränken. In diesem Fall kann das System den Automations-Marshaller verwenden und benötigt keine zusätzliche Hilfe. Ich glaube, dass die automatisierungskompatiblen Typen die Typen sind, die in eine VARIANT
, z.B. einfache POD-Typen, BSTR
s und dergleichen.
Ich fand this KB article, die einige Diskussionen über die Automatisierung Marshaller hat, obwohl es nicht speziell auf Ihre Frage ausgerichtet ist. Es listet die kompatiblen Typen zumindest auf. Es erwähnt auch, dass Sie den Automationsmarshaler in der Registrierung für Ihre Komponente spezifisch identifizieren müssen, aber nach meiner Erfahrung ist dies nicht notwendig - Ihre Laufleistung kann variieren.
Schließlich müssen Sie möglicherweise auch IProvideClassInfo implementieren; Ich verwende normalerweise die Implementierung von ATL.
Sie möchten also den Standard-Marshaller verwenden, um den Proxy/Stub-Wrapper automatisch * für Sie * zu erstellen. Frage: Wie identifizieren Sie das IDispatch dieser Coclass, das ohne Registrierungseinträge für die Co-Klasse umschlossen werden soll? – wqw
Nein, Frage ist wenn ich * es * benutzen kann. – peterchen