Condividi tramite


Macro del Registro di sistema

Queste macro definiscono utili strutture della libreria dei tipi e del Registro di sistema.

Nome Descrizione
_ATL_STATIC_REGISTRY Indica che si desidera che il codice di registrazione per l'oggetto si trovi nell'oggetto per evitare una dipendenza da ATL.DLL.
DECLARE_LIBID Consente ad ATL di ottenere il libid della libreria dei tipi.
DECLARE_NO_REGISTRY Evita la registrazione ATL predefinita.
DECLARE_REGISTRY Immette o rimuove la voce dell'oggetto principale nel Registro di sistema.
DECLARE_REGISTRY_APPID_RESOURCEID Specifica le informazioni necessarie per registrare automaticamente l'id app.
DECLARE_REGISTRY_RESOURCE Trova la risorsa denominata ed esegue lo script del Registro di sistema al suo interno.
DECLARE_REGISTRY_RESOURCEID Trova la risorsa identificata da un numero ID ed esegue lo script del Registro di sistema al suo interno.

Requisiti

Intestazione: atlcom.h

_ATL_STATIC_REGISTRY

Simbolo che indica che si vuole che il codice di registrazione dell'oggetto sia presente nell'oggetto per evitare una dipendenza da ATL.DLL.

#define _ATL_STATIC_REGISTRY

Osservazioni:

Quando si definiscono ATL_STATIC_REGISTRY, è consigliabile usare il codice seguente:

#ifdef _ATL_STATIC_REGISTRY
#include <statreg.h>
#endif

DECLARE_LIBID

Consente ad ATL di ottenere il libid della libreria dei tipi.

DECLARE_LIBID( libid )

Parametri

libid
GUID della libreria dei tipi.

Osservazioni:

Usare DECLARE_LIBID in una CAtlModuleTclasse derivata da .

Esempio

I progetti ATL generati da procedure guidate non con attributi avranno un esempio di utilizzo di questa macro.

DECLARE_NO_REGISTRY

Utilizzare DECLARE_NO_REGISTRY se si desidera evitare la registrazione ATL predefinita per la classe in cui viene visualizzata questa macro.

DECLARE_NO_REGISTRY()

DECLARE_REGISTRY

Immette la registrazione della classe standard nel Registro di sistema o la rimuove dal Registro di sistema.

DECLARE_REGISTRY(
    class,
    pid,
    vpid,
    nid,
    flags )

Parametri

class
[in] Incluso per la compatibilità con le versioni precedenti.

pid
[in] LPCTSTR che è un identificatore di programma specifico della versione.

vpid
[in] LPCTSTR che è un identificatore di programma indipendente dalla versione.

nid
[in] Oggetto UINT che rappresenta un indice della stringa di risorsa nel Registro di sistema da usare come descrizione del programma.

flags
[in] DWORD contenente il modello di threading del programma nel Registro di sistema. Deve essere uno dei valori seguenti: THREADFLAGS_APARTMENT, THREADFLAGS_BOTH o AUTPRXFLAG.

Osservazioni:

La registrazione standard è costituita da CLSID, ID programma, ID programma indipendente dalla versione, stringa di descrizione e modello di thread.

Quando si crea un oggetto o un controllo tramite l'Aggiunta guidata classe ATL, la procedura guidata implementa automaticamente il supporto del Registro di sistema basato su script e aggiunge la macro DECLARE_REGISTRY_RESOURCEID ai file. Se non si desidera il supporto del Registro di sistema basato su script, è necessario sostituire questa macro con DECLARE_REGISTRY. DECLARE_REGISTRY inserisce solo le cinque chiavi di base descritte in precedenza nel Registro di sistema. È necessario scrivere manualmente codice per inserire altre chiavi nel Registro di sistema.

DECLARE_REGISTRY_APPID_RESOURCEID

Specifica le informazioni necessarie per registrare automaticamente l'id app.

DECLARE_REGISTRY_APPID_RESOURCEID(
    resid,
    appid )

Parametri

Resid
ID risorsa del file con estensione rgs che contiene informazioni sull'id app.

