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

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "Windows.Foundation.idl";
import "Windows.Networking.idl";
// Additional imports to ensure that all required headers are included
cpp_quote("#if defined(__cplusplus)")
cpp_quote("}")
cpp_quote("#endif // defined(__cplusplus)")
cpp_quote("#include <Windows.Foundation.h>")
cpp_quote("#if !defined(__windows2Enetworking_h__)")
cpp_quote("#include <Windows.Networking.h>")
cpp_quote("#endif // !defined(__windows2Enetworking_h__)")
cpp_quote("#if defined(__cplusplus)")
cpp_quote("extern \"C\" {")
cpp_quote("#endif // defined(__cplusplus)")

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

        interface IClosable;

        typedef struct TimeSpan TimeSpan;

        runtimeclass Uri;
    }
}
namespace Windows
{
    namespace Networking
    {
        typedef enum DomainNameType DomainNameType;

        runtimeclass EndpointPair;

        runtimeclass HostName;

        typedef enum HostNameSortOptions HostNameSortOptions;
    }
}
namespace Windows
{
    namespace Networking
    {
        namespace Connectivity
        {
            typedef enum NetworkCostType NetworkCostType;

            typedef enum NetworkConnectivityLevel NetworkConnectivityLevel;

            typedef enum NetworkTypes NetworkTypes;

            typedef enum RoamingStates RoamingStates;

            typedef enum NetworkAuthenticationType NetworkAuthenticationType;

            typedef enum NetworkEncryptionType NetworkEncryptionType;

            typedef enum DomainConnectivityLevel DomainConnectivityLevel;

            typedef enum WwanNetworkRegistrationState WwanNetworkRegistrationState;

            typedef enum DataUsageGranularity DataUsageGranularity;

            typedef enum CellularApnAuthenticationType CellularApnAuthenticationType;

            typedef enum WwanDataClass WwanDataClass;

            typedef enum TriStates TriStates;

            typedef struct NetworkUsageStates NetworkUsageStates;

            delegate NetworkStatusChangedEventHandler;

            interface IDataUsage;

            interface IDataPlanUsage;

            interface IDataPlanStatus;

            interface IConnectionCost;

            interface INetworkSecuritySettings;

            interface IConnectionProfile;

            interface IWwanConnectionProfileDetails;

            interface IWlanConnectionProfileDetails;

            interface IConnectivityInterval;

            interface INetworkUsage;

            interface IConnectionProfile2;

            interface ILanIdentifierData;

            interface ILanIdentifier;

            interface INetworkInformationStatics;

            interface IConnectionProfileFilter;

            interface INetworkInformationStatics2;

            interface INetworkItem;

            interface INetworkAdapter;

            interface IIPInformation;

            interface IProxyConfiguration;

            interface IConnectionSession;

            interface IRoutePolicy;

            interface IRoutePolicyFactory;

            interface ICellularApnContext;

            interface IConnectivityManagerStatics;

            interface INetworkStateChangeEventDetails;

            runtimeclass IPInformation;

            runtimeclass DataPlanUsage;

            runtimeclass ConnectionCost;

            runtimeclass DataPlanStatus;

            runtimeclass NetworkAdapter;

            runtimeclass DataUsage;

            runtimeclass NetworkSecuritySettings;

            runtimeclass WwanConnectionProfileDetails;

            runtimeclass WlanConnectionProfileDetails;

            runtimeclass NetworkUsage;

            runtimeclass ConnectivityInterval;

            runtimeclass LanIdentifierData;

            runtimeclass ConnectionProfile;

            runtimeclass LanIdentifier;

            runtimeclass ProxyConfiguration;

            runtimeclass ConnectionProfileFilter;

            runtimeclass NetworkItem;

            runtimeclass RoutePolicy;

            runtimeclass CellularApnContext;

            runtimeclass ConnectionSession;

            runtimeclass NetworkInformation;

            runtimeclass ConnectivityManager;

