2 * Copyright (C) 2023 Mohamad Al-Jaf
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
20 #pragma winrt ns_prefix
23 import
"inspectable.idl";
24 import
"asyncinfo.idl";
25 import
"eventtoken.idl";
26 import
"windowscontracts.idl";
27 import
"windows.foundation.idl";
28 import
"windows.networking.connectivity.idl";
30 namespace Windows.Networking
{
31 typedef enum DomainNameType DomainNameType
;
32 typedef enum HostNameSortOptions HostNameSortOptions
;
33 typedef enum HostNameType HostNameType
;
35 interface IEndpointPair
;
36 interface IEndpointPairFactory
;
38 interface IHostNameFactory
;
39 interface IHostNameStatics
;
41 runtimeclass EndpointPair
;
42 runtimeclass HostName
;
45 interface Windows.Foundation.Collections.IIterable
<Windows.Networking.EndpointPair
*>;
46 interface Windows.Foundation.Collections.IIterable
<Windows.Networking.HostName
*>;
47 interface Windows.Foundation.Collections.IIterator
<Windows.Networking.EndpointPair
*>;
48 interface Windows.Foundation.Collections.IIterator
<Windows.Networking.HostName
*>;
49 interface Windows.Foundation.Collections.IVectorView
<Windows.Networking.EndpointPair
*>;
50 interface Windows.Foundation.Collections.IVectorView
<Windows.Networking.HostName
*>;
51 interface Windows.Foundation.Collections.IVector
<Windows.Networking.HostName
*>;
52 interface Windows.Foundation.AsyncOperationCompletedHandler
<Windows.Foundation.Collections.IVectorView
<Windows.Networking.EndpointPair
*> *>;
53 interface Windows.Foundation.IAsyncOperation
<Windows.Foundation.Collections.IVectorView
<Windows.Networking.EndpointPair
*> *>;
57 contract
(Windows.Foundation.UniversalApiContract
, 1.0)
66 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
69 enum HostNameSortOptions
72 OptimizeForLongConnections
= 0x2,
76 contract
(Windows.Foundation.UniversalApiContract
, 1.0)
87 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
88 exclusiveto
(Windows.Networking.EndpointPair
),
89 uuid(33a0aa36
-f8fa
-4b30
-b856
-76517c3bd06d
)
91 interface IEndpointPair
: IInspectable
93 [propget] HRESULT LocalHostName
([out, retval] Windows.Networking.HostName
**value
);
94 [propput] HRESULT LocalHostName
([in] Windows.Networking.HostName
*value
);
95 [propget] HRESULT LocalServiceName
([out, retval] HSTRING
*value
);
96 [propput] HRESULT LocalServiceName
([in] HSTRING value
);
97 [propget] HRESULT RemoteHostName
([out, retval] Windows.Networking.HostName
**value
);
98 [propput] HRESULT RemoteHostName
([in] Windows.Networking.HostName
*value
);
99 [propget] HRESULT RemoteServiceName
([out, retval] HSTRING
*value
);
100 [propput] HRESULT RemoteServiceName
([in] HSTRING value
);
104 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
105 exclusiveto
(Windows.Networking.EndpointPair
),
106 uuid(b609d971
-64e0
-442b
-aa6f
-cc8c8f181f78
)
108 interface IEndpointPairFactory
: IInspectable
110 HRESULT CreateEndpointPair
([in] Windows.Networking.HostName
*host
, [in] HSTRING service
,
111 [in] Windows.Networking.HostName
*remote_host
, [in] HSTRING remote_service
,
112 [out, retval] Windows.Networking.EndpointPair
**value
);
116 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
117 exclusiveto
(Windows.Networking.HostName
),
118 uuid(bf8ecaad
-ed96
-49a7
-9084-d416cae88dcb
)
120 interface IHostName
: IInspectable
122 [propget] HRESULT IPInformation
([out, retval] Windows.Networking.Connectivity.IPInformation
**value
);
123 [propget] HRESULT RawName
([out, retval] HSTRING
*value
);
124 [propget] HRESULT DisplayName
([out, retval] HSTRING
*value
);
125 [propget] HRESULT CanonicalName
([out, retval] HSTRING
*value
);
126 [propget] HRESULT Type
([out, retval] Windows.Networking.HostNameType
*value
);
127 HRESULT IsEqual
([in] Windows.Networking.HostName
*name
, [out, retval] boolean *equal
);
131 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
132 exclusiveto
(Windows.Networking.HostName
),
133 uuid(458c23ed
-712f
-4576-adf1
-c20b2c643558
)
135 interface IHostNameFactory
: IInspectable
137 HRESULT CreateHostName
([in] HSTRING name
, [out, retval] Windows.Networking.HostName
**value
);
141 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
142 exclusiveto
(Windows.Networking.HostName
),
143 uuid(f68cd4bf
-a388
-4e8b
-91ea
-54dd6dd901c0
)
145 interface IHostNameStatics
: IInspectable
147 HRESULT Compare
([in] HSTRING value1
, [in] HSTRING value2
, [out, retval] INT32
*result
);
151 activatable
(Windows.Networking.IEndpointPairFactory
, Windows.Foundation.UniversalApiContract
, 1.0),
152 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
153 marshaling_behavior
(agile
),
156 runtimeclass EndpointPair
158 [default] interface Windows.Networking.IEndpointPair
;
162 activatable
(Windows.Networking.IHostNameFactory
, Windows.Foundation.UniversalApiContract
, 1.0),
163 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
164 marshaling_behavior
(agile
),
165 static
(Windows.Networking.IHostNameStatics
, Windows.Foundation.UniversalApiContract
, 1.0),
168 runtimeclass HostName
170 [default] interface Windows.Networking.IHostName
;
171 [contract
(Windows.Foundation.UniversalApiContract
, 1.0)] interface Windows.Foundation.IStringable
;