Поделиться через


Класс CComGITPtr

Этот класс предоставляет методы для работы с указателями интерфейса и глобальной таблицей интерфейсов (GIT).

Синтаксис

template <class T>
class CComGITPtr

Параметры

T
Тип указателя интерфейса, который будет храниться в GIT.

Участники

Открытые конструкторы

Имя Описание
CComGITPtr::CComGITPtr Конструктор.
CComGITPtr::~CComGITPtr Деструктор

Открытые методы

Имя Описание
CComGITPtr::Attach Вызовите этот метод, чтобы зарегистрировать указатель интерфейса в глобальной таблице интерфейсов (GIT).
CComGITPtr::CopyTo Вызовите этот метод, чтобы скопировать интерфейс из глобальной таблицы интерфейсов (GIT) в переданный указатель.
CComGITPtr::D etach Вызовите этот метод, чтобы отсоединить интерфейс от CComGITPtr объекта.
CComGITPtr::GetCookie Вызовите этот метод, чтобы вернуть файл cookie из CComGITPtr объекта.
CComGITPtr::Revoke Вызовите этот метод, чтобы удалить интерфейс из глобальной таблицы интерфейсов (GIT).

Открытые операторы

Имя Описание
CComGITPtr::operator DWORD Возвращает файл cookie из CComGITPtr объекта.
CComGITPtr::operator = Оператор присвоения.

Открытые члены данных

Имя Описание
CComGitPtr::m_dwCookie Файл cookie.

Замечания

Объекты, агрегированные маршалер свободного потока и необходимые для использования указателей интерфейса, полученных от других объектов, должны выполнить дополнительные шаги, чтобы обеспечить правильность маршалирования интерфейсов. Как правило, это включает хранение указателей интерфейса в GIT и получение указателя из GIT при каждом использовании. CComGITPtr Класс предоставляется для использования указателей интерфейса, хранящихся в GIT.

Примечание.

Глобальное средство таблицы интерфейсов доступно только в Windows 95 с DCOM версии 1.1 и более поздними версиями, Windows 98, Windows NT 4.0 с пакетом обновления 3 и более поздними версиями и Windows 2000.

Требования

Заголовок: atlbase.h

CComGITPtr::Attach

Вызовите этот метод, чтобы зарегистрировать указатель интерфейса в глобальной таблице интерфейсов (GIT).

HRESULT Attach(T* p) throw();

HRESULT Attach(DWORD dwCookie) throw();

Параметры

p
Указатель интерфейса, добавляемый в GIT.

dwCookie
Файл cookie, используемый для идентификации указателя интерфейса.

Возвращаемое значение

Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.

Замечания

В сборках отладки ошибка утверждения будет возникать, если GIT недействителен, или если файл cookie равен NULL.

CComGITPtr::CComGITPtr

Конструктор.

CComGITPtr() throw();
CComGITPtr(T* p);
CComGITPtr(const CComGITPtr& git);
explicit CComGITPtr(DWORD dwCookie) throw();
CComGITPtr(CComGITPtr&& rv);

Параметры

p
[in] Указатель интерфейса, хранящийся в глобальной таблице интерфейсов (GIT).

git
[in] Ссылка на существующий CComGITPtr объект.

dwCookie
[in] Файл cookie, используемый для идентификации указателя интерфейса.

rv
[in] Исходный CComGITPtr объект для перемещения данных из.

Замечания

Создает новый CComGITPtr объект, при необходимости используя существующий CComGITPtr объект.

Конструктор, используюющий rv , является конструктором перемещения. Данные перемещаются из источника, rv, а затем очищаются.

CComGITPtr::~CComGITPtr

Деструктор

~CComGITPtr() throw();

Замечания

Удаляет интерфейс из глобальной таблицы интерфейсов (GIT), используя CComGITPtr::Revoke.

CComGITPtr::CopyTo

Вызовите этот метод, чтобы скопировать интерфейс из глобальной таблицы интерфейсов (GIT) в переданный указатель.

HRESULT CopyTo(T** pp) const throw();

Параметры

pp
Указатель, который требуется получить интерфейс.

Возвращаемое значение

Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.

Замечания

Интерфейс из GIT копируется в переданный указатель. Указатель должен быть освобожден вызывающим, если он больше не требуется.

CComGITPtr::D etach

Вызовите этот метод, чтобы отсоединить интерфейс от CComGITPtr объекта.

DWORD Detach() throw();

Возвращаемое значение

Возвращает файл cookie из CComGITPtr объекта.

Замечания

Для удаления интерфейса из GIT с помощью CComGitPtr::Revoke можно удалить вызывающий объект.

CComGITPtr::GetCookie

Вызовите этот метод, чтобы вернуть файл cookie из CComGITPtr объекта.

DWORD GetCookie() const;

Возвращаемое значение

Возвращает файл cookie.

Замечания

Файл cookie — это переменная, используемая для идентификации интерфейса и его расположения.

CComGitPtr::m_dwCookie

Файл cookie.

DWORD m_dwCookie;

Замечания

Файл cookie — это переменная-член, используемая для идентификации интерфейса и его расположения.

CComGITPtr::operator =

Оператор присваивания .

CComGITPtr& operator= (T* p);
CComGITPtr& operator= (const CComGITPtr& git);
CComGITPtr& operator= (DWORD dwCookie);
CComGITPtr& operator= (CComGITPtr&& rv);

Параметры

p
[in] Указатель на интерфейс.

git
[in] Ссылка на объект CComGITPtr.

dwCookie
[in] Файл cookie, используемый для идентификации указателя интерфейса.

rv
[in] Перемещение CComGITPtr данных из.

Возвращаемое значение

Возвращает обновленный CComGITPtr объект.

Замечания

Присваивает новому значению CComGITPtr объекту либо из существующего объекта, либо из ссылки на глобальную таблицу интерфейсов.

CComGITPtr::operator DWORD

Возвращает файл cookie, связанный CComGITPtr с объектом.

operator DWORD() const;

Замечания

Файл cookie — это переменная, используемая для идентификации интерфейса и его расположения.

CComGITPtr::Revoke

Вызовите этот метод, чтобы удалить текущий интерфейс из глобальной таблицы интерфейсов (GIT).

HRESULT Revoke() throw();

Возвращаемое значение

Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.

Замечания

Удаляет интерфейс из GIT.

См. также

Free Threaded Marshaler
Доступ к интерфейсам между квартирами
Когда следует использовать глобальную таблицу интерфейсов
Общие сведения о классе