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

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

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

Примечание

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

Примечание

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

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

  1. Откройте новый проект приложения Windows в меню File, щелкнув New Project.

  2. В диалоговом окне New Project под полем Project Types проверьте, что установлен флажок Windows. Выберите Class Library из Templates и затем нажмите OK. Появится новый проект.

  3. Выберите Add New Item в меню Project. Откроется диалоговое окно Добавление нового элемента.

  4. Выберите Класс COM из списка Шаблоны, а затем нажмите Добавить. Visual Basic добавит новый класс и настроит новый проект на COM-взаимодействие.

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

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

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

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

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

  1. Откройте новый проект приложения Windows в меню File, щелкнув New Project.

  2. В диалоговом окне New Project под полем Project Types проверьте, что установлен флажок Windows. Выберите Class Library из Templates и затем нажмите OK. Появится новый проект.

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

  4. Перейдите на вкладку Compile.

  5. Выберите флажок Register for COM Interop.

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

  1. В Solution Explorer дважды щелкните 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. Добавьте атрибут ComClass к ComClass1, задав GUID для Class ID, Interface ID и Events ID, как показано в следующем примере:

    <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 в операционной системе.

    Примечание

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

См. также

Задачи

Пошаговое руководство. Реализация наследования с использованием COM-объектов (Visual Basic)

Устранение неполадок взаимодействия (Visual Basic)

Ссылки

ComClassAttribute

Директива #Region

Другие ресурсы

COM-взаимодействие (Visual Basic)

COM-взаимодействие в приложениях .NET Framework (Visual Basic)