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


IBuffer Интерфейс

Определение

Представляет указанный массив байтов, используемый интерфейсами чтения и записи потока байтов. Buffer — это реализация класса этого интерфейса.

public interface class IBuffer
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.Guid(2421821408, 48211, 4575, 140, 73, 0, 30, 79, 198, 134, 218)]
struct IBuffer
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.Guid(2421821408, 48211, 4575, 140, 73, 0, 30, 79, 198, 134, 218)]
public interface IBuffer
Public Interface IBuffer
Производный
Атрибуты

Требования к Windows

Семейство устройств
Windows 10 (появилось в 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (появилось в v1.0)

Примеры

В этом примере кода показано, как получить строку из IBuffer размером UTF-8 байт.

public string RetrieveStringFromUtf8IBuffer(Windows.Storage.Streams.IBuffer theBuffer)
{
    using (var dataReader = Windows.Storage.Streams.DataReader.FromBuffer(theBuffer))
    {
        dataReader.UnicodeEncoding = Windows.Storage.Streams.UnicodeEncoding.Utf8;
        return dataReader.ReadString(theBuffer.Length);
    }
}

Комментарии

Этот интерфейс используется для изменения размера буфера с сохранением содержимого. Если класс C++/WinRT реализует IBuffer и не нуждается в изменении размера или не поддерживает его, следует вызвать hresult_not_implemented.

Дополнительные сведения см. в статье Создание, запись и чтение файла, в которой показано, как считывать и записывать байты в файл с помощью буфера.

WriteableBitmap.PixelBuffer — это пример свойства, возвращающего IBuffer , который не может быть записан напрямую. В этом разделе приведен пример кода для конкретного языка, показывающий запись в базовое содержимое пикселей в буфере.

Функции расширения C++/WinRT

Примечание

Функции расширения существуют в типах проекций C++/WinRT для определенных API среда выполнения Windows. Например, winrt::Windows::Foundation::IAsyncAction — это тип проекции C++/WinRT для IAsyncAction. Функции расширения не являются частью поверхности двоичного интерфейса приложения (ABI) фактических типов среда выполнения Windows, поэтому они не перечислены как члены API среда выполнения Windows. Но их можно вызывать из любого проекта C++/WinRT. См. статью Функции C++/WinRT, расширяющие среда выполнения Windows API.

uint8_t* data() const;

Возвращает указатель на данные, хранящиеся в буфере.

Свойства

Capacity

Возвращает максимальное число байтов, которое может хранить буфер.

Length

Возвращает количество байтов, используемых в буфере в данный момент.

Применяется к

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