HString Class
A helper class for managing the lifetime of an HSTRING using the RAII pattern.
Syntax
class HString;
Remarks
The Windows Runtime provides access to strings through HSTRING handles. The HString
class provides convenience functions and operators to simplify using HSTRING handles. This class can handle the lifetime of the HSTRING it owns through an RAII pattern.
Members
Public Constructors
Name | Description |
---|---|
HString::HString | Initializes a new instance of the HString class. |
HString::~HString | Destroys the current instance of the HString class. |
Public Methods
Name | Description |
---|---|
HString::Attach | Associates the specified HString object with the current HString object. |
HString::CopyTo | Copies the current HString object to an HSTRING object. |
HString::Detach | Disassociates the specified HString object from its underlying value. |
HString::Get | Retrieves the value of the underlying HSTRING handle. |
HString::GetAddressOf | Retrieves a pointer to the underlying HSTRING handle. |
HString::GetRawBuffer | Retrieves a pointer to the underlying string data. |
HString::IsValid | Indicates whether the current HString object is valid. |
HString::MakeReference | Creates an HStringReference object from a specified string parameter. |
HString::Release | Deletes the underlying string value and initializes the current HString object to an empty value. |
HString::Set | Sets the value of the current HString object to the specified wide-character string or HString parameter. |
Public Operators
Name | Description |
---|---|
HString::operator= | Moves the value of another HString object to the current HString object. |
HString::operator== | Indicates whether the two parameters are equal. |
HString::operator!= | Indicates whether the two parameters are not equal. |
HString::operator< |
Indicates whether the first parameter is less than the second parameter. |
Inheritance Hierarchy
HString
Requirements
Header: corewrappers.h
Namespace: Microsoft::WRL::Wrappers
HString::~HString
Destroys the current instance of the HString
class.
~HString() throw()
HString::Attach
Associates the specified HString
object with the current HString
object.
void Attach(
HSTRING hstr
) throw()
Parameters
hstr
An existing HString
object.
HString::CopyTo
Copies the current HString
object to an HSTRING object.
HRESULT CopyTo(
_Out_ HSTRING *str
) const throw();
Parameters
str
The HSTRING that receives the copy.
Remarks
This method calls the WindowsDuplicateString function.
HString::Detach
Disassociates the specified HString
object from its underlying value.
HSTRING Detach() throw()
Return Value
The underlying HString
value before the detach operation started.
HString::Get
Retrieves the value of the underlying HSTRING handle.
HSTRING Get() const throw()
Return Value
The value of the underlying HSTRING handle
HString::GetAddressOf
Retrieves a pointer to the underlying HSTRING handle.
HSTRING* GetAddressOf() throw()
Return Value
A pointer to the underlying HSTRING handle.
Remarks
After this operation, the string value of the underlying HSTRING handle is destroyed.
HString::GetRawBuffer
Retrieves a pointer to the underlying string data.
const wchar_t* GetRawBuffer(unsigned int* length) const;
Parameters
length
Pointer to an int
variable that receives the length of the data.
Return Value
A const
pointer to the underlying string data.
HString::HString
Initializes a new instance of the HString
class.
HString() throw();
HString(HString&& other) throw();
Parameters
hstr
An HSTRING handle.
other
An existing HString
object.
Remarks
The first constructor initializes a new HString
object that is empty.
The second constructor initializes a new HString
object to the value of the existing other parameter, and then destroys the other parameter.
HString::IsValid
Indicates whether the current HString
object is empty or not.
bool IsValid() const throw()
Parameters
true
if the current HString
object is not empty; otherwise, false
.
HString::MakeReference
Creates an HStringReference
object from a specified string parameter.
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);
Parameters
sizeDest
A template parameter that specifies the size of the destination HStringReference
buffer.
str
A reference to a wide-character string.
len
The maximum length of the str parameter buffer to use in this operation. If the len parameter isn't specified, the entire str parameter is used.
Return Value
An HStringReference
object whose value is the same as the specified str parameter.
HString::operator= Operator
Moves the value of another HString
object to the current HString
object.
HString& operator=(HString&& other) throw()
Parameters
other
An existing HString
object.
Remarks
The value of the existing other object is copied to the current HString
object, and then the other object is destroyed.
HString::operator== Operator
Indicates whether the two parameters are equal.
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()
Parameters
lhs
The first parameter to compare. lhs can be an HString
or HStringReference
object, or an HSTRING handle.
rhs
The second parameter to compare.rhs can be an HString
or HStringReference
object, or an HSTRING handle.
Return Value
true
if the lhs and rhs parameters are equal; otherwise, false
.
HString::operator!= Operator
Indicates whether the two parameters are not equal.
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()
Parameters
lhs
The first parameter to compare. lhs can be an HString
or HStringReference
object, or an HSTRING handle.
rhs
The second parameter to compare.rhs can be an HString
or HStringReference
object, or an HSTRING handle.
Return Value
true
if the lhs and rhs parameters are not equal; otherwise, false
.
HString::operator<
Operator
Indicates whether the first parameter is less than the second parameter.
inline bool operator<(
const HString& lhs,
const HString& rhs) throw()
Parameters
lhs
The first parameter to compare. lhs can be a reference to an HString
.
rhs
The second parameter to compare. rhs can be a reference to an HString
.
Return Value
true
if the lhs parameter is less than the rhs parameter; otherwise, false
.
HString::Release
Deletes the underlying string value and intializes the current HString
object to an empty value.
void Release() throw()
HString::Set
Sets the value of the current HString
object to the specified wide-character string or HString
parameter.
HRESULT Set(
const wchar_t* str) throw();
HRESULT Set(
const wchar_t* str,
unsigned int len
) throw();
HRESULT Set(
const HSTRING& hstr
) throw();
Parameters
str
A wide-character string.
len
The maximum length of the str parameter that is assigned to the current HString
object.
hstr
An existing HString
object.