Когда DLL зарегистрирована, в вашей DLL вызывается точка входа метода DllRegisterServer
. Точно так же DllUnregisterServer
вызывается, когда DLL незарегистрированная.
Как описано в этой статье MSDN :
Указывает, что внутрипроцессный сервер
создать свои записи реестра для всех
классы, поддерживаемые на этом сервере
модуль. Если эта функция не работает,
состояние реестра для всех его
классы не определены.
Для библиотек COM вам потребуется реализовать собственные методы точки входа DllRegisterServer
и DllUnregisterServer
, которые выполняют регистрацию / отмену регистрации соответствующим образом. Пример кода для DllRegisterServer
можно найти здесь .
Конечным результатом регистрации DLL является то, что все CLSID для компонентов в DLL зарегистрированы под HKEY_CLASSES_ROOT\CLSID
. Это позволяет CoCreateInstance
найти правильный сервер при создании экземпляра COM-объектов из другой DLL или приложения.
DllUnregisterServer
сделает обратное и удалит все CLSID из реестра, которые были добавлены туда DllRegisterServer
.
Более общую информацию о DllRegisterServer
можно найти здесь .