Condividi tramite


Revisione delle regole di aggregazione COM con le estensioni ADSI

Di seguito è riportata una breve revisione delle regole di aggregazione COM e dell'estensione ADSI.

  • Il metodo CreateInstance restituisce un puntatore a un'interfaccia IUnknown , come indicato di seguito, che non delega alcuna chiamata di funzione all'aggregatore.

    Il metodo IUnknown::QueryInterface restituisce puntatori alle interfacce supportate e gli errori per le interfacce non supportate.

    Il metodo IUnknown::AddRef incrementa il conteggio dei riferimenti sull'oggetto di estensione aggregato stesso.

    Il metodo IUnkown::Release decrementa il conteggio dei riferimenti sull'oggetto di estensione aggregato stesso e si distrugge quando il conteggio dei riferimenti è 0.

  • L'oggetto estensione deve archiviare il puntatore IUnknown dell'aggregatore, ad esempio m_pOuterUnknown, durante l'implementazione del metodo CreateInstance.

  • Tutte le interfacce supportate dall'oggetto estensione, inclusi IADsExtension, devono ereditare da IUnknown, che delega tutte le chiamate di funzione all'aggregatore.

Gli autori di estensioni possono scegliere qualsiasi implementazione interna che preferiscono purché rispettino le regole di aggregazione COM standard. Tenere presente che un oggetto di estensione non deve funzionare come oggetto autonomo. Le estensioni sono progettate per funzionare come aggregazioni. Tuttavia, un'estensione può essere scritta per funzionare sia come oggetto autonomo che come aggregazione.

Oltre al supporto delle aggregazioni COM standard, un oggetto di estensione può supportare IADsExtension per funzionalità più avanzate. Se l'associazione tardiva è supportata, l'estensione deve: