Compartilhar via


Passo a passo: criando objetos COM com o Visual Basic

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

  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 Biblioteca de Classes na lista Modelos e clique em OK. O novo projeto é exibido.

  3. Selecione Adicionar Novo Item no menu Projeto . É apresentada a caixa de diálogo Adicionar Novo Item .

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

  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 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 em seu projeto e clique em Propriedades. O Designer de Projeto é exibido.

  4. Clique na guia Compilar.

  5. Selecione a caixa de seleção Registro para Interop COM.

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

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

  2. Renomeie a classe como ComClass1.

  3. 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 = ""
    
  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 seu código deverá se apresentar da seguinte maneira.

    Public Const ClassId As String = "2C8B0AEE-02C9-486e-B809-C780A11530FE"
    
  6. Repita as etapas anteriores para as constantes InterfaceId e EventsId, 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.

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

Consulte também