//
// Copyright (c) Microsoft Corporation. All rights reserved.
// 
//
// File generated by WinMDIDL version 8.00.0021
//

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "windowscontracts.idl";
import "Windows.Foundation.idl";
import "Windows.Storage.Streams.idl";

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        apicontract UniversalApiContract;

        runtimeclass Uri;
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Streams
        {
            interface IInputStream;
        }
    }
}
namespace Windows
{
    namespace Web
    {
        typedef enum WebErrorStatus WebErrorStatus;

        interface IUriToStreamResolver;

        interface IWebErrorStatics;

        runtimeclass WebError;
    }
}

// Generic instantiations
namespace Windows
{
    namespace Web
    {
        declare
        {
            interface Windows.Foundation.Collections.IIterable<Windows.Web.WebErrorStatus>;

            interface Windows.Foundation.Collections.IIterator<Windows.Web.WebErrorStatus>;

            interface Windows.Foundation.Collections.IVectorView<Windows.Web.WebErrorStatus>;

            interface Windows.Foundation.Collections.IVector<Windows.Web.WebErrorStatus>;

            interface Windows.Foundation.IReference<Windows.Web.WebErrorStatus>;
        }
    }
}

// Type definition
namespace Windows
{
    namespace Web
    {
        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        enum WebErrorStatus
        {
            Unknown                          = 0,
            CertificateCommonNameIsIncorrect = 1,
            CertificateExpired               = 2,
            CertificateContainsErrors        = 3,
            CertificateRevoked               = 4,
            CertificateIsInvalid             = 5,
            ServerUnreachable                = 6,
            Timeout                          = 7,
            ErrorHttpInvalidServerResponse   = 8,
            ConnectionAborted                = 9,
            ConnectionReset                  = 10,
            Disconnected                     = 11,
            HttpToHttpsOnRedirection         = 12,
            HttpsToHttpOnRedirection         = 13,
            CannotConnect                    = 14,
            HostNameNotResolved              = 15,
            OperationCanceled                = 16,
            RedirectFailed                   = 17,
            UnexpectedStatusCode             = 18,
            UnexpectedRedirection            = 19,
            UnexpectedClientError            = 20,
            UnexpectedServerError            = 21,
            [contract(Windows.Foundation.UniversalApiContract, 5.0)]
            InsufficientRangeSupport         = 22,
            [contract(Windows.Foundation.UniversalApiContract, 5.0)]
            MissingContentLengthSupport      = 23,
            MultipleChoices                  = 300,
            MovedPermanently                 = 301,
            Found                            = 302,
            SeeOther                         = 303,
            NotModified                      = 304,
            UseProxy                         = 305,
            TemporaryRedirect                = 307,
            BadRequest                       = 400,
            Unauthorized                     = 401,
            PaymentRequired                  = 402,
            Forbidden                        = 403,
            NotFound                         = 404,
            MethodNotAllowed                 = 405,
            NotAcceptable                    = 406,
            ProxyAuthenticationRequired      = 407,
            RequestTimeout                   = 408,
            Conflict                         = 409,
            Gone                             = 410,
            LengthRequired                   = 411,
            PreconditionFailed               = 412,
            RequestEntityTooLarge            = 413,
            RequestUriTooLong                = 414,
            UnsupportedMediaType             = 415,
            RequestedRangeNotSatisfiable     = 416,
            ExpectationFailed                = 417,
            InternalServerError              = 500,
            NotImplemented                   = 501,
            BadGateway                       = 502,
            ServiceUnavailable               = 503,
            GatewayTimeout                   = 504,
            HttpVersionNotSupported          = 505
        };

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [uuid(B0ABA86A-9AEB-4D3A-9590-003E3CA7E290)]
        interface IUriToStreamResolver : IInspectable
        {
            HRESULT UriToStreamAsync([in] Windows.Foundation.Uri* uri, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.Streams.IInputStream*>** operation);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [exclusiveto(Windows.Web.WebError)]
        [uuid(FE616766-BF27-4064-87B7-6563BB11CE2E)]
        interface IWebErrorStatics : IInspectable
        {
            HRESULT GetStatus([in] INT32 hresult, [out] [retval] Windows.Web.WebErrorStatus* status);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [marshaling_behavior(agile)]
        [static(Windows.Web.IWebErrorStatics, Windows.Foundation.UniversalApiContract, 1.0)]
        [threading(both)]
        runtimeclass WebError
        {
        }
    }
}
