实现 IClassFactory

当客户端使用 CLSID 请求创建对象实例时,第一步是创建类对象,即包含 IClassFactory 接口方法实现的中间对象。 虽然 COM 提供多个实例创建函数,但实现这些函数的第一步是创建类对象。

因此,所有服务器都必须实现 IClassFactory 接口的方法,其中包含两种方法:

  • CreateInstance。 此方法必须创建对象的未初始化实例,并返回指向对象上请求的接口的指针。
  • LockServer。 此方法只递增类对象的引用计数,以确保服务器保留在内存中,并且不会在客户端准备好执行此操作之前关闭。

为了让服务器负责自己的许可,COM 定义了 IClassFactory2,以便从 IClassFactory 继承其定义。 因此,实现 IClassFactory2 的服务器必须按照定义实现 IClassFactory 的方法。

COM 还提供用于实现进程外服务器的帮助程序函数。 有关详细信息,请参阅进程外服务器实现帮助程序

COM 服务器职责

Licensing 和 IClassFactory2