winrt::hstring 結構 (C++/WinRT)

代表文字字串之 UTF-16 Unicode 字元的循序集合。 如需 winrt::hstring 的詳細資訊,請參閱 C++/WinRT 中的字串處理

winrt::hstring 類型會在類似 std::wstring 的介面後面封裝 HSTRINGHSTRING 是 Windows 執行階段 字串的句柄。 如需如何將 HSTRING 設定為 winrt::hstring 以及如何從 winrt::hstring 重新嘗試 HSTRING 的相關信息,請參閱與 ABI 的 HSTRING 互操作

Syntax

struct hstring

規格需求

最低支援的 SDK:Windows SDK 10.0.17134.0 版 (Windows 10 版本 1803)

命名空間: winrt

標頭: 預設包含 %WindowsSdkDir%Include<WindowsTargetPlatformVersion>\cppwinrt\winrt\base.h (預設包含)

成員類型別名

別名名稱 類型
hstring::value_type wchar_t的同義字。
hstring::size_type uint32_t的同義字。
hstring::const_reference hstring::value_type const&同義字。
hstring::const_pointer hstring::value_type const* 的同義字。
hstring::const_iterator hstring::const_pointer 的同義字。
hstring::const_reverse_iterator std::reverse_iterator<hstring::const_iterator> 的同義字。

建構函式

建構函式 描述
hstring::hstring 建構函式 使用輸入字串數據的複本,初始化 hstring 結構的新實例。

成員函數

函式 描述
hstring::back 函式 傳回 hstring 對象中最後一個字元的參考。
hstring::begin 函式 將 const 反覆運算器傳回至 hstring 物件中的第一個字元。
hstring::c_str 函式 傳回 hstring 物件中字元之基礎 Null 終止 C 樣式字串的指標;未建立任何復本。
hstring::cbegin 函式 將 const 反覆運算器傳回至 hstring 物件中的第一個字元。
hstring::cend 函式 將常數反覆運算器傳回至結尾以外的一個, (超過 hstring 物件) 中最後一個字元的一個字元。
hstring::clear 函式 hstring 物件設定為空白。
hstring::crbegin 函式 將 const 反轉反覆運算器傳回至結尾以外的一個, (一個超出 hstring 物件) 中最後一個字元的結尾。
hstring::crend 函式 將 const 反向反覆運算器傳回至 hstring 物件中的第一個字元。
hstring::d ata 函式 傳回 hstring 物件中字元的 Null 終止 C 樣式字串版本。
hstring::empty 函式 傳回值,指出 hstring 物件是否空白。
hstring::end 函式 將常數反覆運算器傳回至結尾以外的一個, (超過 hstring 物件) 中最後一個字元的一個字元。
hstring::front 函式 傳回 hstring 物件中第一個字元的參考。
hstring::rbegin 函式 將 const 反轉反覆運算器傳回至結尾以外的一個, (一個超出 hstring 物件) 中最後一個字元的結尾。
hstring::rend 函式 將 const 反向反覆運算器傳回至 hstring 物件中的第一個字元。
hstring::size 函式 傳回 hstring 物件中的字元數。

成員運算子

運算子 描述
hstring::operator std::wstring_view hstring 物件轉換為 std::wstring_view
hstring::operator[] (下標運算符) ) 傳回 在 hstring 物件內指定位置之字元的參考。
hstring::operator= (指派運算符) 將值指派給 hstring 物件。

免費函式

函式 描述
attach_abi 函式 hstring 物件附加至 Windows 執行階段 字串的句柄。
copy_from_abi 函式 從句柄複製到 Windows 執行階段 字串的 hstring 物件。 清除 hstring、複製 參數,並開始管理句柄。
copy_to_abi 函式 hstring 物件複製到 Windows 執行階段 字串的句柄。
detach_abi 函式 hstring 物件與其句柄中斷鏈接,或許可將它傳回給呼叫端。
to_hstring 函式 將輸入值轉換為 winrt::hstring ,其中包含值的字串表示。

免費運算子

