Функция GetVipInterface |
Функция GetVipInterface загружает VIP-интерфейс, если он не загружен, или возвращает ссылку на уже загруженную копию.
Функция GetVipInterface ведет список загруженных VIP-интерфейсов и счетчик ссылок на каждый загруженный интерфейс. Требуемый интерфейс (ссылка на который передана функции в качестве параметра) ищется среди загруженных интерфейсов (загрузка по GetVipInterface или GetVipRef). Если интерфейс найден, то ему передается событие cmOnVipUse, увеличивается счетчик ссылок, и возвращается ссылка на загруженную копию. Если интерфейс в списке не найден - он загружается, вставляется в список, ему передаются события cmOnVipLoad и cmOnVipUse, и возвращается ссылка на загруженную копию.
Если требуемый интерфейс не может быть загружен, то возбуждается исключение ExObjIfcNoLoad.
Аргументом обязательно должна быть переменная типа ссылки на vipInterface. Если это условие нарушено, то будет возбуждено исключение ExObjIfcBadVar.
function GetVipInterface (var ref : VarOfInterFaceType ) : boolean;
ref - переменная типа ссылки на VIP-интерфейс.
Функция возвращает true, если VIP-интерфейс успешно найден или загружен, иначе false.
Если переменная была инициализирована до вызова функции, то происходит освобождение занятой ссылки.
В результате выполнения функции ссылка получает значение ссылки на VIP-интерфейс.
Если в загружаемом интерфейсе в обработчике cmOnVipLoad выполнился Abort, функция возвращает false. При этом не возникает никаких исключений, а переменной присваивается NullRef.
Исключения:
ExObjIfcBadVar - переменная не является ссылкой на VIP-интерфейс.
ExObjIfcNoLoad - невозможно загрузить интерфейс.
Начиная с Атлантис 5.0.02.