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 |
---|---|---|
Sicuro per la creazione di script | CATID_SafeForScripting | {7DD95801-9882-11CF-9FA9-00AA006C42C4} |
Sicuro per l'inizializzazione | CATID_SafeForInitializing | {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 |
---|---|---|
Sicuro per la creazione di script | CATID_SafeForScripting | {7DD95801-9882-11CF-9FA9-00AA006C42C4} |
Sicuro per l'inizializzazione | CATID_SafeForInitializing | {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()