運算子 描述
operator!= (不等比較運算符) 傳回值,指出兩個參數是否不相等。
operator+ (串連運算子) 傳回由將兩個參數串連在一起所產生的新 hstring 物件。
運算子< (小於運算子) 傳回值,指出第一個參數是否小於第二個參數。
operator<= (小於或等於運算符) 傳回值,指出第一個參數是否小於或等於第二個參數。
operator== (等號比較運算符) 傳回值,指出兩個參數是否彼此相等。
運算子> (大於運算子) 傳回值,指出第一個參數是否大於第二個參數。
operator>= (大於或等於運算符) 傳回值,指出第一個參數是否大於或等於第二個參數。

迭代器

hstring 是一個範圍,而且該範圍是由 hstring::beginhstring::end 成員函式所定義,每個函式都會傳回 const 迭代器 (,如同 hstring::cbeginhstring::cend) 一樣。 因此,您可以使用範圍型for語句或 std::for_each 範本函式,列舉 hstring 物件中的字元。

#include <iostream>
using namespace winrt;
...
void Iterators(hstring const& theHstring)
{
    for (auto const& element : theHstring)
    {
        std::wcout << element;
    }

    std::for_each(theHstring.cbegin(), theHstring.cend(), [](T const& element) { std::wcout << element; });
}

hstring::hstring 建構函式

使用輸入字串數據的複本,初始化 hstring 結構的新實例。

語法

hstring() noexcept;
hstring(winrt::hstring const& h);
explicit hstring(std::wstring_view const& v);
hstring(wchar_t const* c);
hstring(wchar_t const* c, uint32_t s);

參數

h初始化 hstring 物件的 hstring 值。

v初始化 hstring 物件的 std::wstring_view 值。

c初始化 hstring 物件的常數數位wchar_t指標。

s 數位,指定 hstring 物件的固定大小。

範例

using namespace winrt;
...
void Constructors(
    hstring const& theHstring,
    std::wstring_view const& theWstringView,
    wchar_t const* wideLiteral,
    std::wstring const& wideString)
{
    // hstring() noexcept
    hstring fromDefault{};

    // hstring(hstring const& h)
    hstring fromHstring{ theHstring };

    // explicit hstring(std::wstring_view const& value)
    hstring fromWstringView{ theWstringView };

    // hstring(wchar_t const* value)
    hstring fromWideLiteral{ wideLiteral };
    hstring fromWideString{ wideString.c_str() };

    // hstring(wchar_t const* value, uint32_t size)
    hstring fromWideLiteralWithSize{ wideLiteral, 256 };
    hstring fromWideStringWithSize{ wideString.c_str(), 256 };
}

hstring::back 函式

傳回 hstring 對象中最後一個字元的參考。

Syntax

wchar_t const& back() const noexcept;

傳回值

hstring 對象中最後一個字元的參考。

hstring::begin 函式

將 const 反覆運算器傳回至 hstring 物件中的第一個字元。 請參閱 反覆運算器

Syntax

wchar_t const* begin() const noexcept;

傳回值

hstring 物件中第一個字元的常數反覆運算器。

hstring::c_str 函式

傳回 hstring 物件中字元之基礎 Null 終止 C 樣式字串的指標;未建立任何復本。

Syntax

wchar_t const* c_str() const noexcept;

傳回值

hstring 物件中字元之基礎 Null 終止 C 樣式字串的指標;未建立任何復本。

範例

#include <iostream>
using namespace winrt;
...
void PrintHstring(hstring const& theHstring)
{
    // You can get a standard wide string from an hstring.
    std::wcout << theHstring.c_str() << std::endl;
}

hstring::cbegin 函式

將 const 反覆運算器傳回至 hstring 物件中的第一個字元。 請參閱 反覆運算器

Syntax

wchar_t const* cbegin() const noexcept;

傳回值

hstring 物件中第一個字元的常數反覆運算器。

hstring::cend 函式

將常數反覆運算器傳回至結尾以外的一個, (超過 hstring 物件) 中最後一個字元的一個字元。 請參閱 反覆運算器

