Je suis sûr que vous n'avez pas besoin de fournir un proxy personnalisé/stub dll si vous limitez votre interface (s) aux types compatibles avec l'automatisation. Dans ce cas, le système peut utiliser le marshaler d'automatisation et n'a pas besoin d'aide supplémentaire. Je crois que les types compatibles avec l'automatisation sont les types qui peuvent entrer dans un VARIANT
, par exemple. des types de POD simples, BSTR
, et similaires.
J'ai trouvé this KB article qui a une discussion sur le marshaler de l'automatisation, bien qu'il ne soit pas spécifiquement ciblé sur votre question. Il liste les types compatibles, à tout le moins. Il mentionne également que vous devez identifier spécifiquement le marshaler d'automatisation dans l'enregistrement pour votre composant, mais dans mon expérience ce n'est pas nécessaire - votre kilométrage peut varier. Enfin, vous devrez peut-être aussi implémenter IProvideClassInfo; J'utilise généralement l'implémentation fournie par ATL.
Vous voulez donc utiliser le marshaler standard pour * créer * l'enveloppe proxy/stub automatiquement pour vous. La question est de savoir comment vous identifiez IDispatch de cette coclass pour être enveloppé sans entrées de registre pour la coclasse? – wqw
Non, la question est de savoir si je peux * l'utiliser *. – peterchen