.
Monday 21st of May 2012    

Информация

Счетчики

Голосование

Лучшая марка телефона
 

Реклама

фильмы онлайн

фильмы онлайн


Интерфейс ICIassFactory
загрузка...

Физически фабрика класса - это разновидность COM-объекта, поддерживающего интерфейс IClassFactory. Описание этого ключевого интерфейса мы найдем в недрах модуля ActiveX; в нем определены два метода. Метод Cre-ateInstance() используется для создания экземпляра COM-объекта:

function CreateInstance(const Outer: IUnknown; const id: TIID; out obj): HResult; stdcall;

Здесь константа Outer ссылается на интерфейс IUnknown. После успешного вызова метода в выходной параметр obj будет помещен указатель на интерфейс, определенный идентификатором id.

Второй метод LockServer() блокирует COM-объект, не позволяя системе выгрузить его из памяти, даже когда он не используется ни одним из клиентских приложений.

function LockServer(Lock: Boolean): HResult; stdcall;

Для включения блокировки в параметр Lock должно быть передано значение true. Таким образом мы принудительно увеличиваем на единицу счетчик блокировок и соответственно не допускаем разрушения объекта. Такое поведение полезно в ситуации, когда мы знаем, что хотя в данный момент объект и не нужен, но вскоре вновь появится необходимость в его услугах. Сохранив экземпляр объекта в памяти, мы избавим систему от необходимости разрушения и повторного создания объекта и тем самым сократим временные затраты на рестарт. Для уменьшения счетчика на единицу в параметр Lock

передается false. Если при этом счетчик использования объекта примет нулевое значение, объект самостоятельно прекратит свое существование.

Логическим развитием интерфейса IClassFactory считается его прямой наследник IClassFactory2. Этот интерфейс позволяет управлять созданием экземпляров COM-объектов, для работы которых необходим лицензионный ключ.


загрузка...
 

Самое популярное:

bottom

карта сайта