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

Uma coleção sequencial de caracteres Unicode UTF-16 que representam uma cadeia de caracteres de texto. Para obter mais exemplos e informações sobre winrt::hstring, consulte Tratamento de cadeia de caracteres em C++/WinRT.

O tipo winrt::hstring encapsula HSTRING atrás de uma interface semelhante à de std::wstring. Um HSTRING é um identificador para uma cadeia de caracteres de Windows Runtime. Para obter informações sobre como definir um HSTRING em um winrt::hstring e como rertrieve um HSTRING de um winrt::hstring, consulte Interoperando com o HSTRING da ABI.

Syntax

struct hstring

Requisitos

SDK mínimo com suporte: Windows SDK versão 10.0.17134.0 (Windows 10, versão 1803)

Namespace: winrt

Cabeçalho: %WindowsSdkDir%Include<WindowsTargetPlatformVersion>\cppwinrt\winrt\base.h (incluído por padrão)

Aliases de tipo de membro

Nome do alias Tipo
hstring::value_type Um sinônimo de wchar_t.
hstring::size_type Um sinônimo de uint32_t.
hstring::const_reference Um sinônimo de hstring::value_type const&.
hstring::const_pointer Um sinônimo de hstring::value_type const*.
hstring::const_iterator Um sinônimo de hstring::const_pointer.
hstring::const_reverse_iterator Um sinônimo de std::reverse_iterator<hstring::const_iterator>.

Construtores

Construtor Descrição
Construtor hstring::hstring Inicializa uma nova instância do struct hstring com uma cópia dos dados da cadeia de caracteres de entrada.

Funções de membro

Função Descrição
Função hstring::back Retorna uma referência ao último caractere no objeto hstring .
Função hstring::begin Retorna um iterador const para o primeiro caractere no objeto hstring .
Função hstring::c_str Retorna um ponteiro para a cadeia de caracteres de estilo C terminada em nulo subjacente dos caracteres no objeto hstring ; nenhuma cópia é feita.
Função hstring::cbegin Retorna um iterador const para o primeiro caractere no objeto hstring .
Função hstring::cend Retorna um iterador const para um além do final de (um além do último caractere em) do objeto hstring .
Função hstring::clear Torna o objeto hstring vazio.
Função hstring::crbegin Retorna um iterador reverso const para um além do final de (um além do último caractere em) do objeto hstring .
Função hstring::crend Retorna um iterador reverso const para o primeiro caractere no objeto hstring .
Função hstring::d ata Retorna uma versão de cadeia de caracteres de estilo C terminada em nulo dos caracteres no objeto hstring .
Função hstring::empty Retorna um valor que indica se o objeto hstring está vazio.
Função hstring::end Retorna um iterador const para um além do final de (um além do último caractere em) do objeto hstring .
Função hstring::front Retorna uma referência ao primeiro caractere no objeto hstring .
Função hstring::rbegin Retorna um iterador reverso const para um além do final de (um além do último caractere em) do objeto hstring .
Função hstring::rend Retorna um iterador reverso const para o primeiro caractere no objeto hstring .
Função hstring::size Retorna o número de caracteres no objeto hstring .

Operadores membro

Operador Descrição
hstring::operator std::wstring_view Converte o objeto hstring em um std::wstring_view.
hstring::operator[] (operador subscrito)) Retorna uma referência ao caractere na posição especificada dentro do objeto hstring .
hstring::operator= (operador de atribuição) Atribui um valor ao objeto hstring .

Funções gratuitas

Função Descrição
função attach_abi Anexa um objeto hstring a um identificador a uma cadeia de caracteres Windows Runtime.
função copy_from_abi Copia para um objeto hstring de um identificador para uma cadeia de caracteres Windows Runtime. Limpa o hstring, copia o parâmetro e começa a gerenciar o identificador.
função copy_to_abi Copia para um identificador para uma cadeia de caracteres Windows Runtime de um objeto hstring.
função detach_abi Desanexa um objeto hstring de seu identificador, talvez para devolvê-lo a um chamador.
função to_hstring Converte um valor de entrada em um winrt::hstring que contém a representação de cadeia de caracteres do valor.

