module (C++)

Definiert den Bibliotheksblock in der IDL-Datei.

Syntax

[ 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,) ];

Parameter

type
(Optional) Dies kann eine der folgenden Sein:

  • dll Fügt Funktionen und Klassen hinzu, mit denen die resultierende DLL als prozessinterner COM-Server funktioniert. Dies ist der Standardwert.

  • exe Fügt Funktionen und Klassen hinzu, mit denen die resultierende ausführbare Datei als Prozess-COM-Server funktionieren kann.

  • service Fügt Funktionen und Klassen hinzu, mit denen die resultierende ausführbare Datei als NT-Dienst funktionieren kann.

  • unspecified Deaktiviert die Einfügung von ATL-Code im Zusammenhang mit dem Modulattribute: die Einfügung der ATL Module-Klasse, der globalen Instanz _AtlModule und Einstiegspunktfunktionen. Einfügen von ATL-Code aufgrund von anderen Attributen im Projekt wird nicht deaktiviert.

name
(Optional) Der Name des Bibliotheksblocks.

Version
(Optional) Die Versionsnummer, die Sie dem Bibliotheksblock zuweisen möchten. Der Standardwert ist 1,0.

uuid
Eindeutige ID für die Bibliothek. Wenn Sie diesen Parameter weglassen, wird automatisch eine ID für die Bibliothek generiert. Wenn Sie die uuid des Bibliotheksblocks abrufen müssen, können Sie dies mithilfe des Bezeichners __uuidof (libraryname).

lcid
Der Lokalisierungsparameter. Weitere Informationen finden Sie unter lcid .

control
(Optional) Gibt an, dass alle Coclasses in der Bibliothek Steuerelemente sind.

helpstring
Gibt die Typbibliothek an.

helpstringdll
(Optional) Legt den Namen der DLL-Datei fest, die zum Nachschlagen einer Dokumentzeichenfolge verwendet werden soll. Weitere Informationen finden Sie unter helpstringdll .

helpfile
(Optional) Der Name der Hilfedatei für die Typbibliothek.

helpcontext
(Optional) Die Hilfe-ID für diese Typbibliothek.

helpstringcontext
(Optional) Weitere Informationen finden Sie unter helpstringcontext .

hidden
(Optional) Verhindert, dass die gesamte Bibliothek angezeigt wird. Dies ist für die Verwendung mit Steuerelementen vorgesehen. Hosts müssen eine neue Typbibliothek erstellen, die das Steuerelement mit erweiterten Eigenschaften umschließt. Weitere Informationen finden Sie unter hidden MIDL-Attribut.

restricted
(Optional) Mitglieder der Bibliothek können nicht willkürlich aufgerufen werden. Weitere Informationen finden Sie unter restricted MIDL-Attribut.

custom
(Optional) Mindestens ein Attribut; dies ähnelt dem benutzerdefinierten Attribut. Der erste zu benutzerdefinierte Parameter ist die GUID des Attributs. Beispiel:

[module(custom={guid,1}, custom={guid1,2})]

resource_name
Die Zeichenfolgenressource-ID der RGS-Datei, die verwendet wird, um die APP-ID der DLL, ausführbaren Datei oder des Diensts zu registrieren. Wenn das Modul vom Typ Dienst ist, wird dieses Argument auch verwendet, um die ID der Zeichenfolge mit dem Dienstnamen zu erhalten.

Hinweis

Die RGS-Datei und die Zeichenfolge, die den Namen des Diensts enthält, sollten den gleichen numerischen Wert enthalten.

Hinweise

Wenn Sie nicht den Parameter restricted auf emitidlsetzen, ist module in jedem Programm erforderlich, das C++-Attribute verwendet.

Ein Bibliotheksblock wird erstellt, wenn Sie zusätzlich zum module -Attribut im Quellcode auch dispinterface, dual, objectoder ein Attribut, das coclassimpliziert, verwenden.

Pro IDL-Datei ist ein Bibliotheksblock zulässig. Mehrere Modul-Einträge im Quellcode werden zusammengeführt und die neuesten Parameterwerte werden implementiert.

Wenn dieses Attribut in einem Projekt verwendet wird, das ATL verwendet, ändert sich das Verhalten des Attributs. Zusätzlich zum obigen Verhalten fügt das Attribut auch ein globales Objekt (aufgerufen _AtlModule) des richtigen Typs und zusätzlichen Unterstützungscode ein. Wenn das Attribut eigenständig ist, wird eine von dem richtigen Modultyp abgeleitete Klasse eingefügt. Wenn das Attribut auf eine Klasse angewendet wird, wird eine Basisklasse des richtigen Modultyps hinzugefügt. Der richtige Typ wird durch den Wert des Typparameters bestimmt:

Beispiel

Der folgende Code zeigt, wie ein Bibliotheksblock in der generierten IDL-Datei erstellt wird.

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

Der folgende Code zeigt, dass Sie Ihre eigene Implementierung einer Funktion angeben können, die in dem Code angezeigt wird, der durch die Verwendung von moduleeingefügt wurde. Weitere Informationen zum Anzeigen von eingefügtem Code finden Sie unter /Fx . Um eine der Funktionen zu überschreiben, die vom Attribut module eingefügt wurden, erstellen Sie eine Klasse, die die Implementierung der Funktion enthält, und wenden Sie das Attribut module auf diese Klasse an.

// 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);
   }
};

Anforderungen

Attributkontext Wert
Gilt für Anywhere
Wiederholbar Nein
Erforderliche Attribute Keine
Ungültige Attribute Keine

Weitere Informationen finden Sie unter Attributkontexte.

Siehe auch

IDL-Attribute
Klassenattribute
Eigenständige Attribute
typedef-, enum-, union- und struct-Attribute
usesgetlasterror
Bibliothek
helpcontext
helpstring
helpfile
Version