winrt::hstring 構造体 (C++/WinRT)

テキスト文字列を表す UTF-16 Unicode 文字のシーケンシャル コレクション。 winrt::hstringの詳細な例と情報については、「C++/WinRTでの 文字列処理」を参照してください。

winrt::hstring 型は、std::wstringと同様のインターフェイスの背後にある HSTRING カプセル化します。 HSTRING は、Windows ランタイム文字列へのハンドルです。 HSTRINGwinrt::hstringに設定する方法と、winrt::hstringから HSTRING を取得する方法については、ABI の HSTRINGとの相互運用の を参照してください。

構文

struct hstring

必要条件

サポートされる最小 SDK: Windows SDK バージョン 10.0.17134.0 (Windows 10 バージョン 1803) を

Namespace: 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 関数 を する hstring オブジェクトの最初の文字を指す const 反復子を返します。
hstring::c_str 関数 を する hstring オブジェクト内の文字の基になる null で終わる C スタイルの文字列へのポインターを返します。コピーは作成されません。
hstring::cbegin 関数 を する hstring オブジェクトの最初の文字を指す const 反復子を返します。
hstring::cend 関数 を する hstring オブジェクトの末尾 (最後の文字の 1 つを超える) を指す const 反復子を返します。
hstring::clear 関数の hstring オブジェクトを空にします。
hstring::crbegin 関数 を する hstring オブジェクトの末尾 (最後の文字を超えた文字列) の 1 つを指す定数反転反復子を返します。
hstring::crend 関数の hstring オブジェクトの最初の文字を指す定数反転反復子を返します。
hstring::d ata 関数 を する hstring オブジェクト内の文字の null で終わる C スタイルの文字列バージョンを返します。
hstring::empty 関数の hstring オブジェクトが空かどうかを示す値を返します。
hstring::end 関数の を する hstring オブジェクトの末尾 (最後の文字の 1 つを超える) を指す const 反復子を返します。
hstring::front 関数 を する hstring オブジェクトの最初の文字への参照を返します。
hstring::rbegin 関数 を する hstring オブジェクトの末尾 (最後の文字を超えた文字列) の 1 つを指す定数反転反復子を返します。
hstring::rend 関数 を する 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 に変換します。

Free 演算子

演算子 形容
演算子!= (等しくない演算子) 2 つのパラメーターが互いに等しくないかどうかを示す値を返します。
演算子 + (連結演算子) 2 つのパラメーターを連結した結果、新しい hstring オブジェクトを返します。
演算子 < (演算子より小さい) 最初のパラメーターが 2 番目のパラメーターより小さいかどうかを示す値を返します。
演算子<= (以下の演算子) 最初のパラメーターが 2 番目のパラメーター以下かどうかを示す値を返します。
operator== (等値演算子) 2 つのパラメーターが互いに等しいかどうかを示す値を返します。
演算子> (より大きい演算子) 最初のパラメーターが 2 番目のパラメーターより大きいかどうかを示す値を返します。
演算子>= (以上の演算子) 最初のパラメーターが 2 番目のパラメーター以上かどうかを示す値を返します。

反復 子

