módulo (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.
Observação |
---|
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:
type= dll
CAtlDllModuleT é usado como a classe base e a entrada DLL padrão necessários para um servidor COM de pontos.Esses pontos de entrada são DllMain, DllRegisterServer, DllUnRegisterServer, DllCanUnloadNow, e DllGetClassObject.
type= exe
CAtlExeModuleT é usado como a classe base e o ponto de entrada de executáveis padrão WinMain.
type= service
CAtlServiceModuleT é usado como a classe base e o ponto de entrada de executáveis padrão WinMain.
type= não especificado
Desativa a injeção de código ATL relacionado ao atributo da módulo.
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.