Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Уроки по Visual C++ (MFC, платформа .NET)


Информационный Канал Subscribe.Ru

Уроки по Visual C++.NET. Рассылки сайта progs.biz
Выпуск № 89
 
Начало > Visual C++ 6 > ATL > Урок 17

Михаил Фленов. Библия Delphi.
Михаил Фленов. Библия Delphi
Заказать на Озоне

Подробнее


Полные версии уроков (с картинками): урок 17.

Visual C++. ATL
Урок 17. Интерфейс IUnknown

Интерфейс IUnknown - это предок для всех COM-интерфейсов. Это означает, что каждый интерфейс, который мы используем при создании ATL-компонентов, обязательно имеет те же методы которые имеет интерфейс IUnknown. Вообще говоря интерфейсы не обязательно имеют в качестве предка IUnknown (у интерфейса вообще может не быть предка), но COM-интерфейсы (и, в частности, ATL-интерфейсы) обязаны иметь этот интерфейс в качестве одного из предков (иначе они просто не будут являться COM-интерфейсами по определению).

Интерфейс IUnknown имеет три метода. Рассмотрим их всех.

AddRef - увеличивает счетик ссылок на наш компонент.

Release - уменьшает счетик ссылок на наш компонент

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

Несколько слов по поводу первых двух методов. Дело в том, что наш компонент могут использовать несколько клиентов. Сначала один, потом еще один и т. п. При этом клиенты могут перестать использовать компонент - опять же сначала один, потом другой т. п. Спрашивается, как же компонент узнает, что его больше никто не использует? В какой момент он должен выгрузится из памяти? Для этого внутри компонента существует счетчик количества клиентов, его использующих. Каждый клиент, который начинает использовать наш компонент, вызывает AddRef и счетчик внутри компонента увеличивается на 1. Когда же клиент перестает использовать наш компонент, он вызывает Release и счетчик внутри компонента уменьшается на 1. И, как только этот счетчик станет равным 0, наш компонент уничтожается и занимаемая им память освобожается.

Рассылки сайта progs.biz
Visual C++, MFC
C# и .NET
VB.NET
ASP.NET new!
Win API
C/C++
Delphi
Java
HTML, PHP, mySQL, WEB-дизайн
Flash MX
C++ Builder
Ассемблер
SQL Server
DirectX
Обзор книг
Обзор программ
Новости сайта progs.biz


PARKING.RU. Качественный ВИРТУАЛЬНЫЙ ХОСТИНГ на платформе Windows(r): поддержка NET, многофункциональная панель управления, аренда бизнес-приложений, сертифицированные специалисты. Управляемый ВЫДЕЛЕННЫЙ ХОСТИНГ на платформе Windows(r): производительные серверы, профессиональная поддержка, аренда ПО Microsoft(r), безопасность, гарантии. http://www.parking.ru


Копирование любых материалов сайта без разрешения авторов и владельцев сайта запрещено.
© 2002-2005 сайт progs.biz
© 2002-2005 Алексеев Игорь

http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.lessonsfromai
Отписаться

В избранное