指定した文字列に基づいて新しい文字列参照を作成します。
構文
HRESULT WindowsCreateStringReference(
PCWSTR sourceString,
UINT32 length,
HSTRING_HEADER *hstringHeader,
HSTRING *string
);
パラメーター
sourceString
型: [in] PCWSTR
新しい HSTRING のソースとして使用する null で終わる文字列。
長さの値が 0 の場合、NULL の値は空の文字列を表します。 スタック フレームに割り当てる必要があります。
length
型: [in] UINT32
Unicode 文字での sourceString の長さ。 sourceString が NULL の場合は 0 にする必要があります。 0 より大きい場合、 sourceString には終端の null 文字が必要です。
hstringHeader
型: [out] HSTRING_HEADER*
文字列を文字列参照または高速パス 文字列 として識別するために Windows ランタイムが使用する構造体へのポインター。
string
型: [out] HSTRING*
新しく作成された文字列へのポインター。エラーが発生した場合は NULL 。 文字列内の既存のコンテンツはすべて上書きされます。 HSTRING は標準ハンドル型です。
戻り値
型: HRESULT
この関数は、これらの値のいずれかを返すことができます。
| リターン コード | Description |
|---|---|
|
HSTRING が正常に作成されました。 |
|
文字列または hstringHeader が NULL であるか、文字列が 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の内容は変更しないでください。
Requirements
| Requirement | 価値 |
|---|---|
| サポートされる最小クライアント | Windows 8 [デスクトップ アプリ |UWP アプリ] |
| サポートされている最小のサーバー | Windows Server 2012 [デスクトップ アプリ |UWP アプリ] |
| ターゲット プラットフォーム の | ウィンドウズ |
| Header | winstring.h |
| Library | mincore.lib |
こちらも参照ください
WindowsDeleteString の