Compartir a través de


Volver a consultar las reglas de agregación COM con extensiones ADSI

A continuación se muestra una breve revisión de las reglas de agregación COM y extensión ADSI.

  • El método CreateInstance devuelve un puntero a una interfaz IUnknown , como se indica a continuación, que no delega ninguna llamada de función al agregador.

    El método IUnknown::QueryInterface devuelve punteros a las interfaces que admite y los errores de las interfaces que no admite.

    El método IUnknown::AddRef incrementa el recuento de referencias en el propio objeto de extensión agregado.

    El método IUnkown::Release disminuye el recuento de referencias en el propio objeto de extensión agregado y se destruye cuando el recuento de referencias es 0.

  • El objeto de extensión debe almacenar el puntero IUnknown del agregador, como m_pOuterUnknown, durante la implementación del método CreateInstance .

  • Todas las interfaces que admite el objeto de extensión, incluido IADsExtension, deben heredar de IUnknown, que delega todas las llamadas de función al agregador.

Los escritores de extensiones pueden elegir cualquier implementación interna que prefieran siempre que cumplan las reglas de agregación COM estándar. Tenga en cuenta que un objeto de extensión no tiene que funcionar como un objeto independiente. Las extensiones están diseñadas para funcionar como agregados. Sin embargo, se puede escribir una extensión para que funcione como un objeto independiente y como agregado.

Además de la compatibilidad con agregaciones COM estándar, un objeto de extensión puede admitir IADsExtension para características más avanzadas. Si se admite el enlace en tiempo de ejecución, la extensión debe: