и уменьшают счетчик ссылок на
Функции AddRef() и Release() увеличивают и уменьшают счетчик ссылок на объект. Функция QueryInterface() применяется для поиска дополнительных интерфейсов объекта (или определения того, что интерфейс не поддерживается данным объектом). Один из аргументов функции QueryInterface() — Глобальный Уникальный Идентификатор (GUID), который идентифицирует искомый интерфейс.
Все API DirectX построены на основе COM. Это, однако, не говорит о том, что вы должны быть профессионалом в COM, чтобы применять DirectX. Фактически, использование COM-объектов подобно использованию объектов C++. Ниже приведены некоторые правила, которые вам надо соблюдать при работе с COM.
COM-объекты и объекты C++ не могут быть производными друг от друга. Простейший способ получения класса C++ из COM-объекта, состоит во «внедрении» COM-объекта в классы C++ и написании функций-оболочек (wrapper functions) для каждой функции COM.
Каждый раз при создании копии указателя на COM-объект должна быть вызвана функция объекта AddRef() чтобы известить объект о создании дополнительной ссылки. Это не относится к созданию объекта. Обычно API DirectX выполняет эту работу за вас и включает вызов функции AddRef() в функцию, создающую COM-объект.
Каждый раз, когда указатель на COM-объект больше не нужен, должна быть вызвана функция объекта Release().
Функция QueryInterface() не всемогуща. Она возвратит интерфейсы объекта, только если объект поддерживает их. Попытка получить произвольные интерфейсы от объекта может потерпеть неудачу.
Если вы хотите узнать больше о COM, загрузите спецификацию с сайта Microsoft (www.microsoft.com).
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий