Метод ДИН_COM_ОБЪЕКТ. СОЗДАТЬ_ЭКЗЕМПЛЯР
Метод СОЗДАТЬ_ЭКЗЕМПЛЯР позволяет связать переменную типа ДИН_COM_ОБЪЕКТ с заданным COM-интерфейсом, реализованным в заданном COM-классе. Интерфейс определяется библиотекой типов и идентификатором интерфейса (IID), а класс – идентификатором класса (CLSID) или строкой ProgID.
ФУНКЦИЯ ЛОГИКА: СОЗДАТЬ_ЭКЗЕМПЛЯР(СТРОКА: typelib; СТРОКА: iid; СТРОКА: classid)
Параметры
- typelib
- Библиотека типов. Для зарегистрированной библиотеки типов может быть указан GUID-идентификатор. Также может быть указан полный путь к файлу библиотеки типов или пустая строка.
- iid
- GUID-идентификатор интерфейса (IID) или пустая строка.
- classid
- GUID-идентификатор класса (CLSID) или строка ProgId. Строка ProgId обычно выглядит как <имя библ. типов>.<строка класса> (например, "МyTypeLib.MyClass"). Этот параметр обязательный.
Т.к. класс может поддерживать несколько интерфейсов (в т.ч. с одинаковыми методами и свойствами), то для определенности вызова указания одного лишь класса недостаточно. Тем не менее, параметры typelib и iid могут быть заданы пустыми строками, что будет означать использование интерфейса по умолчанию для заданного класса.
Возвращаемое значение
ДА – в случае успешного создания COM-объекта и получении ссылки на заданный интерфейс, НЕТ – в противном случае. Текст сообщения об ошибки можно получить вызовом метода ПОСЛ_ОШИБКА.
Пример:
// 1. создание по файлу библиотеки типов, IID и ProgId ПЕРЕМ ДИН_COM_ОБЪЕКТ: об1 ЕСЛИ НЕ об1.СОЗДАТЬ_ЭКЗЕМПЛЯР ( "С:\Program Files\MyApp\MyLib.dll", // typelib "{42716BA5-8892-11DA-9642-000476D1BF92}", // iid "MyLib.MyClass" ) // ProgId ТО ОШИБКА ( "Не могу создать COM-объект" ) КОНЕЦ_ЕСЛИ // 2. создание по идентификатору библиотеки типов, IID и CLSID. ПЕРЕМ ДИН_COM_ОБЪЕКТ: об2 ЕСЛИ НЕ об2.СОЗДАТЬ_ЭКЗЕМПЛЯР ( "{42716BA4-8892-11DA-9642-000476D1BF92}", // typelib id "{42716BA5-8892-11DA-9642-000476D1BF92}", // iid "{42716BA6-8892-11DA-9642-000476D1BF92}" ) // clsid ТО ОШИБКА ( "Не могу создать COM-объект" ) КОНЕЦ_ЕСЛИ // 3. создание для интерфейса по умолчанию и ProgId. ПЕРЕМ ДИН_COM_ОБЪЕКТ: об3 ЕСЛИ НЕ об3.СОЗДАТЬ_ЭКЗЕМПЛЯР ( "", "", "MyLib.MyClass" ) ТО ОШИБКА ( "Не могу создать COM-объект" ) КОНЕЦ_ЕСЛИ