J'ai une DLL basée sur ATL/COM, faite en utilisant VC++ 6.0. Il est utilisé pour divers exécutables construits en utilisant VB6.ATL/COM: Définition d'une interface COM qui ne sera pas disponible en dehors de la DLL?
Je souhaite ajouter certaines interfaces COM qui ne seront pas accessibles via VB6, pour l'utilisation interne de la DLL uniquement. Je veux qu'ils soient des interfaces COM plutôt que simplement des interfaces C++ du fait que je les utiliserai sur des objets auxquels je n'ai que des références d'interface COM (au moment de l'utilisation). C'est-à-dire, je ne sais pas (au moment de l'utilisation) que ce pointeur pointe vers un CFoo; Je sais juste qu'il pointe vers un IFoo, où IFoo est une interface COM, publiée pour que VB6 le sache. A partir de ce pointeur IFoo, je veux obtenir un pointeur IFooInternal, que chaque classe implémentant IFoo (et pas seulement CFoo) va implémenter. De plus, je ne veux pas que IFooInternal soit accessible en dehors de la DLL elle-même; Par exemple, je ne veux pas que IFooInternal soit accessible par VB6.
Toute aide avec ceci serait grandement appréciée. Suggestions pour d'autres moyens d'atteindre le même objectif global serait également. Merci d'avance.
Dupliquer http://stackoverflow.com/questions/1191012/how-to-prevent-coclass-implementations-from-being-exposed-in-an-atl-type-library/1192207#1192207 –
Ce n'est pas * * un duplicata de la question à laquelle vous avez lié. Dans cette question, l'interface sera exposée à Visual Basic (et autres clients en dehors de la DLL elle-même). C'est exactement ce que j'essaie d'éviter *. –