Partilhar 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 para COM. Isso permite que você forneça novos componentes para pacotes 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. Este modelo cria uma nova classe, em seguida, configura seu projeto para gerar a classe com uma camada de interoperabilidade como um objeto COM e registrá-lo com o sistema operacional.

Nota

Embora você também possa expor uma classe criada no Visual Basic como um objeto COM para código não gerenciado usar, 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.

Nota

Seu computador pode mostrar nomes ou locais diferentes para alguns dos elementos da 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 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. A caixa de diálogo Adicionar Novo Item é exibida.

  4. Selecione Classe COM na lista Modelos e clique em Adicionar. 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 Build ClassLibrary1 no menu Build . 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. Este procedimento é útil quando você está trabalhando a partir da linha de comando ou quando você deseja 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 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 no projeto e clique em Propriedades. O Project Designer é 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. No 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 Globalmente Exclusivo) que os objetos COM devem 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, em seguida, clique em Copiar . Clique em Sair.

  5. Substitua a cadeia de caracteres vazia para o ClassId GUID, removendo as chaves à esquerda e à direita. Por exemplo, se o GUID fornecido pelo Guidgen é "{2C8B0AEE-02C9-486e-B809-C780A11530FE}" , então seu código deve aparecer da seguinte maneira.

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

    Nota

    Certifique-se de que os GUIDs são novos e exclusivos; caso contrário, o componente COM poderá entrar em conflito com outros componentes COM.

  7. Adicione o ComClass atributo a ComClass1, especificando os GUIDs para o ID de classe, ID de interface e 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 End Class instrução. Selecione Build Solution no menu Build . Visual Basic cria o assembly e registra o objeto COM com o sistema operacional.

    Nota

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

Consulte também