다음을 통해 공유


WindowsPromoteStringBuffer 함수(winstring.h)

지정된 HSTRING_BUFFERHSTRING을 만듭니다.

구문

HRESULT WindowsPromoteStringBuffer(
  HSTRING_BUFFER bufferHandle,
  HSTRING        *string
);

매개 변수

bufferHandle

형식: [in] HSTRING_BUFFER

HSTRING에 사용할 버퍼입니다. WindowsPreallocateStringBuffer 함수를 사용하여 HSTRING_BUFFER 만들어야 합니다.

string

형식: [out] HSTRING*

bufferHandle의 내용을 포함하는 새로 만든 HSTRING입니다.

반환 값

형식: HRESULT

이 함수는 이러한 값 중 하나를 반환할 수 있습니다.

반환 코드 Description
S_OK
HSTRING이 성공적으로 만들어졌습니다.
E_POINTER
stringNULL입니다.
E_INVALIDARG
bufferHandleWindowsPreallocateStringBuffer 함수를 호출하여 만들지 않았거나 호출자가 bufferHandle에서 종료되는 NULL 문자를 덮어씁니다.

설명

WindowsPromoteStringBuffer 함수를 사용하여 HSTRING_BUFFERHSTRING을 만듭니다. 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
라이브러리 RuntimeObject.lib
DLL ComBase.dll

추가 정보

HSTRING

HSTRING_BUFFER

WindowsDeleteString

WindowsDeleteStringBuffer

WindowsPreallocateStringBuffer