Operadores gratuitos

Operador Descrição
operator!= (operador de desigualdade) Retorna um valor que indica se os dois parâmetros são diferentes um do outro.
operator+ (operador de concatenação) Retorna um novo objeto hstring resultante da concatenação dos dois parâmetros juntos.
operador< (operador menor que) Retorna um valor que indica se o primeiro parâmetro é menor que o segundo parâmetro.
operator<= (operador menor que ou igual a) Retorna um valor que indica se o primeiro parâmetro é menor ou igual ao segundo parâmetro.
operator== (operador de igualdade) Retorna um valor que indica se os dois parâmetros são iguais um ao outro.
operador> (operador maior que) Retorna um valor que indica se o primeiro parâmetro é maior que o segundo parâmetro.
operator>= (operador maior que ou igual a) Retorna um valor que indica se o primeiro parâmetro é maior ou igual ao segundo parâmetro.

Iterators

Uma hstring é um intervalo e esse intervalo é definido pelas funções de membro hstring::begin e hstring::end , cada uma das quais retorna um iterador const (assim como hstring::cbegin e hstring::cend). Por isso, você pode enumerar os caracteres em um objeto hstring com uma instrução baseada em for intervalo ou com a função de modelo 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; });
}

Construtor hstring::hstring

Inicializa uma nova instância do struct hstring com uma cópia dos dados da cadeia de caracteres de entrada.

Sintaxe

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

Parâmetros

h Um valor hstring que inicializa o objeto hstring .

v Um valor std::wstring_view que inicializa o objeto hstring .

c Um ponteiro para uma matriz de wchar_t constante que inicializa o objeto hstring .

s Um número que especifica um tamanho fixo para o objeto hstring .

Exemplo

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

Função hstring::back

Retorna uma referência ao último caractere no objeto hstring .

Sintaxe

wchar_t const& back() const noexcept;

Retornar valor

Uma referência ao último caractere no objeto hstring .

Função hstring::begin

Retorna um iterador const para o primeiro caractere no objeto hstring . Consulte Iteradores.

Sintaxe

wchar_t const* begin() const noexcept;

Retornar valor

Um iterador const para o primeiro caractere no objeto hstring .

Função hstring::c_str

Retorna um ponteiro para a cadeia de caracteres de estilo C terminada em nulo subjacente dos caracteres no objeto hstring ; nenhuma cópia é feita.

Sintaxe

wchar_t const* c_str() const noexcept;

Retornar valor

Um ponteiro para a cadeia de caracteres de estilo C terminada em nulo subjacente dos caracteres no objeto hstring ; nenhuma cópia é feita.

Exemplo

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

Função hstring::cbegin

Retorna um iterador const para o primeiro caractere no objeto hstring . Consulte Iteradores.

Sintaxe

wchar_t const* cbegin() const noexcept;

Retornar valor

Um iterador const para o primeiro caractere no objeto hstring .

Função hstring::cend

Retorna um iterador const para um além do final de (um além do último caractere em) do objeto hstring . Consulte Iteradores.

Sintaxe

wchar_t const* cend() const noexcept;

Retornar valor

Um iterador const para um além do final de (um além do último caractere em) do objeto hstring .

Função hstring::clear

Torna o objeto hstring vazio.

Syntax

void clear() noexcept;

Função hstring::crbegin

Retorna um iterador inverso const para um além do final de (um além do último caractere em) do objeto hstring .

Sintaxe

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

Retornar valor

Um iterador inverso const para um além do final de (um além do último caractere em) do objeto hstring .

Função hstring::crend

Retorna um iterador inverso const para o primeiro caractere no objeto hstring .

Sintaxe

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

