WindowsPreallocateStringBuffer 函式 (winstring.h)
配置可變字元緩衝區,以用於 HSTRING 建立。
語法
HRESULT WindowsPreallocateStringBuffer(
UINT32 length,
WCHAR **charBuffer,
HSTRING_BUFFER *bufferHandle
);
參數
length
類型: [in] UINT32
要配置的緩衝區大小。 零的值會對應至空字串。
charBuffer
類型: [out] WCHAR**
保存字元的可變動緩衝區。 請注意,緩衝區已經包含終止 的NULL 字元。
bufferHandle
類型: [out] HSTRING_BUFFER*
預先配置字串緩衝區,如果長度為0,則為NULL。
傳回值
類型: HRESULT
此函式可以傳回其中一個值。
傳回碼 | 描述 |
---|---|
|
已成功建立 HSTRING。 |
|
mutableBuffer 或 bufferHandle 為 NULL。 |
|
要求的 HSTRING 配置大小太大。 |
|
無法配置 HSTRING。 |
備註
使用 WindowsPreallocateStringBuffer 函式來建立可變字元緩衝區,您可以在將它認可至不可變 的 HSTRING 之前加以操作。 當您完成以字串填入 mutableBuffer 時,請使用 bufferHandle 參數呼叫 WindowsPromoteStringBuffer 函式,以建立 HSTRING。 您必須 將長度 完全相同的字元寫入緩衝區中。 Windows 10 版本 1803、Windows Server 版本 1803 和更新版本:您可以在長度字元之後寫入 Null 終止符。
呼叫 WindowsDeleteStringBuffer 函式,以在升級之前捨棄可變動的緩衝區。 如果緩衝區已經由 WindowsPromoteStringBuffer 的呼叫升級,請呼叫 WindowsDeleteString 函式來捨棄字元串。 如果 WindowsPromoteStringBuffer 呼叫失敗,您可以呼叫 WindowsDeleteStringBuffer 函式來捨棄可變動的緩衝區。
範例
下列程式代碼範例示範如何使用 WindowsPreallocateStringBuffer 函式。
#include <winstring.h>
int main()
{
HSTRING hString = NULL;
HSTRING_BUFFER hStringBuffer = NULL;
PWSTR strBuffer = NULL;
HRESULT hr = WindowsPreallocateStringBuffer(10, &strBuffer, &hStringBuffer);
if (SUCCEEDED(hr))
{
CopyMemory(strBuffer, L"1234567890", 10 * sizeof(wchar_t));
hr = WindowsPromoteStringBuffer(hStringBuffer, &hString);
}
WindowsDeleteString(hString);
}
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 8 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2012 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | winstring.h |
程式庫 | RuntimeObject.lib |
Dll | ComBase.dll |