C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 18 - Интерфейс IUnknown / ActiveX по шагам / Приложение

Шаг 18 - Интерфейс IUnknown

Основой любого объекта является интерфейс IUnknown. Этот интерфейс используется для:

  • Отслеживания количества обращений к объекту
  • Обеспечивает доступ ко всем другим интерфейсам

Реализация интерфейса IUnknown превращает объект в объект COM. Реализуется этот интерфейс по определенным правилам. Для его реализации необходимо, чтобы класс унаследовал этот абстрактный интерфейс и реализовал его методы. Наследование производится так.

#include "stdafx.h"
#include "ole2.h"

class COleTestAbstract
{
public:
	virtual void Msg()=0;
};

class COAbsatract : public COleTestAbstract, public IUnknown
{
public:
	 void Msg();
};

У данного интрефейса есть три метода.

  • AddRef - добавляется ссылка
  • Release - удаляется ссылка
  • QueryInterface - получает доступ к интерфейсу.

Каждый объект читает количество ссылок на себя. Для этого в классе необходимо завести переменную, в которой будет храниться количество обращений. Обычно это переменная типа ULONG хотя можно использовать и int. При объявлении методов используются определения STDMETHOD или STDMETHOD_, чем они отличаются ??? Первое объявление всегда возвращает HRESULT, а второе в зависимости от первого указанного типа.

STDMETHOD   (QueryInterface) // вернет HRESULT
STDMETHOD_  (ULONG, AddRef)  // вернет ULONG

IUnknown является главным интерфейсом. Через него производится доступ к другим интерфейсам. Ну типо того, что Вы спрашиваете у объекта умеет ли он делать это, а в ответ объект возврашает вам либо ошибку либо указатель на метод.


| |
Автор Каев Артем.
[AD]