2 * Copyright 2007 Jeff Latimer
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
18 *****************************************************************************
20 * The firewall management interface
24 import
"icftypes.idl";
29 uuid(A6207B2E
-7CDD
-426A
-951E-5E1CBC5AFEAD
),
32 interface INetFwIcmpSettings
: IDispatch
35 HRESULT AllowOutboundDestinationUnreachable
([out, retval] VARIANT_BOOL* allow
);
38 HRESULT AllowOutboundDestinationUnreachable
( [in] VARIANT_BOOL allow
);
41 HRESULT AllowRedirect
( [out, retval] VARIANT_BOOL* allow
);
44 HRESULT AllowRedirect
( [in] VARIANT_BOOL allow
);
47 HRESULT AllowInboundEchoRequest
( [out, retval] VARIANT_BOOL* allow
);
50 HRESULT AllowInboundEchoRequest
( [in] VARIANT_BOOL allow
);
53 HRESULT AllowOutboundTimeExceeded
( [out, retval] VARIANT_BOOL* allow
);
56 HRESULT AllowOutboundTimeExceeded
( [in] VARIANT_BOOL allow
);
59 HRESULT AllowOutboundParameterProblem
( [out, retval] VARIANT_BOOL* allow
);
62 HRESULT AllowOutboundParameterProblem
( [in] VARIANT_BOOL allow
);
65 HRESULT AllowOutboundSourceQuench
( [out, retval] VARIANT_BOOL* allow
);
68 HRESULT AllowOutboundSourceQuench
( [in] VARIANT_BOOL allow
);
71 HRESULT AllowInboundRouterRequest
( [out, retval] VARIANT_BOOL* allow
);
74 HRESULT AllowInboundRouterRequest
( [in] VARIANT_BOOL allow
);
77 HRESULT AllowInboundTimestampRequest
( [out, retval] VARIANT_BOOL* allow
);
80 HRESULT AllowInboundTimestampRequest
( [in] VARIANT_BOOL allow
);
83 HRESULT AllowInboundMaskRequest
( [out, retval] VARIANT_BOOL* allow
);
86 HRESULT AllowInboundMaskRequest
( [in] VARIANT_BOOL allow
);
89 HRESULT AllowOutboundPacketTooBig
( [out, retval] VARIANT_BOOL* allow
);
92 HRESULT AllowOutboundPacketTooBig
( [in] VARIANT_BOOL allow
);
97 uuid(E0483BA0
-47FF
-4D9C
-A6D6
-7741D0B195F7
),
100 interface INetFwOpenPort
: IDispatch
103 HRESULT Name
( [out, retval] BSTR* name
);
106 HRESULT Name
( [in] BSTR name
);
109 HRESULT IpVersion
( [out, retval] NET_FW_IP_VERSION
* ipVersion
);
112 HRESULT IpVersion
( [in] NET_FW_IP_VERSION ipVersion
);
115 HRESULT Protocol
( [out, retval] NET_FW_IP_PROTOCOL
* ipProtocol
);
118 HRESULT Protocol
( [in] NET_FW_IP_PROTOCOL ipProtocol
);
121 HRESULT Port
( [out, retval] LONG* portNumber
);
124 HRESULT Port
( [in] LONG portNumber
);
127 HRESULT Scope
( [out, retval] NET_FW_SCOPE
* scope
);
130 HRESULT Scope
( [in] NET_FW_SCOPE scope
);
133 HRESULT RemoteAddresses
( [out, retval] BSTR* remoteAddrs
);
136 HRESULT RemoteAddresses
( [in] BSTR remoteAddrs
);
139 HRESULT Enabled
( [out, retval] VARIANT_BOOL* enabled
);
142 HRESULT Enabled
( [in] VARIANT_BOOL enabled
);
145 HRESULT BuiltIn
( [out, retval] VARIANT_BOOL* builtIn
);
150 uuid(C0E9D7FA
-E07E
-430A
-B19A
-090CE82D92E2
),
153 interface INetFwOpenPorts
: IDispatch
156 HRESULT Count
( [out, retval] long* count
);
159 HRESULT Add
( [in] INetFwOpenPort
* port
);
162 HRESULT Remove
( [in] LONG portNumber
, [in] NET_FW_IP_PROTOCOL ipProtocol
);
165 HRESULT Item
( [in] LONG portNumber
, [in] NET_FW_IP_PROTOCOL ipProtocol
,
166 [out, retval] INetFwOpenPort
** openPort
);
168 [id(DISPID_NEWENUM
), propget, restricted]
169 HRESULT _NewEnum
( [out, retval] IUnknown
** newEnum
);
174 uuid(79FD57C8
-908E-4A36
-9888-D5B3F0A444CF
),
177 interface INetFwService
: IDispatch
180 HRESULT Name
( [out, retval] BSTR* name
);
183 HRESULT Type
( [out, retval] NET_FW_SERVICE_TYPE
* type
);
186 HRESULT Customized
( [out, retval] VARIANT_BOOL* customized
);
189 HRESULT IpVersion
( [out, retval] NET_FW_IP_VERSION
* ipVersion
);
192 HRESULT IpVersion
( [in] NET_FW_IP_VERSION ipVersion
);
195 HRESULT Scope
( [out, retval] NET_FW_SCOPE
* scope
);
198 HRESULT Scope
( [in] NET_FW_SCOPE scope
);
201 HRESULT RemoteAddresses
( [out, retval] BSTR* remoteAddrs
);
204 HRESULT RemoteAddresses
( [in] BSTR remoteAddrs
);
207 HRESULT Enabled
( [out, retval] VARIANT_BOOL* enabled
);
210 HRESULT Enabled
( [in] VARIANT_BOOL enabled
);
213 HRESULT GloballyOpenPorts
( [out, retval] INetFwOpenPorts
** openPorts
);
218 uuid(79649BB4
-903E-421B
-94C9
-79848E79F6EE
),
221 interface INetFwServices
: IDispatch
224 HRESULT Count
( [out, retval] long* count
);
227 HRESULT Item
( [in] NET_FW_SERVICE_TYPE svcType
,
228 [out, retval] INetFwService
** service
);
230 [id(DISPID_NEWENUM
), propget, restricted]
231 HRESULT _NewEnum
( [out, retval] IUnknown
** newEnum
);
236 uuid(B5E64FFA
-C2C5
-444E
-A301
-FB5E00018050
),
239 interface INetFwAuthorizedApplication
: IDispatch
242 HRESULT Name
( [out, retval] BSTR* name
);
245 HRESULT Name
( [in] BSTR name
);
248 HRESULT ProcessImageFileName
( [out, retval] BSTR* imageFileName
);
251 HRESULT ProcessImageFileName
( [in] BSTR imageFileName
);
254 HRESULT IpVersion
( [out, retval] NET_FW_IP_VERSION
* ipVersion
);
257 HRESULT IpVersion
( [in] NET_FW_IP_VERSION ipVersion
);
260 HRESULT Scope
( [out, retval] NET_FW_SCOPE
* scope
);
263 HRESULT Scope
( [in] NET_FW_SCOPE scope
);
266 HRESULT RemoteAddresses
( [out, retval] BSTR* remoteAddrs
);
269 HRESULT RemoteAddresses
( [in] BSTR remoteAddrs
);
272 HRESULT Enabled
( [out, retval] VARIANT_BOOL* enabled
);
275 HRESULT Enabled
( [in] VARIANT_BOOL enabled
);
280 uuid(D4BECDDF
-6F73
-4A83
-B832
-9C66874CD20E
),
283 interface INetFwRemoteAdminSettings
: IDispatch
286 HRESULT IpVersion
( [out, retval] NET_FW_IP_VERSION
* ipVersion
);
289 HRESULT IpVersion
( [in] NET_FW_IP_VERSION ipVersion
);
292 HRESULT Scope
( [out, retval] NET_FW_SCOPE
* scope
);
295 HRESULT Scope
( [in] NET_FW_SCOPE scope
);
298 HRESULT RemoteAddresses
( [out, retval] BSTR* remoteAddrs
);
301 HRESULT RemoteAddresses
( [in] BSTR remoteAddrs
);
304 HRESULT Enabled
( [out, retval] VARIANT_BOOL* enabled
);
307 HRESULT Enabled
( [in] VARIANT_BOOL enabled
);
313 uuid(644EFD52
-CCF9
-486C
-97A2
-39F352570B30
),
316 interface INetFwAuthorizedApplications
: IDispatch
319 HRESULT Count
( [out, retval] long* count
);
322 HRESULT Add
( [in] INetFwAuthorizedApplication
* app
);
325 HRESULT Remove
( [in] BSTR imageFileName
);
328 HRESULT Item
( [in] BSTR imageFileName
,
329 [out, retval] INetFwAuthorizedApplication
** app
);
331 [id(DISPID_NEWENUM
), propget, restricted]
332 HRESULT _NewEnum
( [out, retval] IUnknown
** newEnum
);
337 uuid(174A0DDA
-E9F9
-449D
-993B
-21AB667CA456
),
340 interface INetFwProfile
: IDispatch
343 HRESULT Type
( [out, retval] NET_FW_PROFILE_TYPE
* type
);
346 HRESULT FirewallEnabled
( [out, retval] VARIANT_BOOL* enabled
);
349 HRESULT FirewallEnabled
( [in] VARIANT_BOOL enabled
);
352 HRESULT ExceptionsNotAllowed
( [out, retval] VARIANT_BOOL* notAllowed
);
355 HRESULT ExceptionsNotAllowed
( [in] VARIANT_BOOL notAllowed
);
358 HRESULT NotificationsDisabled
( [out, retval] VARIANT_BOOL* disabled
);
361 HRESULT NotificationsDisabled
( [in] VARIANT_BOOL disabled
);
364 HRESULT UnicastResponsesToMulticastBroadcastDisabled
( [out, retval] VARIANT_BOOL* disabled
);
367 HRESULT UnicastResponsesToMulticastBroadcastDisabled
( [in] VARIANT_BOOL disabled
);
370 HRESULT RemoteAdminSettings
( [out, retval] INetFwRemoteAdminSettings
** remoteAdminSettings
);
373 HRESULT IcmpSettings
( [out, retval] INetFwIcmpSettings
** icmpSettings
);
376 HRESULT GloballyOpenPorts
( [out, retval] INetFwOpenPorts
** openPorts
);
379 HRESULT Services
( [out, retval] INetFwServices
** services
);
382 HRESULT AuthorizedApplications
( [out, retval] INetFwAuthorizedApplications
** apps
);
387 uuid(D46D2478
-9AC9
-4008-9DC7
-5563CE5536CC
),
390 interface INetFwPolicy
: IDispatch
393 HRESULT CurrentProfile
( [out, retval] INetFwProfile
** profile
);
396 HRESULT GetProfileByType
( [in] NET_FW_PROFILE_TYPE profileType
,
397 [out, retval] INetFwProfile
** profile
);
402 uuid(F7898AF5
-CAC4
-4632-A2EC
-DA06E5111AF2
),
405 interface INetFwMgr
: IDispatch
408 HRESULT LocalPolicy
( [out, retval] INetFwPolicy
** localPolicy
);
411 HRESULT CurrentProfileType
( [out, retval] NET_FW_PROFILE_TYPE
* profileType
);
414 HRESULT RestoreDefaults
();
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 );
423 HRESULT IsIcmpTypeAllowed
( [in] NET_FW_IP_VERSION ipVersion
, [in] BSTR localAddress
,
424 [in] BYTE type
, [out] VARIANT* allowed
,
425 [out] VARIANT* restricted );
429 uuid(DB4F3345
-3EF8
-45ED
-B976
-25A6D3B81B71
),
432 library NetFwPublicTypeLib
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
;
448 uuid(0CA545C6
-37AD
-4A6C
-BF92
-9F7610067EF5
)
450 coclass NetFwOpenPort
452 [default] interface INetFwOpenPort
;
456 uuid(EC9846B3
-2762-4A6B
-A214
-6ACB603462D2
)
458 coclass NetFwAuthorizedApplication
460 [default] interface INetFwAuthorizedApplication
;
464 uuid(304CE942
-6E39
-40D8
-943A
-B913C40C9CD4
)
468 [default] interface INetFwMgr
;