Retornar valor

Um iterador inverso const para o primeiro caractere no objeto hstring .

Função hstring::d ata

Retorna uma versão de cadeia de caracteres de estilo C terminada em nulo dos caracteres no objeto hstring .

Sintaxe

wchar_t const* data() const noexcept;

Retornar valor

Uma versão de cadeia de caracteres de estilo C terminada em nulo dos caracteres no objeto hstring .

Exemplo

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

Função hstring::empty

Retorna um valor que indica se o objeto hstring está vazio.

Sintaxe

bool empty() const noexcept;

Retornar valor

true se o objeto hstring estiver vazio, caso contrário false, .

Função hstring::end

Retorna um iterador const para um além do final de (um além do último caractere em) do objeto hstring . Consulte Iteradores.

Sintaxe

wchar_t const* end() const noexcept;

Retornar valor

Um iterador const para um além do final de (um além do último caractere em) do objeto hstring .

Função hstring::front

Retorna uma referência ao primeiro caractere no objeto hstring .

Sintaxe

wchar_t const& front() const noexcept;

Retornar valor

Uma referência ao primeiro caractere no objeto hstring .

hstring::operator std::wstring_view

Converte o objeto hstring em um std::wstring_view.

Sintaxe

operator std::wstring_view() const noexcept;

Retornar valor

O objeto hstring convertido em um std::wstring_view.

Exemplo

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[] (operador subscrito)

Retorna uma referência ao caractere na posição especificada dentro do objeto hstring .

Sintaxe

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

Parâmetros

pos Uma posição de caractere baseada em zero ou um índice.

Retornar valor

Uma referência ao caractere na posição especificada dentro do objeto hstring .

hstring::operator= (operador de atribuição)

Atribui um valor ao objeto hstring .

Sintaxe

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

Parâmetros

h Um valor hstring a ser atribuído ao objeto hstring .

v Um valor std::wstring_view a ser atribuído ao objeto hstring .

Retornar valor

Uma referência ao objeto hstring .

Função hstring::rbegin

Retorna um iterador inverso const para um além do final de (um além do último caractere em) do objeto hstring .

Sintaxe

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

Retornar valor

Um iterador inverso const para um além do final de (um além do último caractere em) do objeto hstring .

Função hstring::rend

Retorna um iterador inverso const para o primeiro caractere no objeto hstring .

Sintaxe

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

Retornar valor

Um iterador inverso const para o primeiro caractere no objeto hstring .

Função hstring::size

Retorna o número de caracteres no objeto hstring .

Sintaxe

uint32_t size() const noexcept;

Retornar valor

Um uint32_t que contém o número de caracteres no objeto hstring .

função attach_abi

Anexa um objeto hstring a um identificador a uma cadeia de caracteres Windows Runtime.

Sintaxe

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

Parâmetros

object Um objeto hstring no qual operar.

valueUm identificador para uma cadeia de caracteres Windows Runtime.

função copy_from_abi

Copia para um objeto hstring de um identificador para uma cadeia de caracteres Windows Runtime. Limpa o hstring, copia o parâmetro e começa a gerenciar o identificador.

Sintaxe

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

Parâmetros

object Um objeto hstring no qual operar.

valueUm identificador para uma cadeia de caracteres Windows Runtime.

função copy_to_abi

Copia para um identificador para uma cadeia de caracteres Windows Runtime de um objeto hstring.

Sintaxe

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

Parâmetros

object Um objeto hstring no qual operar.

value Uma referência de identificador, por meio da qual copiar o identificador do hstring.

função detach_abi

Desanexa um objeto hstring de seu identificador, talvez para devolvê-lo a um chamador.

Sintaxe

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

Parâmetros

object Um objeto hstring no qual operar.

Retornar valor

O identificador para a cadeia de caracteres Windows Runtime.

operator!= (operador de desigualdade)

Retorna um valor que indica se os dois parâmetros são diferentes um do outro.

