Поделиться через


Функция WindowsPromoteStringBuffer (winstring.h)

Создает HSTRING из указанного HSTRING_BUFFER.

Синтаксис

HRESULT WindowsPromoteStringBuffer(
  HSTRING_BUFFER bufferHandle,
  HSTRING        *string
);

Параметры

bufferHandle

Тип: [in] HSTRING_BUFFER

Буфер, используемый для нового объекта HSTRING. Для создания HSTRING_BUFFER необходимо использовать функцию WindowsPreallocateStringBuffer.

string

Тип: [out] HSTRING*

Созданный объект HSTRING , содержащий содержимое bufferHandle.

Возвращаемое значение

Тип: HRESULT

Эта функция может возвращать одно из этих значений.

Код возврата Описание
S_OK
HSTRING успешно создан.
E_POINTER
строка имеет значение NULL.
E_INVALIDARG
bufferHandle не был создан путем вызова функции WindowsPreallocateStringBuffer или вызывающий объект перезаписал завершающий символ NULL в bufferHandle.

Комментарии

Используйте функцию WindowsPromoteStringBuffer , чтобы создать HSTRING на основе HSTRING_BUFFER. Вызов функции 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
Header winstring.h
Библиотека RuntimeObject.lib
DLL ComBase.dll

См. также раздел

HSTRING

HSTRING_BUFFER

WindowsDeleteString

WindowsDeleteStringBuffer

WindowsPreallocateStringBuffer