WindowsPromoteStringBuffer 関数 (winstring.h)
指定したHSTRING_BUFFERから HSTRING を作成します。
構文
HRESULT WindowsPromoteStringBuffer(
HSTRING_BUFFER bufferHandle,
HSTRING *string
);
パラメーター
bufferHandle
種類: [入力] HSTRING_BUFFER
新しい HSTRING に使用するバッファー。 HSTRING_BUFFERを作成するには、WindowsPreallocateStringBuffer 関数を使用する必要があります。
string
型: [out] HSTRING*
bufferHandle の内容を含む新しく作成された HSTRING。
戻り値
種類: HRESULT
この関数は、これらの値のいずれかを返すことができます。
リターン コード | 説明 |
---|---|
|
HSTRING が正常に作成されました。 |
|
string は NULL です。 |
|
bufferHandle が WindowsPreallocateStringBuffer 関数を呼び出して作成されなかったか、呼び出し元が bufferHandle で終端の NULL 文字を上書きしました。 |
注釈
WindowsPromoteStringBuffer 関数を使用して、HSTRING_BUFFERから新しい HSTRING を作成します。 WindowsPromoteStringBuffer 関数を呼び出すと、変更可能なバッファーが変更できない HSTRING に変換されます。 WindowsPreallocateStringBuffer 関数を使用して、HSTRING_BUFFERを作成します。
WindowsPromoteStringBuffer 呼び出しが失敗した場合は、WindowsDeleteStringBuffer 関数を呼び出して、変更可能なバッファーを破棄できます。
WindowsPromoteStringBuffer 関数の各呼び出しは、WindowsDeleteString の対応する呼び出しと一致する必要があります。
例
次のコード例では、 WindowsPromoteStringBuffer 関数の使用方法を示します。
#include <winstring.h>
int main()
{
HSTRING hString = NULL;
HSTRING_BUFFER hStringBuffer = NULL;
PWSTR strBuffer = NULL;
HRESULT hr = WindowsPreallocateStringBuffer(10, &strBuffer, &hStringBuffer);
if (SUCCEEDED(hr))
{
// Fill in the buffer
hr = WindowsPromoteStringBuffer(hStringBuffer, &hString);
if (SUCCEEDED(hr))
{
WindowsDeleteString(hString);
}
else
{
WindowsDeleteStringBuffer(hStringBuffer);
}
}
}
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8 [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2012 [デスクトップ アプリ |UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | winstring.h |
Library | RuntimeObject.lib |
[DLL] | ComBase.dll |