Condividi tramite


Macro di categoria

Queste macro definiscono le mappe delle categorie.

Macro Descrizione
BEGIN_CATEGORY_MAP Contrassegna l'inizio della mappa delle categorie.
END_CATEGORY_MAP Contrassegna la fine della mappa delle categorie.
IMPLEMENTED_CATEGORY Indica le categorie implementate dall'oggetto COM.
REQUIRED_CATEGORY Indica le categorie necessarie per il contenitore dall'oggetto COM.

Requisiti

Intestazione: atlcom.h

BEGIN_CATEGORY_MAP

Contrassegna l'inizio della mappa delle categorie.

BEGIN_CATEGORY_MAP(theClass)

Parametri

theClass
[in] Nome della classe contenente la mappa delle categorie.

Osservazioni:

La mappa delle categorie viene usata per specificare le categorie di componenti che la classe COM implementerà e le categorie richieste dal contenitore.

Aggiungere una voce IMPLEMENTED_CATEGORY alla mappa per ogni categoria implementata dalla classe COM. Aggiungere una voce REQUIRED_CATEGORY alla mappa per ogni categoria che la classe richiede l'implementazione dei client. Contrassegnare la fine della mappa con la macro END_CATEGORY_MAP .

Le categorie di componenti elencate nella mappa verranno registrate automaticamente quando il modulo viene registrato se la classe ha un OBJECT_ENTRY_AUTO o un OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO associato.

Nota

ATL usa il gestore delle categorie di componenti standard per registrare le categorie di componenti. Se il gestore non è presente nel sistema quando il modulo viene registrato, la registrazione ha esito positivo, ma le categorie di componenti non verranno registrate per tale classe.

Per altre informazioni sulle categorie di componenti, vedere Che cosa sono le categorie di componenti e come funzionano in Windows SDK.

Esempio

BEGIN_CATEGORY_MAP(CMyCtrl)
   IMPLEMENTED_CATEGORY(CATID_Insertable)
END_CATEGORY_MAP()

END_CATEGORY_MAP

Contrassegna la fine della mappa delle categorie.

END_CATEGORY_MAP()

Esempio

Vedere l'esempio per BEGIN_CATEGORY_MAP.

IMPLEMENTED_CATEGORY

Aggiungere una macro IMPLEMENTED_CATEGORY alla mappa delle categorie del componente per specificare che deve essere registrata come implementazione della categoria identificata dal parametro catID.

IMPLEMENTED_CATEGORY(catID)

Parametri

Catid
[in] Costante CATID o variabile che contiene l'identificatore univoco globale (GUID) per la categoria implementata. L'indirizzo di catID verrà preso e aggiunto alla mappa. Per una selezione di categorie di azioni, vedere la tabella seguente.

Osservazioni:

Le categorie di componenti elencate nella mappa verranno registrate automaticamente quando il modulo viene registrato se la classe ha un OBJECT_ENTRY_AUTO o una macro OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO associata.

I client possono usare le informazioni sulle categorie registrate per la classe per determinare le funzionalità e i requisiti senza dover creare un'istanza di esso.

Per altre informazioni sulle categorie di componenti, vedere Che cosa sono le categorie di componenti e come funzionano in Windows SDK.

Selezione di categorie azionarie

Descrizione Simbolo GUID del Registro di sistema
Cassaforte per lo scripting CATID_Cassaforte ForScripting {7DD95801-9882-11CF-9FA9-00AA006C42C4}
Cassaforte per l'inizializzazione CATID_Cassaforte ForInitializing {7DD95802-9882-11CF-9FA9-00AA006C42C4}
Contenimento del sito cornice semplice CATID_SimpleFrameControl {157083E0-2368-11cf-87B9-00AA006C8166}
data binding semplice CATID_PropertyNotifyControl {157083E1-2368-11cf-87B9-00AA006C8166}
Data binding avanzato CATID_VBDataBound {157083E2-2368-11cf-87B9-00AA006C8166}
Controlli senza finestra CATID_WindowlessObject {1D06B600-3AE3-11cf-87B9-00AA006C8166}
Oggetti con riconoscimento di Internet Per un elenco di esempi, vedere Internet Aware Objects in Windows SDK.

Esempio

BEGIN_CATEGORY_MAP(CMyCtrl)
   IMPLEMENTED_CATEGORY(CATID_Insertable)
END_CATEGORY_MAP()

REQUIRED_CATEGORY

Aggiungere una macro REQUIRED_CATEGORY alla mappa delle categorie del componente per specificare che deve essere registrata come richiesta per la categoria identificata dal parametro catID.

REQUIRED_CATEGORY( catID )

Parametri

Catid
[in] Costante CATID o variabile che contiene l'identificatore univoco globale (GUID) per la categoria richiesta. L'indirizzo di catID verrà preso e aggiunto alla mappa. Per una selezione di categorie di azioni, vedere la tabella seguente.

Osservazioni:

Le categorie di componenti elencate nella mappa verranno registrate automaticamente quando il modulo viene registrato se la classe ha un OBJECT_ENTRY_AUTO o una macro OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO associata.

I client possono usare le informazioni sulle categorie registrate per la classe per determinare le funzionalità e i requisiti senza dover creare un'istanza di esso. Ad esempio, un controllo può richiedere che un contenitore supporti il data binding. Il contenitore può scoprire se dispone delle funzionalità necessarie per ospitare il controllo eseguendo una query sul gestore delle categorie per le categorie richieste da tale controllo. Se il contenitore non supporta una funzionalità necessaria, può rifiutare di ospitare l'oggetto COM.

Per altre informazioni sulle categorie di componenti, incluso un elenco di esempi, vedere Che cosa sono le categorie di componenti e come funzionano in Windows SDK.

Selezione di categorie azionarie

Descrizione Simbolo GUID del Registro di sistema
Cassaforte per lo scripting CATID_Cassaforte ForScripting {7DD95801-9882-11CF-9FA9-00AA006C42C4}
Cassaforte per l'inizializzazione CATID_Cassaforte ForInitializing {7DD95802-9882-11CF-9FA9-00AA006C42C4}
Contenimento del sito cornice semplice CATID_SimpleFrameControl {157083E0-2368-11cf-87B9-00AA006C8166}
data binding semplice CATID_PropertyNotifyControl {157083E1-2368-11cf-87B9-00AA006C8166}
Data binding avanzato CATID_VBDataBound {157083E2-2368-11cf-87B9-00AA006C8166}
Controlli senza finestra CATID_WindowlessObject {1D06B600-3AE3-11cf-87B9-00AA006C8166}
Oggetti con riconoscimento di Internet Per un elenco di esempi, vedere Internet Aware Objects in Windows SDK.

Esempio

BEGIN_CATEGORY_MAP(CMyWindow)
   REQUIRED_CATEGORY(CATID_InternetAware)
END_CATEGORY_MAP()

Vedi anche

Macro