Struct winrt::hstring (C++/WinRT)

Raccolta sequenziale di caratteri Unicode UTF-16 che rappresentano una stringa di testo. Per altri esempi e info su winrt::hstring, vedi Gestione delle stringhe in C++/WinRT.

Il tipo winrt::hstring incapsula HSTRING dietro un'interfaccia simile a quella di std::wstring. HSTRING è un handle per una stringa Windows Runtime. Per informazioni su come impostare un HSTRING in winrt::hstring e su come eseguire di nuovo la ripetizione di un HSTRING da winrt::hstring, vedi Interoperabilità con HSTRING dell'ABI.

Sintassi

struct hstring

Requisiti

SDK minimo supportato: Windows SDK versione 10.0.17134.0 (Windows 10, versione 1803)

Spazio dei nomi: winrt

Intestazione: %WindowsSdkDir%Include<WindowsTargetPlatformVersion>\cppwinrt\winrt\base.h (incluso per impostazione predefinita)

Alias del tipo di membro

Nome alias Tipo
hstring::value_type Sinonimo di wchar_t.
hstring::size_type Sinonimo di uint32_t.
hstring::const_reference Sinonimo di hstring::value_type const&.
hstring::const_pointer Sinonimo di hstring::value_type const*.
hstring::const_iterator Sinonimo di hstring::const_pointer.
hstring::const_reverse_iterator Sinonimo di std::reverse_iterator<hstring::const_iterator>.

Costruttori

Costruttore Descrizione
Costruttore hstring::hstring Inizializza una nuova istanza dello struct hstring con una copia dei dati della stringa di input.

Funzioni membro

Funzione Descrizione
Funzione hstring::back Restituisce un riferimento all'ultimo carattere nell'oggetto hstring .
Funzione hstring::begin Restituisce un iteratore const al primo carattere dell'oggetto hstring .
funzione hstring::c_str Restituisce un puntatore alla stringa C con terminazione Null sottostante dei caratteri nell'oggetto hstring ; non viene eseguita alcuna copia.
Funzione hstring::cbegin Restituisce un iteratore const al primo carattere dell'oggetto hstring .
Funzione hstring::cend Restituisce un iteratore const a uno oltre la fine di (uno oltre l'ultimo carattere in) dell'oggetto hstring .
funzione hstring::clear Rende vuoto l'oggetto hstring .
Funzione hstring::crbegin Restituisce un iteratore inverso const a uno oltre la fine di (uno oltre l'ultimo carattere in) dell'oggetto hstring .
Funzione hstring::crend Restituisce un iteratore inverso const al primo carattere dell'oggetto hstring .
funzione hstring::d ata Restituisce una versione stringa di tipo C con terminazione Null dei caratteri nell'oggetto hstring .
funzione hstring::empty Restituisce un valore che indica se l'oggetto hstring è vuoto.
Funzione hstring::end Restituisce un iteratore const a uno oltre la fine di (uno oltre l'ultimo carattere in) dell'oggetto hstring .
funzione hstring::front Restituisce un riferimento al primo carattere nell'oggetto hstring .
Funzione hstring::rbegin Restituisce un iteratore inverso const a uno oltre la fine di (uno oltre l'ultimo carattere in) dell'oggetto hstring .
Funzione hstring::rend Restituisce un iteratore inverso const al primo carattere dell'oggetto hstring .
Funzione hstring::size Restituisce il numero di caratteri nell'oggetto hstring .

Operatori membri

Operatore Descrizione
hstring::operator std::wstring_view Converte l'oggetto hstring in un std::wstring_view.
hstring::operator[] (operatore di indice)) Restituisce un riferimento al carattere in corrispondenza della posizione specificata all'interno dell'oggetto hstring .
hstring::operator= (operatore di assegnazione) Assegna un valore all'oggetto hstring .

Funzioni gratuite

Funzione Descrizione
Funzione attach_abi Collega un oggetto hstring a un handle a una stringa Windows Runtime.
Funzione copy_from_abi Copia in un oggetto hstring da un handle a una stringa Windows Runtime. Cancella hstring, copia il parametro e inizia a gestire l'handle.
Funzione copy_to_abi Copia in un handle in una stringa Windows Runtime da un oggetto hstring.
Funzione detach_abi Scollega un oggetto hstring dal relativo handle, ad esempio per restituirlo a un chiamante.
Funzione to_hstring Converte un valore di input in winrt::hstring contenente la rappresentazione di stringa del valore.

Operatori gratuiti

Operatore Descrizione
operator!= (operatore di disuguaglianza) Restituisce un valore che indica se i due parametri non sono uguali l'uno all'altro.
operator+ (operatore di concatenazione) Restituisce un nuovo oggetto hstring risultante dalla concatenazione dei due parametri.
operator (operatore< less-than) Restituisce un valore che indica se il primo parametro è minore del secondo parametro.
operator<= (operatore minore o uguale a) Restituisce un valore che indica se il primo parametro è minore o uguale al secondo parametro.
operator== (operatore di uguaglianza) Restituisce un valore che indica se i due parametri sono uguali tra loro.
operatore (operatore> maggiore di) Restituisce un valore che indica se il primo parametro è maggiore del secondo parametro.
operator>= (operatore maggiore o uguale a) Restituisce un valore che indica se il primo parametro è maggiore o uguale al secondo parametro.

Iterators

Un hstring è un intervallo e tale intervallo è definito dalle funzioni hstring::begin e hstring ::end member, ognuna delle quali restituisce un iteratore const (come do hstring::cbegin e hstring :: cend). A causa di questo, è possibile enumerare i caratteri in un oggetto hstring con un'istruzione basata su for intervallo o con la funzione modello std::for_each .

#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; });
}

Costruttore hstring::hstring

Inizializza una nuova istanza dello struct hstring con una copia dei dati della stringa di input.

Sintassi

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);

Parametri

h Valore hstring che inizializza l'oggetto hstring .

v Valore std::wstring_view che inizializza l'oggetto hstring .

c Puntatore a una matrice di costanti wchar_t che inizializza l'oggetto hstring .

s Numero che specifica una dimensione fissa per l'oggetto hstring .

Esempio

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 };
}

