Implémentation de IClassFactory
Lorsqu’un client utilise un CLSID pour demander la création d’une instance d’objet, la première étape est la création d’un objet de classe, un objet intermédiaire qui contient une implémentation des méthodes de l’interface IClassFactory . Bien que COM fournisse plusieurs fonctions de création d’instance, la première étape de l’implémentation de ces fonctions est la création d’un objet de classe.
Par conséquent, tous les serveurs doivent implémenter les méthodes de l’interface IClassFactory , qui contient deux méthodes :
- CreateInstance. Cette méthode doit créer une instance non initialisée de l’objet et retourner un pointeur vers une interface demandée sur l’objet.
- LockServer,. Cette méthode incrémente simplement le nombre de références sur l’objet de classe pour s’assurer que le serveur reste en mémoire et ne s’arrête pas avant que le client ne soit prêt à le faire.
Pour permettre à un serveur d’être responsable de sa propre licence, COM définit IClassFactory2, qui hérite sa définition d' IClassFactory. Ainsi, un serveur qui implémente IClassFactory2 doit, par définition, implémenter les méthodes d' IClassFactory.
COM fournit également des fonctions d’assistance pour l’implémentation de serveurs hors processus. Pour plus d’informations, consultez assistance pour l’implémentation du serveur out-of-process.