modulo (C++)
Definisce il blocco di libreria nel file IDL.
[ module (
type=dll,
name=string,
version=1.0,
uuid=uuid,
lcid=integer,
control=boolean,
helpstring=string,
helpstringdll=string,
helpfile=string,
helpcontext=integer,
helpstringcontext=integer,
hidden=boolean,
restricted=boolean,
custom=string,
resource_name=string,
) ];
Parametri
tipo (facoltativo)
ad esempio uno dei seguenti:DLL Aggiunge le funzioni e le classi che consentono la DLL risultante alla funzione come server COM in-process. Rappresenta il valore predefinito.
EXE Aggiunge le funzioni e le classi che consentono il file eseguibile risultante alla funzione come un oggetto dal processo server COM.
servizio Aggiunge le funzioni e le classi che consentono il file eseguibile risultante alla funzione come servizio NT.
non specificato Disabilita l'inserimento del codice ATL correlata all'attributo del modulo: l'inserimento della classe del modulo ATL, il _AtlModule globale di istanza e il punto di ingresso viene eseguito. Non disabilita l'inserimento del codice ATL a causa di altri attributi nel progetto.
nome (facoltativo)
Il nome del blocco di libreria.versione (facoltativo)
Il numero di versione che si desidera assegnare al blocco di libreria. Il valore predefinito è 1.0.uuid
ID univoco per la raccolta. Se si omette questo parametro, un ID verrà generato automaticamente per la raccolta. È possibile richiedere di recuperare uuid il blocco di libreria, che è possibile eseguire utilizzando l'identificatore __uuidof (libraryname).LCID
il parametro di localizzazione. vedere LCID per ulteriori informazioni.controllare (facoltativo)
Specifica che tutte le coclassi della raccolta sono controlli.helpstring
Specifica la libreria dei tipi.helpstringdll (facoltativo)
Imposta il nome del file DLL da utilizzare per eseguire una ricerca della stringa del documento. vedere helpstringdll per ulteriori informazioni.file di (facoltativo)
Il nome del file della Guida per la libreria dei tipi.helpcontext (facoltativo)
La guida all'ID della libreria dei tipi.helpstringcontext (facoltativo)
vedere helpstringcontext per ulteriori informazioni.nascosto (facoltativo)
Impedisce l'intera raccolta da visualizzare. Questo utilizzo deve essere utilizzata con i controlli. Gli host devono creare una raccolta del nuovo tipo che esegue il wrapping del controllo con le proprietà estese. vedere nascosto Attributo MIDL per ulteriori informazioni.limitato (facoltativo)
I membri della raccolta non possono essere chiamati in modo arbitrario. vedere limitato Attributo MIDL per ulteriori informazioni.personalizzati (facoltativo)
Uno o più attributi, equivale a personalizzati attributo. Il primo parametro su custom rappresenta il GUID dell'attributo. Di seguito è riportato un esempio:[module(custom={guid,1}, custom={guid1,2})]
resource_name
La risorsa di tipo stringa ID del file RGS utilizzato per registrare l'APPLICAZIONE ID della DLL, il file eseguibile, o del servizio. Quando viene del servizio del tipo, in questo argomento viene inoltre utilizzato per ottenere l'ID della stringa contenente il nome del servizio.
Nota
Sia il file RGS e la stringa contenente il nome del servizio deve contenere lo stesso valore numerico.
Note
A meno che non venga specificato limitato parametro di emitidl, modulo è obbligatorio in qualsiasi programma che utilizza gli attributi di C++.
Un blocco di libreria verrà creata se, oltre a modulo attributo, di codice sorgente utilizza anche interfaccia dispatch, doppio, oggetto, o un attributo che implica coclasse.
Un blocco di libreria è consentito in un file idl. Più voci del modulo nel codice sorgente verranno unite, con i valori di parametro più recenti distribuiti.
Se questo attributo viene utilizzato in un progetto che utilizza ATL, il comportamento dell'attributo viene modificato. Oltre a quello sopra, l'attributo viene inserito un oggetto globale denominato _AtlModule) del tipo corretto e del codice di supporto. Se l'attributo è autonomo, inserisce una classe derivata dal tipo corretto del modulo. Se l'attributo è applicato a una classe, aggiungere una classe base del tipo corretto del modulo. Il tipo corretto è determinato dal valore di type parametro:
type = DLL
CAtlDllModuleT viene utilizzato come classe di base e i punti di ingresso standard di DLL necessarie per un server COM. questi punti di ingresso sono DllMain, DllRegisterServer, DllUnRegisterServer, DllCanUnloadNowe DllGetClassObject.
type = EXE
CAtlExeModuleT viene utilizzato come classe di base e il punto di ingresso eseguibile standard WinMain.
type = servizio
CAtlServiceModuleT viene utilizzato come classe di base e il punto di ingresso eseguibile standard WinMain.
type = non specificato
Disabilita l'inserimento del codice ATL correlata all'attributo del modulo.
Esempio
Nel codice seguente viene illustrato come creare un blocco di libreria nel file generato con estensione .idl.
// cpp_attr_ref_module1.cpp
// compile with: /LD
[module(name="MyLibrary", version="1.2", helpfile="MyHelpFile")];
Il codice seguente viene illustrato che è possibile fornire per essere inclusa l'implementazione di una funzione che avrà nel codice che è stato inserito come conseguenza di utilizzare modulo. vedere /Fx per ulteriori informazioni sulla visualizzazione codice inserito. Per eseguire l'override di una delle funzioni inserite da modulo l'attributo, rende una classe che conterrà l'implementazione della funzione e rende modulo l'attributo è applicato alla classe.
// cpp_attr_ref_module2.cpp
// compile with: /LD /link /OPT:NOREF
#include <atlbase.h>
#include <atlcom.h>
#include <atlwin.h>
#include <atltypes.h>
#include <atlctl.h>
#include <atlhost.h>
#include <atlplus.h>
// no semicolon after attribute block
[module(dll, name="MyLibrary", version="1.2", helpfile="MyHelpFile")]
// module attribute now applies to this class
class CMyClass {
public:
BOOL WINAPI DllMain(DWORD dwReason, LPVOID lpReserved) {
// add your own code here
return __super::DllMain(dwReason, lpReserved);
}
};
Requisiti
contesto di attributo
Si applica a |
Ovunque |
ripetibile |
No |
attributi obbligatori |
Nessuno |
attributi non validi |
Nessuno |
Per ulteriori informazioni, vedere Associare ai contesti.