后期绑定: 胡子下发生了什么?

以下列表概述了执行后期绑定的常规过程:

  • 某些内容绑定到 ADSI 目录对象。 例如,“LDAP://CN=Jeffsmith,OU=Sales,DC=Fabrikam,DC=COM”使用 COM 后期绑定绑定。 这会导致 ADSI 在 IDispatch 接口上调用 QueryInterface 方法。
  • ADSI 在用户类中找到一个对象,并创建一个支持相应接口的对象,例如 IADsIADsUser
  • ADSI 在注册表中执行查找,并为用户查找扩展 CLSID。 请注意,ADSI 会缓存此数据。
  • 某些内容调用 MyNewMethod 方法。 ADSI 查找其调度 ID 和其他 ADSI 扩展的调度 ID。 然后,ADSI 找到提供此调用的扩展,并调用该扩展的 IADsExtension 接口。
  • 该扩展执行函数。
  • 现在,客户端编写器使用当前扩展的 IDispatch 接口调用 YourNewMethod 方法。 扩展的 IDispatch 实现委托回 ADSI 的 IDispatch
  • IDispatch for ADSI 再次搜索相应的扩展或本身,然后使用该扩展的 IADsExtension 接口调用相应的扩展。