Руководство разработчика

Метод ДИН_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-объект" ) 
КОНЕЦ_ЕСЛИ

См. также: