エクスポート (0) 印刷
すべて展開
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

DataProviderDeferral Class

ソース アプリケーションが他の非同期関数から生成するデータの DataPackage オブジェクトに通知するために、ソース アプリケーションの遅延デリゲートによって使用されます。

構文


/* このオブジェクトの作成とアクセスについては、「解説」を参照してください。 */

属性

[DualApiPartition()]
[MarshalingBehavior(Agile)]
[Version(0x06020000)]

メンバー

DataProviderDeferralクラス には次の種類のメンバーがあります。

メソッド

The DataProviderDeferral クラス には次のメソッドがあります。 With C#、Visual Basic、および C++ では、以下からもメソッドが継承されます。Object クラス.

メソッド説明
Complete Informs a DataPackage that it is ready for processing.

 

解説

形式をすぐに指定する代わりに、対象のアプリケーションに対する有望なデータ形式のオプションがソース アプリケーションにはあります。一般的な例は、ソース アプリケーションで JPG などのイメージ形式がサポートされているのに、対象アプリケーションが要求しなければイメージ形式が作成されない場合などです。このようなタイプの交換がソースおよびターゲット アプリケーションとどのように機能するかの詳細については、「How to support pull scenarios (プル シナリオのサポート方法)」を参照してください。また、コンテンツ ソース アプリケーション サンプルの共有をダウンロードする場合があります。

Windows Phone 8

この API は実装されていません。呼び出された場合は、例外をスローします。「Windows Phone ランタイム API」を参照してください。

DataProviderDeferral オブジェクトを使用して、ターゲット アプリケーションからの要求を延期する方法を次のコードに示します。


async private void OnDeferredImageRequestedHandler(DataProviderRequest request)
{
    if (this.imageFile != null)
    {
        // A deferral object is required because this method uses "await" before setting the 
        // data in the DataPackage.
        var deferral = request.GetDeferral();

        var imageStream = await this.imageFile.OpenAsync(FileAccessMode.Read);

        // Decode the image.
        var imageDecoder = await BitmapDecoder.CreateAsync(imageStream);

        // Re-encode the image at 50% width and height.
        var inMemoryStream = new InMemoryRandomAccessStream();
        var imageEncoder = await BitmapEncoder.CreateForTranscodingAsync(inMemoryStream, imageDecoder);
        imageEncoder.BitmapTransform.ScaledWidth = (uint)(imageDecoder.OrientedPixelWidth * 0.5);
        imageEncoder.BitmapTransform.ScaledHeight = (uint)(imageDecoder.OrientedPixelHeight * 0.5);
        await imageEncoder.FlushAsync();

        request.SetData(RandomAccessStreamReference.CreateFromStream(inMemoryStream));

        await log(OutputText, "Image has been set via deferral");

        // The data is set. Signal that the operation is complete.
        deferral.Complete();
    }
    else
    {
        await log(OutputText, "Error: imageFile is null");
    }
}


要件

最小限サポートされるクライアント

Windows 8 [Windows ストア アプリ, デスクトップ アプリ]

最小限サポートされるサーバー

Windows Server 2012 [Windows ストア アプリ, デスクトップ アプリ]

最小限サポートされる携帯電話

Windows Phone 8 [実装されていません。"解説" を参照してください]

名前空間

Windows.ApplicationModel.DataTransfer
Windows::ApplicationModel::DataTransfer [C++]

メタデータ

Windows.winmd

 

 

表示:
© 2014 Microsoft