Поделиться через


Класс HString

Вспомогательный класс для управления временем существования HSTRING с помощью шаблона RAII.

Синтаксис

class HString;

Замечания

Среда выполнения Windows предоставляет доступ к строкам через дескриптор HSTRING. Класс HString предоставляет удобные функции и операторы для упрощения использования дескрипторов HSTRING. Этот класс может обрабатывать время существования HSTRING, принадлежающее ему с помощью шаблона RAII.

Участники

Открытые конструкторы

Имя Описание
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::Оболочки

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;

Параметры

Указатель длины на 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 может быть HString объектом или HStringReference дескриптором HSTRING.

rhs
Второй параметр для сравнения.rhs может быть HString объектом или HStringReference дескриптором HSTRING.

Возвращаемое значение

trueЗначение , falseесли параметры lhs и rhs равны; в противном случае .

Оператор 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 может быть HString объектом или HStringReference дескриптором HSTRING.

rhs
Второй параметр для сравнения.rhs может быть HString объектом или HStringReference дескриптором HSTRING.

Возвращаемое значение

trueЗначение />, если параметры lhs и rhs не равны; в противном случае 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
Максимальная длина параметра str , назначенного текущему HString объекту.

hstr
Существующий объект HString.