Freigeben über


WindowsPromoteStringBuffer-Funktion (winstring.h)

Erstellt einen HSTRING-Wert aus dem angegebenen HSTRING_BUFFER.

Syntax

HRESULT WindowsPromoteStringBuffer(
  HSTRING_BUFFER bufferHandle,
  HSTRING        *string
);

Parameter

bufferHandle

Typ: [in] HSTRING_BUFFER

Der Puffer, der für den neuen HSTRING verwendet werden soll. Sie müssen die WindowsPreallocateStringBuffer-Funktion verwenden, um die HSTRING_BUFFER zu erstellen.

string

Typ: [out] HSTRING*

Das neu erstellte HSTRING , das den Inhalt von bufferHandle enthält.

Rückgabewert

Typ: HRESULT

Diese Funktion kann einen dieser Werte zurückgeben.

Rückgabecode BESCHREIBUNG
S_OK
Der HSTRING wurde erfolgreich erstellt.
E_POINTER
string ist NULL.
E_INVALIDARG
bufferHandle wurde nicht durch Aufrufen der WindowsPreallocateStringBuffer-Funktion erstellt, oder der Aufrufer hat das beendende NULL-Zeichen in bufferHandle überschrieben.

Hinweise

Verwenden Sie die WindowsPromoteStringBuffer-Funktion , um einen neuen HSTRING aus einem HSTRING_BUFFER zu erstellen. Durch Aufrufen der WindowsPromoteStringBuffer-Funktion wird der veränderliche Puffer in einen unveränderlichen HSTRING konvertiert. Verwenden Sie die WindowsPreallocateStringBuffer-Funktion , um die HSTRING_BUFFER zu erstellen.

Wenn der WindowsPromoteStringBuffer-Aufruf fehlschlägt, können Sie die WindowsDeleteStringBuffer-Funktion aufrufen, um den veränderlichen Puffer zu verwerfen.

Jeder Aufruf der WindowsPromoteStringBuffer-Funktion muss mit einem entsprechenden Aufruf von WindowsDeleteString abgeglichen werden.

Beispiele

Im folgenden Codebeispiel wird die Verwendung der WindowsPromoteStringBuffer-Funktion veranschaulicht.

#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);
        }
    }
}

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8 [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile winstring.h
Bibliothek RuntimeObject.lib
DLL ComBase.dll

Weitere Informationen

HSTRING

HSTRING_BUFFER

WindowsDeleteString

WindowsDeleteStringBuffer

WindowsPreallocateStringBuffer