//
// 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.Networking.Sockets.idl";
import "Windows.Security.Cryptography.Certificates.idl";
import "Windows.Storage.Streams.idl";
import "Windows.Web.Http.Filters.idl";
import "Windows.Web.Http.Headers.idl";

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        typedef struct DateTime DateTime;

        interface IClosable;

        interface IStringable;

        apicontract UniversalApiContract;

        runtimeclass Uri;
    }
}
namespace Windows
{
    namespace Networking
    {
        namespace Sockets
        {
            typedef enum SocketSslErrorSeverity SocketSslErrorSeverity;
        }
    }
}
namespace Windows
{
    namespace Security
    {
        namespace Cryptography
        {
            namespace Certificates
            {
                runtimeclass Certificate;

                typedef enum ChainValidationResult ChainValidationResult;
            }
        }
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Streams
        {
            interface IBuffer;

            interface IInputStream;

            interface IOutputStream;

            typedef enum UnicodeEncoding UnicodeEncoding;
        }
    }
}
namespace Windows
{
    namespace Web
    {
        namespace Http
        {
            namespace Filters
            {
                interface IHttpFilter;
            }
        }
    }
}
namespace Windows
{
    namespace Web
    {
        namespace Http
        {
            namespace Headers
            {
                runtimeclass HttpContentHeaderCollection;

                runtimeclass HttpRequestHeaderCollection;

                runtimeclass HttpResponseHeaderCollection;
            }
        }
    }
}
namespace Windows
{
    namespace Web
    {
        namespace Http
        {
            typedef enum HttpCompletionOption HttpCompletionOption;

            typedef enum HttpProgressStage HttpProgressStage;

            typedef enum HttpResponseMessageSource HttpResponseMessageSource;

            typedef enum HttpStatusCode HttpStatusCode;

            typedef enum HttpVersion HttpVersion;

            typedef struct HttpProgress HttpProgress;

            interface IHttpBufferContentFactory;

            interface IHttpClient;

            interface IHttpClient2;

            interface IHttpClient3;

            interface IHttpClientFactory;

            interface IHttpContent;

            interface IHttpCookie;

            interface IHttpCookieFactory;

            interface IHttpCookieManager;

            interface IHttpFormUrlEncodedContentFactory;

            interface IHttpGetBufferResult;

            interface IHttpGetInputStreamResult;

            interface IHttpGetStringResult;

            interface IHttpMethod;

            interface IHttpMethodFactory;

            interface IHttpMethodStatics;

            interface IHttpMultipartContent;

            interface IHttpMultipartContentFactory;

            interface IHttpMultipartFormDataContent;

            interface IHttpMultipartFormDataContentFactory;

            interface IHttpRequestMessage;

            interface IHttpRequestMessage2;

            interface IHttpRequestMessageFactory;

            interface IHttpRequestResult;

            interface IHttpResponseMessage;

            interface IHttpResponseMessageFactory;

            interface IHttpStreamContentFactory;

            interface IHttpStringContentFactory;

            interface IHttpTransportInformation;

            runtimeclass HttpBufferContent;

            runtimeclass HttpClient;

            runtimeclass HttpCookie;

            runtimeclass HttpCookieCollection;

            runtimeclass HttpCookieManager;

            runtimeclass HttpFormUrlEncodedContent;

            runtimeclass HttpGetBufferResult;

            runtimeclass HttpGetInputStreamResult;

            runtimeclass HttpGetStringResult;

            runtimeclass HttpMethod;

            runtimeclass HttpMultipartContent;

            runtimeclass HttpMultipartFormDataContent;

            runtimeclass HttpRequestMessage;

            runtimeclass HttpRequestResult;

            runtimeclass HttpResponseMessage;

            runtimeclass HttpStreamContent;

            runtimeclass HttpStringContent;

