Оператор Comimport

Оператор 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(
44);
        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;

См. также:

Руководство по языку Fore