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

  1. Abra um novo projeto de aplicativo do Windows no menu Arquivo clicando em Novo Projeto.

  2. 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.

  3. Selecione Adicionar Novo Item no menu Projeto. A caixa de diálogo Adicionar novo item é exibida.

  4. 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.

  5. Adicione código como propriedades, métodos e eventos à classe COM.

  6. 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

  1. Abra um novo projeto de aplicativo do Windows no menu Arquivo clicando em NewProject.

  2. 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.

  3. 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.

  4. Clique na guia Compilar.

  5. Marque a caixa de seleção Registrar para interoperabilidade COM.

Para configurar o código em sua classe para criar um objeto COM

  1. Em Gerenciador de Soluções, clique duas vezes em Class1.vb para exibir seu código.

  2. Renomeie a classe para ComClass1.

  3. 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 = ""
    
  4. 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.

  5. 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"
    
  6. Repita as etapas anteriores para as constantes e InterfaceId as EventsId 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.

  7. Adicione o ComClass atributo a ComClass1, 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
    
  8. 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
    
  9. 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.

Confira também