HString 类

用于使用 RAII 模式管理 HSTRING 的生存期的帮主程序类。

语法

class HString;

备注

Windows 运行时通过 HSTRING 句柄提供对字符串的访问权限。 HString 类提供简单的函数和运算符,以简化 HSTRING 句柄的用法。 此类可以通过 RAII 模式处理其拥有的 HSTRING 的生存期。

成员

公共构造函数

名称 描述
HString::HString 初始化 HString 类的新实例。
HString::~HString 销毁 HString 类的当前实例。

公共方法

名称 描述
HString::Attach 将指定的 HString 对象与当前 HString 对象相关联。
HString::CopyTo 将当前 HString 对象复制到 HSTRING 对象。
HString::Detach 将指定的 HString 对象与其基础值解除关联。
HString::Get 检索基础 HSTRING 句柄的值。
HString::GetAddressOf 检索指向基础 HSTRING 句柄的指针。
HString::GetRawBuffer 检索指向基础字符串数据的指针。
HString::IsValid 指示当前 HString 对象是否有效。
HString::MakeReference 从指定的字符串参数创建 HStringReference 对象。
HString::Release 删除基础字符串值,并将当前 HString 对象初始化为空值。
HString::Set 将当前 HString 对象的值设置为指定的宽字符字符串或 HString 参数。

公共运算符

“属性” 描述
HString::operator= 将另一个 HString 对象的值移动到当前 HString 对象。
HString::operator== 指示两个参数是否相等。
HString::operator!= 指示两个参数是否不相等。
HString::operator< 指示第一个参数是否小于第二个参数。

继承层次结构

HString

要求

标头:corewrappers.h

命名空间:Microsoft::WRL::Wrappers

HString::~HString

销毁 HString 类的当前实例。

~HString() throw()

HString::Attach

将指定的 HString 对象与当前 HString 对象相关联。

void Attach(
       HSTRING hstr
       ) throw()

参数

hstr
一个现有的 HString 对象。

HString::CopyTo

将当前 HString 对象复制到 HSTRING 对象。

HRESULT CopyTo(
   _Out_ HSTRING *str
   ) const throw();

参数

str
接收副本的 HSTRING。

备注

此方法调用 WindowsDuplicateString 函数。

HString::Detach

将指定的 HString 对象与其基础值解除关联。

HSTRING Detach() throw()

返回值

分离操作启动之前的基础 HString 值。

HString::Get

检索基础 HSTRING 句柄的值。

HSTRING Get() const throw()

返回值

基础 HSTRING 句柄的值

HString::GetAddressOf

检索指向基础 HSTRING 句柄的指针。

HSTRING* GetAddressOf() throw()

返回值

指向基础 HSTRING 句柄的指针。

注解

此操作后,将销毁基础 HSTRING 句柄的字符串值。

HString::GetRawBuffer

检索指向基础字符串数据的指针。

const wchar_t* GetRawBuffer(unsigned int* length) const;

参数

length 指向接收数据长度的 int 变量的指针。

返回值

指向基础字符串数据的 const 指针。

HString::HString

初始化 HString 类的新实例。

HString() throw();
HString(HString&& other) throw();

参数

hstr
HSTRING 句柄。

其他
一个现有的 HString 对象。

备注

第一个构造函数初始化空的新 HString 对象。

第二个构造函数将新的 HString 对象初始化为现有 other 参数的值,然后销毁 other 参数

HString::IsValid

指示当前 HString 对象是否为空。

bool IsValid() const throw()

参数

如果当前 HString 对象不为空,则为 true;否则为 false

HString::MakeReference

从指定的字符串参数创建 HStringReference 对象。

template<unsigned int sizeDest>
    static HStringReference MakeReference(
              wchar_t const (&str)[ sizeDest]);

    template<unsigned int sizeDest>
    static HStringReference MakeReference(
              wchar_t const (&str)[sizeDest],
              unsigned int len);

参数

sizeDest
指定目标 HStringReference 缓冲区大小的模板参数。

str
对宽字符串的引用。

len
要在此操作中使用的 str 参数缓冲区的最大长度。 如果 len 参数未指定,则将使用整个 str 参数

返回值

一个 HStringReference 对象,其值与指定的 str 参数相同

HString::operator= 运算符

将另一个 HString 对象的值移动到当前 HString 对象。

HString& operator=(HString&& other) throw()

参数

其他
一个现有的 HString 对象。

备注

现有 other 对象的值将复制到当前 HString 对象,然后将销毁 other 对象

HString::operator== 运算符

指示两个参数是否相等。

inline bool operator==(
               const HString& lhs,
               const HString& rhs) throw()

inline bool operator==(
                const HString& lhs,
                const HStringReference& rhs) throw()

inline bool operator==(
                const HStringReference& lhs,
                const HString& rhs) throw()

inline bool operator==(
                 const HSTRING& lhs,
                 const HString& rhs) throw()

inline bool operator==(
                 const HString& lhs,
                 const HSTRING& rhs) throw()

参数

lhs
要比较的第一个参数。 lhs 可以是 HStringHStringReference 对象或 HSTRING 句柄

rhs
要比较的第二个参数。rhs 可以是 HStringHStringReference 对象或 HSTRING 句柄

返回值

如果 lhs 和 rhs 参数相等,则为 true;否则为 false

HString::operator!= 运算符

指示两个参数是否不相等。

inline bool operator!=( const HString& lhs,
                        const HString& rhs) throw()

inline bool operator!=( const HStringReference& lhs,
                        const HString& rhs) throw()

inline bool operator!=( const HString& lhs,
                        const HStringReference& rhs) throw()

inline bool operator!=( const HSTRING& lhs,
                        const HString& rhs) throw()

inline bool operator!=( const HString& lhs,
                        const HSTRING& rhs) throw()

参数

lhs
要比较的第一个参数。 lhs 可以是 HStringHStringReference 对象或 HSTRING 句柄

rhs
要比较的第二个参数。rhs 可以是 HStringHStringReference 对象或 HSTRING 句柄

返回值

如果 lhs 和 rhs 参数不相等,则为 true;否则为 false

HString::operator< 运算符

指示第一个参数是否小于第二个参数。

inline bool operator<(
    const HString& lhs,
    const HString& rhs) throw()

参数

lhs
要比较的第一个参数。 lhs 可以是对 HString 的引用

rhs
要比较的第二个参数。 rhs 可以是对 HString 的引用

返回值

如果 lhs 参数小于 rhs 参数,则为 true;否则为 false

HString::Release

删除基础字符串值,并将当前 HString 对象初始化为空值。

void Release() throw()

HString::Set

将当前 HString 对象的值设置为指定的宽字符字符串或 HString 参数。

HRESULT Set(
          const wchar_t* str) throw();
HRESULT Set(
          const wchar_t* str,
          unsigned int len
           ) throw();
HRESULT Set(
          const HSTRING& hstr
           ) throw();

参数

str
宽字符字符串。

len
分配给当前 HString 对象的 str 参数的最大长度

hstr
一个现有的 HString 对象。