Syntax

wchar_t const* cend() const noexcept;

傳回值

常數反覆運算器,指向 () hstring 對象中最後一個字元以外的反覆運算器。

hstring::clear 函式

hstring 物件設定為空白。

Syntax

void clear() noexcept;

hstring::crbegin 函式

將 const 反轉反覆運算器傳回至結尾以外的一個, (一個超出 hstring 物件) 中最後一個字元的結尾。

Syntax

std::reverse_iterator<wchar_t const*> crbegin() const noexcept;

傳回值

const 反轉反覆運算器,指向結尾 () hstring 對象中最後一個字元以外的反覆運算器。

hstring::crend 函式

將 const 反向反覆運算器傳回至 hstring 物件中的第一個字元。

Syntax

std::reverse_iterator<wchar_t const*> crend() const noexcept;

傳回值

hstring 物件中第一個字元的 const 反向反覆運算器。

hstring::d ata 函式

傳回 hstring 物件中字元的 Null 終止 C 樣式字串版本。

Syntax

wchar_t const* data() const noexcept;

傳回值

hstring 物件中字元的 Null 終止 C 樣式字串版本。

範例

#include <iostream>
using namespace winrt;
...
void PrintHstring(hstring const& theHstring)
{
    // You can get a standard wide string from an hstring.
    std::wcout << theHstring.data() << std::endl;
}

hstring::empty 函式

傳回值,指出 hstring 物件是否空白。

Syntax

bool empty() const noexcept;

傳回值

true 如果 hstring 物件是空的,則為 ,否則 false為 。

hstring::end 函式

將常數反覆運算器傳回至結尾以外的一個, (超過 hstring 物件) 中最後一個字元的一個字元。 請參閱 反覆運算器

Syntax

wchar_t const* end() const noexcept;

傳回值

常數反覆運算器,指向 () hstring 對象中最後一個字元以外的反覆運算器。

hstring::front 函式

傳回 hstring 物件中第一個字元的參考。

Syntax

wchar_t const& front() const noexcept;

傳回值

hstring 物件中第一個字元的參考。

hstring::operator std::wstring_view

hstring 物件轉換為 std::wstring_view

Syntax

operator std::wstring_view() const noexcept;

傳回值

轉換成 std::wstring_viewhstring 物件。

範例

using namespace winrt;
...
    Uri contosoUri{ L"https://www.contoso.com" };
    Uri awUri{ L"https://www.adventure-works.com" };

    // Uri::Domain() is of type hstring. But we can use hstring's conversion operator to std::wstring_view.
    std::wstring domainWstring{ contosoUri.Domain() }; // L"contoso.com"
    domainWstring = awUri.Domain(); // L"https://www.adventure-works.com"

hstring::operator[] (下標運算符)

傳回 在 hstring 物件內指定位置之字元的參考。

語法

wchar_t const& operator[](uint32_t pos) const noexcept;

參數

pos 以零起始的字元位置或索引。

傳回值

在 hstring 物件內指定位置的字元參考。

hstring::operator= (指派運算符)

將值指派給 hstring 物件。

語法

winrt::hstring& operator=(winrt::hstring const& h);
winrt::hstring& operator=(std::wstring_view const& v);

參數

h要指派給 hstring 物件的 hstring 值。

v要指派給 hstring 物件的 std::wstring_view 值。

傳回值

hstring 對象的參考。

hstring::rbegin 函式

將 const 反向反覆運算器傳回至 (一個超出 hstring 物件) 中最後一個字元的結尾。

Syntax

std::reverse_iterator<wchar_t const*> rbegin() const noexcept;

傳回值

常數反轉反覆運算器,指向 () hstring 對象中最後一個字元以外的一個字元。

hstring::rend 函式

傳回常數反向反覆運算器至 hstring 物件中的第一個字元。

Syntax

std::reverse_iterator<wchar_t const*> rend() const noexcept;

傳回值

常數反向反覆運算器,指向 hstring 物件中的第一個字元。

hstring::size 函式

傳回 hstring 物件中的字元數。