funzione hstring::back

Restituisce un riferimento all'ultimo carattere nell'oggetto hstring .

Sintassi

wchar_t const& back() const noexcept;

Valore restituito

Riferimento all'ultimo carattere nell'oggetto hstring .

funzione hstring::begin

Restituisce un iteratore const al primo carattere nell'oggetto hstring . Vedere Iteratori.

Sintassi

wchar_t const* begin() const noexcept;

Valore restituito

Iteratore const al primo carattere nell'oggetto hstring .

funzione hstring::c_str

Restituisce un puntatore alla stringa di stile C con terminazione null sottostante dei caratteri nell'oggetto hstring ; non viene eseguita alcuna copia.

Sintassi

wchar_t const* c_str() const noexcept;

Valore restituito

Puntatore alla stringa C con terminazione null sottostante dei caratteri nell'oggetto hstring ; non viene eseguita alcuna copia.

Esempio

#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;
}

funzione hstring::cbegin

Restituisce un iteratore const al primo carattere nell'oggetto hstring . Vedere Iteratori.

Sintassi

wchar_t const* cbegin() const noexcept;

Valore restituito

Iteratore const al primo carattere nell'oggetto hstring .

funzione hstring::cend

Restituisce un iteratore const a uno oltre la fine di (uno oltre l'ultimo carattere in) dell'oggetto hstring . Vedere Iteratori.

Sintassi

wchar_t const* cend() const noexcept;

Valore restituito

Un iteratore const a uno oltre la fine di (uno oltre l'ultimo carattere in) l'oggetto hstring .

funzione hstring::clear

Rende vuoto l'oggetto hstring .

Sintassi

void clear() noexcept;

funzione hstring::crbegin

Restituisce un iteratore inverso const a uno oltre la fine di (uno oltre l'ultimo carattere in) dell'oggetto hstring .

Sintassi

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

Valore restituito

Iteratore inverso const a uno oltre la fine di (uno oltre l'ultimo carattere in) l'oggetto hstring .

funzione hstring::crend

Restituisce un iteratore inverso const al primo carattere nell'oggetto hstring .

Sintassi

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

Valore restituito

Iteratore inverso const al primo carattere nell'oggetto hstring .

funzione hstring::d ata

Restituisce una versione stringa di tipo C con terminazione null dei caratteri nell'oggetto hstring .

Sintassi

wchar_t const* data() const noexcept;

Valore restituito

Versione stringa con terminazione null dei caratteri nell'oggetto hstring .

Esempio

#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;
}

funzione hstring::empty

Restituisce un valore che indica se l'oggetto hstring è vuoto.

Sintassi

bool empty() const noexcept;

Valore restituito

true se l'oggetto hstring è vuoto, in caso contrario false.

funzione hstring::end

Restituisce un iteratore const a uno oltre la fine di (uno oltre l'ultimo carattere in) dell'oggetto hstring . Vedere Iteratori.

Sintassi

wchar_t const* end() const noexcept;

Valore restituito

Un iteratore const a uno oltre la fine di (uno oltre l'ultimo carattere in) l'oggetto hstring .

funzione hstring::front

Restituisce un riferimento al primo carattere nell'oggetto hstring .

Sintassi

wchar_t const& front() const noexcept;

Valore restituito

Riferimento al primo carattere nell'oggetto hstring .

hstring::operator std::wstring_view

Converte l'oggetto hstring in uno std::wstring_view.

Sintassi

operator std::wstring_view() const noexcept;

Valore restituito

Oggetto hstring convertito in std::wstring_view.

Esempio

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[] (operatore di codice)

Restituisce un riferimento al carattere nella posizione specificata all'interno dell'oggetto hstring .

Sintassi

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

Parametri

pos Posizione di carattere in base zero o indice.

Valore restituito

Riferimento al carattere nella posizione specificata all'interno dell'oggetto hstring .

hstring::operator= (operatore di assegnazione)

Assegna un valore all'oggetto hstring .

Sintassi

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

Parametri

h Valore hstring da assegnare all'oggetto hstring .

v Valore std::wstring_view da assegnare all'oggetto hstring .

Valore restituito

Riferimento all'oggetto hstring .

Funzione hstring::rbegin

Restituisce un iteratore inverso const a uno oltre la fine di (uno oltre l'ultimo carattere in) dell'oggetto hstring .

Sintassi

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

Valore restituito

Iteratore inverso const a uno oltre la fine di (uno oltre l'ultimo carattere in) dell'oggetto hstring .

Funzione hstring::rend

Restituisce un iteratore inverso const al primo carattere dell'oggetto hstring .

Sintassi

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

Valore restituito

Iteratore inverso const al primo carattere dell'oggetto hstring .

Funzione hstring::size

Restituisce il numero di caratteri nell'oggetto hstring .

Sintassi

uint32_t size() const noexcept;

Valore restituito

Oggetto uint32_t contenente il numero di caratteri nell'oggetto hstring .

Funzione attach_abi

Collega un oggetto hstring a un handle a una stringa Windows Runtime.

Sintassi

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

Parametri

object Oggetto hstring su cui operare.

valueHandle a una stringa Windows Runtime.

Funzione copy_from_abi

Copia in un oggetto hstring da un handle a una stringa Windows Runtime. Cancella hstring, copia il parametro e inizia a gestire l'handle.

Sintassi

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

Parametri

object Oggetto hstring su cui operare.

valueHandle a una stringa Windows Runtime.

Funzione copy_to_abi

Copia in un handle in una stringa Windows Runtime da un oggetto hstring.

Sintassi

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

Parametri

object Oggetto hstring su cui operare.

value Riferimento handle, tramite il quale copiare l'handle di hstring.

Funzione detach_abi

Scollega un oggetto hstring dal relativo handle, ad esempio per restituirlo a un chiamante.

Sintassi

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

Parametri

object Oggetto hstring su cui operare.

Valore restituito

Handle della stringa Windows Runtime.

operator!= (operatore di disuguaglianza)

Restituisce un valore che indica se i due parametri non sono uguali l'uno all'altro.

Sintassi

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;

Parametri

hLefthRight Valore hstring da confrontare con l'altro parametro.

wLeftwRight Valore std::wstring da confrontare con l'altro parametro.

cLeftcRight Puntatore a una matrice di costanti wchar_t da confrontare con l'altro parametro.

Valore restituito

true se i due parametri sono diversi l'uno dall'altro, in caso contrario false.

operator+ (operatore di concatenazione)

Restituisce un nuovo oggetto hstring risultante dalla concatenazione dei due parametri.

Sintassi

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);

Parametri

hLefthRight Valore hstring da concatenare con l'altro parametro.

wLeftwRight Valore std::wstring da concatenare con l'altro parametro.

vLeftvRight Valore std::wstring_view da concatenare con l'altro parametro.

cLeftcRight Puntatore a una matrice di wchar_t costante da concatenare con l'altro parametro.

scLeftscRight Oggetto wchar_t da concatenare con l'altro parametro.

Valore restituito

Nuovo oggetto hstring risultante dalla concatenazione dei due parametri.

operator (operatore< less-than)

Restituisce un valore che indica se il primo parametro è minore del secondo parametro.

Sintassi

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;

Parametri

hLefthRight Valore hstring da confrontare con l'altro parametro.

wLeftwRight Valore std::wstring da confrontare con l'altro parametro.

cLeftcRight Puntatore a una matrice di costanti wchar_t da confrontare con l'altro parametro.

Valore restituito

true se il primo parametro è minore del secondo parametro; in caso contrario false, .

operator<= (operatore minore o uguale a)

Restituisce un valore che indica se il primo parametro è minore o uguale al secondo parametro.

Sintassi

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;

Parametri

hLefthRight Valore hstring da confrontare con l'altro parametro.

wLeftwRight Valore std::wstring da confrontare con l'altro parametro.

cLeftcRight Puntatore a una matrice di costanti wchar_t da confrontare con l'altro parametro.

Valore restituito

true se il primo parametro è minore o uguale al secondo parametro; in caso contrario false, .

operator== (operatore di uguaglianza)

Restituisce un valore che indica se i due parametri sono uguali l'uno all'altro.

Sintassi

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;

Parametri

hLefthRight Valore hstring da confrontare con l'altro parametro.

wLeftwRight Valore std::wstring da confrontare con l'altro parametro.

cLeftcRight Puntatore a una matrice di costanti wchar_t da confrontare con l'altro parametro.

Valore restituito

true se i due parametri sono uguali l'uno all'altro; in caso contrario false, .

operatore (operatore> maggiore di)

Restituisce un valore che indica se il primo parametro è maggiore del secondo parametro.

Sintassi

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;

Parametri

hLefthRight Valore hstring da confrontare con l'altro parametro.

wLeftwRight Valore std::wstring da confrontare con l'altro parametro.

cLeftcRight Puntatore a una matrice di costanti wchar_t da confrontare con l'altro parametro.

Valore restituito

true se il primo parametro è maggiore del secondo parametro; in caso contrario false, .

operator>= (operatore maggiore o uguale a)

Restituisce un valore che indica se il primo parametro è maggiore o uguale al secondo parametro.

Sintassi

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;

Parametri

hLefthRight Valore hstring da confrontare con l'altro parametro.

wLeftwRight Valore std::wstring da confrontare con l'altro parametro.

cLeftcRight Puntatore a una matrice di costanti wchar_t da confrontare con l'altro parametro.

Valore restituito

true se il primo parametro è maggiore o uguale al secondo parametro; in caso contrario false, .

Vedi anche