1. 客户程序首先调用CoCreatInstance,CoCreateInstanceEx,或者CoGetClassObject,实际上前两个函数都是经过包装过的辅助函数,其内部都是通过调用CoGetClassObject实现的。
2. CoGetClassObject函数中根据CLSID参数,查找注册表,找到组件所在的DLL文件。
3. CoGetClassObject调用DLL中的DllGetClassObject导出函数。
4. DllGetClassObject函数根据CLSID参数,创建对应的类厂,获取IClassFactory指针。
5. DllGetClassObject调用IClassFactory::CreateInstance()函数创建组件对象。
6. 通过类型转换,获取IID参数所指的接口指针。