Syntax

uint32_t size() const noexcept;

傳回值

uint32_t,其中包含 hstring 物件中的字元數。

attach_abi 函式

hstring 物件附加至 Windows 執行階段 字串的句柄。

語法

void attach_abi(winrt::hstring& object, HSTRING value) noexcept;

參數

object 要操作 的 hstring 物件。

valueWindows 執行階段 字串的句柄。

copy_from_abi 函式

從句柄複製到 Windows 執行階段 字串的 hstring 物件。 清除 hstring、複製 參數,並開始管理句柄。

語法

void copy_from_abi(winrt::hstring& object, HSTRING value);

參數

object 要操作 的 hstring 物件。

valueWindows 執行階段 字串的句柄。

copy_to_abi 函式

hstring 物件複製到 Windows 執行階段 字串的句柄。

語法

void copy_to_abi(winrt::hstring const& object, HSTRING& value);

參數

object 要操作 的 hstring 物件。

value 句柄參考,用來複製 hstring 的句柄。

detach_abi 函式

hstring 物件與其句柄中斷鏈接,或許可將它傳回給呼叫端。

語法

HSTRING detach_abi(winrt::hstring& object) noexcept;
HSTRING detach_abi(winrt::hstring&& object) noexcept;

參數

object 要操作 的 hstring 物件。

傳回值

Windows 執行階段 字串的句柄。

operator!= (不等運算符)

傳回值,指出兩個參數是否不相等。

語法

inline bool operator!=(winrt::hstring const& hLeft, winrt::hstring const& hRight) noexcept;
inline bool operator!=(winrt::hstring const& hLeft, std::wstring const& wRight) noexcept;
inline bool operator!=(winrt::hstring const& hLeft, wchar_t const* cRight) noexcept;
inline bool operator!=(std::wstring const& wLeft, winrt::hstring const& hRight) noexcept;
inline bool operator!=(wchar_t const* cLeft, winrt::hstring const& hRight) noexcept;

參數

hLefthRight 要與其他參數比較的 hstring 值。

wLeftwRightstd::wstring要與其他參數比較的值。

cLeftcRight 要與其他參數比較的常數數位 指標wchar_t

傳回值

true 如果兩個參數彼此不相等,則為 ,否則 false為 。

operator+ (串連運算子)

傳回由將兩個參數串連在一起所產生的新 hstring 物件。

語法

inline hstring operator+(winrt::hstring const& hLeft, winrt::hstring const& hRight);
inline hstring operator+(winrt::hstring const& hLeft, std::wstring const& wRight);
inline hstring operator+(winrt::hstring const& hLeft, std::wstring_view const& vRight);
inline hstring operator+(winrt::hstring const& hLeft, wchar_t const* cRight);
inline hstring operator+(winrt::hstring const& hLeft, wchar_t scRight);
inline hstring operator+(std::wstring const& wLeft, winrt::hstring const& hRight);
inline hstring operator+(std::wstring_view const& vLeft, winrt::hstring const& hRight);
inline hstring operator+(wchar_t const* cLeft, winrt::hstring const& hRight);
inline hstring operator+(wchar_t scLeft, winrt::hstring const& hRight);

參數

hLefthRight 要與其他參數串連的 hstring 值。

wLeftwRightstd::wstring要與其他參數串連的值。

vLeftvRight 要與其他參數串連的 std::wstring_view 值。

cLeftcRight 要與其他參數串連之常數數位 的指標wchar_t

scLeftscRight 要與其他參數串連 的wchar_t

傳回值

由將兩個參數串連在一起所產生的新 hstring 物件。

運算子< (小於運算子)

傳回值,指出第一個參數是否小於第二個參數。

語法

inline bool operator<(winrt::hstring const& hLeft, winrt::hstring const& hRight) noexcept;
inline bool operator<(winrt::hstring const& hLeft, std::wstring const& wRight) noexcept;
inline bool operator<(winrt::hstring const& hLeft, wchar_t const* cRight) noexcept;
inline bool operator<(std::wstring const& wLeft, winrt::hstring const& hRight) noexcept;
inline bool operator<(wchar_t const* cLeft, winrt::hstring const& hRight) noexcept;

