Partager via


module (C++)

Définit le bloc bibliothèque dans le fichier .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,
) ];

Paramètres

  • type (facultatif)
    Il peut s'agir de l'une des valeurs suivantes :

    • DLL ajoute les fonctions et les classes qui permettent à la DLL résultante dans la fonction en tant que serveur COM in-process.Valeur par défaut.

    • exe ajoute les fonctions et les classes qui permettent le fichier exécutable obtenu à la fonction comme un hors du serveur COM de processus.

    • service ajoute les fonctions et les classes qui permettent le fichier exécutable obtenu à la fonction en tant que service NT.

    • l'injection de désactive denon spécifiéde code ATL en rapport avec l'attribut module : l'injection de la classe de module ATL, du _AtlModule global d'instance et du point d'entrée s'exécute.Ne désactive pas l'injection de code ATL en raison de autres attributs dans le projet.

  • nom (facultatif)
    le nom du bloc bibliothèque.

  • version (facultatif)
    Le numéro de version à assigner au bloc bibliothèque.La valeur par défaut est 1.0.

  • uuid
    l'identificateur unique pour la bibliothèque.Si vous omettez ce paramètre, un ID sera généré automatiquement pour la bibliothèque.Vous pouvez éventuellement extraire l'UUID de votre bloc bibliothèque, que vous pouvez faire à l'aide de lelibraryname**)**de (__uuidofd'identificateur.

  • LCID
    le paramètre de localisation.Consultez LCID pour plus d'informations.

  • contrôle (facultatif)
    Spécifie que toutes les coclasses dans la bibliothèque sont des contrôles.

  • helpstring
    spécifie la bibliothèque de types.

  • helpstringdll (facultatif)
    définit le nom du fichier.DLL pour l'utiliser pour effectuer une recherche de chaîne de document.Consultez helpstringdll pour plus d'informations.

  • helpfile (facultatif)
    Le nom du fichier d'aide de la bibliothèque de types.

  • helpcontext (facultatif)
    L'ID d'aide pour cette bibliothèque de types.

  • helpstringcontext (facultatif)
    Consultez helpstringcontext pour plus d'informations.

  • masqué (facultatif)
    Empêché la bibliothèque entière à afficher.Cette utilisation est destinée à être utilisée avec des contrôles.Les hôtes doivent créer une nouvelle bibliothèque de types qui encapsulent le contrôle avec les propriétés étendues.Consultez l'attribut de masqué MIDL pour plus d'informations.

  • limité (facultatif)
    Les membres de la bibliothèque ne peuvent pas être appelées arbitrairement.Consultez l'attribut de limité MIDL pour plus d'informations.

  • personnalisée (facultatif)
    un ou plusieurs attributs ; cela revient à l'attribut de personnalisée .Le premier paramètre à custom est un GUID de l'attribut.Par exemple :

    [module(custom={guid,1}, custom={guid1,2})]
    
  • resource_name
    L'ID de ressource de type chaîne du fichier .rgs utilisé pour stocker l'ID d'APPLICATIONS de la DLL, le fichier exécutable, ou le service.Lorsque le module est utile type, cet argument est également utilisé pour obtenir l'ID de la chaîne contenant le nom du service.

[!REMARQUE]

Le fichier .rgs et la chaîne contenant le nom du service doit contenir la même valeur numérique.

Notes

À moins que vous ne spécifiiez le paramètre de limité à emitidl, module est requis dans un programme qui utilise des attributs C++.

Un bloc bibliothèque est créé si, en plus de l'attribut de module , le code source utilise également dispinterface, double, objet, ou un attribut qui implique coclasse.

Il permet à un bloc bibliothèque dans un fichier .idl.Plusieurs entrées de module dans le code source seront fusionnées, avec les valeurs de paramètre les plus récentes qui sont implémentées.

si cet attribut est utilisé dans un projet qui utilise ATL, le comportement de l'attribut change.Outre le comportement ci-dessus, l'attribut insère également un objet global ( _AtlModuleappelé) du type correct et du code de stockage supplémentaire.si l'attribut est autonome, il insère une classe dérivée du type correct de module.si l'attribut est appliqué à une classe, il ajoute une classe de base du type correct de module.Le type approprié est déterminé par la valeur du paramètre d' type :

Exemple

Le code suivant montre comment créer un bloc bibliothèque dans le fichier généré .idl.

// cpp_attr_ref_module1.cpp
// compile with: /LD
[module(name="MyLibrary", version="1.2", helpfile="MyHelpFile")];

Le code suivant montre que vous pouvez fournir votre propre implémentation d'une fonction qui apparaîtrait dans le code a été injecté grâce à l'utilisation module.Consultez /Fx pour plus d'informations sur le code injecté.Pour substituer une des fonctions insérées par l'attribut de module , créez une classe qui contient votre implémentation de la fonction et faites l'attribut de module appliquer à cette 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);
   }
};

Configuration requise

contexte d'attribut

S'applique à

n'importe où

reproductible

Non

attributs requis

Aucun

attributs valides

Aucun

Pour plus d'informations, consultez contextes d'attribut.

Voir aussi

Référence

usesgetlasterror

library

helpcontext

helpstring

helpfile

version (C++)

Autres ressources

Attributs IDL

Attributs de classe

Attributs autonomes

Typedef, enum, union, et attributs de struct

Attributes Samples