Classe CComModule
A partire da ATL 7.0, CComModule
è deprecato: vedere Classi di moduli ATL per altri dettagli.
Importante
Questa classe e i relativi membri non possono essere usati nelle applicazioni eseguite in Windows Runtime.
Sintassi
class CComModule : public _ATL_MODULE
Membri
Metodi pubblici
Nome | Descrizione |
---|---|
CComModule::GetClassObject | Crea un oggetto di un CLSID specificato. Solo per dll. |
CComModule::GetModuleInstance | Restituisce m_hInst . |
CComModule::GetResourceInstance | Restituisce m_hInstResource . |
CComModule::GetTypeLibInstance | Restituisce m_hInstTypeLib . |
CComModule::Init | Inizializza i membri dati. |
CComModule::RegisterClassHelper | Immette la registrazione della classe standard di un oggetto nel Registro di sistema. |
CComModule::RegisterClassObjects | Registra l'oggetto classe. Solo per exes. |
CComModule::RegisterServer | Aggiorna il Registro di sistema per ogni oggetto nella mappa degli oggetti. |
CComModule::RegisterTypeLib | Registra una libreria dei tipi. |
CComModule::RevokeClassObjects | Revoca l'oggetto classe. Solo per exes. |
CComModule::Term | Rilascia i membri dati. |
CComModule::UnregisterClassHelper | Rimuove la registrazione della classe standard di un oggetto dal Registro di sistema. |
CComModule::UnregisterServer | Annulla la registrazione di ogni oggetto nella mappa oggetti. |
CComModule::UpdateRegistryClass | Registra o annulla la registrazione della classe standard di un oggetto. |
CComModule::UpdateRegistryFromResourceD | Esegue lo script contenuto in una risorsa specificata per registrare o annullare la registrazione di un oggetto. |
CComModule::UpdateRegistryFromResourceS | Collegamenti statici al componente del Registro di sistema ATL. Esegue lo script contenuto in una risorsa specificata per registrare o annullare la registrazione di un oggetto. |
Membri dati pubblici
Nome | Descrizione |
---|---|
CComModule::m_csObjMap | Garantisce l'accesso sincronizzato alle informazioni sulla mappa degli oggetti. |
CComModule::m_csTypeInfoHolder | Garantisce l'accesso sincronizzato alle informazioni della libreria dei tipi. |
CComModule::m_csWindowCreate | Garantisce l'accesso sincronizzato alle informazioni sulla classe finestra e ai dati statici usati durante la creazione della finestra. |
CComModule::m_hInst | Contiene l'handle per l'istanza del modulo. |
CComModule::m_hInstResource | Per impostazione predefinita, contiene l'handle per l'istanza del modulo. |
CComModule::m_hInstTypeLib | Per impostazione predefinita, contiene l'handle per l'istanza del modulo. |
CComModule::m_pObjMap | Punta alla mappa oggetti gestita dall'istanza del modulo. |
Osservazioni:
Nota
Questa classe è deprecata e le procedure guidate per la generazione di codice ATL ora usano le classi derivate CAtlAutoThreadModule e CAtlModule . Per altre informazioni, vedere Classi di moduli ATL. Le informazioni seguenti sono destinate all'uso con le applicazioni create con le versioni precedenti di ATL. CComModule
è ancora parte di ATL per la funzionalità indietro.
CComModule
implementa un modulo server COM, consentendo a un client di accedere ai componenti del modulo. CComModule
supporta i moduli DLL (in-process) e EXE (locale).
Un'istanza CComModule
usa una mappa oggetti per mantenere un set di definizioni di oggetti di classe. Questa mappa oggetti viene implementata come matrice di _ATL_OBJMAP_ENTRY
strutture e contiene informazioni per:
Immissione e rimozione delle descrizioni degli oggetti nel Registro di sistema.
Creazione di un'istanza di oggetti tramite una class factory.
Stabilire la comunicazione tra un client e l'oggetto radice nel componente.
Esecuzione della gestione della durata degli oggetti classe.
Quando si esegue atl COM AppWizard, la procedura guidata genera _Module
automaticamente , un'istanza globale di CComModule
o una classe derivata da essa. Per altre informazioni sulla Creazione guidata progetto ATL, vedere l'articolo Creazione di un progetto ATL.
Oltre a CComModule
, ATL fornisce CComAutoThreadModule, che implementa un modulo modello apartment per i servizi EXEs e Windows. Derivare il modulo da CComAutoThreadModule
quando si desidera creare oggetti in più appartamenti.
Gerarchia di ereditarietà
CComModule
Requisiti
Intestazione: atlbase.h
CComModule::GetClassObject
A partire da ATL 7.0, CComModule
è obsoleto: vedere Classi di moduli ATL per altri dettagli.
HRESULT GetClassObject(
REFCLSID rclsid,
REFIID riid,
LPVOID* ppv) throw();
Parametri
rclsid
[in] CLSID dell'oggetto da creare.
riid
[in] IID dell'interfaccia richiesta.
ppv
[out] Puntatore al puntatore all'interfaccia identificato da riid. Se l'oggetto non supporta questa interfaccia, ppv è impostato su NULL.
Valore restituito
Valore HRESULT standard.
Osservazioni:
Crea un oggetto del CLSID specificato e recupera un puntatore di interfaccia a questo oggetto.
GetClassObject
è disponibile solo per le DLL.
CComModule::GetModuleInstance
A partire da ATL 7.0, CComModule
è obsoleto: vedere Classi di moduli ATL per altri dettagli.
HINSTANCE GetModuleInstance() throw();
Valore restituito
HINSTANCE che identifica questo modulo.
Osservazioni:
Restituisce il membro dati m_hInst .
CComModule::GetResourceInstance
A partire da ATL 7.0, CComModule
è obsoleto: vedere Classi di moduli ATL per altri dettagli.
HINSTANCE GetResourceInstance() throw();
Valore restituito
UNA HINSTANCE.
Osservazioni:
Restituisce il membro dati m_hInstResource .
CComModule::GetTypeLibInstance
A partire da ATL 7.0, CComModule
è obsoleto: vedere Classi di moduli ATL per altri dettagli.
HINSTANCE GetTypeLibInstance() const throw();
Valore restituito
UNA HINSTANCE.
Osservazioni:
Restituisce il membro dati m_hInstTypeLib .
CComModule::Init
A partire da ATL 7.0, CComModule
è obsoleto: vedere Classi di moduli ATL per altri dettagli.
HRESULT Init(
_ATL_OBJMAP_ENTRY* p,
HINSTANCE h,
const GUID* plibid = NULL) throw();
Parametri
p
[in] Puntatore a una matrice di voci della mappa di oggetti.
h
[in] HINSTANCE passata a DLLMain
o WinMain
.
plibid
[in] Puntatore al LIBID della libreria dei tipi associata al progetto.
Valore restituito
Valore HRESULT standard.
Osservazioni:
Inizializza tutti i membri dati.
CComModule::m_csObjMap
A partire da ATL 7.0, CComModule
è obsoleto: vedere Classi di moduli ATL per altri dettagli.
CRITICAL_SECTION m_csObjMap;
Osservazioni:
Garantisce l'accesso sincronizzato alla mappa oggetti.
CComModule::m_csTypeInfoHolder
A partire da ATL 7.0, CComModule
è obsoleto: vedere Classi di moduli ATL per altri dettagli.
CRITICAL_SECTION m_csTypeInfoHolder;
Osservazioni:
Garantisce l'accesso sincronizzato alla libreria dei tipi.
CComModule::m_csWindowCreate
A partire da ATL 7.0, CComModule
è obsoleto: vedere Classi di moduli ATL per altri dettagli.
CRITICAL_SECTION m_csWindowCreate;
Osservazioni:
Garantisce l'accesso sincronizzato alle informazioni sulla classe finestra e ai dati statici usati durante la creazione della finestra.
CComModule::m_hInst
A partire da ATL 7.0, CComModule
è obsoleto: vedere Classi di moduli ATL per altri dettagli.
HINSTANCE m_hInst;
Osservazioni:
Contiene l'handle per l'istanza del modulo.
Il metodo Init imposta m_hInst
sull'handle passato a DLLMain
o WinMain
.
CComModule::m_hInstResource
A partire da ATL 7.0, CComModule
è obsoleto: vedere Classi di moduli ATL per altri dettagli.
HINSTANCE m_hInstResource;
Osservazioni:
Per impostazione predefinita, contiene l'handle per l'istanza del modulo.
Il metodo Init imposta m_hInstResource
sull'handle passato a DLLMain
o WinMain
. È possibile impostare m_hInstResource
in modo esplicito l'handle su una risorsa.
Il metodo GetResourceInstance restituisce l'handle archiviato in m_hInstResource
.
CComModule::m_hInstTypeLib
A partire da ATL 7.0, CComModule
è obsoleto: vedere Classi di moduli ATL per altri dettagli.
HINSTANCE m_hInstTypeLib;
Osservazioni:
Per impostazione predefinita, contiene l'handle per l'istanza del modulo.
Il metodo Init imposta m_hInstTypeLib
sull'handle passato a DLLMain
o WinMain
. È possibile impostare m_hInstTypeLib
in modo esplicito l'handle su una libreria dei tipi.
Il metodo GetTypeLibInstance restituisce l'handle archiviato in m_hInstTypeLib
.
CComModule::m_pObjMap
A partire da ATL 7.0, CComModule
è obsoleto: vedere Classi di moduli ATL per altri dettagli.
_ATL_OBJMAP_ENTRY* m_pObjMap;
Osservazioni:
Punta alla mappa oggetti gestita dall'istanza del modulo.
CComModule::RegisterClassHelper
A partire da ATL 7.0, CComModule
è obsoleto: vedere Classi di moduli ATL per altri dettagli.
ATL_DEPRECATED HRESULT RegisterClassHelper(
const CLSID& clsid,
LPCTSTR lpszProgID,
LPCTSTR lpszVerIndProgID,
UINT nDescID,
DWORD dwFlags);
Parametri
clsid
[in] CLSID dell'oggetto da registrare.
lpszProgID
[in] ProgID associato all'oggetto .
lpszVerIndProgID
[in] ProgID indipendente dalla versione associato all'oggetto .
nDescID
[in] Identificatore di una risorsa stringa per la descrizione dell'oggetto.
dwFlags
[in] Specifica il modello di threading da immettere nel Registro di sistema. I valori possibili sono THREADFLAGS_APARTMENT, THREADFLAGS_BOTH o AUTPRXFLAG.
Valore restituito
Valore HRESULT standard.
Osservazioni:
Immette la registrazione della classe standard di un oggetto nel Registro di sistema.
Il metodo UpdateRegistryClass chiama RegisterClassHelper
.
CComModule::RegisterClassObjects
A partire da ATL 7.0, CComModule
è obsoleto: vedere Classi di moduli ATL per altri dettagli.
HRESULT RegisterClassObjects(DWORD dwClsContext, DWORD dwFlags) throw();
Parametri
dwClsContext
[in] Specifica il contesto in cui deve essere eseguito l'oggetto classe. I valori possibili sono CLSCTX_INPROC_SERVER, CLSCTX_INPROC_HANDLER o CLSCTX_LOCAL_SERVER. Per una descrizione di questi valori, vedere CLSCTX in Windows SDK.
dwFlags
[in] Determina i tipi di connessione all'oggetto classe. I valori possibili sono REGCLS_SINGLEUSE, REGCLS_MULTIPLEUSE o REGCLS_MULTI_SEPARATE. Per una descrizione di questi valori, vedere REGCLS in Windows SDK.
Valore restituito
Valore HRESULT standard.
Osservazioni:
Registra un oggetto classe EXE con OLE in modo che altre applicazioni possano connettersi. Questo metodo è disponibile solo per exes.
CComModule::RegisterServer
A partire da ATL 7.0, CComModule
è obsoleto: vedere Classi di moduli ATL per altri dettagli.
HRESULT RegisterServer(
BOOL bRegTypeLib = FALSE,
const CLSID* pCLSID = NULL) throw();
Parametri
bRegTypeLib
[in] Indica se la libreria dei tipi verrà registrata. Il valore predefinito è FALSE.
pCLSID
[in] Punta al CLSID dell'oggetto da registrare. Se NULL (valore predefinito), verranno registrati tutti gli oggetti nella mappa oggetti.
Valore restituito
Valore HRESULT standard.
Osservazioni:
A seconda del parametro pCLSID , aggiorna il Registro di sistema per un singolo oggetto classe o per tutti gli oggetti nella mappa oggetti.
Se bRegTypeLib è TRUE, verranno aggiornate anche le informazioni sulla libreria dei tipi.
Per informazioni su come aggiungere una voce alla mappa oggetti, vedere OBJECT_ENTRY_AUTO .
RegisterServer
verrà chiamato automaticamente da DLLRegisterServer
per una DLL o da WinMain
per un'esecuzione EXE con l'opzione della /RegServer
riga di comando.
CComModule::RegisterTypeLib
A partire da ATL 7.0, CComModule
è obsoleto: vedere Classi di moduli ATL per altri dettagli.
HRESULT RegisterTypeLib() throw();
HRESULT RegisterTypeLib(LPCTSTR lpszIndex) throw();
Parametri
lpszIndex
[in] Stringa nel formato "\\N"
, dove N
è l'indice intero della risorsa TYPELIB.
Valore restituito
Valore HRESULT standard.
Osservazioni:
Aggiunge informazioni su una libreria dei tipi al Registro di sistema.
Se l'istanza del modulo contiene più librerie dei tipi, usare la seconda versione di questo metodo per specificare la libreria dei tipi da usare.
CComModule::RevokeClassObjects
A partire da ATL 7.0, CComModule
è obsoleto: vedere Classi di moduli ATL per altri dettagli.
HRESULT RevokeClassObjects() throw();
Valore restituito
Valore HRESULT standard.
Osservazioni:
Rimuove l'oggetto classe. Questo metodo è disponibile solo per exes.
CComModule::Term
A partire da ATL 7.0, CComModule
è obsoleto: vedere Classi di moduli ATL per altri dettagli.
void Term() throw();
Osservazioni:
Rilascia tutti i membri dati.
CComModule::UnregisterClassHelper
A partire da ATL 7.0, CComModule
è obsoleto: vedere Classi di moduli ATL per altri dettagli.
ATL_DEPRECATED HRESULT UnregisterClassHelper(
const CLSID& clsid,
LPCTSTR lpszProgID,
LPCTSTR lpszVerIndProgID);
Parametri
clsid
[in] CLSID dell'oggetto da annullare.
lpszProgID
[in] ProgID associato all'oggetto .
lpszVerIndProgID
[in] ProgID indipendente dalla versione associato all'oggetto .
Valore restituito
Valore HRESULT standard.
Osservazioni:
Rimuove la registrazione della classe standard di un oggetto dal Registro di sistema.
Il metodo UpdateRegistryClass chiama UnregisterClassHelper
.
CComModule::UnregisterServer
A partire da ATL 7.0, CComModule
è obsoleto: vedere Classi di moduli ATL per altri dettagli.
HRESULT UnregisterServer(const CLSID* pCLSID = NULL) throw ();
inline HRESULT UnregisterServer(BOOL bUnRegTypeLib, const CLSID* pCLSID = NULL) throw ();
Parametri
bUnRegTypeLib
Se TRUE, anche la libreria dei tipi viene annullata la registrazione.
pCLSID
Punta al CLSID dell'oggetto da annullare. Se NULL (valore predefinito), tutti gli oggetti nella mappa oggetti verranno annullati.
Valore restituito
Valore HRESULT standard.
Osservazioni:
A seconda del parametro pCLSID , annulla la registrazione di un singolo oggetto di classe o di tutti gli oggetti nella mappa oggetti.
UnregisterServer
verrà chiamato automaticamente da DLLUnregisterServer
per una DLL o da WinMain
per un'esecuzione EXE con l'opzione della /UnregServer
riga di comando.
Per informazioni su come aggiungere una voce alla mappa oggetti, vedere OBJECT_ENTRY_AUTO .
CComModule::UpdateRegistryClass
A partire da ATL 7.0, CComModule
è obsoleto: vedere Classi di moduli ATL per altri dettagli.
ATL_DEPRECATED HRESULT UpdateRegistryClass(
const CLSID& clsid,
LPCTSTR lpszProgID,
LPCTSTR lpszVerIndProgID,
UINT nDescID,
DWORD dwFlags,
BOOL bRegister);
ATL_DEPRECATED HRESULT UpdateRegistryClass(
const CLSID& clsid,
LPCTSTR lpszProgID,
LPCTSTR lpszVerIndProgID,
LPCTSTR szDesc,
DWORD dwFlags,
BOOL bRegister);
Parametri
clsid
CLSID dell'oggetto da registrare o annullare la registrazione.
lpszProgID
ProgID associato all'oggetto .
lpszVerIndProgID
ProgID indipendente dalla versione associato all'oggetto .
nDescID
Identificatore della risorsa stringa per la descrizione dell'oggetto.
szDesc
Stringa contenente la descrizione dell'oggetto.
dwFlags
Specifica il modello di threading da immettere nel Registro di sistema. I valori possibili sono THREADFLAGS_APARTMENT, THREADFLAGS_BOTH o AUTPRXFLAG.
bRegister
Indica se l'oggetto deve essere registrato.
Valore restituito
Valore HRESULT standard.
Osservazioni:
Se bRegister è TRUE, questo metodo immette la registrazione della classe standard dell'oggetto nel Registro di sistema.
Se bRegister è FALSE, rimuove la registrazione dell'oggetto.
A seconda del valore di bRegister, UpdateRegistryClass
chiama RegisterClassHelper o UnregisterClassHelper.
Specificando la macro DECLARE_REGISTRY , UpdateRegistryClass
verrà richiamata automaticamente quando viene elaborata la mappa degli oggetti.
CComModule::UpdateRegistryFromResourceD
A partire da ATL 7.0, CComModule
è obsoleto: vedere Classi di moduli ATL per altri dettagli.
virtual HRESULT UpdateRegistryFromResourceD(
LPCTSTR lpszRes,
BOOL bRegister,
struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw();
virtual HRESULT UpdateRegistryFromResourceD(
UINT nResID,
BOOL bRegister,
struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw ();
Parametri
lpszRes
[in] Nome della risorsa.
nResID
[in] ID risorsa.
bRegister
[in] Indica se l'oggetto deve essere registrato.
pMapEntries
[in] Puntatore alla mappa di sostituzione che archivia i valori associati ai parametri sostituibili dello script. ATL usa %MODULE%
automaticamente . Per usare parametri sostituibili aggiuntivi, vedere la sezione Osservazioni per informazioni dettagliate. In caso contrario, usare il valore predefinito NULL.
Valore restituito
Valore HRESULT standard.
Osservazioni:
Esegue lo script contenuto nella risorsa specificata da lpszRes o nResID.
Se bRegister è TRUE, questo metodo registra l'oggetto nel Registro di sistema; in caso contrario, annulla la registrazione dell'oggetto.
Specificando la macro DECLARE_REGISTRY_RESOURCE o DECLARE_REGISTRY_RESOURCEID , UpdateRegistryFromResourceD
verrà richiamata automaticamente quando viene elaborata la mappa degli oggetti.
Nota
Per sostituire 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 UpdateRegistryFromResourceD
quindi , passando la matrice per il parametro pMapEntries . In questo modo tutti i valori di sostituzione delle _ATL_REGMAP_ENTRIES
strutture vengono aggiunti alla mappa di sostituzione del registrar.
Nota
Per collegare in modo statico al componente del Registro di sistema ATL (Registrar), vedere UpdateRegistryFromResourceS.
Per altre informazioni sui parametri e sugli script sostituibili, vedere l'articolo Componente del Registro di sistema ATL (registrar).
CComModule::UpdateRegistryFromResourceS
A partire da ATL 7.0, CComModule
è obsoleto: vedere Classi di moduli ATL per altri dettagli.
virtual HRESULT UpdateRegistryFromResourceS(
LPCTSTR lpszRes,
BOOL bRegister,
struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw();
virtual HRESULT UpdateRegistryFromResourceS(
UINT nResID,
BOOL bRegister,
struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw();
Parametri
lpszRes
[in] Nome della risorsa.
nResID
[in] ID risorsa.
bRegister
[in] Indica se lo script della risorsa deve essere registrato.
pMapEntries
[in] Puntatore alla mappa di sostituzione che archivia i valori associati ai parametri sostituibili dello script. ATL usa %MODULE%
automaticamente . Per usare parametri sostituibili aggiuntivi, vedere la sezione Osservazioni per informazioni dettagliate. In caso contrario, usare il valore predefinito NULL.
Valore restituito
Valore HRESULT standard.
Osservazioni:
Analogamente a UpdateRegistryFromResourceD , ad eccezione UpdateRegistryFromResourceS
della creazione di un collegamento statico al componente del Registro di sistema ATL (Registrar).
UpdateRegistryFromResourceS
verrà richiamato automaticamente quando la mappa degli oggetti viene elaborata, purché venga aggiunta #define _ATL_STATIC_REGISTRY
al file pch.h (stdafx.h in Visual Studio 2017 e versioni precedenti).
Nota
Per sostituire 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 UpdateRegistryFromResourceS
quindi , passando la matrice per il parametro pMapEntries . In questo modo tutti i valori di sostituzione delle _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).