Поделиться через


Предоставление клиентам .NET Compact Framework доступа к компонентам COM

Обновлен: Ноябрь 2007

Начиная с версии 2.0, в платформе .NET Compact Framework можно вызывать объекты COM из управляемого кода. Также можно импортировать библиотеку типов с помощью утилиты Программа импорта библиотек типов (Tlbimp.exe), предоставленной в полной версии .NET Framework, или же можно в Visual Studio добавить в проект ссылку на библиотеку типов. Импортированная библиотека типов также называется сборкой взаимодействия, так как она содержит определения типов COM, описанные в метаданных.

Если память в машинном коде, сначала выделенная в управляемом коде, остается в библиотеке машинного кода после возврата вызова функции машинного кода, то объект библиотеки необходимо закрепить в управляемом коде, чтобы сборщик мусора не передвинул или не собрал его. Для закрепления объекта можно использовать структуру GCHandle.

Управляемый код должен выравнивать типы данных в соответствии с байтовыми границами, называемыми процессом упаковки, указанными для собственной операционной системы.

Существует три задачи для вызова объектов COM из .NET Compact Framework COM.

  1. Создание управляемых определений интерфейсов и типов COM.

  2. Создание ссылок на эти определения из проекта.

  3. Использование определений интерфейсов и типов COM в качестве управляемых типов.

Также можно задать управляемые определения вручную.

Создание ссылок на сборки взаимодействия

Сборки взаимодействия — это импортированные библиотеки типов, содержащие определения типов COM, описанные в метаданных, которые создаются программой импорта библиотеки типов или Visual Studio.

Для создания сборки взаимодействия при построении проекта следует использовать ключ /r: в компиляторах командой строки. При добавлении ссылки на библиотеку типов в Visual Studio это происходит автоматически.

Использование типов COM как управляемых типов

Члены интерфейса по умолчанию добавляются в класс во время импортирования. Вызовы IDispatch и IUnknown, QueryInterface, а также подсчет ссылок COM обрабатываются автоматически. Значения ошибок HRESULT автоматически передаются исключениям.

После импортирования типа COM можно использовать его в задачах программирования, как любой другой управляемый тип, например, следующим образом.

  • Создавать экземпляры с помощью ключевого слова new (New в Visual Basic).

  • Перехватывать исключения.

  • Непосредственно вызывать метод через класс.

  • Следует избегать выбора между вызовами наподобие IDispatch и IUnknown.

  • Приводите к требуемым интерфейсам при необходимости.

См. также

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

Взаимодействие в платформе .NET Compact Framework