Lorsqu'une DLL est enregistrée, le DllRegisterServer
Le point d'entrée de la méthode dans votre DLL est invoqué. De même, DllUnregisterServer
est invoqué lorsqu'une DLL est désenregistrée.
Comme décrit dans cet article de MSDN :
I de créer ses entrées de registre pour toutes les classes prises en charge dans ce module serveur. Si cette fonction échoue, l'état état du registre pour toutes ses classes est indéterminé.
Pour les DLLs COM, vous devrez implémenter votre propre DllRegisterServer
y DllUnregisterServer
des méthodes de point d'entrée qui effectuent l'enregistrement/désenregistrement selon le cas. Exemple de code pour DllRegisterServer
peuvent être trouvés ici .
Le résultat final de l'enregistrement d'une DLL est que tous les CLSID des composants de la DLL sont enregistrés sous le nom de HKEY_CLASSES_ROOT\CLSID
. Cela permet CoCreateInstance
pour trouver le bon serveur lors de l'instanciation d'objets COM à partir d'une autre DLL ou application.
DllUnregisterServer
fera l'inverse, et supprimera tous les CLSID du registre qui ont été mis là par DllRegisterServer
.
Informations plus générales sur DllRegisterServer
peuvent être trouvés ici .