            runtimeclass NetworkStateChangeEventDetails;
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace Networking
    {
        namespace Connectivity
        {
            declare
            {
                interface Windows.Foundation.Collections.IIterable<Windows.Networking.Connectivity.ConnectionProfile*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Networking.Connectivity.ConnectivityInterval*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Networking.Connectivity.LanIdentifier*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Networking.Connectivity.NetworkUsage*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Networking.Connectivity.ConnectionProfile*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Networking.Connectivity.ConnectivityInterval*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Networking.Connectivity.LanIdentifier*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Networking.Connectivity.NetworkUsage*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Networking.Connectivity.ConnectionProfile*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Networking.Connectivity.ConnectivityInterval*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Networking.Connectivity.LanIdentifier*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Networking.Connectivity.NetworkUsage*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Networking.Connectivity.ConnectionProfile*>*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Networking.Connectivity.ConnectivityInterval*>*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Networking.Connectivity.NetworkUsage*>*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Networking.Connectivity.ConnectionProfile*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Networking.Connectivity.ConnectionSession*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Networking.Connectivity.ProxyConfiguration*>;
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace Networking
    {
        namespace Connectivity
        {
            [version(0x06020000)]
            enum NetworkCostType
            {
                Unknown      = 0,
                Unrestricted = 1,
                Fixed        = 2,
                Variable     = 3
            };

            [version(0x06020000)]
            enum NetworkConnectivityLevel
            {
                None                      = 0,
                LocalAccess               = 1,
                ConstrainedInternetAccess = 2,
                InternetAccess            = 3
            };

            [flags]
            [version(0x06020000)]
            enum NetworkTypes
            {
                None           = 0x0,
                Internet       = 0x1,
                PrivateNetwork = 0x2
            };

            [flags]
            [version(0x06020000)]
            enum RoamingStates
            {
                None       = 0x0,
                NotRoaming = 0x1,
                Roaming    = 0x2
            };

            [version(0x06020000)]
            enum NetworkAuthenticationType
            {
                None           = 0,
                Unknown        = 1,
                Open80211      = 2,
                SharedKey80211 = 3,
                Wpa            = 4,
                WpaPsk         = 5,
                WpaNone        = 6,
                Rsna           = 7,
                RsnaPsk        = 8,
                Ihv            = 9
            };

            [version(0x06020000)]
            enum NetworkEncryptionType
            {
                None        = 0,
                Unknown     = 1,
                Wep         = 2,
                Wep40       = 3,
                Wep104      = 4,
                Tkip        = 5,
                Ccmp        = 6,
                WpaUseGroup = 7,
                RsnUseGroup = 8,
                Ihv         = 9
            };

            [version(0x06030000)]
            enum DomainConnectivityLevel
            {
                None            = 0,
                Unauthenticated = 1,
                Authenticated   = 2
            };

            [version(0x06030000)]
            enum WwanNetworkRegistrationState
            {
                None         = 0,
                Deregistered = 1,
                Searching    = 2,
                Home         = 3,
                Roaming      = 4,
                Partner      = 5,
                Denied       = 6
            };

            [version(0x06030000)]
            enum DataUsageGranularity
            {
                PerMinute = 0,
                PerHour   = 1,
                PerDay    = 2,
                Total     = 3
            };

            [version(0x06030000)]
            enum CellularApnAuthenticationType
            {
                None     = 0,
                Pap      = 1,
                Chap     = 2,
                Mschapv2 = 3
            };

            [flags]
            [version(0x06030000)]
            enum WwanDataClass
            {
                None           = 0x0,
                Gprs           = 0x1,
                Edge           = 0x2,
                Umts           = 0x4,
                Hsdpa          = 0x8,
                Hsupa          = 0x10,
                LteAdvanced    = 0x20,
                Cdma1xRtt      = 0x10000,
                Cdma1xEvdo     = 0x20000,
                Cdma1xEvdoRevA = 0x40000,
                Cdma1xEvdv     = 0x80000,
                Cdma3xRtt      = 0x100000,
                Cdma1xEvdoRevB = 0x200000,
                CdmaUmb        = 0x400000,
                Custom         = 0x80000000
            };

            [version(0x06030000)]
            enum TriStates
            {
                DoNotCare = 0,
                No        = 1,
                Yes       = 2
            };

            [version(0x06030000)]
            struct NetworkUsageStates
            {
                Windows.Networking.Connectivity.TriStates Roaming;
                Windows.Networking.Connectivity.TriStates Shared;
            };

            [uuid(71BA143F-598E-49D0-84EB-8FEBAEDCC195)]
            [version(0x06020000)]
            delegate
                HRESULT NetworkStatusChangedEventHandler([in] IInspectable* sender);

            [deprecated("IDataUsage may be altered or unavailable for releases after Windows 8.1. Instead, use INetworkUsage", deprecate, 0x06030000)]
            [exclusiveto(Windows.Networking.Connectivity.DataUsage)]
            [uuid(C1431DD3-B146-4D39-B959-0C69B096C512)]
            [version(0x06020000)]
            interface IDataUsage : IInspectable
            {
                [deprecated("IDataUsage may be altered or unavailable for releases after Windows 8.1. Instead, use INetworkUsage", deprecate, 0x06030000)] [propget] HRESULT BytesSent([out] [retval] UINT64* value);
                [deprecated("IDataUsage may be altered or unavailable for releases after Windows 8.1. Instead, use INetworkUsage", deprecate, 0x06030000)] [propget] HRESULT BytesReceived([out] [retval] UINT64* value);
            }

            [exclusiveto(Windows.Networking.Connectivity.DataPlanUsage)]
            [uuid(B921492D-3B44-47FF-B361-BE59E69ED1B0)]
            [version(0x06020000)]
            interface IDataPlanUsage : IInspectable
            {
                [propget] HRESULT MegabytesUsed([out] [retval] UINT32* value);
                [propget] HRESULT LastSyncTime([out] [retval] Windows.Foundation.DateTime* value);
            }

            [exclusiveto(Windows.Networking.Connectivity.DataPlanStatus)]
            [uuid(977A8B8C-3885-40F3-8851-42CD2BD568BB)]
            [version(0x06020000)]
            interface IDataPlanStatus : IInspectable
            {
                [propget] HRESULT DataPlanUsage([out] [retval] Windows.Networking.Connectivity.DataPlanUsage** value);
                [propget] HRESULT DataLimitInMegabytes([out] [retval] Windows.Foundation.IReference<UINT32>** value);
                [propget] HRESULT InboundBitsPerSecond([out] [retval] Windows.Foundation.IReference<UINT64>** value);
                [propget] HRESULT OutboundBitsPerSecond([out] [retval] Windows.Foundation.IReference<UINT64>** value);
                [propget] HRESULT NextBillingCycle([out] [retval] Windows.Foundation.IReference<Windows.Foundation.DateTime>** value);
                [propget] HRESULT MaxTransferSizeInMegabytes([out] [retval] Windows.Foundation.IReference<UINT32>** value);
            }

            [exclusiveto(Windows.Networking.Connectivity.ConnectionCost)]
            [uuid(BAD7D829-3416-4B10-A202-BAC0B075BDAE)]
            [version(0x06020000)]
            interface IConnectionCost : IInspectable
            {
                [propget] HRESULT NetworkCostType([out] [retval] Windows.Networking.Connectivity.NetworkCostType* value);
                [propget] HRESULT Roaming([out] [retval] boolean* value);
                [propget] HRESULT OverDataLimit([out] [retval] boolean* value);
                [propget] HRESULT ApproachingDataLimit([out] [retval] boolean* value);
            }

            [exclusiveto(Windows.Networking.Connectivity.NetworkSecuritySettings)]
            [uuid(7CA07E8D-917B-4B5F-B84D-28F7A5AC5402)]
            [version(0x06020000)]
            interface INetworkSecuritySettings : IInspectable
            {
                [propget] HRESULT NetworkAuthenticationType([out] [retval] Windows.Networking.Connectivity.NetworkAuthenticationType* value);
                [propget] HRESULT NetworkEncryptionType([out] [retval] Windows.Networking.Connectivity.NetworkEncryptionType* value);
            }

            [exclusiveto(Windows.Networking.Connectivity.ConnectionProfile)]
            [uuid(71BA143C-598E-49D0-84EB-8FEBAEDCC195)]
            [version(0x06020000)]
            interface IConnectionProfile : IInspectable
            {
                [propget] HRESULT ProfileName([out] [retval] HSTRING* value);
                HRESULT GetNetworkConnectivityLevel([out] [retval] Windows.Networking.Connectivity.NetworkConnectivityLevel* value);
                HRESULT GetNetworkNames([out] [retval] Windows.Foundation.Collections.IVectorView<HSTRING>** value);
                HRESULT GetConnectionCost([out] [retval] Windows.Networking.Connectivity.ConnectionCost** value);
                HRESULT GetDataPlanStatus([out] [retval] Windows.Networking.Connectivity.DataPlanStatus** value);
                [propget] HRESULT NetworkAdapter([out] [retval] Windows.Networking.Connectivity.NetworkAdapter** value);
                [deprecated("GetLocalUsage may be altered or unavailable for releases after Windows 8.1. Instead, use GetNetworkUsageAsync.", deprecate, 0x06030000)] [overload("GetLocalUsage")] HRESULT GetLocalUsage([in] Windows.Foundation.DateTime StartTime, [in] Windows.Foundation.DateTime EndTime, [out] [retval] Windows.Networking.Connectivity.DataUsage** value);
                [deprecated("GetLocalUsage may be altered or unavailable for releases after Windows 8.1. Instead, use GetNetworkUsageAsync.", deprecate, 0x06030000)] [overload("GetLocalUsage")] HRESULT GetLocalUsagePerRoamingStates([in] Windows.Foundation.DateTime StartTime, [in] Windows.Foundation.DateTime EndTime, [in] Windows.Networking.Connectivity.RoamingStates States, [out] [retval] Windows.Networking.Connectivity.DataUsage** value);
                [propget] HRESULT NetworkSecuritySettings([out] [retval] Windows.Networking.Connectivity.NetworkSecuritySettings** value);
            }

            [exclusiveto(Windows.Networking.Connectivity.WwanConnectionProfileDetails)]
            [uuid(0E4DA8FE-835F-4DF3-82FD-DF556EBC09EF)]
            [version(0x06030000)]
            interface IWwanConnectionProfileDetails : IInspectable
            {
                [propget] HRESULT HomeProviderId([out] [retval] HSTRING* value);
                [propget] HRESULT AccessPointName([out] [retval] HSTRING* value);
                HRESULT GetNetworkRegistrationState([out] [retval] Windows.Networking.Connectivity.WwanNetworkRegistrationState* value);
                HRESULT GetCurrentDataClass([out] [retval] Windows.Networking.Connectivity.WwanDataClass* value);
            }

            [exclusiveto(Windows.Networking.Connectivity.WlanConnectionProfileDetails)]
            [uuid(562098CB-B35A-4BF1-A884-B7557E88FF86)]
            [version(0x06030000)]
            interface IWlanConnectionProfileDetails : IInspectable
            {
                HRESULT GetConnectedSsid([out] [retval] HSTRING* value);
            }

            [exclusiveto(Windows.Networking.Connectivity.ConnectivityInterval)]
            [uuid(4FAA3FFF-6746-4824-A964-EED8E87F8709)]
            [version(0x06030000)]
            interface IConnectivityInterval : IInspectable
            {
                [propget] HRESULT StartTime([out] [retval] Windows.Foundation.DateTime* startTime);
                [propget] HRESULT ConnectionDuration([out] [retval] Windows.Foundation.TimeSpan* duration);
            }

            [exclusiveto(Windows.Networking.Connectivity.NetworkUsage)]
            [uuid(49DA8FCE-9985-4927-BF5B-072B5C65F8D9)]
            [version(0x06030000)]
            interface INetworkUsage : IInspectable
            {
                [propget] HRESULT BytesSent([out] [retval] UINT64* value);
                [propget] HRESULT BytesReceived([out] [retval] UINT64* value);
                [propget] HRESULT ConnectionDuration([out] [retval] Windows.Foundation.TimeSpan* duration);
            }

            [exclusiveto(Windows.Networking.Connectivity.ConnectionProfile)]
            [uuid(E2045145-4C9F-400C-9150-7EC7D6E2888A)]
            [version(0x06030000)]
            interface IConnectionProfile2 : IInspectable
            {
                [propget] HRESULT IsWwanConnectionProfile([out] [retval] boolean* value);
                [propget] HRESULT IsWlanConnectionProfile([out] [retval] boolean* value);
                [propget] HRESULT WwanConnectionProfileDetails([out] [retval] Windows.Networking.Connectivity.WwanConnectionProfileDetails** value);
                [propget] HRESULT WlanConnectionProfileDetails([out] [retval] Windows.Networking.Connectivity.WlanConnectionProfileDetails** value);
                [propget] HRESULT ServiceProviderGuid([out] [retval] Windows.Foundation.IReference<GUID>** value);
                HRESULT GetSignalBars([out] [retval] Windows.Foundation.IReference<BYTE>** value);
                HRESULT GetDomainConnectivityLevel([out] [retval] Windows.Networking.Connectivity.DomainConnectivityLevel* value);
                HRESULT GetNetworkUsageAsync([in] Windows.Foundation.DateTime startTime, [in] Windows.Foundation.DateTime endTime, [in] Windows.Networking.Connectivity.DataUsageGranularity granularity, [in] Windows.Networking.Connectivity.NetworkUsageStates states, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Networking.Connectivity.NetworkUsage*>*>** value);
                HRESULT GetConnectivityIntervalsAsync([in] Windows.Foundation.DateTime startTime, [in] Windows.Foundation.DateTime endTime, [in] Windows.Networking.Connectivity.NetworkUsageStates states, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Networking.Connectivity.ConnectivityInterval*>*>** value);
            }

            [exclusiveto(Windows.Networking.Connectivity.LanIdentifierData)]
            [uuid(A74E83C3-D639-45BE-A36A-C4E4AEAF6D9B)]
            [version(0x06020000)]
            interface ILanIdentifierData : IInspectable
            {
                [propget] HRESULT Type([out] [retval] UINT32* value);
                [propget] HRESULT Value([out] [retval] Windows.Foundation.Collections.IVectorView<BYTE>** value);
            }

            [exclusiveto(Windows.Networking.Connectivity.LanIdentifier)]
            [uuid(48AA53AA-1108-4546-A6CB-9A74DA4B7BA0)]
            [version(0x06020000)]
            interface ILanIdentifier : IInspectable
            {
                [propget] HRESULT InfrastructureId([out] [retval] Windows.Networking.Connectivity.LanIdentifierData** value);
                [propget] HRESULT PortId([out] [retval] Windows.Networking.Connectivity.LanIdentifierData** value);
                [propget] HRESULT NetworkAdapterId([out] [retval] GUID* value);
            }

            [exclusiveto(Windows.Networking.Connectivity.NetworkInformation)]
            [uuid(5074F851-950D-4165-9C15-365619481EEA)]
            [version(0x06020000)]
            interface INetworkInformationStatics : IInspectable
            {
                HRESULT GetConnectionProfiles([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Networking.Connectivity.ConnectionProfile*>** value);
                HRESULT GetInternetConnectionProfile([out] [retval] Windows.Networking.Connectivity.ConnectionProfile** value);
                HRESULT GetLanIdentifiers([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Networking.Connectivity.LanIdentifier*>** value);
                HRESULT GetHostNames([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Networking.HostName*>** value);
                HRESULT GetProxyConfigurationAsync([in] Windows.Foundation.Uri* uri, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Networking.Connectivity.ProxyConfiguration*>** value);
                HRESULT GetSortedEndpointPairs([in] Windows.Foundation.Collections.IIterable<Windows.Networking.EndpointPair*>* destinationList, [in] Windows.Networking.HostNameSortOptions sortOptions, [out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Networking.EndpointPair*>** value);
                [eventadd] HRESULT NetworkStatusChanged([in] Windows.Networking.Connectivity.NetworkStatusChangedEventHandler* networkStatusHandler, [out] [retval] EventRegistrationToken* eventCookie);
                [eventremove] HRESULT NetworkStatusChanged([in] EventRegistrationToken eventCookie);
            }

            [exclusiveto(Windows.Networking.Connectivity.ConnectionProfileFilter)]
            [uuid(204C7CC8-BD2D-4E8D-A4B3-455EC337388A)]
            [version(0x06030000)]
            interface IConnectionProfileFilter : IInspectable
            {
                [propput] HRESULT IsConnected([in] boolean value);
                [propget] HRESULT IsConnected([out] [retval] boolean* value);
                [propput] HRESULT IsWwanConnectionProfile([in] boolean value);
                [propget] HRESULT IsWwanConnectionProfile([out] [retval] boolean* value);
                [propput] HRESULT IsWlanConnectionProfile([in] boolean value);
                [propget] HRESULT IsWlanConnectionProfile([out] [retval] boolean* value);
                [propput] HRESULT NetworkCostType([in] Windows.Networking.Connectivity.NetworkCostType value);
                [propget] HRESULT NetworkCostType([out] [retval] Windows.Networking.Connectivity.NetworkCostType* value);
                [propput] HRESULT ServiceProviderGuid([in] Windows.Foundation.IReference<GUID>* value);
                [propget] HRESULT ServiceProviderGuid([out] [retval] Windows.Foundation.IReference<GUID>** value);
            }

            [exclusiveto(Windows.Networking.Connectivity.NetworkInformation)]
            [uuid(459CED14-2832-49B6-BA6E-E265F04786A8)]
            [version(0x06030000)]
            interface INetworkInformationStatics2 : IInspectable
            {
                HRESULT FindConnectionProfilesAsync([in] Windows.Networking.Connectivity.ConnectionProfileFilter* pProfileFilter, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Networking.Connectivity.ConnectionProfile*>*>** value);
            }

            [exclusiveto(Windows.Networking.Connectivity.NetworkItem)]
            [uuid(01BC4D39-F5E0-4567-A28C-42080C831B2B)]
            [version(0x06020000)]
            interface INetworkItem : IInspectable
            {
                [propget] HRESULT NetworkId([out] [retval] GUID* value);
                HRESULT GetNetworkTypes([out] [retval] Windows.Networking.Connectivity.NetworkTypes* value);
            }

            [exclusiveto(Windows.Networking.Connectivity.NetworkAdapter)]
            [uuid(3B542E03-5388-496C-A8A3-AFFD39AEC2E6)]
            [version(0x06020000)]
            interface INetworkAdapter : IInspectable
            {
                [propget] HRESULT OutboundMaxBitsPerSecond([out] [retval] UINT64* value);
                [propget] HRESULT InboundMaxBitsPerSecond([out] [retval] UINT64* value);
                [propget] HRESULT IanaInterfaceType([out] [retval] UINT32* value);
                [propget] HRESULT NetworkItem([out] [retval] Windows.Networking.Connectivity.NetworkItem** value);
                [propget] HRESULT NetworkAdapterId([out] [retval] GUID* value);
                HRESULT GetConnectedProfileAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Networking.Connectivity.ConnectionProfile*>** value);
            }

            [exclusiveto(Windows.Networking.Connectivity.IPInformation)]
            [uuid(D85145E0-138F-47D7-9B3A-36BB488CEF33)]
            [version(0x06020000)]
            interface IIPInformation : IInspectable
            {
                [propget] HRESULT NetworkAdapter([out] [retval] Windows.Networking.Connectivity.NetworkAdapter** value);
                [propget] HRESULT PrefixLength([out] [retval] Windows.Foundation.IReference<BYTE>** value);
            }

            [exclusiveto(Windows.Networking.Connectivity.ProxyConfiguration)]
            [uuid(EF3A60B4-9004-4DD6-B7D8-B3E502F4AAD0)]
            [version(0x06020000)]
            interface IProxyConfiguration : IInspectable
            {
                [propget] HRESULT ProxyUris([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Foundation.Uri*>** value);
                [propget] HRESULT CanConnectDirectly([out] [retval] boolean* value);
            }

            [exclusiveto(Windows.Networking.Connectivity.ConnectionSession)]
            [uuid(FF905D4C-F83B-41B0-8A0C-1462D9C56B73)]
            [version(0x06030000)]
            interface IConnectionSession : IInspectable
                requires
                    Windows.Foundation.IClosable
            {
                [propget] HRESULT ConnectionProfile([out] [retval] Windows.Networking.Connectivity.ConnectionProfile** value);
            }

            [exclusiveto(Windows.Networking.Connectivity.RoutePolicy)]
            [uuid(11ABC4AC-0FC7-42E4-8742-569923B1CA11)]
            [version(0x06030000)]
            interface IRoutePolicy : IInspectable
            {
                [propget] HRESULT ConnectionProfile([out] [retval] Windows.Networking.Connectivity.ConnectionProfile** value);
                [propget] HRESULT HostName([out] [retval] Windows.Networking.HostName** value);
                [propget] HRESULT HostNameType([out] [retval] Windows.Networking.DomainNameType* value);
            }

            [exclusiveto(Windows.Networking.Connectivity.RoutePolicy)]
            [uuid(36027933-A18E-4DB5-A697-F58FA7364E44)]
            [version(0x06030000)]
            interface IRoutePolicyFactory : IInspectable
            {
                HRESULT CreateRoutePolicy([in] Windows.Networking.Connectivity.ConnectionProfile* connectionProfile, [in] Windows.Networking.HostName* hostName, [in] Windows.Networking.DomainNameType type, [out] [retval] Windows.Networking.Connectivity.RoutePolicy** routePolicy);
            }

            [exclusiveto(Windows.Networking.Connectivity.CellularApnContext)]
            [uuid(6FA529F4-EFFD-4542-9AB2-705BBF94943A)]
            [version(0x06030000)]
            interface ICellularApnContext : IInspectable
            {
                [propget] HRESULT ProviderId([out] [retval] HSTRING* value);
                [propput] HRESULT ProviderId([in] HSTRING value);
                [propget] HRESULT AccessPointName([out] [retval] HSTRING* value);
                [propput] HRESULT AccessPointName([in] HSTRING value);
                [propget] HRESULT UserName([out] [retval] HSTRING* value);
                [propput] HRESULT UserName([in] HSTRING value);
                [propget] HRESULT Password([out] [retval] HSTRING* value);
                [propput] HRESULT Password([in] HSTRING value);
                [propget] HRESULT IsCompressionEnabled([out] [retval] boolean* value);
                [propput] HRESULT IsCompressionEnabled([in] boolean value);
                [propget] HRESULT AuthenticationType([out] [retval] Windows.Networking.Connectivity.CellularApnAuthenticationType* value);
                [propput] HRESULT AuthenticationType([in] Windows.Networking.Connectivity.CellularApnAuthenticationType value);
            }

            [exclusiveto(Windows.Networking.Connectivity.ConnectivityManager)]
            [uuid(5120D4B1-4FB1-48B0-AFC9-42E0092A8164)]
            [version(0x06030000)]
            interface IConnectivityManagerStatics : IInspectable
            {
                HRESULT AcquireConnectionAsync([in] Windows.Networking.Connectivity.CellularApnContext* cellularApnContext, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Networking.Connectivity.ConnectionSession*>** operation);
                HRESULT AddHttpRoutePolicy([in] Windows.Networking.Connectivity.RoutePolicy* routePolicy);
                HRESULT RemoveHttpRoutePolicy([in] Windows.Networking.Connectivity.RoutePolicy* routePolicy);
            }

            [exclusiveto(Windows.Networking.Connectivity.NetworkStateChangeEventDetails)]
            [uuid(1F0CF333-D7A6-44DD-A4E9-687C476B903D)]
            [version(0x06030000)]
            interface INetworkStateChangeEventDetails : IInspectable
            {
                [propget] HRESULT HasNewInternetConnectionProfile([out] [retval] boolean* value);
                [propget] HRESULT HasNewConnectionCost([out] [retval] boolean* value);
                [propget] HRESULT HasNewNetworkConnectivityLevel([out] [retval] boolean* value);
                [propget] HRESULT HasNewDomainConnectivityLevel([out] [retval] boolean* value);
                [propget] HRESULT HasNewHostNameList([out] [retval] boolean* value);
                [propget] HRESULT HasNewWwanRegistrationState([out] [retval] boolean* value);
            }

            [marshaling_behavior(agile)]
            [version(0x06020000)]
            runtimeclass IPInformation
            {
                [default] interface Windows.Networking.Connectivity.IIPInformation;
            }

            [marshaling_behavior(agile)]
            [version(0x06020000)]
            runtimeclass DataPlanUsage
            {
                [default] interface Windows.Networking.Connectivity.IDataPlanUsage;
            }

            [marshaling_behavior(agile)]
            [version(0x06020000)]
            runtimeclass ConnectionCost
            {
                [default] interface Windows.Networking.Connectivity.IConnectionCost;
            }

            [marshaling_behavior(agile)]
            [version(0x06020000)]
            runtimeclass DataPlanStatus
            {
                [default] interface Windows.Networking.Connectivity.IDataPlanStatus;
            }

            [marshaling_behavior(agile)]
            [version(0x06020000)]
            runtimeclass NetworkAdapter
            {
                [default] interface Windows.Networking.Connectivity.INetworkAdapter;
            }

            [deprecated("DataUsage may be altered or unavailable for releases after Windows 8.1. Instead, use NetworkUsage.", deprecate, 0x06030000)]
            [marshaling_behavior(agile)]
            [version(0x06020000)]
            runtimeclass DataUsage
            {
                [default] interface Windows.Networking.Connectivity.IDataUsage;
            }

            [marshaling_behavior(agile)]
            [version(0x06020000)]
            runtimeclass NetworkSecuritySettings
            {
                [default] interface Windows.Networking.Connectivity.INetworkSecuritySettings;
            }

            [marshaling_behavior(agile)]
            [version(0x06030000)]
            runtimeclass WwanConnectionProfileDetails
            {
                [default] interface Windows.Networking.Connectivity.IWwanConnectionProfileDetails;
            }

            [marshaling_behavior(agile)]
            [version(0x06030000)]
            runtimeclass WlanConnectionProfileDetails
            {
                [default] interface Windows.Networking.Connectivity.IWlanConnectionProfileDetails;
            }

            [marshaling_behavior(agile)]
            [version(0x06030000)]
            runtimeclass NetworkUsage
            {
                [default] interface Windows.Networking.Connectivity.INetworkUsage;
            }

            [marshaling_behavior(agile)]
            [version(0x06030000)]
            runtimeclass ConnectivityInterval
            {
                [default] interface Windows.Networking.Connectivity.IConnectivityInterval;
            }

            [marshaling_behavior(agile)]
            [version(0x06020000)]
            runtimeclass LanIdentifierData
            {
                [default] interface Windows.Networking.Connectivity.ILanIdentifierData;
            }

            [marshaling_behavior(agile)]
            [version(0x06020000)]
            runtimeclass ConnectionProfile
            {
                [default] interface Windows.Networking.Connectivity.IConnectionProfile;
                [version(0x06030000)] interface Windows.Networking.Connectivity.IConnectionProfile2;
            }

            [marshaling_behavior(agile)]
            [version(0x06020000)]
            runtimeclass LanIdentifier
            {
                [default] interface Windows.Networking.Connectivity.ILanIdentifier;
            }

            [marshaling_behavior(agile)]
            [version(0x06020000)]
            runtimeclass ProxyConfiguration
            {
                [default] interface Windows.Networking.Connectivity.IProxyConfiguration;
            }

            [activatable(0x06030000)]
            [marshaling_behavior(agile)]
            [threading(both)]
            [version(0x06030000)]
            runtimeclass ConnectionProfileFilter
            {
                [default] interface Windows.Networking.Connectivity.IConnectionProfileFilter;
            }

            [marshaling_behavior(agile)]
            [version(0x06020000)]
            runtimeclass NetworkItem
            {
                [default] interface Windows.Networking.Connectivity.INetworkItem;
            }

            [activatable(Windows.Networking.Connectivity.IRoutePolicyFactory, 0x06030000)]
            [marshaling_behavior(agile)]
            [version(0x06030000)]
            runtimeclass RoutePolicy
            {
                [default] interface Windows.Networking.Connectivity.IRoutePolicy;
            }

            [activatable(0x06030000)]
            [marshaling_behavior(agile)]
            [version(0x06030000)]
            runtimeclass CellularApnContext
            {
                [default] interface Windows.Networking.Connectivity.ICellularApnContext;
            }

            [marshaling_behavior(agile)]
            [version(0x06030000)]
            runtimeclass ConnectionSession
            {
                [default] interface Windows.Networking.Connectivity.IConnectionSession;
                interface Windows.Foundation.IClosable;
            }

            [marshaling_behavior(agile)]
            [static(Windows.Networking.Connectivity.INetworkInformationStatics2, 0x06030000)]
            [static(Windows.Networking.Connectivity.INetworkInformationStatics, 0x06020000)]
            [version(0x06020000)]
            runtimeclass NetworkInformation
            {
            }

            [marshaling_behavior(agile)]
            [static(Windows.Networking.Connectivity.IConnectivityManagerStatics, 0x06030000)]
            [version(0x06030000)]
            runtimeclass ConnectivityManager
            {
            }

            [marshaling_behavior(agile)]
            [version(0x06030000)]
            runtimeclass NetworkStateChangeEventDetails
            {
                [default] interface Windows.Networking.Connectivity.INetworkStateChangeEventDetails;
            }
        }
    }
}
