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 中删除接口。