Binding to a Class Store Provider

When binding to a class store provider listed in the class store search path, the Class Store Manager object performs the following operations:

  1. Call MkParseDisplayName, which finds the provider's ProgID (the URL prefix), and creates the class factory object for the provider object.
  2. MkParseDisplayName queries the provider object for IParseDisplayName to pass the URL (moniker display name) to the provider's class factory.
  3. The provider's class factory looks for an existing moniker object for this URL in the Running Object Table (ROT). If an object already exists, a reference to this object is returned to the caller.
  4. If no object exists in the ROT, the provider's class factory creates a new object and, in the case of the provider for ADSI/LDAP, passes it the remainder of the URL.
  5. The newly-created ADSI/LDAP provider moniker object calls MkParseDisplayName which finds the LDAP ProgID and creates the class factory for the LDAP ADSI provider object.
  6. MkParseDisplayName queries the LDAP ADSI provider for IParseDisplayName, then passes the LDAP URL.
  7. The LDAP ADSI provider returns a moniker object initialized to the LDAP URL, which is returned to the provider moniker object.
  8. The provider moniker object binds to the LDAP ADSI moniker and queries for IID_IADSObject.
  9. The provider's class factory returns an initialized moniker object to the client.
  10. The Class Store Manager binds to the moniker object, which returns the ADCS object.