參數

hLefthRight 要與其他參數比較的 hstring 值。

wLeftwRightstd::wstring要與其他參數比較的值。

cLeftcRight 要與其他參數比較的常數數位 指標wchar_t

傳回值

true 如果第一個參數小於第二個參數,則為 ,否則 false為 。

operator<= (小於或等於運算子)

傳回值,指出第一個參數是否小於或等於第二個參數。

語法

inline bool operator<=(winrt::hstring const& hLeft, winrt::hstring const& hRight) noexcept;
inline bool operator<=(winrt::hstring const& hLeft, std::wstring const& wRight) noexcept;
inline bool operator<=(winrt::hstring const& hLeft, wchar_t const* cRight) noexcept;
inline bool operator<=(std::wstring const& wLeft, winrt::hstring const& hRight) noexcept;
inline bool operator<=(wchar_t const* cLeft, winrt::hstring const& hRight) noexcept;

參數

hLefthRight 要與其他參數比較的 hstring 值。

wLeftwRightstd::wstring要與其他參數比較的值。

cLeftcRight 要與其他參數比較的常數數位 指標wchar_t

傳回值

true 如果第一個參數小於或等於第二個參數,則為 ,否則 false為 。

operator== (等號運算符)

傳回值,指出兩個參數是否相等。

語法

inline bool operator==(winrt::hstring const& hLeft, winrt::hstring const& hRight) noexcept;
inline bool operator==(winrt::hstring const& hLeft, std::wstring const& wRight) noexcept;
inline bool operator==(winrt::hstring const& hLeft, wchar_t const* cRight) noexcept;
inline bool operator==(std::wstring const& wLeft, winrt::hstring const& hRight) noexcept;
inline bool operator==(wchar_t const* cLeft, winrt::hstring const& hRight) noexcept;

參數

hLefthRight 要與其他參數比較的 hstring 值。

wLeftwRightstd::wstring要與其他參數比較的值。

cLeftcRight 要與其他參數比較的常數數位 指標wchar_t

傳回值

true 如果兩個參數彼此相等,則為 ,否則 false為 。

運算子> (大於運算子)

傳回值,指出第一個參數是否大於第二個參數。

語法

inline bool operator>(winrt::hstring const& hLeft, winrt::hstring const& hRight) noexcept;
inline bool operator>(winrt::hstring const& hLeft, std::wstring const& wRight) noexcept;
inline bool operator>(winrt::hstring const& hLeft, wchar_t const* cRight) noexcept;
inline bool operator>(std::wstring const& wLeft, winrt::hstring const& hRight) noexcept;
inline bool operator>(wchar_t const* cLeft, winrt::hstring const& hRight) noexcept;

參數

hLefthRight 要與其他參數比較的 hstring 值。

wLeftwRightstd::wstring要與其他參數比較的值。

cLeftcRight 要與其他參數比較的常數數位 指標wchar_t

傳回值

true 如果第一個參數大於第二個參數,則為 ,否則 false為 。

operator>= (大於或等於運算符)

傳回值,指出第一個參數是否大於或等於第二個參數。

語法

inline bool operator>=(winrt::hstring const& hLeft, winrt::hstring const& hRight) noexcept;
inline bool operator>=(winrt::hstring const& hLeft, std::wstring const& wRight) noexcept;
inline bool operator>=(winrt::hstring const& hLeft, wchar_t const* cRight) noexcept;
inline bool operator>=(std::wstring const& wLeft, winrt::hstring const& hRight) noexcept;
inline bool operator>=(wchar_t const* cLeft, winrt::hstring const& hRight) noexcept;

參數

hLefthRight 要與其他參數比較的 hstring 值。

wLeftwRightstd::wstring 與其他參數比較的值。

cLeftcRight 要與其他參數比較的常數數位 指標wchar_t

傳回值

true 如果第一個參數大於或等於第二個參數,則為 ,否則 false為 。

另請參閱