Instruções passo a passo: criando objetos COM com o Visual Basic
Ao criar novos aplicativos ou componentes, é melhor criar .NET Framework assemblies. No entanto, o Visual Basic também facilita a exposição de um componente .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 .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 diferentes nomes ou locais 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ê possui 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 a Biblioteca de Classes na lista Modelos e clique em OK. O novo projeto é exibido.
Selecione Adicionar Novo Item no menu Projeto. A caixa de diálogo Adicionar novo item é exibida.
Selecione a 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 a 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 no nó do seu projeto e clique em Propriedades. O Designer de Projeto é exibido.
Clique na guia Compilar.
Marque a caixa de seleção Registrar para interoperabilidade COM.
Para configurar o código em sua classe para criar um objeto COM
Em Gerenciador de Soluções, clique duas vezes em Class1.vb para exibir seu código.
Renomeie a classe para
ComClass1
.Adicione as seguintes constantes a
ComClass1
. Eles armazenarão as constantes GUID (Identificador Global Exclusivo) 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
ClassId
GUID, removendo as chaves à esquerda e à direita. Por exemplo, se o GUID fornecido por Guidgen for"{2C8B0AEE-02C9-486e-B809-C780A11530FE}"
, o código deverá aparecer da seguinte maneira.Public Const ClassId As String = "2C8B0AEE-02C9-486e-B809-C780A11530FE"
Repita as etapas anteriores para as constantes e
InterfaceId
asEventsId
constantes, 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 pode entrar em conflito com outros componentes COM.
Adicione o
ComClass
atributo 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 ComClass1
As 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 Sub
Adicione propriedades, métodos e eventos à classe, terminando-a com uma instrução
End Class
. Selecione Solução de compilação no menu Compilação. 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 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 .NET Framework.