CComGITPtr 类

此类提供用于处理接口指针和全局接口表 (GIT) 的方法。

语法

template <class T>
class CComGITPtr

参数

T
要存储在 GIT 中的接口指针的类型。

成员

公共构造函数

名称 描述
CComGITPtr::CComGITPtr 构造函数。
CComGITPtr::~CComGITPtr 析构函数。

公共方法

名称 描述
CComGITPtr::Attach 调用此方法可在全局接口表 (GIT) 中注册接口指针。
CComGITPtr::CopyTo 调用此方法可将接口从全局接口表 (GIT) 复制到传递的指针。
CComGITPtr::Detach 调用此方法可取消关联 CComGITPtr 对象中的接口。
CComGITPtr::GetCookie 调用此方法可从 CComGITPtr 对象返回 Cookie。
CComGITPtr::Revoke 调用此方法可从全局接口表 (GIT) 中删除接口。

公共运算符

“属性” 描述
CComGITPtr::operator DWORD CComGITPtr 对象返回 Cookie。
CComGITPtr::operator = 赋值运算符。

公共数据成员

“属性” 描述
CComGITPtr::m_dwCookie Cookie。

备注

聚合自由线程封送处理程序且需要使用从其他对象获取的接口指针的对象必须执行额外的步骤,以确保正确封送接口。 通常,这涉及到将接口指针存储在 GIT 中,并在每次使用时从 GIT 获取指针。 提供 CComGITPtr 类可帮助使用存储在 GIT 中的接口指针。

注意

全局接口表设施仅适用于 Windows 95 DCOM 版本 1.1 及更高版本、Windows 98,Windows NT 4.0 Service Pack 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 移动,然后清除 rv。

CComGITPtr::~CComGITPtr

析构函数。

~CComGITPtr() throw();

注解

使用 CComGITPtr::Revoke 从全局接口表 (GIT) 中删除接口。

CComGITPtr::CopyTo

调用此方法可将接口从全局接口表 (GIT) 复制到传递的指针。

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

参数

pp
要接收接口的指针。

返回值

如果成功,则返回 S_OK;否则返回错误 HRESULT。

注解

GIT 中的接口将复制到传递的指针。 当不再需要指针时,调用方必须释放指针。

CComGITPtr::Detach

调用此方法可取消关联 CComGITPtr 对象中的接口。

DWORD Detach() throw();

返回值

CComGITPtr 对象返回 Cookie。

备注

调用方可以使用 CComGITPtr::Revoke 从 GIT 中删除接口。

CComGITPtr::GetCookie

调用此方法可从 CComGITPtr 对象返回 Cookie。

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

返回与 CComGITPtr 对象关联的 Cookie。

operator DWORD() const;

备注

Cookie 是用于标识接口及其位置的变量。

CComGITPtr::Revoke

调用此方法可从全局接口表 (GIT) 中删除当前接口。

HRESULT Revoke() throw();

返回值

如果成功,则返回 S_OK;否则返回错误 HRESULT。

注解

从 GIT 中删除接口。

另请参阅

自由线程封送拆收器
跨单元访问接口
何时使用全局接口表
类概述