stringtranslate.com

ЯНеизвестно

В программировании интерфейс IUnknown является фундаментальным интерфейсом в Component Object Model (COM). Спецификация COM [1] предписывает, что объекты COM должны реализовывать этот интерфейс. Более того, любой другой интерфейс COM должен быть производным от IUnknown. IUnknown предоставляет две основные функции всех объектов COM: управление жизненным циклом объекта посредством подсчета ссылок и доступ к функциональности объекта через другие интерфейсы .

Интерфейс IUnknown (или IUnknown-derived) состоит из указателя на таблицу виртуальных методов , которая содержит список указателей на функции, реализующие функции, объявленные в интерфейсе, в том порядке, в котором они объявлены в интерфейсе. Накладные расходы на внутрипроцессный вызов, таким образом, идентичны вызовам виртуальных методов в C++. [2]

Методы

Интерфейс IUnknown предоставляет три метода : QueryInterface, AddRef, и Release: [3]

интерфейс IUnknown { virtual HRESULT QueryInterface ( REFIID riid , void ** ppvObject ) = 0 ; virtual ULONG AddRef () = 0 ; virtual ULONG Release () = 0 ; };                       

Идентификатор интерфейса IUnknown определяется как GUID со значением {00000000-0000-0000-C000-0000000000046}.

Интерфейсы компонента COM должны обладать рефлексивными, симметричными и транзитивными свойствами. Рефлексивное свойство относится к способности вызова QueryInterfaceзаданного интерфейса с идентификатором интерфейса возвращать тот же экземпляр интерфейса. Симметричное свойство требует, чтобы при извлечении интерфейса B из интерфейса A через интерфейс A QueryInterfaceтакже был доступен для извлечения из интерфейса B. Транзитивное свойство требует, чтобы если интерфейс B доступен из интерфейса A, а интерфейс C доступен из интерфейса B, то интерфейс C должен быть доступен для извлечения из интерфейса A.

Разнообразный

Смотрите также

Ссылки

  1. ^ Спецификация модели компонентных объектов, архивировано из оригинала 2004-02-15
  2. ^ "The Component Object Model". microsoft.com . Microsoft. 30 мая 2018 г. Получено 12 февраля 2019 г.
  3. ^ Определение IUnknown на microsoft.com Архивировано 11 июля 2013 г. на Wayback Machine ; дата обращения 18 января 2008 г.
  4. ^ Элементы управления ActiveX на microsoft.com; дата обращения 18 января 2008 г.
  5. ^ Плагины на apple.com; дата обращения 18 сентября 2011 г.

Внешние ссылки