mirror of
https://git.code.sf.net/p/mingw-w64/mingw-w64
synced 2024-11-27 11:54:24 +08:00
4ef04b0a7f
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
464 lines
18 KiB
Plaintext
464 lines
18 KiB
Plaintext
/*
|
|
* Copyright (C) 2021 Alistair Leslie-Hughes
|
|
* Copyright (C) 2023 Mohamad Al-Jaf
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
*/
|
|
|
|
#ifdef __WIDL__
|
|
#pragma winrt ns_prefix
|
|
#endif
|
|
|
|
import "inspectable.idl";
|
|
import "asyncinfo.idl";
|
|
import "eventtoken.idl";
|
|
import "windowscontracts.idl";
|
|
import "windows.foundation.idl";
|
|
import "windows.networking.idl";
|
|
import "windows.storage.streams.idl";
|
|
|
|
namespace Windows.Foundation
|
|
{
|
|
interface IClosable;
|
|
|
|
runtimeclass Uri;
|
|
}
|
|
|
|
namespace Windows.Networking
|
|
{
|
|
typedef enum DomainNameType DomainNameType;
|
|
typedef enum HostNameSortOptions HostNameSortOptions;
|
|
|
|
runtimeclass EndpointPair;
|
|
runtimeclass HostName;
|
|
}
|
|
|
|
namespace Windows.Networking.Connectivity
|
|
{
|
|
runtimeclass ConnectionCost;
|
|
runtimeclass ConnectionProfile;
|
|
runtimeclass DataPlanStatus;
|
|
runtimeclass DataPlanUsage;
|
|
runtimeclass DataUsage;
|
|
runtimeclass IPInformation;
|
|
runtimeclass LanIdentifier;
|
|
runtimeclass LanIdentifierData;
|
|
runtimeclass NetworkAdapter;
|
|
runtimeclass NetworkInformation;
|
|
runtimeclass NetworkItem;
|
|
runtimeclass NetworkSecuritySettings;
|
|
runtimeclass ProxyConfiguration;
|
|
|
|
typedef enum NetworkAuthenticationType NetworkAuthenticationType;
|
|
typedef enum NetworkConnectivityLevel NetworkConnectivityLevel;
|
|
typedef enum NetworkCostType NetworkCostType;
|
|
typedef enum NetworkEncryptionType NetworkEncryptionType;
|
|
typedef enum NetworkTypes NetworkTypes;
|
|
typedef enum RoamingStates RoamingStates;
|
|
|
|
declare
|
|
{
|
|
interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Networking.Connectivity.ConnectionProfile *>;
|
|
interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Networking.Connectivity.ProxyConfiguration *>;
|
|
interface Windows.Foundation.IAsyncOperation<Windows.Networking.Connectivity.ConnectionProfile *>;
|
|
interface Windows.Foundation.IAsyncOperation<Windows.Networking.Connectivity.ProxyConfiguration *>;
|
|
interface Windows.Foundation.Collections.IIterable<Windows.Networking.EndpointPair *>;
|
|
interface Windows.Foundation.Collections.IVectorView<Windows.Networking.Connectivity.ConnectionProfile *>;
|
|
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 *>;
|
|
}
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
]
|
|
enum NetworkAuthenticationType
|
|
{
|
|
None = 0,
|
|
Unknown = 1,
|
|
Open80211 = 2,
|
|
SharedKey80211 = 3,
|
|
Wpa = 4,
|
|
WpaPsk = 5,
|
|
WpaNone = 6,
|
|
Rsna = 7,
|
|
RsnaPsk = 8,
|
|
Ihv = 9,
|
|
};
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
]
|
|
enum NetworkConnectivityLevel
|
|
{
|
|
None = 0,
|
|
LocalAccess = 1,
|
|
ConstrainedInternetAccess = 2,
|
|
InternetAccess = 3,
|
|
};
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
]
|
|
enum NetworkCostType
|
|
{
|
|
Unknown = 0,
|
|
Unrestricted = 1,
|
|
Fixed = 2,
|
|
Variable = 3,
|
|
};
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
]
|
|
enum NetworkEncryptionType
|
|
{
|
|
None = 0,
|
|
Unknown = 1,
|
|
Wep = 2,
|
|
Wep40 = 3,
|
|
Wep104 = 4,
|
|
Tkip = 5,
|
|
Ccmp = 6,
|
|
WpaUseGroup = 7,
|
|
RsnUseGroup = 8,
|
|
Ihv = 9,
|
|
};
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
flags,
|
|
]
|
|
enum NetworkTypes
|
|
{
|
|
None = 0x0,
|
|
Internet = 0x1,
|
|
PrivateNetwork = 0x2,
|
|
};
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
flags,
|
|
]
|
|
enum RoamingStates
|
|
{
|
|
None = 0x0,
|
|
NotRoaming = 0x1,
|
|
Roaming = 0x2,
|
|
};
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
uuid(71ba143f-598e-49d0-84eb-8febaedcc195),
|
|
]
|
|
delegate HRESULT NetworkStatusChangedEventHandler([in] IInspectable *sender);
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
exclusiveto(Windows.Networking.Connectivity.ConnectionCost),
|
|
uuid(bad7d829-3416-4b10-a202-bac0b075bdae),
|
|
]
|
|
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);
|
|
}
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
exclusiveto(Windows.Networking.Connectivity.ConnectionProfile),
|
|
uuid(71ba143c-598e-49d0-84eb-8febaedcc195),
|
|
]
|
|
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);
|
|
HRESULT GetLocalUsage([in] Windows.Foundation.DateTime start, [in] Windows.Foundation.DateTime end,
|
|
[out, retval] Windows.Networking.Connectivity.DataUsage **value);
|
|
HRESULT GetLocalUsagePerRoamingStates([in] Windows.Foundation.DateTime start,
|
|
[in] Windows.Foundation.DateTime end, [in] Windows.Networking.Connectivity.RoamingStates states,
|
|
[out, retval] Windows.Networking.Connectivity.DataUsage **value);
|
|
[propget] HRESULT NetworkSecuritySettings([out, retval] Windows.Networking.Connectivity.NetworkSecuritySettings **value);
|
|
}
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
exclusiveto(Windows.Networking.Connectivity.DataPlanStatus),
|
|
uuid(977a8b8c-3885-40f3-8851-42cd2bd568bb),
|
|
]
|
|
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);
|
|
}
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
exclusiveto(Windows.Networking.Connectivity.DataPlanUsage),
|
|
uuid(b921492d-3b44-47ff-b361-be59e69ed1b0),
|
|
]
|
|
interface IDataPlanUsage : IInspectable
|
|
{
|
|
[propget] HRESULT MegabytesUsed([out, retval] UINT32 *value);
|
|
[propget] HRESULT LastSyncTime([out, retval] Windows.Foundation.DateTime *value);
|
|
}
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
exclusiveto(Windows.Networking.Connectivity.DataUsage),
|
|
uuid(c1431dd3-b146-4d39-b959-0c69b096c512),
|
|
]
|
|
interface IDataUsage : IInspectable
|
|
{
|
|
[propget] HRESULT BytesSent([out, retval] UINT64 *value);
|
|
[propget] HRESULT BytesReceived([out, retval] UINT64 *value);
|
|
}
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
exclusiveto(Windows.Networking.Connectivity.IPInformation),
|
|
uuid(d85145e0-138f-47d7-9b3a-36bb488cef33),
|
|
]
|
|
interface IIPInformation : IInspectable
|
|
{
|
|
[propget] HRESULT NetworkAdapter([out, retval] Windows.Networking.Connectivity.NetworkAdapter **value);
|
|
[propget] HRESULT PrefixLength([out, retval] Windows.Foundation.IReference<BYTE> **value);
|
|
}
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
exclusiveto(Windows.Networking.Connectivity.LanIdentifier),
|
|
uuid(48aa53aa-1108-4546-a6cb-9a74da4b7ba0),
|
|
]
|
|
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);
|
|
}
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
exclusiveto(Windows.Networking.Connectivity.LanIdentifierData),
|
|
uuid(a74e83c3-d639-45be-a36a-c4e4aeaf6d9b),
|
|
]
|
|
interface ILanIdentifierData : IInspectable
|
|
{
|
|
[propget] HRESULT Type([out, retval] UINT32 *value);
|
|
[propget] HRESULT Value([out,retval] Windows.Foundation.Collections.IVectorView<BYTE> **value);
|
|
}
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
exclusiveto(Windows.Networking.Connectivity.NetworkAdapter),
|
|
uuid(3b542e03-5388-496c-a8a3-affd39aec2e6),
|
|
]
|
|
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);
|
|
}
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
exclusiveto(Windows.Networking.Connectivity.NetworkInformation),
|
|
uuid(5074f851-950d-4165-9c15-365619481eea),
|
|
]
|
|
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 *> *endpoint,
|
|
[in] Windows.Networking.HostNameSortOptions options,
|
|
[out, retval] Windows.Foundation.Collections.IVectorView<Windows.Networking.EndpointPair *> **value);
|
|
[eventadd] HRESULT NetworkStatusChanged([in] Windows.Networking.Connectivity.NetworkStatusChangedEventHandler *handler,
|
|
[out, retval] EventRegistrationToken *cookie);
|
|
[eventremove] HRESULT NetworkStatusChanged([in] EventRegistrationToken cookie);
|
|
}
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
exclusiveto(Windows.Networking.Connectivity.NetworkInformation),
|
|
uuid(01bc4d39-f5e0-4567-a28c-42080c831b2b),
|
|
]
|
|
interface INetworkItem : IInspectable
|
|
{
|
|
[propget] HRESULT NetworkId([out, retval] GUID *value);
|
|
HRESULT GetNetworkTypes([out, retval] NetworkTypes *value);
|
|
}
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
exclusiveto(Windows.Networking.Connectivity.NetworkSecuritySettings),
|
|
uuid(7ca07e8d-917b-4b5f-b84d-28f7a5ac5402),
|
|
]
|
|
interface INetworkSecuritySettings : IInspectable
|
|
{
|
|
[propget] HRESULT NetworkAuthenticationType([out, retval] Windows.Networking.Connectivity.NetworkAuthenticationType *value);
|
|
[propget] HRESULT NetworkEncryptionType([out, retval] Windows.Networking.Connectivity.NetworkEncryptionType *value);
|
|
}
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
exclusiveto(Windows.Networking.Connectivity.NetworkSecuritySettings),
|
|
uuid(ef3a60b4-9004-4dd6-b7d8-b3e502f4aad0),
|
|
]
|
|
interface IProxyConfiguration : IInspectable
|
|
{
|
|
[propget] HRESULT ProxyUris([out, retval] Windows.Foundation.Collections.IVectorView<Windows.Foundation.Uri *> **value);
|
|
[propget] HRESULT CanConnectDirectly([out, retval] boolean *value);
|
|
}
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
marshaling_behavior(agile),
|
|
]
|
|
runtimeclass ConnectionCost
|
|
{
|
|
[default] interface Windows.Networking.Connectivity.IConnectionCost;
|
|
[contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Networking.Connectivity.IConnectionCost2;
|
|
}
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
marshaling_behavior(agile),
|
|
]
|
|
runtimeclass ConnectionProfile
|
|
{
|
|
[default] interface Windows.Networking.Connectivity.IConnectionProfile;
|
|
[contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Networking.Connectivity.IConnectionProfile2;
|
|
[contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Networking.Connectivity.IConnectionProfile3;
|
|
[contract(Windows.Foundation.UniversalApiContract, 5.0)] interface Windows.Networking.Connectivity.IConnectionProfile4;
|
|
[contract(Windows.Foundation.UniversalApiContract, 7.0)] interface Windows.Networking.Connectivity.IConnectionProfile5;
|
|
}
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
marshaling_behavior(agile),
|
|
]
|
|
runtimeclass DataPlanStatus
|
|
{
|
|
[default] interface Windows.Networking.Connectivity.IDataPlanStatus;
|
|
}
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
marshaling_behavior(agile),
|
|
]
|
|
runtimeclass DataPlanUsage
|
|
{
|
|
[default] interface Windows.Networking.Connectivity.IDataPlanUsage;
|
|
}
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
marshaling_behavior(agile),
|
|
]
|
|
runtimeclass DataUsage
|
|
{
|
|
[default] interface Windows.Networking.Connectivity.IDataUsage;
|
|
}
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
marshaling_behavior(agile),
|
|
]
|
|
runtimeclass IPInformation
|
|
{
|
|
[default] interface Windows.Networking.Connectivity.IIPInformation;
|
|
}
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
marshaling_behavior(agile),
|
|
]
|
|
runtimeclass LanIdentifier
|
|
{
|
|
[default] interface Windows.Networking.Connectivity.ILanIdentifier;
|
|
}
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
marshaling_behavior(agile),
|
|
]
|
|
runtimeclass LanIdentifierData
|
|
{
|
|
[default] interface Windows.Networking.Connectivity.ILanIdentifierData;
|
|
}
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
marshaling_behavior(agile),
|
|
]
|
|
runtimeclass NetworkAdapter
|
|
{
|
|
[default] interface Windows.Networking.Connectivity.INetworkAdapter;
|
|
}
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
marshaling_behavior(agile),
|
|
static(Windows.Networking.Connectivity.INetworkInformationStatics, Windows.Foundation.UniversalApiContract, 1.0),
|
|
]
|
|
runtimeclass NetworkInformation
|
|
{
|
|
}
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
marshaling_behavior(agile),
|
|
]
|
|
runtimeclass NetworkItem
|
|
{
|
|
[default] interface Windows.Networking.Connectivity.INetworkItem;
|
|
}
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
marshaling_behavior(agile),
|
|
]
|
|
runtimeclass NetworkSecuritySettings
|
|
{
|
|
[default] interface Windows.Networking.Connectivity.INetworkSecuritySettings;
|
|
}
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
marshaling_behavior(agile),
|
|
]
|
|
runtimeclass ProxyConfiguration
|
|
{
|
|
[default] interface Windows.Networking.Connectivity.IProxyConfiguration;
|
|
}
|
|
}
|