Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Ao criar novos aplicativos ou componentes, é melhor criar assemblies do .NET Framework. No entanto, o Visual Basic também facilita a exposição de um componente do .NET Framework ao COM. Isso permite que você forneça novos componentes para conjuntos de aplicativos anteriores que exigem componentes COM. Este passo a passo demonstra como usar o Visual Basic para expor objetos do .NET Framework como objetos COM, com e sem o modelo de classe COM.
A maneira mais fácil de expor objetos COM é usando o modelo de classe COM. Esse modelo cria uma nova classe e configura seu projeto para gerar a classe com uma camada de interoperabilidade como um objeto COM e registrá-la no sistema operacional.
Observação
Embora você também possa expor uma classe criada no Visual Basic como um objeto COM para uso de código não gerenciado, ele não é um objeto COM verdadeiro e não pode ser usado pelo Visual Basic. Para obter mais informações, consulte Interoperabilidade COM em aplicativos .NET Framework.
Observação
Seu computador pode mostrar nomes ou locais diferentes para alguns dos elementos de interface do usuário do Visual Studio nas instruções a seguir. A edição do Visual Studio que você tem e as configurações que você usa determinam esses elementos. Para obter mais informações, consulte Personalizando o IDE.
Para criar um objeto COM usando o modelo de classe COM
Abra um novo projeto de Aplicativo do Windows no menu Arquivo clicando em Novo Projeto.
Na caixa de diálogo Novo Projeto , no campo Tipos de Projeto , verifique se o Windows está selecionado. Selecione Biblioteca de Classes na lista Modelos e clique em OK. O novo projeto é exibido.
Selecione Adicionar Novo Item no menu Projeto . É apresentada a caixa de diálogo Adicionar Novo Item .
Selecione Classe COM na lista Modelos e clique em Adicionar. O Visual Basic adiciona uma nova classe e configura o novo projeto para interoperabilidade COM.
Adicione código, como propriedades, métodos e eventos à classe COM.
Selecione Compilação ClassLibrary1 no menu Compilação. O Visual Basic cria o assembly e registra o objeto COM com o sistema operacional.
Criando objetos COM sem o modelo de classe COM
Você também pode criar uma classe COM manualmente em vez de usar o modelo de classe COM. Esse procedimento é útil quando você está trabalhando na linha de comando ou quando deseja ter mais controle sobre como os objetos COM são definidos.
Para configurar seu projeto para gerar um objeto COM
Abra um novo projeto de Aplicativo do Windows no menu Arquivo clicando em NewProject.
Na caixa de diálogo Novo Projeto , no campo Tipos de Projeto , verifique se o Windows está selecionado. Selecione Biblioteca de Classes na lista Modelos e clique em OK. O novo projeto é exibido.
No Gerenciador de Soluções, clique com o botão direito do mouse em seu projeto e clique em Propriedades. O Designer de Projeto é exibido.
Clique na guia Compilar.
Selecione a caixa de seleção Registro para Interop COM.
Para configurar o código em sua classe para criar um objeto COM
No Gerenciador de Soluções, clique duas vezes Class1.vb para exibir seu código.
Renomeie a classe como
ComClass1.Adicione as seguintes constantes a
ComClass1. Eles armazenarão as constantes GUID (Globally Unique Identifier) que os objetos COM precisam ter.Public Const ClassId As String = "" Public Const InterfaceId As String = "" Public Const EventsId As String = ""No menu Ferramentas , clique em Criar Guid. Na caixa de diálogo Criar GUID , clique em Formato do Registro e clique em Copiar. Clique em Sair.
Substitua a cadeia de caracteres vazia pelo
ClassIdGUID, removendo as chaves à esquerda e à direita. Por exemplo, se o GUID fornecido por Guidgen for"{2C8B0AEE-02C9-486e-B809-C780A11530FE}", o seu código deverá se apresentar da seguinte maneira.Public Const ClassId As String = "2C8B0AEE-02C9-486e-B809-C780A11530FE"Repita as etapas anteriores para as constantes
InterfaceIdeEventsId, como no exemplo a seguir.Public Const InterfaceId As String = "3D8B5BA4-FB8C-5ff8-8468-11BF6BD5CF91" Public Const EventsId As String = "2B691787-6ED7-401e-90A4-B3B9C0360E31"Observação
Verifique se os GUIDs são novos e exclusivos; caso contrário, seu componente COM poderá entrar em conflito com outros componentes COM.
Adicione o
ComClassatributo aComClass1, especificando os GUIDs para a ID de classe, a ID da interface e a ID de eventos, como no exemplo a seguir:<ComClass(ComClass1.ClassId, ComClass1.InterfaceId, ComClass1.EventsId)> Public Class ComClass1As classes COM devem ter um construtor sem
Public Sub New()parâmetros ou a classe não será registrada corretamente. Adicione um construtor sem parâmetros à classe:Public Sub New() MyBase.New() End SubAdicione propriedades, métodos e eventos à classe, terminando-a com uma instrução
End Class. Selecione Criar Solução no menu Compilar . O Visual Basic cria o assembly e registra o objeto COM com o sistema operacional.Observação
Os objetos COM gerados com o Visual Basic não podem ser usados por outros aplicativos do Visual Basic porque eles não são objetos COM verdadeiros. As tentativas de adicionar referências a esses objetos COM gerarão um erro. Para obter detalhes, consulte Interoperabilidade COM em aplicativos do .NET Framework.