Вопрос о реализации метода CoCreateInstance () - PullRequest
1 голос
/ 15 августа 2010

У меня есть вопрос о том, как метод CoCreateInstnace () находит и создает экземпляр CoClass, содержащийся в COM DLL.

Согласно MSDN :

Функция CoCreateInstance предоставляет удобный ярлык, подключаясь к объекту класса, связанному с указанным CLSID, создавая неинициализированный экземпляр и освобождая объект класса.Таким образом, он инкапсулирует следующую функциональность:

CoGetClassObject(rclsid, dwClsContext, NULL, IID_IClassFactory, &pCF); 
hresult = pCF->CreateInstance(pUnkOuter, riid, ppvObj) 
pCF->Release(); 

Поэтому мне интересно, если это точно , как реализован CoCreateInstnace?Или это просто логический эквивалент ?Если его реальная реализация не такая, я совершенно не понимаю, как CoCreateInstnace может найти и создать экземпляр правильного CoClass, используя всего лишь CLSID и некоторую информацию о местоположении DLL, зарегистрированную в реестре Windows.

Спасибо за вашеответить.

1 Ответ

0 голосов
/ 15 августа 2010

Проверьте это путем отладки в отладочной версии библиотек MSVCRT в Visual Studio IDE. Кроме того, вы можете сканировать файлы заголовков VC ++

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...