hstring は範囲であり、その範囲は hstring::begin および hstring::end メンバー関数によって定義され、それぞれが const 反復子を返します (hstring::cbegin と hstring::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 オブジェクトの最後の文字への参照を返します。

構文

wchar_t const& back() const noexcept;

戻り値

hstring オブジェクト内の最後の文字への参照。

hstring::begin 関数

hstring オブジェクトの最初の文字を指す const 反復子を返します。 反復子 を参照してください。

構文

wchar_t const* begin() const noexcept;

戻り値

hstring オブジェクト内の最初の文字を指す const 反復子。

hstring::c_str 関数

hstring オブジェクト内の文字の基になる null で終わる C スタイルの文字列へのポインターを返します。コピーは作成されません。

構文

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 関数

hstring オブジェクトの最初の文字を指す const 反復子を返します。 反復子 を参照してください。

構文

wchar_t const* cbegin() const noexcept;

戻り値

hstring オブジェクト内の最初の文字を指す const 反復子。

hstring::cend 関数

hstring オブジェクトの末尾 (最後の文字の 1 つを超える) を指す const 反復子を返します。 反復子 を参照してください。

構文

wchar_t const* cend() const noexcept;

戻り値

hstring オブジェクトの末尾 (最後の文字の 1 つを超える) を指す const 反復子。

hstring::clear 関数

hstring オブジェクトを空にします。

構文

void clear() noexcept;

hstring::crbegin 関数

hstring オブジェクトの末尾 (最後の文字を超えた文字列) の 1 つを指す定数反転反復子を返します。

構文

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

戻り値

hstring オブジェクトの末尾 (最後の文字の後の 1 つ) を指す const 逆反復子。

hstring::crend 関数

hstring オブジェクトの最初の文字を指す定数反転反復子を返します。

構文

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

戻り値

hstring オブジェクト内の最初の文字を指す const 逆反復子。

hstring::d ata 関数

hstring オブジェクト内の文字の null で終わる C スタイルの文字列バージョンを返します。

構文

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 オブジェクトが空かどうかを示す値を返します。

構文

bool empty() const noexcept;

戻り値

hstring オブジェクトが空の場合は true。それ以外の場合は false

hstring::end 関数

hstring オブジェクトの末尾 (最後の文字の 1 つを超える) を指す const 反復子を返します。 反復子 を参照してください。

構文

wchar_t const* end() const noexcept;

戻り値

hstring オブジェクトの末尾 (最後の文字の 1 つを超える) を指す const 反復子。

hstring::front 関数

hstring オブジェクトの最初の文字への参照を返します。

構文

wchar_t const& front() const noexcept;

戻り値

hstring オブジェクト内の最初の文字への参照。

hstring::operator std::wstring_view

hstring オブジェクトを std::wstring_viewに変換します。

構文

operator std::wstring_view() const noexcept;

戻り値

std::wstring_viewに変換された hstring オブジェクト。

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 0 から始まる文字の位置(インデックス)を指定します。

戻り値

hstring オブジェクト内の指定した位置にある文字への参照。

hstring::operator= (代入演算子)

hstring オブジェクトに値を割り当てます。

構文

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

パラメーター

h hstring オブジェクトに割り当てる hstring 値です。

hstring オブジェクトに割り当てる std::wstring_view 値を v します。

戻り値

hstring オブジェクトへの参照。

hstring::rbegin 関数

hstring オブジェクトの末尾 (最後の文字を超えた文字列) の 1 つを指す定数反転反復子を返します。

構文

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

戻り値

hstring オブジェクトの末尾 (最後の文字の後の 1 つ) を指す const 逆反復子。

hstring::rend 関数

hstring オブジェクトの最初の文字を指す定数反転反復子を返します。

構文

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

戻り値

hstring オブジェクト内の最初の文字を指す const 逆反復子。

hstring::size 関数

hstring オブジェクト内の文字数を返します。

構文

uint32_t size() const noexcept;

戻り値

hstring オブジェクト内の文字数を含む uint32_t

attach_abi関数

hstring オブジェクトを Windows ランタイム文字列のハンドルにアタッチします。

構文

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

パラメーター

object 操作する hstring オブジェクトです。

value Windows ランタイム文字列へのハンドル。

copy_from_abi関数

ハンドルから Windows ランタイム文字列に hstring オブジェクトにコピーします。 hstringをクリアし、パラメーターをコピーして、ハンドルの管理を開始します。

構文

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

パラメーター

object 操作する hstring オブジェクトです。

value Windows ランタイム文字列へのハンドル。

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!= (等しくない演算子)

2 つのパラメーターが互いに等しくないかどうかを示す値を返します。

構文

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;

パラメーター

hLeft hRight 他のパラメーターと比較する hstring 値です。

wLeft wRight 他のパラメーターと比較する std::wstring 値です。

cLeft cRight 他のパラメーターと比較する定数 wchar_t の配列へのポインター。

戻り値

true 2 つのパラメーターが互いに等しくない場合は false

operator+ (連結演算子)

2 つのパラメーターを連結した結果、新しい 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);

パラメーター

hLeft hRight 他のパラメーターと連結する hstring 値です。

wLeft wRight 他のパラメーターと連結する std::wstring 値です。

vLeft vRight 他のパラメーターと連結する std::wstring_view 値です。

cLeft cRight 他のパラメーターと連結する定数 wchar_t の配列へのポインター。

scLeft scRight 他のパラメーターと連結する wchar_t を指定します。

戻り値

新しい hstring 2 つのパラメーターを連結した結果のオブジェクトです。

operator< (less-than 演算子)

最初のパラメーターが 2 番目のパラメーターより小さいかどうかを示す値を返します。

構文

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;

パラメーター

hLeft hRight 他のパラメーターと比較する hstring 値です。

wLeft wRight 他のパラメーターと比較する std::wstring 値です。

cLeft cRight 他のパラメーターと比較する定数 wchar_t の配列へのポインター。

戻り値

最初のパラメーターが 2 番目のパラメーターより小さい場合は true。それ以外の場合は false

operator<= (less-than-or-equal-to 演算子)

最初のパラメーターが 2 番目のパラメーター以下かどうかを示す値を返します。

構文

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;

パラメーター

hLeft hRight 他のパラメーターと比較する hstring 値です。

wLeft wRight 他のパラメーターと比較する std::wstring 値です。

cLeft cRight 他のパラメーターと比較する定数 wchar_t の配列へのポインター。

戻り値

最初のパラメーターが 2 番目のパラメーター以下の場合は true。それ以外の場合は false

operator== (等値演算子)

2 つのパラメーターが互いに等しいかどうかを示す値を返します。

構文

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;

パラメーター

hLeft hRight 他のパラメーターと比較する hstring 値です。

wLeft wRight 他のパラメーターと比較する std::wstring 値です。

cLeft cRight 他のパラメーターと比較する定数 wchar_t の配列へのポインター。

戻り値

2 つのパラメーターが互いに等しい場合は true し、それ以外の場合は false

演算子> (より大きい演算子)

最初のパラメーターが 2 番目のパラメーターより大きいかどうかを示す値を返します。

構文

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;

パラメーター

hLeft hRight 他のパラメーターと比較する hstring 値です。

wLeft wRight 他のパラメーターと比較する std::wstring 値です。

cLeft cRight 他のパラメーターと比較する定数 wchar_t の配列へのポインター。

戻り値

最初のパラメーターが 2 番目のパラメーターより大きい場合は true。それ以外の場合は false

operator>= (より大きい演算子または等しい演算子)

最初のパラメーターが 2 番目のパラメーター以上かどうかを示す値を返します。

構文

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;

パラメーター

hLeft hRight 他のパラメーターと比較する hstring 値です。

wLeft wRight 他のパラメーターと比較する std::wstring 値です。

cLeft cRight 他のパラメーターと比較する定数 wchar_t の配列へのポインター。

戻り値

最初のパラメーターが 2 番目のパラメーター以上の場合は true。それ以外の場合は false

関連項目

  • winrt 名前空間 を する
  • C++/WinRT での文字列処理の