Пошаговое руководство. Создание объектов COM с помощью Visual Basic

При создании новых приложений или компонентов рекомендуется создавать платформа .NET Framework сборки. Однако Visual Basic также упрощает предоставление платформа .NET Framework компонента COM. Это позволяет предоставлять новые компоненты для более ранних наборов приложений, требующих com-компонентов. В этом пошаговом руководстве показано, как использовать Visual Basic для предоставления платформа .NET Framework объектов как COM-объектов, так и без шаблона класса COM.

Самый простой способ предоставления COM-объектов — использовать шаблон класса COM. Этот шаблон создает новый класс, а затем настраивает проект для создания класса с уровнем взаимодействия в качестве COM-объекта и регистрирует его в операционной системе.

Примечание.

Несмотря на то что можно также предоставить класс, созданный в Visual Basic в качестве COM-объекта для использования неуправляемого кода, он не является истинным COM-объектом и не может использоваться Visual Basic. Дополнительные сведения см. в разделе "Взаимодействие COM" в приложениях платформа .NET Framework.

Примечание.

Отображаемые на компьютере имена или расположения некоторых элементов пользовательского интерфейса Visual Studio могут отличаться от указанных в следующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Персонализация среды IDE.

Создание com-объекта с помощью шаблона класса COM

  1. Откройте новый проект приложения Windows в меню "Файл ", нажав кнопку "Создать проект".

  2. В диалоговом окне "Создать проект" в поле "Типы проектов" проверка выбрана windows. Выберите библиотекуклассов из списка шаблонов и нажмите кнопку "ОК". Отображается новый проект.

  3. Выберите " Добавить новый элемент" в меню "Проект ". Откроется диалоговое окно Добавление нового элемента .

  4. Выберите класс COM из списка шаблонов и нажмите кнопку "Добавить". Visual Basic добавляет новый класс и настраивает новый проект для взаимодействия COM.

  5. Добавьте код, например свойства, методы и события в класс COM.

  6. Выберите "Сборка ClassLibrary1" в меню "Сборка ". Visual Basic создает сборку и регистрирует COM-объект в операционной системе.

Создание COM-объектов без шаблона класса COM

Можно также создать класс COM вручную, а не с помощью шаблона класса COM. Эта процедура полезна при работе с командной строкой или при желании большего контроля над определением COM-объектов.

Настройка проекта для создания COM-объекта

  1. Откройте новый проект приложения Windows в меню "Файл ", нажав кнопку NewProject.

  2. В диалоговом окне "Создать проект" в поле "Типы проектов" проверка выбрана windows. Выберите библиотекуклассов из списка шаблонов и нажмите кнопку "ОК". Отображается новый проект.

  3. В обозревателе решений щелкните правой кнопкой мыши на проект и выберите пункт Свойства. Отображается конструктор проектов.

  4. Откройте вкладку Компиляция.

  5. Выберите поле "Регистрация для COM-взаимодействия" проверка.

Настройка кода в классе для создания COM-объекта

  1. В Обозреватель решений дважды щелкните Class1.vb, чтобы отобразить код.

  2. Переименуйте класс в ComClass1.

  3. Добавьте в нее следующие константы ComClass1. Они будут хранить константы глобально уникального идентификатора (GUID), которые должны иметь объекты COM.

    Public Const ClassId As String = ""
    Public Const InterfaceId As String = ""
    Public Const EventsId As String = ""
    
  4. В меню Сервис выберите пункт Создать GUID. В диалоговом окне Создание GUID нажмите кнопку Формат реестра, а затем Копировать. Щелкните Выход.

  5. Замените пустую строку для ClassId GUID, удаляя начальные и конечные фигурные скобки. Например, если ИДЕНТИФИКАТОР GUID, предоставленный Guidgen, значит "{2C8B0AEE-02C9-486e-B809-C780A11530FE}" код должен отображаться следующим образом.

    Public Const ClassId As String = "2C8B0AEE-02C9-486e-B809-C780A11530FE"
    
  6. Повторите предыдущие шаги для InterfaceId констант и EventsId констант, как показано в следующем примере.

    Public Const InterfaceId As String = "3D8B5BA4-FB8C-5ff8-8468-11BF6BD5CF91"
    Public Const EventsId As String = "2B691787-6ED7-401e-90A4-B3B9C0360E31"
    

    Примечание.

    Убедитесь, что идентификаторы GUID являются новыми и уникальными; в противном случае компонент COM может конфликтуть с другими компонентами COM.

  7. Добавьте атрибут ComClass1вComClass, указав идентификаторы GUID для идентификатора класса, идентификатора интерфейса и идентификатора событий, как показано в следующем примере:

    <ComClass(ComClass1.ClassId, ComClass1.InterfaceId, ComClass1.EventsId)>
    Public Class ComClass1
    
  8. Классы COM должны иметь конструктор без Public Sub New() параметров, или класс не будет регистрироваться правильно. Добавьте конструктор без параметров в класс:

    Public Sub New()
        MyBase.New()
    End Sub
    
  9. Добавьте свойства, методы и события в класс, завершив его оператором End Class . Выберите "Создать решение" в меню "Сборка". Visual Basic создает сборку и регистрирует COM-объект в операционной системе.

    Примечание.

    Создаваемые с помощью Visual Basic объекты COM нельзя использовать другими приложениями Visual Basic, так как они не являются истинными COM-объектами. Попытки добавить ссылки на такие COM-объекты вызовут ошибку. Дополнительные сведения см. в статье о взаимодействии COM в приложениях платформа .NET Framework.

См. также