IBuffer 接口

定义

表示字节流读取和写入接口使用的引用字节数组。 缓冲区 是此接口的类实现。

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 中引入)

示例

此代码示例演示如何从 UTF-8 字节的 IBuffer 检索字符串。

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

有关详细信息,请参阅 创建、写入和读取文件,其中演示如何使用 Buffer 读取和写入文件字节。

WriteableBitmap.PixelBuffer 是返回无法直接写入的 IBuffer 的属性的示例。 有关特定于语言的代码示例,请参阅该主题,该示例显示如何写入缓冲区中的基础像素内容。

C++/WinRT 扩展函数

注意

某些Windows 运行时 API 的 C++/WinRT 投影类型上存在扩展函数。 例如, winrt::Windows::Foundation::IAsyncActionIAsyncAction 的 C++/WinRT 投影类型。 扩展函数不是应用程序二进制接口的一部分, (ABI) 实际Windows 运行时类型的图面,因此它们不会列为Windows 运行时 API 的成员。 但可以从任何 C++/WinRT 项目中调用它们。 请参阅扩展Windows 运行时 API 的 C++/WinRT 函数

uint8_t* data() const;

返回指向缓冲区内保存的数据的指针。

属性

Capacity

获取缓冲区可以容纳的最大字节数。

Length

获取缓冲区中当前正在使用的字节数。

适用于

另请参阅