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::D etach 將指定的 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::D etach

將指定的 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 句柄。

other
現有的 HString 物件。

備註

第一個建構函式會初始化空的新 HString 物件。

第二個建構函式會將新的 HString 物件初始化為現有 其他 參數的值,然後終結 另一個 參數。

HString::IsValid

指出目前的 HString 物件是否為空白。

bool IsValid() const throw()

參數

true 如果目前 HString 物件不是空的,則為 ,否則為 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()

參數

other
現有的 HString 物件。

備註

現有 其他 物件的值會複製到目前的 HString 物件,然後 終結另一個 物件。

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 控點。

傳回值

true如果 lhsrhs 參數相等,則為 ,否則為 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 控點。

傳回值

true如果 lhsrhs 參數不相等,則為 ,否則為 false

HString::operator< 運算子

指出第一個參數是否小於第二個參數。

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

參數

lhs
要比較的第一個參數。 lhs 可以是 的 HString參考。

rhs
要比較的第二個參數。 rhs 可以是 的 HString參考。

傳回值

true如果 lhs 參數小於 rhs 參數,則為 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 物件。