            runtimeclass HttpTransportInformation;
        }
    }
}

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

                interface Windows.Foundation.Collections.IIterable<Windows.Web.Http.HttpMethod*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Web.Http.IHttpContent*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Web.Http.HttpCookie*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Web.Http.HttpMethod*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Web.Http.IHttpContent*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Web.Http.HttpCookie*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Web.Http.HttpMethod*>;

                interface Windows.Foundation.Collections.IVector<Windows.Web.Http.HttpCookie*>;

                interface Windows.Foundation.Collections.IVector<Windows.Web.Http.HttpMethod*>;

                interface Windows.Foundation.IAsyncOperationWithProgress<HSTRING, Windows.Web.Http.HttpProgress>;

                interface Windows.Foundation.IAsyncOperationWithProgress<Windows.Storage.Streams.IBuffer*, Windows.Web.Http.HttpProgress>;

                interface Windows.Foundation.IAsyncOperationWithProgress<Windows.Storage.Streams.IInputStream*, Windows.Web.Http.HttpProgress>;

                interface Windows.Foundation.IAsyncOperationWithProgress<Windows.Web.Http.HttpGetBufferResult*, Windows.Web.Http.HttpProgress>;

                interface Windows.Foundation.IAsyncOperationWithProgress<Windows.Web.Http.HttpGetInputStreamResult*, Windows.Web.Http.HttpProgress>;

                interface Windows.Foundation.IAsyncOperationWithProgress<Windows.Web.Http.HttpGetStringResult*, Windows.Web.Http.HttpProgress>;

                interface Windows.Foundation.IAsyncOperationWithProgress<Windows.Web.Http.HttpRequestResult*, Windows.Web.Http.HttpProgress>;

                interface Windows.Foundation.IAsyncOperationWithProgress<Windows.Web.Http.HttpResponseMessage*, Windows.Web.Http.HttpProgress>;

                interface Windows.Foundation.IAsyncOperation<Windows.Web.Http.HttpResponseMessage*>;
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace Web
    {
        namespace Http
        {
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum HttpCompletionOption
            {
                ResponseContentRead = 0,
                ResponseHeadersRead = 1
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum HttpProgressStage
            {
                None               = 0,
                DetectingProxy     = 10,
                ResolvingName      = 20,
                ConnectingToServer = 30,
                NegotiatingSsl     = 40,
                SendingHeaders     = 50,
                SendingContent     = 60,
                WaitingForResponse = 70,
                ReceivingHeaders   = 80,
                ReceivingContent   = 90
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum HttpResponseMessageSource
            {
                None    = 0,
                Cache   = 1,
                Network = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum HttpStatusCode
            {
                None                          = 0,
                Continue                      = 100,
                SwitchingProtocols            = 101,
                Processing                    = 102,
                Ok                            = 200,
                Created                       = 201,
                Accepted                      = 202,
                NonAuthoritativeInformation   = 203,
                NoContent                     = 204,
                ResetContent                  = 205,
                PartialContent                = 206,
                MultiStatus                   = 207,
                AlreadyReported               = 208,
                IMUsed                        = 226,
                MultipleChoices               = 300,
                MovedPermanently              = 301,
                Found                         = 302,
                SeeOther                      = 303,
                NotModified                   = 304,
                UseProxy                      = 305,
                TemporaryRedirect             = 307,
                PermanentRedirect             = 308,
                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,
                UnprocessableEntity           = 422,
                Locked                        = 423,
                FailedDependency              = 424,
                UpgradeRequired               = 426,
                PreconditionRequired          = 428,
                TooManyRequests               = 429,
                RequestHeaderFieldsTooLarge   = 431,
                InternalServerError           = 500,
                NotImplemented                = 501,
                BadGateway                    = 502,
                ServiceUnavailable            = 503,
                GatewayTimeout                = 504,
                HttpVersionNotSupported       = 505,
                VariantAlsoNegotiates         = 506,
                InsufficientStorage           = 507,
                LoopDetected                  = 508,
                NotExtended                   = 510,
                NetworkAuthenticationRequired = 511
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum HttpVersion
            {
                None   = 0,
                Http10 = 1,
                Http11 = 2,
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                Http20 = 3
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            struct HttpProgress
            {
                Windows.Web.Http.HttpProgressStage Stage;
                UINT64 BytesSent;
                Windows.Foundation.IReference<UINT64>* TotalBytesToSend;
                UINT64 BytesReceived;
                Windows.Foundation.IReference<UINT64>* TotalBytesToReceive;
                UINT32 Retries;
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Web.Http.HttpBufferContent)]
            [uuid(BC20C193-C41F-4FF7-9123-6435736EADC2)]
            interface IHttpBufferContentFactory : IInspectable
            {
                HRESULT CreateFromBuffer([in] Windows.Storage.Streams.IBuffer* content, [out] [retval] Windows.Web.Http.HttpBufferContent** value);
                HRESULT CreateFromBufferWithOffset([in] Windows.Storage.Streams.IBuffer* content, [in] UINT32 offset, [in] UINT32 count, [out] [retval] Windows.Web.Http.HttpBufferContent** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Web.Http.HttpClient)]
            [uuid(7FDA1151-3574-4880-A8BA-E6B1E0061F3D)]
            interface IHttpClient : IInspectable
            {
                HRESULT DeleteAsync([in] Windows.Foundation.Uri* uri, [out] [retval] Windows.Foundation.IAsyncOperationWithProgress<Windows.Web.Http.HttpResponseMessage*, Windows.Web.Http.HttpProgress>** operation);
                [overload("GetAsync")] HRESULT GetAsync([in] Windows.Foundation.Uri* uri, [out] [retval] Windows.Foundation.IAsyncOperationWithProgress<Windows.Web.Http.HttpResponseMessage*, Windows.Web.Http.HttpProgress>** operation);
                [overload("GetAsync")] HRESULT GetWithOptionAsync([in] Windows.Foundation.Uri* uri, [in] Windows.Web.Http.HttpCompletionOption completionOption, [out] [retval] Windows.Foundation.IAsyncOperationWithProgress<Windows.Web.Http.HttpResponseMessage*, Windows.Web.Http.HttpProgress>** operation);
                HRESULT GetBufferAsync([in] Windows.Foundation.Uri* uri, [out] [retval] Windows.Foundation.IAsyncOperationWithProgress<Windows.Storage.Streams.IBuffer*, Windows.Web.Http.HttpProgress>** operation);
                HRESULT GetInputStreamAsync([in] Windows.Foundation.Uri* uri, [out] [retval] Windows.Foundation.IAsyncOperationWithProgress<Windows.Storage.Streams.IInputStream*, Windows.Web.Http.HttpProgress>** operation);
                HRESULT GetStringAsync([in] Windows.Foundation.Uri* uri, [out] [retval] Windows.Foundation.IAsyncOperationWithProgress<HSTRING, Windows.Web.Http.HttpProgress>** operation);
                HRESULT PostAsync([in] Windows.Foundation.Uri* uri, [in] Windows.Web.Http.IHttpContent* content, [out] [retval] Windows.Foundation.IAsyncOperationWithProgress<Windows.Web.Http.HttpResponseMessage*, Windows.Web.Http.HttpProgress>** operation);
                HRESULT PutAsync([in] Windows.Foundation.Uri* uri, [in] Windows.Web.Http.IHttpContent* content, [out] [retval] Windows.Foundation.IAsyncOperationWithProgress<Windows.Web.Http.HttpResponseMessage*, Windows.Web.Http.HttpProgress>** operation);
                [overload("SendRequestAsync")] HRESULT SendRequestAsync([in] Windows.Web.Http.HttpRequestMessage* request, [out] [retval] Windows.Foundation.IAsyncOperationWithProgress<Windows.Web.Http.HttpResponseMessage*, Windows.Web.Http.HttpProgress>** operation);
                [overload("SendRequestAsync")] HRESULT SendRequestWithOptionAsync([in] Windows.Web.Http.HttpRequestMessage* request, [in] Windows.Web.Http.HttpCompletionOption completionOption, [out] [retval] Windows.Foundation.IAsyncOperationWithProgress<Windows.Web.Http.HttpResponseMessage*, Windows.Web.Http.HttpProgress>** operation);
                [propget] HRESULT DefaultRequestHeaders([out] [retval] Windows.Web.Http.Headers.HttpRequestHeaderCollection** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 8.0)]
            [exclusiveto(Windows.Web.Http.HttpClient)]
            [uuid(CDD83348-E8B7-4CEC-B1B0-DC455FE72C92)]
            interface IHttpClient2 : IInspectable
            {
                HRESULT TryDeleteAsync([in] Windows.Foundation.Uri* uri, [out] [retval] Windows.Foundation.IAsyncOperationWithProgress<Windows.Web.Http.HttpRequestResult*, Windows.Web.Http.HttpProgress>** operation);
                [overload("TryGetAsync")] HRESULT TryGetAsync([in] Windows.Foundation.Uri* uri, [out] [retval] Windows.Foundation.IAsyncOperationWithProgress<Windows.Web.Http.HttpRequestResult*, Windows.Web.Http.HttpProgress>** operation);
                [overload("TryGetAsync")] HRESULT TryGetAsync2([in] Windows.Foundation.Uri* uri, [in] Windows.Web.Http.HttpCompletionOption completionOption, [out] [retval] Windows.Foundation.IAsyncOperationWithProgress<Windows.Web.Http.HttpRequestResult*, Windows.Web.Http.HttpProgress>** operation);
                HRESULT TryGetBufferAsync([in] Windows.Foundation.Uri* uri, [out] [retval] Windows.Foundation.IAsyncOperationWithProgress<Windows.Web.Http.HttpGetBufferResult*, Windows.Web.Http.HttpProgress>** operation);
                HRESULT TryGetInputStreamAsync([in] Windows.Foundation.Uri* uri, [out] [retval] Windows.Foundation.IAsyncOperationWithProgress<Windows.Web.Http.HttpGetInputStreamResult*, Windows.Web.Http.HttpProgress>** operation);
                HRESULT TryGetStringAsync([in] Windows.Foundation.Uri* uri, [out] [retval] Windows.Foundation.IAsyncOperationWithProgress<Windows.Web.Http.HttpGetStringResult*, Windows.Web.Http.HttpProgress>** operation);
                HRESULT TryPostAsync([in] Windows.Foundation.Uri* uri, [in] Windows.Web.Http.IHttpContent* content, [out] [retval] Windows.Foundation.IAsyncOperationWithProgress<Windows.Web.Http.HttpRequestResult*, Windows.Web.Http.HttpProgress>** operation);
                HRESULT TryPutAsync([in] Windows.Foundation.Uri* uri, [in] Windows.Web.Http.IHttpContent* content, [out] [retval] Windows.Foundation.IAsyncOperationWithProgress<Windows.Web.Http.HttpRequestResult*, Windows.Web.Http.HttpProgress>** operation);
                [overload("TrySendRequestAsync")] HRESULT TrySendRequestAsync([in] Windows.Web.Http.HttpRequestMessage* request, [out] [retval] Windows.Foundation.IAsyncOperationWithProgress<Windows.Web.Http.HttpRequestResult*, Windows.Web.Http.HttpProgress>** operation);
                [overload("TrySendRequestAsync")] HRESULT TrySendRequestAsync2([in] Windows.Web.Http.HttpRequestMessage* request, [in] Windows.Web.Http.HttpCompletionOption completionOption, [out] [retval] Windows.Foundation.IAsyncOperationWithProgress<Windows.Web.Http.HttpRequestResult*, Windows.Web.Http.HttpProgress>** operation);
            }

            [contract(Windows.Foundation.UniversalApiContract, 15.0)]
            [exclusiveto(Windows.Web.Http.HttpClient)]
            [uuid(1172FD01-9899-4194-963F-8F9D72A7EC15)]
            interface IHttpClient3 : IInspectable
            {
                [propget] HRESULT DefaultPrivacyAnnotation([out] [retval] HSTRING* value);
                [propput] HRESULT DefaultPrivacyAnnotation([in] HSTRING value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Web.Http.HttpClient)]
            [uuid(C30C4ECA-E3FA-4F99-AFB4-63CC65009462)]
            interface IHttpClientFactory : IInspectable
            {
                HRESULT Create([in] Windows.Web.Http.Filters.IHttpFilter* filter, [out] [retval] Windows.Web.Http.HttpClient** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [uuid(6B14A441-FBA7-4BD2-AF0A-839DE7C295DA)]
            interface IHttpContent : IInspectable
                requires
                    Windows.Foundation.IClosable
            {
                [propget] HRESULT Headers([out] [retval] Windows.Web.Http.Headers.HttpContentHeaderCollection** value);
                HRESULT BufferAllAsync([out] [retval] Windows.Foundation.IAsyncOperationWithProgress<UINT64, UINT64>** operation);
                HRESULT ReadAsBufferAsync([out] [retval] Windows.Foundation.IAsyncOperationWithProgress<Windows.Storage.Streams.IBuffer*, UINT64>** operation);
                HRESULT ReadAsInputStreamAsync([out] [retval] Windows.Foundation.IAsyncOperationWithProgress<Windows.Storage.Streams.IInputStream*, UINT64>** operation);
                HRESULT ReadAsStringAsync([out] [retval] Windows.Foundation.IAsyncOperationWithProgress<HSTRING, UINT64>** operation);
                HRESULT TryComputeLength([out] UINT64* length, [out] [retval] boolean* succeeded);
                HRESULT WriteToStreamAsync([in] Windows.Storage.Streams.IOutputStream* outputStream, [out] [retval] Windows.Foundation.IAsyncOperationWithProgress<UINT64, UINT64>** operation);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Web.Http.HttpCookie)]
            [uuid(1F5488E2-CC2D-4779-86A7-88F10687D249)]
            interface IHttpCookie : IInspectable
            {
                [propget] HRESULT Name([out] [retval] HSTRING* value);
                [propget] HRESULT Domain([out] [retval] HSTRING* value);
                [propget] HRESULT Path([out] [retval] HSTRING* value);
                [propget] HRESULT Expires([out] [retval] Windows.Foundation.IReference<Windows.Foundation.DateTime>** value);
                [propput] HRESULT Expires([in] Windows.Foundation.IReference<Windows.Foundation.DateTime>* value);
                [propget] HRESULT HttpOnly([out] [retval] boolean* value);
                [propput] HRESULT HttpOnly([in] boolean value);
                [propget] HRESULT Secure([out] [retval] boolean* value);
                [propput] HRESULT Secure([in] boolean value);
                [propget] HRESULT Value([out] [retval] HSTRING* value);
                [propput] HRESULT Value([in] HSTRING value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Web.Http.HttpCookie)]
            [uuid(6A0585A9-931C-4CD1-A96D-C21701785C5F)]
            interface IHttpCookieFactory : IInspectable
            {
                HRESULT Create([in] HSTRING name, [in] HSTRING domain, [in] HSTRING path, [out] [retval] Windows.Web.Http.HttpCookie** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Web.Http.HttpCookieManager)]
            [uuid(7A431780-CD4F-4E57-A84A-5B0A53D6BB96)]
            interface IHttpCookieManager : IInspectable
            {
                [overload("SetCookie")] HRESULT SetCookie([in] Windows.Web.Http.HttpCookie* cookie, [out] [retval] boolean* result);
                [overload("SetCookie")] HRESULT SetCookieWithThirdParty([in] Windows.Web.Http.HttpCookie* cookie, [in] boolean thirdParty, [out] [retval] boolean* result);
                HRESULT DeleteCookie([in] Windows.Web.Http.HttpCookie* cookie);
                HRESULT GetCookies([in] Windows.Foundation.Uri* uri, [out] [retval] Windows.Web.Http.HttpCookieCollection** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Web.Http.HttpFormUrlEncodedContent)]
            [uuid(43F0138C-2F73-4302-B5F3-EAE9238A5E01)]
            interface IHttpFormUrlEncodedContentFactory : IInspectable
            {
                HRESULT Create([in] Windows.Foundation.Collections.IIterable<Windows.Foundation.Collections.IKeyValuePair<HSTRING, HSTRING>*>* content, [out] [retval] Windows.Web.Http.HttpFormUrlEncodedContent** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 8.0)]
            [exclusiveto(Windows.Web.Http.HttpGetBufferResult)]
            [uuid(53D08E7C-E209-404E-9A49-742D8236FD3A)]
            interface IHttpGetBufferResult : IInspectable
            {
                [propget] HRESULT ExtendedError([out] [retval] HRESULT* value);
                [propget] HRESULT RequestMessage([out] [retval] Windows.Web.Http.HttpRequestMessage** value);
                [propget] HRESULT ResponseMessage([out] [retval] Windows.Web.Http.HttpResponseMessage** value);
                [propget] HRESULT Succeeded([out] [retval] boolean* value);
                [propget] HRESULT Value([out] [retval] Windows.Storage.Streams.IBuffer** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 8.0)]
            [exclusiveto(Windows.Web.Http.HttpGetInputStreamResult)]
            [uuid(D5D63463-13AA-4EE0-BE95-A0C39FE91203)]
            interface IHttpGetInputStreamResult : IInspectable
            {
                [propget] HRESULT ExtendedError([out] [retval] HRESULT* value);
                [propget] HRESULT RequestMessage([out] [retval] Windows.Web.Http.HttpRequestMessage** value);
                [propget] HRESULT ResponseMessage([out] [retval] Windows.Web.Http.HttpResponseMessage** value);
                [propget] HRESULT Succeeded([out] [retval] boolean* value);
                [propget] HRESULT Value([out] [retval] Windows.Storage.Streams.IInputStream** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 8.0)]
            [exclusiveto(Windows.Web.Http.HttpGetStringResult)]
            [uuid(9BAC466D-8509-4775-B16D-8953F47A7F5F)]
            interface IHttpGetStringResult : IInspectable
            {
                [propget] HRESULT ExtendedError([out] [retval] HRESULT* value);
                [propget] HRESULT RequestMessage([out] [retval] Windows.Web.Http.HttpRequestMessage** value);
                [propget] HRESULT ResponseMessage([out] [retval] Windows.Web.Http.HttpResponseMessage** value);
                [propget] HRESULT Succeeded([out] [retval] boolean* value);
                [propget] HRESULT Value([out] [retval] HSTRING* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Web.Http.HttpMethod)]
            [uuid(728D4022-700D-4FE0-AFA5-40299C58DBFD)]
            interface IHttpMethod : IInspectable
            {
                [propget] HRESULT Method([out] [retval] HSTRING* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Web.Http.HttpMethod)]
            [uuid(3C51D10D-36D7-40F8-A86D-E759CAF2F83F)]
            interface IHttpMethodFactory : IInspectable
            {
                HRESULT Create([in] HSTRING method, [out] [retval] Windows.Web.Http.HttpMethod** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Web.Http.HttpMethod)]
            [uuid(64D171F0-D99A-4153-8DC6-D68CC4CCE317)]
            interface IHttpMethodStatics : IInspectable
            {
                [propget] HRESULT Delete([out] [retval] Windows.Web.Http.HttpMethod** value);
                [propget] HRESULT Get([out] [retval] Windows.Web.Http.HttpMethod** value);
                [propget] HRESULT Head([out] [retval] Windows.Web.Http.HttpMethod** value);
                [propget] HRESULT Options([out] [retval] Windows.Web.Http.HttpMethod** value);
                [propget] HRESULT Patch([out] [retval] Windows.Web.Http.HttpMethod** value);
                [propget] HRESULT Post([out] [retval] Windows.Web.Http.HttpMethod** value);
                [propget] HRESULT Put([out] [retval] Windows.Web.Http.HttpMethod** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Web.Http.HttpMultipartContent)]
            [uuid(DF916AFF-9926-4AC9-AAF1-E0D04EF09BB9)]
            interface IHttpMultipartContent : IInspectable
            {
                HRESULT Add([in] Windows.Web.Http.IHttpContent* content);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Web.Http.HttpMultipartContent)]
            [uuid(7EB42E62-0222-4F20-B372-47D5DB5D33B4)]
            interface IHttpMultipartContentFactory : IInspectable
            {
                HRESULT CreateWithSubtype([in] HSTRING subtype, [out] [retval] Windows.Web.Http.HttpMultipartContent** value);
                HRESULT CreateWithSubtypeAndBoundary([in] HSTRING subtype, [in] HSTRING boundary, [out] [retval] Windows.Web.Http.HttpMultipartContent** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Web.Http.HttpMultipartFormDataContent)]
            [uuid(64D337E2-E967-4624-B6D1-CF74604A4A42)]
            interface IHttpMultipartFormDataContent : IInspectable
            {
                [overload("Add")] HRESULT Add([in] Windows.Web.Http.IHttpContent* content);
                [overload("Add")] HRESULT AddWithName([in] Windows.Web.Http.IHttpContent* content, [in] HSTRING name);
                [overload("Add")] HRESULT AddWithNameAndFileName([in] Windows.Web.Http.IHttpContent* content, [in] HSTRING name, [in] HSTRING fileName);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Web.Http.HttpMultipartFormDataContent)]
            [uuid(A04D7311-5017-4622-93A8-49B24A4FCBFC)]
            interface IHttpMultipartFormDataContentFactory : IInspectable
            {
                HRESULT CreateWithBoundary([in] HSTRING boundary, [out] [retval] Windows.Web.Http.HttpMultipartFormDataContent** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Web.Http.HttpRequestMessage)]
            [uuid(F5762B3C-74D4-4811-B5DC-9F8B4E2F9ABF)]
            interface IHttpRequestMessage : IInspectable
            {
                [propget] HRESULT Content([out] [retval] Windows.Web.Http.IHttpContent** value);
                [propput] HRESULT Content([in] Windows.Web.Http.IHttpContent* value);
                [propget] HRESULT Headers([out] [retval] Windows.Web.Http.Headers.HttpRequestHeaderCollection** value);
                [propget] HRESULT Method([out] [retval] Windows.Web.Http.HttpMethod** value);
                [propput] HRESULT Method([in] Windows.Web.Http.HttpMethod* value);
                [propget] HRESULT Properties([out] [retval] Windows.Foundation.Collections.IMap<HSTRING, IInspectable*>** value);
                [propget] HRESULT RequestUri([out] [retval] Windows.Foundation.Uri** value);
                [propput] HRESULT RequestUri([in] Windows.Foundation.Uri* value);
                [propget] HRESULT TransportInformation([out] [retval] Windows.Web.Http.HttpTransportInformation** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 15.0)]
            [exclusiveto(Windows.Web.Http.HttpRequestMessage)]
            [uuid(C3C60489-62C2-4A3F-9554-226E7C60BD96)]
            interface IHttpRequestMessage2 : IInspectable
            {
                [propget] HRESULT PrivacyAnnotation([out] [retval] HSTRING* value);
                [propput] HRESULT PrivacyAnnotation([in] HSTRING value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Web.Http.HttpRequestMessage)]
            [uuid(5BAC994E-3886-412E-AEC3-52EC7F25616F)]
            interface IHttpRequestMessageFactory : IInspectable
            {
                HRESULT Create([in] Windows.Web.Http.HttpMethod* method, [in] Windows.Foundation.Uri* uri, [out] [retval] Windows.Web.Http.HttpRequestMessage** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 8.0)]
            [exclusiveto(Windows.Web.Http.HttpRequestResult)]
            [uuid(6ACF4DA8-B5EB-4A35-A902-4217FBE820C5)]
            interface IHttpRequestResult : IInspectable
            {
                [propget] HRESULT ExtendedError([out] [retval] HRESULT* value);
                [propget] HRESULT RequestMessage([out] [retval] Windows.Web.Http.HttpRequestMessage** value);
                [propget] HRESULT ResponseMessage([out] [retval] Windows.Web.Http.HttpResponseMessage** value);
                [propget] HRESULT Succeeded([out] [retval] boolean* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Web.Http.HttpResponseMessage)]
            [uuid(FEE200FB-8664-44E0-95D9-42696199BFFC)]
            interface IHttpResponseMessage : IInspectable
            {
                [propget] HRESULT Content([out] [retval] Windows.Web.Http.IHttpContent** value);
                [propput] HRESULT Content([in] Windows.Web.Http.IHttpContent* value);
                [propget] HRESULT Headers([out] [retval] Windows.Web.Http.Headers.HttpResponseHeaderCollection** value);
                [propget] HRESULT IsSuccessStatusCode([out] [retval] boolean* value);
                [propget] HRESULT ReasonPhrase([out] [retval] HSTRING* value);
                [propput] HRESULT ReasonPhrase([in] HSTRING value);
                [propget] HRESULT RequestMessage([out] [retval] Windows.Web.Http.HttpRequestMessage** value);
                [propput] HRESULT RequestMessage([in] Windows.Web.Http.HttpRequestMessage* value);
                [propget] HRESULT Source([out] [retval] Windows.Web.Http.HttpResponseMessageSource* value);
                [propput] HRESULT Source([in] Windows.Web.Http.HttpResponseMessageSource value);
                [propget] HRESULT StatusCode([out] [retval] Windows.Web.Http.HttpStatusCode* value);
                [propput] HRESULT StatusCode([in] Windows.Web.Http.HttpStatusCode value);
                [propget] HRESULT Version([out] [retval] Windows.Web.Http.HttpVersion* value);
                [propput] HRESULT Version([in] Windows.Web.Http.HttpVersion value);
                HRESULT EnsureSuccessStatusCode([out] [retval] Windows.Web.Http.HttpResponseMessage** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Web.Http.HttpResponseMessage)]
            [uuid(52A8AF99-F095-43DA-B60F-7CFC2BC7EA2F)]
            interface IHttpResponseMessageFactory : IInspectable
            {
                HRESULT Create([in] Windows.Web.Http.HttpStatusCode statusCode, [out] [retval] Windows.Web.Http.HttpResponseMessage** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Web.Http.HttpStreamContent)]
            [uuid(F3E64D9D-F725-407E-942F-0EDA189809F4)]
            interface IHttpStreamContentFactory : IInspectable
            {
                HRESULT CreateFromInputStream([in] Windows.Storage.Streams.IInputStream* content, [out] [retval] Windows.Web.Http.HttpStreamContent** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Web.Http.HttpStringContent)]
            [uuid(46649D5B-2E93-48EB-8E61-19677878E57F)]
            interface IHttpStringContentFactory : IInspectable
            {
                HRESULT CreateFromString([in] HSTRING content, [out] [retval] Windows.Web.Http.HttpStringContent** value);
                HRESULT CreateFromStringWithEncoding([in] HSTRING content, [in] Windows.Storage.Streams.UnicodeEncoding encoding, [out] [retval] Windows.Web.Http.HttpStringContent** value);
                HRESULT CreateFromStringWithEncodingAndMediaType([in] HSTRING content, [in] Windows.Storage.Streams.UnicodeEncoding encoding, [in] HSTRING mediaType, [out] [retval] Windows.Web.Http.HttpStringContent** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Web.Http.HttpTransportInformation)]
            [uuid(70127198-C6A7-4ED0-833A-83FD8B8F178D)]
            interface IHttpTransportInformation : IInspectable
            {
                [propget] HRESULT ServerCertificate([out] [retval] Windows.Security.Cryptography.Certificates.Certificate** value);
                [propget] HRESULT ServerCertificateErrorSeverity([out] [retval] Windows.Networking.Sockets.SocketSslErrorSeverity* value);
                [propget] HRESULT ServerCertificateErrors([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Security.Cryptography.Certificates.ChainValidationResult>** value);
                [propget] HRESULT ServerIntermediateCertificates([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Security.Cryptography.Certificates.Certificate*>** value);
            }

            [activatable(Windows.Web.Http.IHttpBufferContentFactory, Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass HttpBufferContent
            {
                [default] interface Windows.Web.Http.IHttpContent;
                interface Windows.Foundation.IClosable;
                interface Windows.Foundation.IStringable;
            }

            [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
            [activatable(Windows.Web.Http.IHttpClientFactory, Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass HttpClient
            {
                [default] interface Windows.Web.Http.IHttpClient;
                [contract(Windows.Foundation.UniversalApiContract, 8.0)] interface Windows.Web.Http.IHttpClient2;
                [contract(Windows.Foundation.UniversalApiContract, 15.0)] interface Windows.Web.Http.IHttpClient3;
                interface Windows.Foundation.IClosable;
                interface Windows.Foundation.IStringable;
            }

            [activatable(Windows.Web.Http.IHttpCookieFactory, Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass HttpCookie
            {
                [default] interface Windows.Web.Http.IHttpCookie;
                interface Windows.Foundation.IStringable;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass HttpCookieCollection
            {
                [default] interface Windows.Foundation.Collections.IVectorView<Windows.Web.Http.HttpCookie*>;
                interface Windows.Foundation.Collections.IIterable<Windows.Web.Http.HttpCookie*>;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass HttpCookieManager
            {
                [default] interface Windows.Web.Http.IHttpCookieManager;
            }

            [activatable(Windows.Web.Http.IHttpFormUrlEncodedContentFactory, Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass HttpFormUrlEncodedContent
            {
                [default] interface Windows.Web.Http.IHttpContent;
                interface Windows.Foundation.IClosable;
                interface Windows.Foundation.IStringable;
            }

            [contract(Windows.Foundation.UniversalApiContract, 8.0)]
            [marshaling_behavior(agile)]
            runtimeclass HttpGetBufferResult
            {
                [default] interface Windows.Web.Http.IHttpGetBufferResult;
                interface Windows.Foundation.IClosable;
                interface Windows.Foundation.IStringable;
            }

            [contract(Windows.Foundation.UniversalApiContract, 8.0)]
            [marshaling_behavior(agile)]
            runtimeclass HttpGetInputStreamResult
            {
                [default] interface Windows.Web.Http.IHttpGetInputStreamResult;
                interface Windows.Foundation.IClosable;
                interface Windows.Foundation.IStringable;
            }

            [contract(Windows.Foundation.UniversalApiContract, 8.0)]
            [marshaling_behavior(agile)]
            runtimeclass HttpGetStringResult
            {
                [default] interface Windows.Web.Http.IHttpGetStringResult;
                interface Windows.Foundation.IClosable;
                interface Windows.Foundation.IStringable;
            }

            [activatable(Windows.Web.Http.IHttpMethodFactory, Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Web.Http.IHttpMethodStatics, Windows.Foundation.UniversalApiContract, 1.0)]
            [threading(both)]
            runtimeclass HttpMethod
            {
                [default] interface Windows.Web.Http.IHttpMethod;
                interface Windows.Foundation.IStringable;
            }

            [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
            [activatable(Windows.Web.Http.IHttpMultipartContentFactory, Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass HttpMultipartContent
            {
                interface Windows.Web.Http.IHttpMultipartContent;
                [default] interface Windows.Web.Http.IHttpContent;
                interface Windows.Foundation.IClosable;
                interface Windows.Foundation.Collections.IIterable<Windows.Web.Http.IHttpContent*>;
                interface Windows.Foundation.IStringable;
            }

            [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
            [activatable(Windows.Web.Http.IHttpMultipartFormDataContentFactory, Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass HttpMultipartFormDataContent
            {
                interface Windows.Web.Http.IHttpMultipartFormDataContent;
                [default] interface Windows.Web.Http.IHttpContent;
                interface Windows.Foundation.IClosable;
                interface Windows.Foundation.Collections.IIterable<Windows.Web.Http.IHttpContent*>;
                interface Windows.Foundation.IStringable;
            }

            [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
            [activatable(Windows.Web.Http.IHttpRequestMessageFactory, Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass HttpRequestMessage
            {
                [default] interface Windows.Web.Http.IHttpRequestMessage;
                [contract(Windows.Foundation.UniversalApiContract, 15.0)] interface Windows.Web.Http.IHttpRequestMessage2;
                interface Windows.Foundation.IClosable;
                interface Windows.Foundation.IStringable;
            }

            [contract(Windows.Foundation.UniversalApiContract, 8.0)]
            [marshaling_behavior(agile)]
            runtimeclass HttpRequestResult
            {
                [default] interface Windows.Web.Http.IHttpRequestResult;
                interface Windows.Foundation.IClosable;
                interface Windows.Foundation.IStringable;
            }

            [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
            [activatable(Windows.Web.Http.IHttpResponseMessageFactory, Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass HttpResponseMessage
            {
                [default] interface Windows.Web.Http.IHttpResponseMessage;
                interface Windows.Foundation.IClosable;
                interface Windows.Foundation.IStringable;
            }

            [activatable(Windows.Web.Http.IHttpStreamContentFactory, Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass HttpStreamContent
            {
                [default] interface Windows.Web.Http.IHttpContent;
                interface Windows.Foundation.IClosable;
                interface Windows.Foundation.IStringable;
            }

            [activatable(Windows.Web.Http.IHttpStringContentFactory, Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass HttpStringContent
            {
                [default] interface Windows.Web.Http.IHttpContent;
                interface Windows.Foundation.IClosable;
                interface Windows.Foundation.IStringable;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass HttpTransportInformation
            {
                [default] interface Windows.Web.Http.IHttpTransportInformation;
                interface Windows.Foundation.IStringable;
            }
        }
    }
}
