共用方式為


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

此函式可以傳回其中一個值。

傳回碼 描述
S_OK
已成功建立 HSTRING
E_POINTER
mutableBufferbufferHandleNULL
MEM_E_INVALID_SIZE
要求的 HSTRING 配置大小太大。
E_OUTOFMEMORY
無法配置 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

另請參閱

HSTRING

HSTRING_BUFFER

WindowsDeleteStringBuffer

WindowsPromoteStringBuffer