DataProviderRequest
DataProviderRequest
DataProviderRequest
DataProviderRequest
Class
Definition
An object of this type is passed to the DataProviderHandler delegate.
public : sealed class DataProviderRequest : IDataProviderRequestpublic sealed class DataProviderRequest : IDataProviderRequestPublic NotInheritable Class DataProviderRequest Implements IDataProviderRequest// You can use this class in JavaScript.
- Attributes
| Device family |
Windows 10 (introduced v10.0.10240.0)
|
| API contract |
Windows.Foundation.UniversalApiContract (introduced v1)
|
Examples
async void OnDeferredImageRequestedHandler(DataProviderRequest request)
{
// Provide updated bitmap data using delayed rendering.
if (this.imageStream != null)
{
DataProviderDeferral deferral = request.GetDeferral();
InMemoryRandomAccessStream inMemoryStream = new InMemoryRandomAccessStream();
// Decode the image.
BitmapDecoder imageDecoder = await BitmapDecoder.CreateAsync(this.imageStream);
// Re-encode the image at 50% width and height.
BitmapEncoder imageEncoder = await BitmapEncoder.CreateForTranscodingAsync(inMemoryStream, imageDecoder);
imageEncoder.BitmapTransform.ScaledWidth = (uint)(imageDecoder.OrientedPixelHeight * 0.5);
imageEncoder.BitmapTransform.ScaledHeight = (uint)(imageDecoder.OrientedPixelHeight * 0.5);
await imageEncoder.FlushAsync();
request.SetData(RandomAccessStreamReference.CreateFromStream(inMemoryStream));
deferral.Complete();
}
}
function onDeferredImageRequested(request) {
try {
if (imageFile) {
// This is to make sure deferral works even in synchronous case
var deferral = request.getDeferral();
var imageStreamRef = Windows.Storage.Streams.RandomAccessStreamReference.createFromFile(imageFile);
request.setData(imageStreamRef);
deferral.complete();
}
} catch (exc) {
// Error handling goes here.
}
}
Remarks
Use this object when you need to delay, or defer, a share for a few milliseconds. To learn more, check out How to delay sharing.
Properties
Deadline Deadline Deadline Deadline
Gets the deadline for finishing a delayed rendering operation. If execution goes beyond that deadline, the results of delayed rendering are ignored.
public : DateTime Deadline { get; }public DateTimeOffset Deadline { get; }Public ReadOnly Property Deadline As DateTimeOffset// You can use this property in JavaScript.
- Value
- DateTime DateTimeOffset DateTimeOffset DateTimeOffset
The deadline for the delayed rendering operation.
FormatId FormatId FormatId FormatId
Specifies the format id.
public : PlatForm::String FormatId { get; }public string FormatId { get; }Public ReadOnly Property FormatId As string// You can use this property in JavaScript.
- Value
- PlatForm::String string string string
The format id. See StandardDataFormats for more information.
Methods
GetDeferral() GetDeferral() GetDeferral() GetDeferral()
Returns a DataProviderDeferral object.
public : DataProviderDeferral GetDeferral()public DataProviderDeferral GetDeferral()Public Function GetDeferral() As DataProviderDeferral// You can use this method in JavaScript.
An data provider deferral object.
Examples
async void OnDeferredImageRequestedHandler(DataProviderRequest request)
{
// Provide updated bitmap data using delayed rendering.
if (this.imageStream != null)
{
DataProviderDeferral deferral = request.GetDeferral();
InMemoryRandomAccessStream inMemoryStream = new InMemoryRandomAccessStream();
// Decode the image.
BitmapDecoder imageDecoder = await BitmapDecoder.CreateAsync(this.imageStream);
// Re-encode the image at 50% width and height.
BitmapEncoder imageEncoder = await BitmapEncoder.CreateForTranscodingAsync(inMemoryStream, imageDecoder);
imageEncoder.BitmapTransform.ScaledWidth = (uint)(imageDecoder.OrientedPixelHeight * 0.5);
imageEncoder.BitmapTransform.ScaledHeight = (uint)(imageDecoder.OrientedPixelHeight * 0.5);
await imageEncoder.FlushAsync();
request.SetData(RandomAccessStreamReference.CreateFromStream(inMemoryStream));
deferral.Complete();
}
}
function onDeferredImageRequested(request) {
try {
if (imageFile) {
// This is to make sure deferral works even in synchronous case
var deferral = request.getDeferral();
var imageStreamRef = Windows.Storage.Streams.RandomAccessStreamReference.createFromFile(imageFile);
request.setData(imageStreamRef);
deferral.complete();
}
} catch (exc) {
// Error handling goes here.
}
}
Remarks
To learn more, check out How to produce requested data asynchronously.
SetData(Object) SetData(Object) SetData(Object) SetData(Object)
Sets the content of the DataPackage to be shared with a target app.
public : void SetData(PlatForm::Object value)public void SetData(Object value)Public Function SetData(value As Object) As void// You can use this method in JavaScript.
- value
- PlatForm::Object Object Object Object
The object associated with a particular format in the DataPackage.