Sintaxe

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;

Parâmetros

hLefthRight Um valor hstring a ser comparado com o outro parâmetro.

wLeftwRight Um std::wstring valor a ser comparado com o outro parâmetro.

cLeftcRight Um ponteiro para uma matriz de wchar_t constantes a serem comparadas com o outro parâmetro.

Retornar valor

true se os dois parâmetros forem diferentes um do outro, caso contrário false, .

operator+ (operador de concatenação)

Retorna um novo objeto hstring resultante da concatenação dos dois parâmetros juntos.

Sintaxe

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

Parâmetros

hLefthRight Um valor hstring para concatenar com o outro parâmetro.

wLeftwRight Um std::wstring valor a ser concatenar com o outro parâmetro.

vLeftvRight Um valor std::wstring_view para concatenar com o outro parâmetro.

cLeftcRight Um ponteiro para uma matriz de wchar_t constantes para concatenar com o outro parâmetro.

scLeftscRight Um wchar_t para concatenar com o outro parâmetro.

Retornar valor

Um novo objeto hstring resultante da concatenação dos dois parâmetros juntos.

operador< (operador menor que)

Retorna um valor que indica se o primeiro parâmetro é menor que o segundo parâmetro.

Sintaxe

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;

Parâmetros

hLefthRight Um valor hstring a ser comparado com o outro parâmetro.

wLeftwRight Um std::wstring valor a ser comparado com o outro parâmetro.

cLeftcRight Um ponteiro para uma matriz de wchar_t constantes a serem comparadas com o outro parâmetro.

Retornar valor

true se o primeiro parâmetro for menor que o segundo parâmetro, caso contrário false, .

operator<= (operador less-than-or-equal-to)

Retorna um valor que indica se o primeiro parâmetro é menor ou igual ao segundo parâmetro.

Sintaxe

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;

Parâmetros

hLefthRight Um valor hstring a ser comparado com o outro parâmetro.

wLeftwRight Um std::wstring valor a ser comparado com o outro parâmetro.

cLeftcRight Um ponteiro para uma matriz de wchar_t constantes a serem comparadas com o outro parâmetro.

Retornar valor

true se o primeiro parâmetro for menor ou igual ao segundo parâmetro, caso contrário false, .

operator== (operador de igualdade)

Retorna um valor que indica se os dois parâmetros são iguais um ao outro.

Sintaxe

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;

Parâmetros

hLefthRight Um valor hstring a ser comparado com o outro parâmetro.

wLeftwRight Um std::wstring valor a ser comparado com o outro parâmetro.

cLeftcRight Um ponteiro para uma matriz de wchar_t constantes a serem comparadas com o outro parâmetro.

Retornar valor

true se os dois parâmetros forem iguais um ao outro, caso contrário false, .

operador> (operador maior que)

Retorna um valor que indica se o primeiro parâmetro é maior que o segundo parâmetro.

Sintaxe

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;

Parâmetros

hLefthRight Um valor hstring a ser comparado com o outro parâmetro.

wLeftwRight Um std::wstring valor a ser comparado com o outro parâmetro.

cLeftcRight Um ponteiro para uma matriz de wchar_t constantes a serem comparadas com o outro parâmetro.

Retornar valor

true se o primeiro parâmetro for maior que o segundo parâmetro, caso contrário false, .

operator>= (operador maior que ou igual a)

Retorna um valor que indica se o primeiro parâmetro é maior ou igual ao segundo parâmetro.

Sintaxe

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;

Parâmetros

hLefthRight Um valor hstring a ser comparado com o outro parâmetro.

wLeftwRight Um std::wstring valor a ser comparado com o outro parâmetro.

cLeftcRight Um ponteiro para uma matriz de wchar_t constantes a serem comparadas com o outro parâmetro.

Retornar valor

true se o primeiro parâmetro for maior ou igual ao segundo parâmetro, caso contrário false, .

Confira também