sha*_*oth 17
您可以将其CoCreateInstance()视为匿名工厂类的接口.
在OOP中,使用工厂模式来调用创建方法并获取接口指针/引用通常是合理的,而无需知道该接口背后的类.但是你仍然需要知道哪个类用作工厂.您可以通过拥有一些全局函数来隐藏它,但您仍然需要知道它的名称和调用约定.
CoCreateInstance更进一步 - 它也隐藏了工厂类,并提供了系统范围的全局功能.你提供的只是一个类id - 它只是一个GUID - 和一个接口id - 它也是一个GUID.您不知道实现的位置以及它所使用的语言 - COM处理所有这些,因为您的系统上有一个COM服务器,其中包含指定类ID的实现,该实现公开了指定接口ID的接口.
你调用系统范围的全局CoCreateInstance(),它找到COM服务器(或失败),初始化它,要求它创建一个对象(可能失败),检索一个指向该对象的接口指针(也可能失败)并返回此接口指针给你.
| 归档时间: |
|
| 查看次数: |
4303 次 |
| 最近记录: |