Sdílet prostřednictvím


module (C++)

Definuje blok knihovny v souboru .idl.

Syntaxe

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

Parametry

type
(Volitelné) Může to být jedna z následujících možností:

  • dll Přidá funkce a třídy, které umožňují výsledné knihovně DLL fungovat jako server modelu COM v procesu. Tato hodnota je výchozí.

  • exe Přidá funkce a třídy, které umožňují výslednému spustitelnému souboru fungovat jako procesový server COM.

  • service Přidá funkce a třídy, které umožňují výslednému spustitelnému souboru fungovat jako služba NT.

  • unspecified Zakáže injektáž kódu ATL souvisejícího s atributem modulu: injektáž třídy MODULU ATL, globální instance _AtlModule a funkce vstupního bodu. Nezakazuje injektáž kódu ATL kvůli jiným atributům v projektu.

Jméno
(Volitelné) Název bloku knihovny.

version
(Volitelné) Číslo verze, které chcete přiřadit k bloku knihovny. Výchozí hodnota je 1,0.

uuid
Jedinečné ID knihovny. Pokud tento parametr vynecháte, id se automaticky vygeneruje pro knihovnu. Možná budete muset načíst uuid bloku knihovny, který můžete provést pomocí identifikátoru __uuidof(název_knihovny).

lcid
Parametr lokalizace. Další informace najdete v tématu lcid .

control
(Volitelné) Určuje, že všechny třídy spolutřídy v knihovně jsou ovládací prvky.

helpstring
Určuje knihovnu typů.

helpstringdll
(Volitelné) Nastaví název souboru .dll, který se má použít k provedení vyhledávání řetězce dokumentu. Další informace najdete v tématu helpstringdll .

helpfile
(Volitelné) Název souboru nápovědy pro knihovnu typů.

helpcontext
(Volitelné) ID nápovědy pro tuto knihovnu typů.

helpstringcontext
(Volitelné) Další informace najdete v tématu helpstringcontext .

hidden
(Volitelné) Zabrání zobrazení celé knihovny. Toto použití je určeno pro použití s ovládacími prvky. Hostitelé musí vytvořit novou knihovnu typů, která zabalí ovládací prvek s rozšířenými vlastnostmi. Další informace najdete ve skrytém atributu MIDL.

restricted
(Volitelné) Členy knihovny nelze volat libovolně. Další informace najdete v omezeném atributu MIDL.

custom
(Volitelné) Jeden nebo více atributů; to se podobá vlastnímu atributu. Prvním parametrem vlastního atributu je identifikátor GUID atributu. Příklad:

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

resource_name
ID prostředku řetězce souboru .rgs použitého k registraci ID aplikace knihovny DLL, spustitelného souboru nebo služby. Pokud je modul typu služby, tento argument slouží také k získání ID řetězce obsahujícího název služby.

Poznámka:

Soubor .rgs i řetězec obsahující název služby by měly obsahovat stejnou číselnou hodnotu.

Poznámky

Pokud nezadáte parametr s omezeným přístupem k emitidlu, modul se vyžaduje v libovolném programu, který používá atributy jazyka C++.

Blok knihovny se vytvoří, pokud zdrojový kód kromě atributu modulu používá také dispinterface, duální, objekt nebo atribut, který znamená coclass.

Jeden blok knihovny je povolený v souboru .idl. Sloučí se několik položek modulu ve zdrojovém kódu s nejnovějšími hodnotami parametrů, které se implementují.

Pokud se tento atribut používá v projektu, který používá ATL, chování atributu se změní. Kromě výše uvedeného chování atribut také vloží globální objekt (označovaný _AtlModule) správného typu a další kód podpory. Pokud je atribut samostatný, vloží třídu odvozenou ze správného typu modulu. Pokud se atribut použije na třídu, přidá základní třídu správného typu modulu. Správný typ je určen hodnotou parametru typu :

Příklad

Následující kód ukazuje, jak vytvořit blok knihovny ve vygenerovaném souboru .idl.

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

Následující kód ukazuje, že můžete poskytnout vlastní implementaci funkce, která by se zobrazila v kódu, který byl vložen jako výsledek použití modulu. Další informace o zobrazení vloženého kódu najdete v /Fx . Aby bylo možné přepsat jednu z funkcí vložených atributem modulu , vytvořte třídu, která bude obsahovat vaši implementaci funkce a nastaví atribut modulu na danou třídu.

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

Požadavky

Kontext atributu Hodnota
Platí pro Kdekoli
Opakovatelnou No
Požadované atributy Nic
Neplatné atributy Nic

Další informace naleznete v tématu Kontexty atributů.

Viz také

IDL – atributy
Atributy třídy
Samostatné atributy
Atributy klíčových slov typedef, enum, union a struct
usesgetlasterror
Knihovny
helpcontext
helpstring
helpfile
version