WindowsRuntimeBufferExtensions::AsBuffer Method (array<Byte>, Int32, Int32, Int32)
Returns a Windows.Storage.Streams.IBuffer interface that represents a range of bytes in the specified byte array. Optionally sets the Length property of the IBuffer to a value that is less than the capacity.
This API is not CLS-compliant. Namespace: System.Runtime.InteropServices.WindowsRuntime
Assembly: System.Runtime.WindowsRuntime (in System.Runtime.WindowsRuntime.dll)
[ExtensionAttribute] [CLSCompliantAttribute(false)] public: static IBuffer^ AsBuffer( array<unsigned char>^ source, int offset, int length, int capacity )
Parameters
- source
- Type: array<System::Byte>
The array that contains the range of bytes that is represented by the IBuffer.
- offset
- Type: System::Int32
The offset in source where the range begins.
- length
- Type: System::Int32
The value of the Length property of the IBuffer.
- capacity
- Type: System::Int32
The size of the range that is represented by the IBuffer. The Capacity property of the IBuffer is set to this value.
Return Value
Type: IBufferAn IBuffer interface that represents the specified range of bytes in source and that has the specified Length property value.
Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type array<Byte>. When you use instance method syntax to call this method, omit the first parameter. For more information, see Extension Methods (Visual Basic) or Extension Methods (C# Programming Guide).| Exception | Condition |
|---|---|
| ArgumentNullException | source is nullptr. |
| ArgumentOutOfRangeException | offset, length, or capacity is less than 0 (zero). |
| ArgumentException | length is greater than capacity. -or- The array is not large enough to serve as a backing store for the IBuffer; that is, the number of bytes in source, beginning at offset, is less than length or capacity. |
The range of bytes in source that you specify with the offset and capacity parameters becomes the backing store for the IBuffer interface that is returned. The Length property of the IBuffer is set to length, and the Capacity property is set to capacity. Any changes you make by using the IBuffer (for example, by calling the CopyTo(array<Byte>, Int32, IBuffer, UInt32, Int32) extension method with the IBuffer as destination) are reflected in the backing store.