Share via


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 文字)。 sourceStringNULL の場合は 0 にする必要があります。 0 より大きい場合、 sourceString には終端の null 文字が必要です。

hstringHeader

種類: [out] HSTRING_HEADER*

文字列を文字列参照として識別するためにWindows ランタイムが使用する構造体へのポインター、または高速パス文字列。

string

型: [out] HSTRING*

新しく作成された文字列へのポインター。エラーが発生した場合は NULL文字列内の既存のコンテンツはすべて上書きされます。 HSTRING は標準ハンドル型です。

戻り値

種類: HRESULT

この関数は、これらの値のいずれかを返すことができます。

リターン コード 説明
S_OK
HSTRING が正常に作成されました。
E_INVALIDARG
string または hstringHeaderNULL であるか、string が null で終わるものではありません。
E_OUTOFMEMORY
新しい HSTRING を割り当てませんでした。
E_POINTER
sourceStringNULL で、 長さは 0 以外です。

注釈

WindowsCreateStringReference 関数を使用して、既存の文字列から HSTRING を作成します。 この種類の HSTRING には 、高速パス文字列という名前が付けられます。 WindowsCreateString 関数によって作成された HSTRING とは異なり、新しい HSTRING 内のバッキング バッファーの有効期間は、Windows ランタイムによって管理されません。 呼び出し元は、ヒープ割り当てを回避し、メモリ リークのリスクを排除するために、初期化されていないHSTRING_HEADERと共に、スタック フレームに sourceString を割り当てます。 呼び出し元は、アタッチされた HSTRING の有効期間中に sourceStringhstringHeader の内容が変更されないようにする必要があります。

WindowsCreateStringReference 関数によって作成された高速パス HSTRING を割り当て解除するために、WindowsDeleteString 関数を呼び出す必要はありません。

空の HSTRING を作成するには、sourceStringNULL長さとして 0 を渡します。

Windows ランタイムは、hstringHeader out パラメーターで返されるHSTRING_HEADER構造体を使用して、高速パス文字列を追跡します。 HSTRING_HEADERの内容は変更しないでください。

要件

   
サポートされている最小のクライアント Windows 8 [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2012 [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー winstring.h

こちらもご覧ください

WindowsCreateString

WindowsDeleteString