appid
Un valore GUID.

Osservazioni:

Usare DECLARE_REGISTRY_APPID_RESOURCEID in una CAtlModuleTclasse derivata da .

Esempio

Le classi aggiunte ai progetti ATL con la procedura guidata Aggiungi codice classe avranno un esempio di utilizzo di questa macro.

DECLARE_REGISTRY_RESOURCE

Ottiene la risorsa denominata contenente il file del Registro di sistema ed esegue lo script per immettere gli oggetti nel Registro di sistema o rimuoverli dal Registro di sistema.

DECLARE_REGISTRY_RESOURCE( x )

Parametri

x
[in] Identificatore stringa della risorsa.

Osservazioni:

Quando si crea un oggetto o un controllo tramite la Creazione guidata progetto ATL, la procedura guidata implementerà automaticamente il supporto del Registro di sistema basato su script e aggiungerà la macro DECLARE_REGISTRY_RESOURCEID , simile a DECLARE_REGISTRY_RESOURCE, ai file.

È possibile collegare in modo statico il componente registro ATL (Registrar) per l'accesso ottimizzato al Registro di sistema. Per collegare in modo statico al codice registrar, aggiungere la riga seguente al file pch.h (stdafx.h in Visual Studio 2017 e versioni precedenti):

#define _ATL_STATIC_REGISTRY

Se si desidera che ATL sostituisca i valori di sostituzione in fase di esecuzione, non specificare la macro DECLARE_REGISTRY_RESOURCE o DECLARE_REGISTRY_RESOURCEID. Creare invece una matrice di _ATL_REGMAP_ENTRIES strutture, in cui ogni voce contiene un segnaposto variabile associato a un valore per sostituire il segnaposto in fase di esecuzione. Chiamare quindi CAtlModule::UpdateRegistryFromResourceD o CAtlModule::UpdateRegistryFromResourceS, passando la matrice. In questo modo tutti i valori di sostituzione nelle _ATL_REGMAP_ENTRIES strutture vengono aggiunti alla mappa di sostituzione del registrar.

Per altre informazioni sui parametri e sugli script sostituibili, vedere l'articolo Componente del Registro di sistema ATL (registrar).

DECLARE_REGISTRY_RESOURCEID

Uguale a DECLARE_REGISTRY_RESOURCE ad eccezione del fatto che usa un UINT generato dalla procedura guidata per identificare la risorsa, anziché un nome stringa.

DECLARE_REGISTRY_RESOURCEID( x )

Parametri

x
[in] Identificatore generato dalla procedura guidata della risorsa.

Osservazioni:

Quando si crea un oggetto o un controllo tramite la Creazione guidata progetto ATL, la procedura guidata implementerà automaticamente il supporto del Registro di sistema basato su script e aggiungerà la macro DECLARE_REGISTRY_RESOURCEID ai file.

È possibile collegare in modo statico il componente registro ATL (Registrar) per l'accesso ottimizzato al Registro di sistema. Per collegare in modo statico al codice registrar, aggiungere la riga seguente al file stdafx.h (pch.h in Visual Studio 2019 e versioni successive):

#define _ATL_STATIC_REGISTRY

Se si desidera che ATL sostituisca i valori di sostituzione in fase di esecuzione, non specificare la macro DECLARE_REGISTRY_RESOURCE o DECLARE_REGISTRY_RESOURCEID. Creare invece una matrice di _ATL_REGMAP_ENTRIES strutture, in cui ogni voce contiene un segnaposto variabile associato a un valore per sostituire il segnaposto in fase di esecuzione. Chiamare quindi CAtlModule::UpdateRegistryFromResourceD o CAtlModule::UpdateRegistryFromResourceS, passando la matrice. In questo modo tutti i valori di sostituzione nelle _ATL_REGMAP_ENTRIES strutture vengono aggiunti alla mappa di sostituzione del registrar.

Per altre informazioni sui parametri e sugli script sostituibili, vedere l'articolo Componente del Registro di sistema ATL (registrar).

Vedi anche

Macro