Compartilhar via


module (C++)

Define o bloco de biblioteca no arquivo. 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, 
) ];

Parâmetros

  • tipo de (opcional)
    Pode ser um dos seguintes:

    • DLL adiciona funções e classes que permitem a DLL resultante funcionar como um servidor de COM em processo. Este é o valor padrão.

    • exe adiciona funções e classes que permitem o resultante executável para funcionar como um servidor COM processo ' Desatualizado '.

    • serviço adiciona funções e classes que permitem o resultante executável para funcionar como um serviço NT.

    • não especificado desabilita a injeção de código ATL relacionado ao atributo de módulo: funções de apontar a injeção de classe de módulo de ATL, _AtlModule de instância global e entrada. Não desative a injeção de código ATL devido a outros atributos no projeto.

  • nome (opcional)
    O nome do bloco de biblioteca.

  • versão (opcional)
    O número de versão que você deseja atribuir ao bloco de biblioteca. O valor padrão é 1.0.

  • uuid
    A identificação exclusiva para a biblioteca. Se você omitir esse parâmetro, uma ID será gerada automaticamente para a biblioteca. Talvez você precise recuperar o uuid de seu bloco de biblioteca, o que pode ser feito usando o identificador __uuidof (o nome da biblioteca).

  • LCID
    O parâmetro de localização. Consulte lcid para obter mais informações.

  • controle (opcional)
    Especifica que todos os coclasses de na biblioteca de controles.

  • HelpString
    Especifica a biblioteca de tipos.

  • helpstringdll (opcional)
    Define o nome do arquivo. dll para usar realizar uma pesquisa de seqüência de caracteres do documento. Consulte helpstringdll para obter mais informações.

  • arquivo de ajuda (opcional)
    O nome do arquivo de ajuda para a biblioteca de tipos.

  • HelpContext (opcional)
    A identificação ajuda para esta biblioteca de tipos.

  • helpstringcontext (opcional)
    Consulte helpstringcontext para obter mais informações.

  • oculto (opcional)
    Impede que a biblioteca inteira seja exibida. Esse uso é destinado a uso dos controles. Hosts precisam criar uma nova biblioteca de tipos que envolve o controle com propriedades estendidas. Consulte o oculto atributo MIDL para obter mais informações.

  • restrito (opcional)
    Os membros da biblioteca não podem ser chamados arbitrariamente. Consulte o restritos atributo MIDL para obter mais informações.

  • personalizado (opcional)
    Um ou mais atributos; Isso é semelhante do personalizado atributo. O primeiro parâmetro para custom é o GUID do atributo. Por exemplo:

    [module(custom={guid,1}, custom={guid1,2})]
    
  • resource_name
    A identificação do recurso de seqüência de caracteres do arquivo. rgs usado para registrar a ID de aplicativo da DLL, executável ou de serviço. Quando o módulo é do tipo serviço, esse argumento também é usado para obter a identificação da seqüência de caracteres que contém o nome do serviço.

Dica

O arquivo. rgs e a seqüência de caracteres que contém o nome do serviço devem conter o mesmo valor numérico.

Comentários

A menos que você especifique o restritos parâmetro para emitidl, módulo de é necessária em qualquer programa que usa atributos de C++.

Um bloco de biblioteca será criado se, além de módulo atributo, código-fonte também usa dispinterface, dual, objeto, ou um atributo que implica coclass.

Um bloco de biblioteca é permitido em um arquivo. idl. Várias entradas de módulo no código-fonte serão mescladas com os valores de parâmetro mais recentes que estão sendo implementados.

Se esse atributo é usado dentro de um projeto que usa a ATL, o comportamento das alterações de atributo. Além do comportamento acima, o atributo também insere um objeto global (chamado _AtlModule) do tipo correto e o código de suporte adicional. Se o atributo for autônomo, ele insere uma classe derivada do tipo de módulo correto. Se o atributo for aplicado a uma classe, ele adiciona uma classe base do tipo de módulo correto. O tipo correto é determinado pelo valor da type parâmetro:

Exemplo

O código a seguir mostra como criar um bloco de biblioteca no arquivo. idl gerado.

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

O código a seguir mostra o que você pode fornecer sua própria implementação de uma função que apareceria no código que foi injetado como resultado do uso do módulo de. Consulte /Fx para obter mais informações sobre como exibir o código injetado. Para substituir uma das funções inseridas pelo módulo de atributo, fazem uma classe que conterá a implementação da função e verifique o módulo atributo aplicado a essa 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);
   }
};

Requisitos

Contexto de atributo

Se aplica a

Em qualquer lugar

Reproduzíveis

Não

Atributos obrigatórios

Nenhum

Atributos inválidos

Nenhum

Para obter mais informações, consulte Atributo contextos.

Consulte também

Referência

usesgetlasterror

library

helpcontext

helpstring

helpfile

version (C++)

Outros recursos

Atributos IDL

Atributos de classe

Atributos autônomos

Atributos Typedef, Enum, Union e Struct

Attributes Samples