Categorie di componenti e come funzionano

Le categorie di componenti identificano le aree di funzionalità supportate e richieste da un componente software, viene usata una voce del Registro di sistema per ogni categoria o area identificata delle funzionalità. Ogni categoria di componenti viene identificata da un identificatore univoco globale (GUID), quando un controllo viene installato si registra come controllo nel Registro di sistema usando l'ID categoria di componenti per il controllo, vedere Registrazione automatica per i controlli. All'interno dei controlli autoregistrerà anche le categorie di componenti implementate e quelle categorie di componenti che richiede il supporto di un contenitore per ospitare correttamente il controllo.

Quando un contenitore di controlli offre controlli all'utente da inserire, consente solo all'utente di selezionare e creare istanze di tali controlli in grado di funzionare in modo adeguato in tale ambiente. Ad esempio, se il contenitore di controlli non supporta l'associazione dati, il contenitore non consentirà all'utente di selezionare e creare un'istanza di tali controlli con una voce nel Registro di sistema che indica che richiedono la categoria di componenti di associazione dati. Sono disponibili finestre di dialogo comuni per l'inserimento dei controlli e le API per gestire le voci del Registro di sistema.

Le categorie di componenti non sono cumulative o esclusive, un controllo può richiedere il funzionamento di qualsiasi combinazione di categorie di componenti. Un controllo che non dispone di voci necessarie per le categorie di componenti potrebbe essere in grado di funzionare in qualsiasi contenitore di controllo e non richiede alcuna funzionalità specifica di un contenitore di controlli per funzionare.

Le categorie di componenti seguenti sono identificate qui, se necessario, possono essere disponibili specifiche più dettagliate delle categorie.

Questo non è un elenco definitivo di categorie; è probabile che vengano definite altre categorie in futuro, in quanto vengono identificati nuovi requisiti. Un elenco aggiornato delle categorie di componenti è disponibile da Microsoft; questo elenco riflette le categorie di componenti identificate da Microsoft e da qualsiasi altro utente che riguarda i fornitori che hanno informato Microsoft.

È importante ricordare che i controlli devono tentare di lavorare nel maggior numero possibile di ambienti. Se possibile, il controllo deve ridurre le funzionalità quando viene inserito in un contenitore che non supporta determinate interfacce. Lo scopo delle categorie di componenti è impedire una situazione in cui il controllo viene inserito in un ambiente non adatto e il controllo non può raggiungere l'attività desiderata. In genere, un controllo deve peggiorare normalmente quando le interfacce non sono presenti, un controllo può scegliere di consigliare all'utente con una finestra di messaggio che alcune funzionalità non sono disponibili o documentare chiaramente le funzionalità necessarie per un contenitore di controlli per ottenere prestazioni ottimali.

Si noti che i controlli e i contenitori meno recenti non usano categorie di componenti e si basano invece sulla parola chiave control presente sul controllo nel Registro di sistema. Per essere riconosciuto dai controlli contenitori meno recenti, è possibile registrare la parola chiave del controllo nel Registro di sistema, i controlli devono verificare che il controllo possa essere ospitato correttamente in tali contenitori prima di eseguire questa operazione. I contenitori che usano categorie di componenti possono usarli correttamente per ospitare i controlli meno recenti perché la DLL di categoria dei componenti gestisce il mapping, esiste una categoria separata per i controlli meno recenti CATID_ControlV1 in modo che un contenitore possa escluderli facoltativamente, se necessario.

Poiché le categorie di componenti sono identificate da GUID, è possibile che i contenitori che offrono funzionalità specifiche abbiano ID categoria personalizzati, generati usando uno strumento di generazione GUID. Tuttavia, ciò può compromettere il vantaggio dell'interoperabilità dei controlli e dei contenitori in modo che sia preferibile che, ove possibile, vengano usate categorie di componenti esistenti. I fornitori sono invitati a consultare insieme quando si definiscono nuove categorie di componenti per garantire che soddisfino i requisiti comuni del marketplace e seguano lo spirito di interoperabilità dei controlli ActiveX.

Categorie di componenti