From: Fabian Maurer dark.shadow4@web.de
--- include/windows.networking.connectivity.idl | 207 ++++++++++++++++++++ 1 file changed, 207 insertions(+)
diff --git a/include/windows.networking.connectivity.idl b/include/windows.networking.connectivity.idl index 451e67df096..0507882d73f 100644 --- a/include/windows.networking.connectivity.idl +++ b/include/windows.networking.connectivity.idl @@ -60,6 +60,10 @@ namespace Windows.Networking.Connectivity runtimeclass NetworkItem; runtimeclass NetworkSecuritySettings; runtimeclass ProxyConfiguration; + runtimeclass WwanConnectionProfileDetails; + runtimeclass WlanConnectionProfileDetails; + runtimeclass NetworkUsage; + runtimeclass ConnectivityInterval;
typedef enum NetworkAuthenticationType NetworkAuthenticationType; typedef enum NetworkConnectivityLevel NetworkConnectivityLevel; @@ -67,6 +71,13 @@ namespace Windows.Networking.Connectivity typedef enum NetworkEncryptionType NetworkEncryptionType; typedef enum NetworkTypes NetworkTypes; typedef enum RoamingStates RoamingStates; + typedef enum DomainConnectivityLevel DomainConnectivityLevel; + typedef enum DataUsageGranularity DataUsageGranularity; + typedef enum TriStates TriStates; + typedef enum WwanNetworkRegistrationState WwanNetworkRegistrationState; + typedef enum WwanDataClass WwanDataClass; + + typedef struct NetworkUsageStates NetworkUsageStates;
declare { @@ -79,6 +90,20 @@ namespace Windows.Networking.Connectivity interface Windows.Foundation.Collections.IVectorView<Windows.Networking.Connectivity.LanIdentifier *>; interface Windows.Foundation.Collections.IVectorView<Windows.Networking.HostName *>; interface Windows.Foundation.Collections.IVectorView<Windows.Networking.EndpointPair *>; + interface Windows.Foundation.Collections.IVectorView<Windows.Networking.Connectivity.NetworkUsage*>; + interface Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Networking.Connectivity.NetworkUsage*>*>; + interface Windows.Foundation.Collections.IVectorView<Windows.Networking.Connectivity.ConnectivityInterval*>; + interface Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Networking.Connectivity.ConnectivityInterval*>*>; + interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Foundation.Collections.IVectorView<Windows.Networking.Connectivity.ConnectivityInterval*>*>; + interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Networking.Connectivity.ConnectionProfile*>; + interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Foundation.Collections.IVectorView<Windows.Networking.Connectivity.NetworkUsage*>*>; + } + + [ + contractversion(2.0), + ] + apicontract WwanContract + { }
[ @@ -159,6 +184,83 @@ namespace Windows.Networking.Connectivity Roaming = 0x2, };
+ [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + ] + enum DomainConnectivityLevel + { + None = 0, + Unauthenticated = 1, + Authenticated = 2 + }; + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + ] + enum DataUsageGranularity + { + PerMinute = 0, + PerHour = 1, + PerDay = 2, + Total = 3 + }; + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + ] + enum TriStates + { + DoNotCare = 0, + No = 1, + Yes = 2 + }; + + [ + contract(Windows.Networking.Connectivity.WwanContract, 1.0), + ] + enum WwanNetworkRegistrationState + { + None = 0, + Deregistered = 1, + Searching = 2, + Home = 3, + Roaming = 4, + Partner = 5, + Denied = 6 + }; + + [ + contract(Windows.Networking.Connectivity.WwanContract, 1.0), + flags, + ] + 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 + }; + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + ] + struct NetworkUsageStates + { + Windows.Networking.Connectivity.TriStates Roaming; + Windows.Networking.Connectivity.TriStates Shared; + }; + [ contract(Windows.Foundation.UniversalApiContract, 1.0), uuid(71ba143f-598e-49d0-84eb-8febaedcc195), @@ -199,6 +301,28 @@ namespace Windows.Networking.Connectivity [propget] HRESULT NetworkSecuritySettings([out, retval] Windows.Networking.Connectivity.NetworkSecuritySettings **value); }
+ [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.Networking.Connectivity.ConnectionProfile), + uuid(e2045145-4c9f-400c-9150-7ec7d6e2888a), + ] + 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 time_start, [in] Windows.Foundation.DateTime time_end, + [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 time_start, [in] Windows.Foundation.DateTime time_end, + [in] Windows.Networking.Connectivity.NetworkUsageStates states, + [out, retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Networking.Connectivity.ConnectivityInterval*>*> **value); + } + [ contract(Windows.Foundation.UniversalApiContract, 1.0), exclusiveto(Windows.Networking.Connectivity.DataPlanStatus), @@ -339,6 +463,52 @@ namespace Windows.Networking.Connectivity [propget] HRESULT CanConnectDirectly([out, retval] boolean *value); }
+ [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.Networking.Connectivity.NetworkUsage), + uuid(49da8fce-9985-4927-bf5b-072b5c65f8d9), + ] + 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); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.Networking.Connectivity.ConnectivityInterval), + uuid(4faa3fff-6746-4824-a964-eed8e87f8709), + ] + interface IConnectivityInterval : IInspectable + { + [propget] HRESULT StartTime([out, retval] Windows.Foundation.DateTime *time_start); + [propget] HRESULT ConnectionDuration([out, retval] Windows.Foundation.TimeSpan *duration); + } + + [ + contract(Windows.Networking.Connectivity.WwanContract, 1.0), + exclusiveto(Windows.Networking.Connectivity.WwanConnectionProfileDetails), + uuid(0e4da8fe-835f-4df3-82fd-df556ebc09ef), + ] + 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); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.Networking.Connectivity.WlanConnectionProfileDetails), + uuid(562098cb-b35a-4bf1-a884-b7557e88ff86), + ] + interface IWlanConnectionProfileDetails : IInspectable + { + HRESULT GetConnectedSsid([out] [retval] HSTRING *value); + } + [ contract(Windows.Foundation.UniversalApiContract, 1.0), marshaling_behavior(agile), @@ -460,4 +630,41 @@ namespace Windows.Networking.Connectivity { [default] interface Windows.Networking.Connectivity.IProxyConfiguration; } + + [ + contract(Windows.Networking.Connectivity.WwanContract, 1.0), + marshaling_behavior(agile), + ] + runtimeclass WwanConnectionProfileDetails + { + [default] interface Windows.Networking.Connectivity.IWwanConnectionProfileDetails; + [contract(Windows.Networking.Connectivity.WwanContract, 2.0)] interface Windows.Networking.Connectivity.IWwanConnectionProfileDetails2; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile), + ] + runtimeclass WlanConnectionProfileDetails + { + [default] interface Windows.Networking.Connectivity.IWlanConnectionProfileDetails; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile), + ] + runtimeclass NetworkUsage + { + [default] interface Windows.Networking.Connectivity.INetworkUsage; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile), + ] + runtimeclass ConnectivityInterval + { + [default] interface Windows.Networking.Connectivity.IConnectivityInterval; + } }