Partilhar via


IBuffer Interface

Definição

Representa uma matriz referenciada de bytes usados por interfaces de leitura e gravação de fluxo de bytes. Buffer é a implementação de classe dessa interface.

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
Derivado
Atributos

Requisitos do Windows

Família de dispositivos
Windows 10 (introduzida na 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduzida na v1.0)

Exemplos

Este exemplo de código mostra como recuperar uma cadeia de caracteres de um IBuffer de bytes 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);
    }
}

Comentários

Essa interface é usada para redimensionar o buffer, preservando o conteúdo. Se a classe C++/WinRT implementar IBuffer e não precisar ou dar suporte ao redimensionamento, você deverá gerar hresult_not_implemented.

Para obter mais informações, consulte Criar, gravar e ler um arquivo, que mostra como ler e gravar bytes em um arquivo usando um Buffer.

WriteableBitmap.PixelBuffer é um exemplo de uma propriedade que retorna um IBuffer que não pode ser gravado diretamente. Consulte esse tópico para obter um exemplo de código específico de linguagem mostrando como gravar no conteúdo de pixel subjacente no buffer.

Funções de extensão C++/WinRT

Observação

Existem funções de extensão nos tipos de projeção C++/WinRT para determinadas APIs Windows Runtime. Por exemplo, winrt::Windows::Foundation::IAsyncAction é o tipo de projeção C++/WinRT para IAsyncAction. As funções de extensão não fazem parte da superfície da ABI (interface binária do aplicativo) dos tipos de Windows Runtime reais, portanto, não são listadas como membros das APIs Windows Runtime. Mas você pode chamá-los de dentro de qualquer projeto C++/WinRT. Confira Funções do C++/WinRT que estendem apIs de Windows Runtime.

uint8_t* data() const;

Retorna um ponteiro para os dados mantidos dentro do buffer.

Propriedades

Capacity

Obtém o número máximo de bytes que o buffer pode conter.

Length

Obtém o número de bytes atualmente em uso no buffer.

Aplica-se a

Confira também