Оператор ComImport предназначен для импорта описаний классов и интерфейсов из библиотек (dll) и библиотек типов (tlb). После ключевого слова From указывается строка с GUID или путь и наименование файла, из которой производится импорт описаний. Можно импортировать интерфейсы с ключевым словом Interface или коклассы с ключевым словом Class. Для каждого интерфейса импортируются все методы и свойства, для которых не указаны атрибуты Restricted или Hidden.
Для импортированных коклассов можно создавать объекты с помощью оператора New. При этом будет создан экземпляр COM-объекта. Обращение к методам объекта, а также к методам интерфейсов, которые реализуются COM-объектами, приводит к вызову соответствующих методов этих COM-объектов.
Для выполнения примера предполагается наличие файла библиотеки типов "MyDll.tlb", расположенного в корневом каталоге диска С. В библиотеке реализован COM-объект с наименованием "Test", зарегистрированный в реестре Windows. В интерфейсе COM-объекта "ITest" имеется реализация функции "TestFunction", принимающей на вход два целочисленных параметра и возвращающей вещественное значение.
Comimport From "C:\MyDll.tlb"
Interface ITest;
Class Test: Object, ITest
End Class Test;
End Comimport;
Sub Main;
Var
a: Test;
i: Double;
Begin
a := New Test.Create;
Try
i := a.TestFunction(4, 4);
Debug.WriteLine(i.ToString);
Except
Debug.WriteLine("Ошибка при выполнении функции TestFunction");
End Try;
End Sub Main;
После выполнения примера будет выполнена функция "TestFunction". Если функция вернула корректное значение, то данное значение будет выведено в консоль среды разработки, иначе будет выведено сообщение об ошибке.
Если известен GUID библиотеки, то оператор Comimport можно записать следующим образом:
Comimport From "{BC528177-3B14-4D47-9C2D-E69B6045CC62}"
Interface ITest;
Class Test: Object, ITest
End Class Test;
End Comimport;
См. также: