wininet: Use address length returned by GetAddress in NETCON_connect.
[wine] / include / netfw.idl
1 /*
2  * Copyright 2007 Jeff Latimer
3  *
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.
8  *
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.
13  *
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
17  *
18  *****************************************************************************
19  *
20  * The firewall management interface
21  *
22  */
23
24 import "icftypes.idl";
25 import "oaidl.idl";
26
27 [
28    object,
29    uuid(A6207B2E-7CDD-426A-951E-5E1CBC5AFEAD),
30    dual
31 ]
32 interface INetFwIcmpSettings : IDispatch
33 {
34     [id(1), propget]
35     HRESULT AllowOutboundDestinationUnreachable([out, retval] VARIANT_BOOL* allow);
36
37     [id(1), propput]
38     HRESULT AllowOutboundDestinationUnreachable( [in] VARIANT_BOOL allow );
39
40     [id(2), propget]
41     HRESULT AllowRedirect( [out, retval] VARIANT_BOOL* allow );
42
43     [id(2), propput]
44     HRESULT AllowRedirect( [in] VARIANT_BOOL allow );
45
46     [id(3), propget]
47     HRESULT AllowInboundEchoRequest( [out, retval] VARIANT_BOOL* allow );
48
49     [id(3), propput]
50     HRESULT AllowInboundEchoRequest( [in] VARIANT_BOOL allow );
51
52     [id(4), propget]
53     HRESULT AllowOutboundTimeExceeded( [out, retval] VARIANT_BOOL* allow );
54
55     [id(4), propput]
56     HRESULT AllowOutboundTimeExceeded( [in] VARIANT_BOOL allow );
57
58     [id(5), propget]
59     HRESULT AllowOutboundParameterProblem( [out, retval] VARIANT_BOOL* allow );
60
61     [id(5), propput]
62     HRESULT AllowOutboundParameterProblem( [in] VARIANT_BOOL allow );
63
64     [id(6), propget]
65     HRESULT AllowOutboundSourceQuench( [out, retval] VARIANT_BOOL* allow );
66
67     [id(6), propput]
68     HRESULT AllowOutboundSourceQuench( [in] VARIANT_BOOL allow );
69
70     [id(7), propget]
71     HRESULT AllowInboundRouterRequest( [out, retval] VARIANT_BOOL* allow );
72
73     [id(7), propput]
74     HRESULT AllowInboundRouterRequest( [in] VARIANT_BOOL allow );
75
76     [id(8), propget]
77     HRESULT AllowInboundTimestampRequest( [out, retval] VARIANT_BOOL* allow );
78
79     [id(8), propput]
80     HRESULT AllowInboundTimestampRequest( [in] VARIANT_BOOL allow );
81
82     [id(9), propget]
83     HRESULT AllowInboundMaskRequest( [out, retval] VARIANT_BOOL* allow );
84
85     [id(9), propput]
86     HRESULT AllowInboundMaskRequest( [in] VARIANT_BOOL allow );
87
88     [id(10), propget]
89     HRESULT AllowOutboundPacketTooBig( [out, retval] VARIANT_BOOL* allow );
90
91     [id(10), propput]
92     HRESULT AllowOutboundPacketTooBig( [in] VARIANT_BOOL allow );
93 }
94
95 [
96     object,
97     uuid(E0483BA0-47FF-4D9C-A6D6-7741D0B195F7),
98     dual
99 ]
100 interface INetFwOpenPort : IDispatch
101 {
102     [id(1), propget]
103     HRESULT Name( [out, retval] BSTR* name );
104
105     [id(1), propput]
106     HRESULT Name( [in] BSTR name );
107
108     [id(2), propget]
109     HRESULT IpVersion( [out, retval] NET_FW_IP_VERSION* ipVersion );
110
111     [id(2), propput]
112     HRESULT IpVersion( [in] NET_FW_IP_VERSION ipVersion );
113
114     [id(3), propget]
115     HRESULT Protocol( [out, retval] NET_FW_IP_PROTOCOL* ipProtocol );
116
117     [id(3), propput]
118     HRESULT Protocol( [in] NET_FW_IP_PROTOCOL ipProtocol );
119
120     [id(4), propget]
121     HRESULT Port( [out, retval] LONG* portNumber );
122
123     [id(4), propput]
124     HRESULT Port( [in] LONG portNumber );
125
126     [id(5), propget]
127     HRESULT Scope( [out, retval] NET_FW_SCOPE* scope );
128
129     [id(5), propput]
130     HRESULT Scope( [in] NET_FW_SCOPE scope );
131
132     [id(6), propget]
133     HRESULT RemoteAddresses( [out, retval] BSTR* remoteAddrs );
134
135     [id(6), propput]
136     HRESULT RemoteAddresses( [in] BSTR remoteAddrs );
137
138     [id(7), propget]
139     HRESULT Enabled( [out, retval] VARIANT_BOOL* enabled );
140
141     [id(7), propput]
142     HRESULT Enabled( [in] VARIANT_BOOL enabled );
143
144     [id(8), propget]
145     HRESULT BuiltIn( [out, retval] VARIANT_BOOL* builtIn );
146 }
147
148 [
149     object,
150     uuid(C0E9D7FA-E07E-430A-B19A-090CE82D92E2),
151     dual
152 ]
153 interface INetFwOpenPorts : IDispatch
154 {
155     [id(1), propget]
156     HRESULT Count( [out, retval] long* count );
157
158     [id(2)]
159     HRESULT Add( [in] INetFwOpenPort* port );
160
161     [id(3)]
162     HRESULT Remove( [in] LONG portNumber, [in] NET_FW_IP_PROTOCOL ipProtocol );
163
164     [id(4)]
165     HRESULT Item( [in] LONG portNumber, [in] NET_FW_IP_PROTOCOL ipProtocol,
166                   [out, retval] INetFwOpenPort** openPort );
167
168     [id(DISPID_NEWENUM), propget, restricted]
169     HRESULT _NewEnum( [out, retval] IUnknown** newEnum );
170 }
171
172 [
173     object,
174     uuid(79FD57C8-908E-4A36-9888-D5B3F0A444CF),
175     dual
176 ]
177 interface INetFwService : IDispatch
178 {
179     [id(1), propget]
180     HRESULT Name( [out, retval] BSTR* name );
181
182     [id(2), propget]
183     HRESULT Type( [out, retval] NET_FW_SERVICE_TYPE* type );
184
185     [id(3), propget]
186     HRESULT Customized( [out, retval] VARIANT_BOOL* customized );
187
188     [id(4), propget]
189     HRESULT IpVersion( [out, retval] NET_FW_IP_VERSION* ipVersion );
190
191     [id(4), propput]
192     HRESULT IpVersion( [in] NET_FW_IP_VERSION ipVersion );
193
194     [id(5), propget]
195     HRESULT Scope( [out, retval] NET_FW_SCOPE* scope );
196
197     [id(5), propput]
198     HRESULT Scope( [in] NET_FW_SCOPE scope );
199
200     [id(6), propget]
201     HRESULT RemoteAddresses( [out, retval] BSTR* remoteAddrs );
202
203     [id(6), propput]
204     HRESULT RemoteAddresses( [in] BSTR remoteAddrs );
205
206     [id(7), propget]
207     HRESULT Enabled( [out, retval] VARIANT_BOOL* enabled );
208
209     [id(7), propput]
210     HRESULT Enabled( [in] VARIANT_BOOL enabled );
211
212     [id(8), propget]
213     HRESULT GloballyOpenPorts( [out, retval] INetFwOpenPorts** openPorts );
214 }
215
216 [
217     object,
218     uuid(79649BB4-903E-421B-94C9-79848E79F6EE),
219     dual
220 ]
221 interface INetFwServices : IDispatch
222 {
223     [id(1), propget]
224     HRESULT Count( [out, retval] long* count );
225
226      [id(2)]
227     HRESULT Item( [in] NET_FW_SERVICE_TYPE svcType,
228                   [out, retval] INetFwService** service );
229
230     [id(DISPID_NEWENUM), propget, restricted]
231     HRESULT _NewEnum( [out, retval] IUnknown** newEnum );
232 }
233
234 [
235     object,
236     uuid(B5E64FFA-C2C5-444E-A301-FB5E00018050),
237     dual
238 ]
239 interface INetFwAuthorizedApplication : IDispatch
240 {
241     [id(1), propget]
242     HRESULT Name( [out, retval] BSTR* name );
243
244     [id(1), propput]
245     HRESULT Name( [in] BSTR name );
246
247     [id(2), propget]
248     HRESULT ProcessImageFileName( [out, retval] BSTR* imageFileName );
249
250     [id(2), propput]
251     HRESULT ProcessImageFileName( [in] BSTR imageFileName );
252
253     [id(3), propget]
254     HRESULT IpVersion( [out, retval] NET_FW_IP_VERSION* ipVersion );
255
256     [id(3), propput]
257     HRESULT IpVersion( [in] NET_FW_IP_VERSION ipVersion );
258
259     [id(4), propget]
260     HRESULT Scope( [out, retval] NET_FW_SCOPE* scope );
261
262     [id(4), propput]
263     HRESULT Scope( [in] NET_FW_SCOPE scope );
264
265     [id(5), propget]
266     HRESULT RemoteAddresses( [out, retval] BSTR* remoteAddrs );
267
268     [id(5), propput]
269     HRESULT RemoteAddresses( [in] BSTR remoteAddrs );
270
271     [id(6), propget]
272     HRESULT Enabled( [out, retval] VARIANT_BOOL* enabled );
273
274     [id(6), propput]
275     HRESULT Enabled( [in] VARIANT_BOOL enabled );
276 }
277
278 [
279     object,
280     uuid(D4BECDDF-6F73-4A83-B832-9C66874CD20E),
281     dual
282 ]
283 interface INetFwRemoteAdminSettings : IDispatch
284 {
285     [id(1), propget]
286     HRESULT IpVersion( [out, retval] NET_FW_IP_VERSION* ipVersion );
287
288     [id(1), propput]
289     HRESULT IpVersion( [in] NET_FW_IP_VERSION ipVersion );
290
291     [id(2), propget]
292     HRESULT Scope( [out, retval] NET_FW_SCOPE* scope );
293
294     [id(2), propput]
295     HRESULT Scope( [in] NET_FW_SCOPE scope );
296
297     [id(3), propget]
298     HRESULT RemoteAddresses( [out, retval] BSTR* remoteAddrs );
299
300     [id(3), propput]
301     HRESULT RemoteAddresses( [in] BSTR remoteAddrs );
302
303     [id(4), propget]
304     HRESULT Enabled( [out, retval] VARIANT_BOOL* enabled );
305
306     [id(4), propput]
307     HRESULT Enabled( [in] VARIANT_BOOL enabled );
308 }
309
310
311 [
312     object,
313     uuid(644EFD52-CCF9-486C-97A2-39F352570B30),
314     dual
315 ]
316 interface INetFwAuthorizedApplications : IDispatch
317 {
318     [id(1), propget]
319     HRESULT Count( [out, retval] long* count );
320
321     [id(2)]
322     HRESULT Add( [in] INetFwAuthorizedApplication* app );
323
324     [id(3)]
325     HRESULT Remove( [in] BSTR imageFileName );
326
327     [id(4)]
328     HRESULT Item( [in] BSTR imageFileName,
329                   [out, retval] INetFwAuthorizedApplication** app );
330
331     [id(DISPID_NEWENUM), propget, restricted]
332     HRESULT _NewEnum( [out, retval] IUnknown** newEnum );
333 }
334
335 [
336      object,
337      uuid(174A0DDA-E9F9-449D-993B-21AB667CA456),
338      dual
339 ]
340 interface INetFwProfile : IDispatch
341 {
342     [id(1), propget]
343     HRESULT Type( [out, retval] NET_FW_PROFILE_TYPE* type );
344
345     [id(2), propget]
346     HRESULT FirewallEnabled( [out, retval] VARIANT_BOOL* enabled );
347
348     [id(2), propput]
349     HRESULT FirewallEnabled( [in] VARIANT_BOOL enabled );
350
351     [id(3), propget]
352     HRESULT ExceptionsNotAllowed( [out, retval] VARIANT_BOOL* notAllowed );
353
354     [id(3), propput]
355     HRESULT ExceptionsNotAllowed( [in] VARIANT_BOOL notAllowed );
356
357     [id(4), propget]
358     HRESULT NotificationsDisabled( [out, retval] VARIANT_BOOL* disabled );
359
360     [id(4), propput]
361     HRESULT NotificationsDisabled( [in] VARIANT_BOOL disabled );
362
363     [id(5), propget]
364     HRESULT UnicastResponsesToMulticastBroadcastDisabled( [out, retval] VARIANT_BOOL* disabled );
365
366     [id(5), propput]
367     HRESULT UnicastResponsesToMulticastBroadcastDisabled( [in] VARIANT_BOOL disabled );
368
369     [id(6), propget]
370     HRESULT RemoteAdminSettings( [out, retval] INetFwRemoteAdminSettings** remoteAdminSettings );
371
372     [id(7), propget]
373     HRESULT IcmpSettings( [out, retval] INetFwIcmpSettings** icmpSettings );
374
375     [id(8), propget]
376     HRESULT GloballyOpenPorts( [out, retval] INetFwOpenPorts** openPorts );
377
378     [id(9), propget]
379     HRESULT Services( [out, retval] INetFwServices** services );
380
381     [id(10), propget]
382     HRESULT AuthorizedApplications( [out, retval] INetFwAuthorizedApplications** apps );
383 }
384
385 [
386      object,
387      uuid(D46D2478-9AC9-4008-9DC7-5563CE5536CC),
388      dual
389 ]
390 interface INetFwPolicy : IDispatch
391 {
392     [id(1), propget]
393     HRESULT CurrentProfile( [out, retval] INetFwProfile** profile );
394
395     [id(2)]
396     HRESULT GetProfileByType( [in] NET_FW_PROFILE_TYPE profileType,
397                               [out, retval] INetFwProfile** profile );
398 }
399
400 [
401     object,
402     uuid(F7898AF5-CAC4-4632-A2EC-DA06E5111AF2),
403     dual
404 ]
405 interface INetFwMgr : IDispatch
406 {
407     [id(1), propget]
408     HRESULT LocalPolicy( [out, retval] INetFwPolicy** localPolicy );
409
410     [id(2), propget]
411     HRESULT CurrentProfileType( [out, retval] NET_FW_PROFILE_TYPE* profileType );
412
413     [id(3)]
414     HRESULT RestoreDefaults();
415
416     [id(4)]
417     HRESULT IsPortAllowed( [in] BSTR imageFileName, [in] NET_FW_IP_VERSION ipVersion,
418                            [in] LONG portNumber, [in] BSTR localAddress,
419                            [in] NET_FW_IP_PROTOCOL ipProtocol, [out] VARIANT* allowed,
420                            [out] VARIANT* restricted );
421
422     [id(5)]
423     HRESULT IsIcmpTypeAllowed( [in] NET_FW_IP_VERSION ipVersion, [in] BSTR localAddress,
424                                [in] BYTE type, [out] VARIANT* allowed,
425                                [out] VARIANT* restricted );
426 }
427
428 [
429     uuid(DB4F3345-3EF8-45ED-B976-25A6D3B81B71),
430     version(1.0)
431 ]
432 library NetFwPublicTypeLib
433 {
434     importlib("stdole2.tlb");
435     interface INetFwRemoteAdminSettings;
436     interface INetFwIcmpSettings;
437     interface INetFwOpenPort;
438     interface INetFwOpenPorts;
439     interface INetFwService;
440     interface INetFwServices;
441     interface INetFwAuthorizedApplication;
442     interface INetFwAuthorizedApplications;
443     interface INetFwProfile;
444     interface INetFwPolicy;
445     interface INetFwMgr;
446
447     [
448         uuid(0CA545C6-37AD-4A6C-BF92-9F7610067EF5)
449     ]
450     coclass NetFwOpenPort
451     {
452         [default] interface INetFwOpenPort;
453     }
454
455     [
456         uuid(EC9846B3-2762-4A6B-A214-6ACB603462D2)
457     ]
458     coclass NetFwAuthorizedApplication
459     {
460         [default] interface INetFwAuthorizedApplication;
461     }
462
463     [
464         uuid(304CE942-6E39-40D8-943A-B913C40C9CD4)
465     ]
466     coclass NetFwMgr
467     {
468         [default] interface INetFwMgr;
469     }
470 }