Compartir a través de


Función WindowsPromoteStringBuffer (winstring.h)

Crea un HSTRING a partir del HSTRING_BUFFER especificado.

Sintaxis

HRESULT WindowsPromoteStringBuffer(
  HSTRING_BUFFER bufferHandle,
  HSTRING        *string
);

Parámetros

bufferHandle

Tipo: [in] HSTRING_BUFFER

Búfer que se va a usar para el nuevo HSTRING. Debe usar la función WindowsPreallocateStringBuffer para crear el HSTRING_BUFFER.

string

Tipo: [out] HSTRING*

HSTRING recién creado que contiene el contenido de bufferHandle.

Valor devuelto

Tipo: HRESULT

Esta función puede devolver uno de estos valores.

Código devuelto Descripción
S_OK
HSTRING se creó correctamente.
E_POINTER
string es NULL.
E_INVALIDARG
bufferHandle no se creó llamando a la función WindowsPreallocateStringBuffer o el autor de la llamada ha sobrescribido el carácter NULL de terminación en bufferHandle.

Comentarios

Usa la función WindowsPromoteStringBuffer para crear un nuevo HSTRING a partir de un HSTRING_BUFFER. Al llamar a la función WindowsPromoteStringBuffer , se convierte el búfer mutable en un HSTRING inmutable. Use la función WindowsPreallocateStringBuffer para crear el HSTRING_BUFFER.

Si se produce un error en la llamada a WindowsPromoteStringBuffer , puedes llamar a la función WindowsDeleteStringBuffer para descartar el búfer mutable.

Cada llamada a la función WindowsPromoteStringBuffer debe coincidir con una llamada correspondiente a WindowsDeleteString.

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar la función 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);
        }
    }
}

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8 [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2012 [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado winstring.h
Library RuntimeObject.lib
Archivo DLL ComBase.dll

Consulte también

HSTRING

HSTRING_BUFFER

WindowsDeleteString

WindowsDeleteStringBuffer

WindowsPreallocateStringBuffer