WindowsCreateStringReference 関数 (winstring.h)
指定した文字列に基づいて新しい文字列参照を作成します。
構文
HRESULT WindowsCreateStringReference(
PCWSTR sourceString,
UINT32 length,
HSTRING_HEADER *hstringHeader,
HSTRING *string
);
パラメーター
sourceString
種類: [入力] PCWSTR
新しい HSTRING のソースとして使用する null で終わる文字列。
長さの値が 0 の場合、NULL の値は空の文字列を表します。 スタック フレームに割り当てる必要があります。
length
型: [in] UINT32
sourceString の長さ (Unicode 文字)。 sourceString が NULL の場合は 0 にする必要があります。 0 より大きい場合、 sourceString には終端の null 文字が必要です。
hstringHeader
種類: [out] HSTRING_HEADER*
文字列を文字列参照として識別するためにWindows ランタイムが使用する構造体へのポインター、または高速パス文字列。
string
型: [out] HSTRING*
新しく作成された文字列へのポインター。エラーが発生した場合は NULL 。 文字列内の既存のコンテンツはすべて上書きされます。 HSTRING は標準ハンドル型です。
戻り値
種類: HRESULT
この関数は、これらの値のいずれかを返すことができます。
リターン コード | 説明 |
---|---|
|
HSTRING が正常に作成されました。 |
|
string または hstringHeader が NULL であるか、string が null で終わるものではありません。 |
|
新しい HSTRING を割り当てませんでした。 |
|
sourceString は NULL で、 長さは 0 以外です。 |
注釈
WindowsCreateStringReference 関数を使用して、既存の文字列から HSTRING を作成します。 この種類の HSTRING には 、高速パス文字列という名前が付けられます。 WindowsCreateString 関数によって作成された HSTRING とは異なり、新しい HSTRING 内のバッキング バッファーの有効期間は、Windows ランタイムによって管理されません。 呼び出し元は、ヒープ割り当てを回避し、メモリ リークのリスクを排除するために、初期化されていないHSTRING_HEADERと共に、スタック フレームに sourceString を割り当てます。 呼び出し元は、アタッチされた HSTRING の有効期間中に sourceString と hstringHeader の内容が変更されないようにする必要があります。
WindowsCreateStringReference 関数によって作成された高速パス HSTRING を割り当て解除するために、WindowsDeleteString 関数を呼び出す必要はありません。
空の HSTRING を作成するには、sourceString に NULL、長さとして 0 を渡します。
Windows ランタイムは、hstringHeader out パラメーターで返されるHSTRING_HEADER構造体を使用して、高速パス文字列を追跡します。 HSTRING_HEADERの内容は変更しないでください。
要件
サポートされている最小のクライアント | Windows 8 [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2012 [デスクトップ アプリ |UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | winstring.h |